PageRenderTime 60ms CodeModel.GetById 17ms RepoModel.GetById 1ms app.codeStats 0ms

/includes/captcha/captcha_gd.php

https://bitbucket.org/VolCh/phpbb3-russian-stable
PHP | 2640 lines | 2336 code | 172 blank | 132 comment | 80 complexity | 1eb945a7b0bc1aed9e103e5f125672d7 MD5 | raw file
Possible License(s): AGPL-1.0

Large files files are truncated, but you can click here to view the full file

  1. <?php
  2. /**
  3. *
  4. * @package VC
  5. * @version $Id$
  6. * @copyright (c) 2006 phpBB Group
  7. * @license http://opensource.org/licenses/gpl-license.php GNU Public License
  8. *
  9. */
  10. /**
  11. * @ignore
  12. */
  13. if (!defined('IN_PHPBB'))
  14. {
  15. exit;
  16. }
  17. /**
  18. * Original Author - Xore (Robert Hetzler)
  19. * With contributions from Neothermic
  20. *
  21. * @package VC
  22. */
  23. class captcha
  24. {
  25. var $width = 360;
  26. var $height = 96;
  27. /**
  28. * Create the image containing $code with a seed of $seed
  29. */
  30. function execute($code, $seed)
  31. {
  32. global $config;
  33. mt_srand($seed);
  34. // Create image
  35. $img = imagecreatetruecolor($this->width, $this->height);
  36. // Generate colours
  37. $colour = new colour_manager($img, array(
  38. 'random' => true,
  39. 'min_value' => 60,
  40. ), 'hsv');
  41. $scheme = $colour->colour_scheme('background', false);
  42. $scheme = $colour->mono_range($scheme, 10, false);
  43. shuffle($scheme);
  44. $bg_colours = array_splice($scheme, mt_rand(6, 12));
  45. // Generate code characters
  46. $characters = $sizes = $bounding_boxes = $noise = array();
  47. $width_avail = $this->width - 15;
  48. $code_len = strlen($code);
  49. $captcha_bitmaps = $this->captcha_bitmaps();
  50. for ($i = 0; $i < $code_len; ++$i)
  51. {
  52. $characters[$i] = new char_cube3d($captcha_bitmaps, $code[$i]);
  53. list($min, $max) = $characters[$i]->range();
  54. $sizes[$i] = mt_rand($min, $max);
  55. $box = $characters[$i]->dimensions($sizes[$i]);
  56. $width_avail -= ($box[2] - $box[0]);
  57. $bounding_boxes[$i] = $box;
  58. }
  59. // Redistribute leftover x-space
  60. $offset = array();
  61. for ($i = 0; $i < $code_len; ++$i)
  62. {
  63. $denom = ($code_len - $i);
  64. $denom = max(1.3, $denom);
  65. $offset[$i] = phpbb_mt_rand(0, (int) round((1.5 * $width_avail) / $denom));
  66. $width_avail -= $offset[$i];
  67. }
  68. if ($config['captcha_gd_x_grid'])
  69. {
  70. $grid = (int) $config['captcha_gd_x_grid'];
  71. for ($y = 0; $y < $this->height; $y += mt_rand($grid - 2, $grid + 2))
  72. {
  73. $current_colour = $scheme[array_rand($scheme)];
  74. imageline($img, mt_rand(0,4), mt_rand($y - 3, $y), mt_rand($this->width - 5, $this->width), mt_rand($y - 3, $y), $current_colour);
  75. }
  76. }
  77. if ($config['captcha_gd_y_grid'])
  78. {
  79. $grid = (int) $config['captcha_gd_y_grid'];
  80. for ($x = 0; $x < $this->width; $x += mt_rand($grid - 2, $grid + 2))
  81. {
  82. $current_colour = $scheme[array_rand($scheme)];
  83. imagedashedline($img, mt_rand($x -3, $x + 3), mt_rand(0, 4), mt_rand($x -3, $x + 3), mt_rand($this->height - 5, $this->height), $current_colour);
  84. }
  85. }
  86. if ($config['captcha_gd_wave'] && ($config['captcha_gd_y_grid'] || $config['captcha_gd_y_grid']))
  87. {
  88. $this->wave($img);
  89. }
  90. if ($config['captcha_gd_3d_noise'])
  91. {
  92. $xoffset = mt_rand(0,9);
  93. $noise_bitmaps = $this->captcha_noise_bg_bitmaps();
  94. for ($i = 0; $i < $code_len; ++$i)
  95. {
  96. $noise[$i] = new char_cube3d($noise_bitmaps, mt_rand(1, sizeof($noise_bitmaps['data'])));
  97. list($min, $max) = $noise[$i]->range();
  98. //$box = $noise[$i]->dimensions($sizes[$i]);
  99. }
  100. $xoffset = 0;
  101. for ($i = 0; $i < $code_len; ++$i)
  102. {
  103. $dimm = $bounding_boxes[$i];
  104. $xoffset += ($offset[$i] - $dimm[0]);
  105. $yoffset = mt_rand(-$dimm[1], $this->height - $dimm[3]);
  106. $noise[$i]->drawchar($sizes[$i], $xoffset, $yoffset, $img, $colour->get_resource('background'), $scheme);
  107. $xoffset += $dimm[2];
  108. }
  109. }
  110. $xoffset = 5;
  111. for ($i = 0; $i < $code_len; ++$i)
  112. {
  113. $dimm = $bounding_boxes[$i];
  114. $xoffset += ($offset[$i] - $dimm[0]);
  115. $yoffset = mt_rand(-$dimm[1], $this->height - $dimm[3]);
  116. $characters[$i]->drawchar($sizes[$i], $xoffset, $yoffset, $img, $colour->get_resource('background'), $scheme);
  117. $xoffset += $dimm[2];
  118. }
  119. if ($config['captcha_gd_wave'])
  120. {
  121. $this->wave($img);
  122. }
  123. if ($config['captcha_gd_foreground_noise'])
  124. {
  125. $this->noise_line($img, 0, 0, $this->width, $this->height, $colour->get_resource('background'), $scheme, $bg_colours);
  126. }
  127. // Send image
  128. header('Content-Type: image/png');
  129. header('Cache-control: no-cache, no-store');
  130. imagepng($img);
  131. imagedestroy($img);
  132. }
  133. /**
  134. * Sinus
  135. */
  136. function wave($img)
  137. {
  138. global $config;
  139. $period_x = mt_rand(12,18);
  140. $period_y = mt_rand(7,14);
  141. $amp_x = mt_rand(5,10);
  142. $amp_y = mt_rand(2,4);
  143. $socket = mt_rand(0,100);
  144. $dampen_x = mt_rand($this->width/5, $this->width/2);
  145. $dampen_y = mt_rand($this->height/5, $this->height/2);
  146. $direction_x = (mt_rand (0, 1));
  147. $direction_y = (mt_rand (0, 1));
  148. for ($i = 0; $i < $this->width; $i++)
  149. {
  150. $dir = ($direction_x) ? $i : ($this->width - $i);
  151. imagecopy($img, $img, $i-1, sin($socket+ $i/($period_x + $dir/$dampen_x)) * $amp_x, $i, 0, 1, $this->height);
  152. }
  153. $socket = mt_rand(0,100);
  154. for ($i = 0; $i < $this->height; $i++)
  155. {
  156. $dir = ($direction_y) ? $i : ($this->height - $i);
  157. imagecopy($img, $img ,sin($socket + $i/($period_y + ($dir)/$dampen_y)) * $amp_y, $i-1, 0, $i, $this->width, 1);
  158. }
  159. return $img;
  160. }
  161. /**
  162. * Noise line
  163. */
  164. function noise_line($img, $min_x, $min_y, $max_x, $max_y, $bg, $font, $non_font)
  165. {
  166. imagesetthickness($img, 2);
  167. $x1 = $min_x;
  168. $x2 = $max_x;
  169. $y1 = $min_y;
  170. $y2 = $min_y;
  171. do
  172. {
  173. $line = array_merge(
  174. array_fill(0, mt_rand(30, 60), $non_font[array_rand($non_font)]),
  175. array_fill(0, mt_rand(30, 60), $bg)
  176. );
  177. imagesetstyle($img, $line);
  178. imageline($img, $x1, $y1, $x2, $y2, IMG_COLOR_STYLED);
  179. $y1 += mt_rand(12, 35);
  180. $y2 += mt_rand(12, 35);
  181. }
  182. while ($y1 < $max_y && $y2 < $max_y);
  183. $x1 = $min_x;
  184. $x2 = $min_x;
  185. $y1 = $min_y;
  186. $y2 = $max_y;
  187. do
  188. {
  189. $line = array_merge(
  190. array_fill(0, mt_rand(30, 60), $non_font[array_rand($non_font)]),
  191. array_fill(0, mt_rand(30, 60), $bg)
  192. );
  193. imagesetstyle($img, $line);
  194. imageline($img, $x1, $y1, $x2, $y2, IMG_COLOR_STYLED);
  195. $x1 += mt_rand(20, 35);
  196. $x2 += mt_rand(20, 35);
  197. }
  198. while ($x1 < $max_x && $x2 < $max_x);
  199. imagesetthickness($img, 1);
  200. }
  201. function captcha_noise_bg_bitmaps()
  202. {
  203. return array(
  204. 'width' => 15,
  205. 'height' => 5,
  206. 'data' => array(
  207. 1 => array(
  208. array(1,0,0,0,1,0,0,0,0,0,0,0,0,0,0),
  209. array(1,0,0,0,0,1,0,0,0,0,0,0,0,0,0),
  210. array(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
  211. array(1,0,0,0,0,1,0,0,0,0,0,0,1,0,0),
  212. array(1,0,0,0,0,0,1,0,0,0,0,1,0,0,0),
  213. ),
  214. 2 => array(
  215. array(1,1,mt_rand(0,1),1,0,1,1,1,1,0,0,0,0,0,0),
  216. array(0,0,0,0,0,0,0,1,0,0,0,0,0,0,0),
  217. array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
  218. array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
  219. array(0,0,0,0,0,0,0,0,0,1,1,0,1,1,1),
  220. ),
  221. 3 => array(
  222. array(1,0,0,0,0,0,0,0,0,0,0,0,0,0,1),
  223. array(1,0,0,0,0,0,0,0,0,0,0,0,0,1,0),
  224. array(0,0,0,0,1,0,0,0,0,0,0,0,0,0,1),
  225. array(1,0,0,0,0,0,0,0,0,0,0,0,0,1,0),
  226. array(1,0,0,0,0,0,0,0,0,0,0,0,0,0,1),
  227. ),
  228. 4 => array(
  229. array(1,0,1,0,1,0,0,1,1,0,0,0,0,0,0),
  230. array(0,0,0,0,0,0,0,1,0,0,0,0,0,0,0),
  231. array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
  232. array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
  233. array(1,0,1,0,0,0,0,0,0,0,0,0,0,0,0),
  234. ),
  235. 5 => array(
  236. array(1,1,1,1,0,0,0,1,1,1,0,0,1,0,1),
  237. array(0,0,0,0,0,0,0,1,0,0,0,0,0,0,0),
  238. array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
  239. array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
  240. array(1,0,1,0,0,0,0,0,0,0,0,0,0,0,0),
  241. ),
  242. 6 => array(
  243. array(mt_rand(0,1),mt_rand(0,1),mt_rand(0,1),mt_rand(0,1),mt_rand(0,1),0,mt_rand(0,1),mt_rand(0,1),mt_rand(0,1),mt_rand(0,1),mt_rand(0,1),0,mt_rand(0,1),mt_rand(0,1),mt_rand(0,1)),
  244. array(0,0,0,0,0,0,0,mt_rand(0,1),0,0,0,0,0,0,0),
  245. array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
  246. array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
  247. array(mt_rand(0,1),0,mt_rand(0,1),0,0,0,0,0,0,0,0,0,0,0,0),
  248. ),
  249. 7 => array(
  250. array(0,0,0,0,0,0,0,0,0,0,1,1,0,1,1),
  251. array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
  252. array(0,0,1,1,0,0,0,1,0,0,0,0,0,0,0),
  253. array(0,1,0,0,0,1,0,0,0,0,0,0,0,0,0),
  254. array(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
  255. ),
  256. ));
  257. }
  258. /**
  259. * Return bitmaps
  260. */
  261. function captcha_bitmaps()
  262. {
  263. global $config;
  264. $chars = array(
  265. 'A' => array(
  266. array(
  267. array(0,0,0,0,1,0,0,0,0),
  268. array(0,0,0,1,0,1,0,0,0),
  269. array(0,0,0,1,0,1,0,0,0),
  270. array(0,0,0,1,0,1,0,0,0),
  271. array(0,0,1,0,0,0,1,0,0),
  272. array(0,0,1,0,0,0,1,0,0),
  273. array(0,0,1,0,0,0,1,0,0),
  274. array(0,1,0,0,0,0,0,1,0),
  275. array(0,1,0,0,0,0,0,1,0),
  276. array(0,1,1,1,1,1,1,1,0),
  277. array(0,1,0,0,0,0,0,1,0),
  278. array(1,0,0,0,0,0,0,0,1),
  279. array(1,0,0,0,0,0,0,0,1),
  280. array(1,0,0,0,0,0,0,0,1),
  281. array(1,0,0,0,0,0,0,0,1),
  282. ),
  283. array(
  284. array(0,0,0,0,0,0,0,0,0),
  285. array(0,0,0,0,0,0,0,0,0),
  286. array(0,0,0,0,1,0,0,0,0),
  287. array(0,0,0,1,0,1,0,0,0),
  288. array(0,0,1,1,0,1,1,0,0),
  289. array(0,0,1,0,0,0,1,0,0),
  290. array(0,1,0,0,0,0,0,1,0),
  291. array(0,1,0,0,0,0,0,1,0),
  292. array(0,1,1,1,1,1,1,1,0),
  293. array(0,1,0,0,0,0,0,1,0),
  294. array(0,1,0,0,0,0,0,1,0),
  295. array(0,1,0,0,0,0,0,1,0),
  296. array(0,1,0,0,0,0,0,1,0),
  297. array(0,1,0,0,0,0,0,1,0),
  298. array(1,1,1,0,0,0,1,1,1),
  299. ),
  300. array(
  301. array(0,0,0,0,0,0,0,0,0),
  302. array(0,0,0,0,0,0,0,0,0),
  303. array(0,0,0,0,0,0,0,0,0),
  304. array(0,0,0,0,0,0,0,0,0),
  305. array(0,0,1,1,1,1,1,0,0),
  306. array(0,1,1,0,0,0,1,1,0),
  307. array(1,1,0,0,0,0,0,1,1),
  308. array(1,0,0,0,0,0,0,0,1),
  309. array(0,0,0,0,0,0,0,1,1),
  310. array(0,0,0,0,0,1,1,1,1),
  311. array(0,0,0,1,1,1,0,0,1),
  312. array(0,1,1,1,0,0,0,0,1),
  313. array(1,0,0,0,0,0,0,0,1),
  314. array(1,1,0,0,0,0,1,1,1),
  315. array(0,1,1,1,1,1,1,0,1),
  316. ),
  317. ),
  318. 'B' => array(
  319. array(
  320. array(1,1,1,1,1,1,1,0,0),
  321. array(1,0,0,0,0,0,0,1,0),
  322. array(1,0,0,0,0,0,0,0,1),
  323. array(1,0,0,0,0,0,0,0,1),
  324. array(1,0,0,0,0,0,0,0,1),
  325. array(1,0,0,0,0,0,0,0,1),
  326. array(1,0,0,0,0,0,0,1,0),
  327. array(1,1,1,1,1,1,1,0,0),
  328. array(1,0,0,0,0,0,0,1,0),
  329. array(1,0,0,0,0,0,0,0,1),
  330. array(1,0,0,0,0,0,0,0,1),
  331. array(1,0,0,0,0,0,0,0,1),
  332. array(1,0,0,0,0,0,0,0,1),
  333. array(1,0,0,0,0,0,0,1,0),
  334. array(1,1,1,1,1,1,1,0,0),
  335. ),
  336. array(
  337. array(1,1,1,1,1,1,1,0,0),
  338. array(0,1,0,0,0,0,0,1,0),
  339. array(0,1,0,0,0,0,0,0,1),
  340. array(0,1,0,0,0,0,0,0,1),
  341. array(0,1,0,0,0,0,0,0,1),
  342. array(0,1,0,0,0,0,0,0,1),
  343. array(0,1,0,0,0,0,0,1,0),
  344. array(0,1,1,1,1,1,1,0,0),
  345. array(0,1,0,0,0,0,0,1,0),
  346. array(0,1,0,0,0,0,0,0,1),
  347. array(0,1,0,0,0,0,0,0,1),
  348. array(0,1,0,0,0,0,0,0,1),
  349. array(0,1,0,0,0,0,0,0,1),
  350. array(0,1,0,0,0,0,0,1,0),
  351. array(1,1,1,1,1,1,1,0,0),
  352. ),
  353. array(
  354. array(0,1,0,0,0,0,0,0,0),
  355. array(0,1,0,0,0,0,0,0,0),
  356. array(0,1,0,0,0,0,0,0,0),
  357. array(0,1,0,0,0,0,0,0,0),
  358. array(0,1,0,0,0,0,0,0,0),
  359. array(0,1,0,0,0,0,0,0,0),
  360. array(0,1,0,0,0,0,0,0,0),
  361. array(0,1,1,1,1,1,1,0,0),
  362. array(0,1,0,0,0,0,0,1,0),
  363. array(0,1,0,0,0,0,0,0,1),
  364. array(0,1,0,0,0,0,0,0,1),
  365. array(0,1,0,0,0,0,0,0,1),
  366. array(0,1,0,0,0,0,0,0,1),
  367. array(0,1,0,0,0,0,0,1,0),
  368. array(0,1,1,1,1,1,1,0,0),
  369. ),
  370. ),
  371. 'C' => array(
  372. array(
  373. array(0,0,1,1,1,1,1,0,0),
  374. array(0,1,0,0,0,0,0,1,0),
  375. array(1,0,0,0,0,0,0,0,1),
  376. array(1,0,0,0,0,0,0,0,1),
  377. array(1,0,0,0,0,0,0,0,0),
  378. array(1,0,0,0,0,0,0,0,0),
  379. array(1,0,0,0,0,0,0,0,0),
  380. array(1,0,0,0,0,0,0,0,0),
  381. array(1,0,0,0,0,0,0,0,0),
  382. array(1,0,0,0,0,0,0,0,0),
  383. array(1,0,0,0,0,0,0,0,0),
  384. array(1,0,0,0,0,0,0,0,1),
  385. array(1,0,0,0,0,0,0,0,1),
  386. array(0,1,0,0,0,0,0,1,0),
  387. array(0,0,1,1,1,1,1,0,0),
  388. ),
  389. array(
  390. array(0,0,1,1,1,1,1,0,1),
  391. array(0,1,0,0,0,0,0,1,1),
  392. array(1,0,0,0,0,0,0,0,1),
  393. array(1,0,0,0,0,0,0,0,1),
  394. array(1,0,0,0,0,0,0,0,0),
  395. array(1,0,0,0,0,0,0,0,0),
  396. array(1,0,0,0,0,0,0,0,0),
  397. array(1,0,0,0,0,0,0,0,0),
  398. array(1,0,0,0,0,0,0,0,0),
  399. array(1,0,0,0,0,0,0,0,0),
  400. array(1,0,0,0,0,0,0,0,0),
  401. array(1,0,0,0,0,0,0,0,1),
  402. array(1,0,0,0,0,0,0,0,1),
  403. array(0,1,0,0,0,0,0,1,1),
  404. array(0,0,1,1,1,1,1,0,1),
  405. ),
  406. ),
  407. 'D' => array(
  408. array(
  409. array(1,1,1,1,1,1,1,0,0),
  410. array(1,0,0,0,0,0,0,1,0),
  411. array(1,0,0,0,0,0,0,0,1),
  412. array(1,0,0,0,0,0,0,0,1),
  413. array(1,0,0,0,0,0,0,0,1),
  414. array(1,0,0,0,0,0,0,0,1),
  415. array(1,0,0,0,0,0,0,0,1),
  416. array(1,0,0,0,0,0,0,0,1),
  417. array(1,0,0,0,0,0,0,0,1),
  418. array(1,0,0,0,0,0,0,0,1),
  419. array(1,0,0,0,0,0,0,0,1),
  420. array(1,0,0,0,0,0,0,0,1),
  421. array(1,0,0,0,0,0,0,0,1),
  422. array(1,0,0,0,0,0,0,1,0),
  423. array(1,1,1,1,1,1,1,0,0),
  424. ),
  425. array(
  426. array(1,1,1,1,1,1,1,0,0),
  427. array(0,1,0,0,0,0,0,1,0),
  428. array(0,1,0,0,0,0,0,0,1),
  429. array(0,1,0,0,0,0,0,0,1),
  430. array(0,1,0,0,0,0,0,0,1),
  431. array(0,1,0,0,0,0,0,0,1),
  432. array(0,1,0,0,0,0,0,0,1),
  433. array(0,1,0,0,0,0,0,0,1),
  434. array(0,1,0,0,0,0,0,0,1),
  435. array(0,1,0,0,0,0,0,0,1),
  436. array(0,1,0,0,0,0,0,0,1),
  437. array(0,1,0,0,0,0,0,0,1),
  438. array(0,1,0,0,0,0,0,0,1),
  439. array(0,1,0,0,0,0,0,1,0),
  440. array(1,1,1,1,1,1,1,0,0),
  441. ),
  442. array(
  443. array(0,0,0,0,0,0,0,0,1),
  444. array(0,0,0,0,0,0,0,0,1),
  445. array(0,0,0,0,0,0,0,0,1),
  446. array(0,0,0,0,0,0,0,0,1),
  447. array(0,0,0,0,0,0,0,0,1),
  448. array(0,0,0,0,0,0,0,0,1),
  449. array(0,0,0,0,0,0,0,0,1),
  450. array(0,0,1,1,1,1,1,0,1),
  451. array(0,1,1,0,0,0,1,1,1),
  452. array(0,1,0,0,0,0,0,0,1),
  453. array(0,1,0,0,0,0,0,0,1),
  454. array(0,1,0,0,0,0,0,0,1),
  455. array(0,1,0,0,0,0,0,0,1),
  456. array(0,1,1,0,0,0,1,1,1),
  457. array(0,0,1,1,1,1,1,0,1),
  458. ),
  459. ),
  460. 'E' => array(
  461. array(
  462. array(1,1,1,1,1,1,1,1,1),
  463. array(1,0,0,0,0,0,0,0,0),
  464. array(1,0,0,0,0,0,0,0,0),
  465. array(1,0,0,0,0,0,0,0,0),
  466. array(1,0,0,0,0,0,0,0,0),
  467. array(1,0,0,0,0,0,0,0,0),
  468. array(1,0,0,0,0,0,0,0,0),
  469. array(1,1,1,1,1,1,1,1,0),
  470. array(1,0,0,0,0,0,0,0,0),
  471. array(1,0,0,0,0,0,0,0,0),
  472. array(1,0,0,0,0,0,0,0,0),
  473. array(1,0,0,0,0,0,0,0,0),
  474. array(1,0,0,0,0,0,0,0,0),
  475. array(1,0,0,0,0,0,0,0,0),
  476. array(1,1,1,1,1,1,1,1,1),
  477. ),
  478. array(
  479. array(1,1,1,1,1,1,1,1,1),
  480. array(1,0,0,0,0,0,0,0,1),
  481. array(1,0,0,0,0,0,0,0,0),
  482. array(1,0,0,0,0,0,0,0,0),
  483. array(1,0,0,0,0,0,0,0,0),
  484. array(1,0,0,0,0,0,0,0,0),
  485. array(1,0,0,0,0,0,0,0,0),
  486. array(1,1,1,1,1,1,1,0,0),
  487. array(1,0,0,0,0,0,0,0,0),
  488. array(1,0,0,0,0,0,0,0,0),
  489. array(1,0,0,0,0,0,0,0,0),
  490. array(1,0,0,0,0,0,0,0,0),
  491. array(1,0,0,0,0,0,0,0,0),
  492. array(1,0,0,0,0,0,0,0,1),
  493. array(1,1,1,1,1,1,1,1,1),
  494. ),
  495. array(
  496. array(0,0,0,0,0,0,0,0,0),
  497. array(0,0,0,0,0,0,0,0,0),
  498. array(0,0,0,0,0,0,0,0,0),
  499. array(0,0,0,0,0,0,0,0,0),
  500. array(0,0,0,0,0,0,0,0,0),
  501. array(0,0,0,0,0,0,0,0,0),
  502. array(0,0,0,0,0,0,0,0,0),
  503. array(0,0,1,1,1,1,1,0,0),
  504. array(0,1,1,0,0,0,1,1,0),
  505. array(1,1,0,0,0,0,0,1,1),
  506. array(1,1,1,1,1,1,1,1,1),
  507. array(1,0,0,0,0,0,0,0,0),
  508. array(1,0,0,0,0,0,0,0,1),
  509. array(1,1,0,0,0,0,0,1,1),
  510. array(0,1,1,1,1,1,1,1,0),
  511. ),
  512. ),
  513. 'F' => array(
  514. array(
  515. array(1,1,1,1,1,1,1,1,1),
  516. array(1,0,0,0,0,0,0,0,0),
  517. array(1,0,0,0,0,0,0,0,0),
  518. array(1,0,0,0,0,0,0,0,0),
  519. array(1,0,0,0,0,0,0,0,0),
  520. array(1,0,0,0,0,0,0,0,0),
  521. array(1,0,0,0,0,0,0,0,0),
  522. array(1,1,1,1,1,1,1,0,0),
  523. array(1,0,0,0,0,0,0,0,0),
  524. array(1,0,0,0,0,0,0,0,0),
  525. array(1,0,0,0,0,0,0,0,0),
  526. array(1,0,0,0,0,0,0,0,0),
  527. array(1,0,0,0,0,0,0,0,0),
  528. array(1,0,0,0,0,0,0,0,0),
  529. array(1,0,0,0,0,0,0,0,0),
  530. ),
  531. array(
  532. array(0,1,1,1,1,1,1,1,1),
  533. array(0,1,0,0,0,0,0,0,1),
  534. array(0,1,0,0,0,0,0,0,0),
  535. array(0,1,0,0,0,0,0,0,0),
  536. array(0,1,0,0,0,0,0,0,0),
  537. array(0,1,0,0,0,0,0,0,0),
  538. array(0,1,0,0,0,0,0,0,0),
  539. array(0,1,1,1,1,1,1,0,0),
  540. array(0,1,0,0,0,0,0,0,0),
  541. array(0,1,0,0,0,0,0,0,0),
  542. array(0,1,0,0,0,0,0,0,0),
  543. array(0,1,0,0,0,0,0,0,0),
  544. array(0,1,0,0,0,0,0,0,0),
  545. array(0,1,0,0,0,0,0,0,0),
  546. array(1,1,1,0,0,0,0,0,0),
  547. ),
  548. array(
  549. array(0,0,0,1,1,0,0,0,0),
  550. array(0,0,1,1,0,0,0,0,0),
  551. array(0,1,1,0,0,0,0,0,0),
  552. array(0,1,0,0,0,0,0,0,0),
  553. array(0,1,0,0,0,0,0,0,0),
  554. array(1,1,1,1,0,0,0,0,0),
  555. array(0,1,0,0,0,0,0,0,0),
  556. array(0,1,0,0,0,0,0,0,0),
  557. array(0,1,0,0,0,0,0,0,0),
  558. array(0,1,0,0,0,0,0,0,0),
  559. array(0,1,0,0,0,0,0,0,0),
  560. array(0,1,0,0,0,0,0,0,0),
  561. array(0,1,0,0,0,0,0,0,0),
  562. array(0,1,0,0,0,0,0,0,0),
  563. array(0,1,0,0,0,0,0,0,0),
  564. ),
  565. ),
  566. 'G' => array(
  567. array(
  568. array(0,0,1,1,1,1,1,0,0),
  569. array(0,1,0,0,0,0,0,1,0),
  570. array(1,0,0,0,0,0,0,0,1),
  571. array(1,0,0,0,0,0,0,0,0),
  572. array(1,0,0,0,0,0,0,0,0),
  573. array(1,0,0,0,0,0,0,0,0),
  574. array(1,0,0,0,0,0,0,0,0),
  575. array(1,0,0,0,0,0,0,0,0),
  576. array(1,0,0,0,0,0,1,1,1),
  577. array(1,0,0,0,0,0,0,0,1),
  578. array(1,0,0,0,0,0,0,0,1),
  579. array(1,0,0,0,0,0,0,0,1),
  580. array(1,0,0,0,0,0,0,0,1),
  581. array(0,1,0,0,0,0,0,1,0),
  582. array(0,0,1,1,1,1,1,0,0),
  583. ),
  584. array(
  585. array(0,0,1,1,1,1,1,0,1),
  586. array(0,1,0,0,0,0,0,1,1),
  587. array(1,0,0,0,0,0,0,0,1),
  588. array(1,0,0,0,0,0,0,0,0),
  589. array(1,0,0,0,0,0,0,0,0),
  590. array(1,0,0,0,0,0,0,0,0),
  591. array(1,0,0,0,0,0,0,0,0),
  592. array(1,0,0,0,0,0,0,0,0),
  593. array(1,0,0,0,1,1,1,1,1),
  594. array(1,0,0,0,1,0,0,0,1),
  595. array(1,0,0,0,1,0,0,0,1),
  596. array(1,0,0,0,0,0,0,0,1),
  597. array(1,0,0,0,0,0,0,0,1),
  598. array(0,1,0,0,0,0,0,1,1),
  599. array(0,0,1,1,1,1,1,0,1),
  600. ),
  601. array(
  602. array(0,0,1,1,1,1,1,0,1),
  603. array(0,1,1,0,0,0,0,1,1),
  604. array(1,1,0,0,0,0,0,1,1),
  605. array(1,0,0,0,0,0,0,0,1),
  606. array(1,0,0,0,0,0,0,0,1),
  607. array(1,1,1,0,0,0,0,0,1),
  608. array(0,0,1,1,1,1,1,1,1),
  609. array(0,0,0,0,0,0,0,0,1),
  610. array(0,0,0,0,0,0,0,0,1),
  611. array(0,0,0,0,0,0,0,0,1),
  612. array(0,0,0,0,0,0,0,0,1),
  613. array(0,0,0,0,0,0,0,1,1),
  614. array(1,1,1,1,1,1,1,1,0),
  615. array(0,0,0,0,0,0,0,0,0),
  616. array(0,0,0,0,0,0,0,0,0),
  617. ),
  618. ),
  619. 'H' => array(
  620. array(
  621. array(1,0,0,0,0,0,0,0,1),
  622. array(1,0,0,0,0,0,0,0,1),
  623. array(1,0,0,0,0,0,0,0,1),
  624. array(1,0,0,0,0,0,0,0,1),
  625. array(1,0,0,0,0,0,0,0,1),
  626. array(1,0,0,0,0,0,0,0,1),
  627. array(1,0,0,0,0,0,0,0,1),
  628. array(1,1,1,1,1,1,1,1,1),
  629. array(1,0,0,0,0,0,0,0,1),
  630. array(1,0,0,0,0,0,0,0,1),
  631. array(1,0,0,0,0,0,0,0,1),
  632. array(1,0,0,0,0,0,0,0,1),
  633. array(1,0,0,0,0,0,0,0,1),
  634. array(1,0,0,0,0,0,0,0,1),
  635. array(1,0,0,0,0,0,0,0,1),
  636. ),
  637. array(
  638. array(1,1,1,0,0,0,1,1,1),
  639. array(0,1,0,0,0,0,0,1,0),
  640. array(0,1,0,0,0,0,0,1,0),
  641. array(0,1,0,0,0,0,0,1,0),
  642. array(0,1,0,0,0,0,0,1,0),
  643. array(0,1,0,0,0,0,0,1,0),
  644. array(0,1,0,0,0,0,0,1,0),
  645. array(0,1,1,1,1,1,1,1,0),
  646. array(0,1,0,0,0,0,0,1,0),
  647. array(0,1,0,0,0,0,0,1,0),
  648. array(0,1,0,0,0,0,0,1,0),
  649. array(0,1,0,0,0,0,0,1,0),
  650. array(0,1,0,0,0,0,0,1,0),
  651. array(0,1,0,0,0,0,0,1,0),
  652. array(1,1,1,0,0,0,1,1,1),
  653. ),
  654. array(
  655. array(1,0,0,0,0,0,0,0,0),
  656. array(1,0,0,0,0,0,0,0,0),
  657. array(1,0,0,0,0,0,0,0,0),
  658. array(1,0,0,0,0,0,0,0,0),
  659. array(1,0,0,0,0,0,0,0,0),
  660. array(1,0,0,0,0,0,0,0,0),
  661. array(1,0,0,0,0,0,0,0,0),
  662. array(1,0,0,1,1,1,0,0,0),
  663. array(1,1,1,1,0,1,1,0,0),
  664. array(1,0,0,0,0,0,1,0,0),
  665. array(1,0,0,0,0,0,1,0,0),
  666. array(1,0,0,0,0,0,1,0,0),
  667. array(1,0,0,0,0,0,1,0,0),
  668. array(1,0,0,0,0,0,1,0,0),
  669. array(1,0,0,0,0,0,1,0,0),
  670. ),
  671. ),
  672. 'I' => array(
  673. array(
  674. array(1,1,1,1,1,1,1,1,1),
  675. array(0,0,0,0,1,0,0,0,0),
  676. array(0,0,0,0,1,0,0,0,0),
  677. array(0,0,0,0,1,0,0,0,0),
  678. array(0,0,0,0,1,0,0,0,0),
  679. array(0,0,0,0,1,0,0,0,0),
  680. array(0,0,0,0,1,0,0,0,0),
  681. array(0,0,0,0,1,0,0,0,0),
  682. array(0,0,0,0,1,0,0,0,0),
  683. array(0,0,0,0,1,0,0,0,0),
  684. array(0,0,0,0,1,0,0,0,0),
  685. array(0,0,0,0,1,0,0,0,0),
  686. array(0,0,0,0,1,0,0,0,0),
  687. array(0,0,0,0,1,0,0,0,0),
  688. array(1,1,1,1,1,1,1,1,1),
  689. ),
  690. array(
  691. array(0,0,0,1,1,1,0,0,0),
  692. array(0,0,0,0,1,0,0,0,0),
  693. array(0,0,0,0,1,0,0,0,0),
  694. array(0,0,0,0,1,0,0,0,0),
  695. array(0,0,0,0,1,0,0,0,0),
  696. array(0,0,0,0,1,0,0,0,0),
  697. array(0,0,0,0,1,0,0,0,0),
  698. array(0,0,0,0,1,0,0,0,0),
  699. array(0,0,0,0,1,0,0,0,0),
  700. array(0,0,0,0,1,0,0,0,0),
  701. array(0,0,0,0,1,0,0,0,0),
  702. array(0,0,0,0,1,0,0,0,0),
  703. array(0,0,0,0,1,0,0,0,0),
  704. array(0,0,0,0,1,0,0,0,0),
  705. array(0,0,0,1,1,1,0,0,0),
  706. ),
  707. array(
  708. array(0,0,0,0,0,0,0,0,0),
  709. array(0,0,0,0,0,0,0,0,0),
  710. array(0,0,0,0,0,0,0,0,0),
  711. array(0,0,0,0,1,0,0,0,0),
  712. array(0,0,0,1,1,1,0,0,0),
  713. array(0,0,0,0,1,0,0,0,0),
  714. array(0,0,0,0,0,0,0,0,0),
  715. array(0,0,0,0,1,0,0,0,0),
  716. array(0,0,0,0,1,0,0,0,0),
  717. array(0,0,0,0,1,0,0,0,0),
  718. array(0,0,0,0,1,0,0,0,0),
  719. array(0,0,0,0,1,0,0,0,0),
  720. array(0,0,0,0,1,0,0,0,0),
  721. array(0,0,0,0,1,0,0,0,0),
  722. array(0,0,0,1,1,1,0,0,0),
  723. ),
  724. ),
  725. 'J' => array(
  726. array(
  727. array(1,1,1,1,1,1,1,1,1),
  728. array(0,0,0,0,0,1,0,0,0),
  729. array(0,0,0,0,0,1,0,0,0),
  730. array(0,0,0,0,0,1,0,0,0),
  731. array(0,0,0,0,0,1,0,0,0),
  732. array(0,0,0,0,0,1,0,0,0),
  733. array(0,0,0,0,0,1,0,0,0),
  734. array(0,0,0,0,0,1,0,0,0),
  735. array(0,0,0,0,0,1,0,0,0),
  736. array(0,0,0,0,0,1,0,0,0),
  737. array(0,0,0,0,0,1,0,0,0),
  738. array(1,0,0,0,0,1,0,0,0),
  739. array(1,0,0,0,0,1,0,0,0),
  740. array(0,1,0,0,1,0,0,0,0),
  741. array(0,0,1,1,0,0,0,0,0),
  742. ),
  743. array(
  744. array(1,1,1,1,1,1,1,1,1),
  745. array(0,0,0,0,0,1,0,0,0),
  746. array(0,0,0,0,0,1,0,0,0),
  747. array(0,0,0,0,0,1,0,0,0),
  748. array(0,0,0,0,0,1,0,0,0),
  749. array(0,0,0,0,0,1,0,0,0),
  750. array(0,0,0,0,0,1,0,0,0),
  751. array(0,0,0,0,0,1,0,0,0),
  752. array(0,0,0,0,0,1,0,0,0),
  753. array(0,0,0,0,0,1,0,0,0),
  754. array(0,0,0,0,0,1,0,0,0),
  755. array(1,0,0,0,0,1,0,0,0),
  756. array(1,0,0,0,0,1,0,0,0),
  757. array(1,1,0,0,1,0,0,0,0),
  758. array(1,0,1,1,0,0,0,0,0),
  759. ),
  760. array(
  761. array(0,0,0,0,0,0,0,0,0),
  762. array(0,0,0,0,0,0,0,0,0),
  763. array(0,0,0,0,0,0,0,0,0),
  764. array(0,0,0,0,0,0,0,0,0),
  765. array(0,0,0,0,0,1,0,0,0),
  766. array(0,0,0,0,0,0,0,0,0),
  767. array(0,0,0,0,0,1,0,0,0),
  768. array(0,0,0,0,0,1,0,0,0),
  769. array(0,0,0,0,0,1,0,0,0),
  770. array(0,0,0,0,0,1,0,0,0),
  771. array(0,0,0,0,0,1,0,0,0),
  772. array(1,0,0,0,0,1,0,0,0),
  773. array(1,0,0,0,0,1,0,0,0),
  774. array(0,1,0,0,1,0,0,0,0),
  775. array(0,0,1,1,0,0,0,0,0),
  776. ),
  777. ),
  778. 'K' => array(
  779. array( // New 'K', supplied by NeoThermic
  780. array(1,0,0,0,0,0,0,0,1),
  781. array(1,0,0,0,0,0,0,1,0),
  782. array(1,0,0,0,0,0,1,0,0),
  783. array(1,0,0,0,0,1,0,0,0),
  784. array(1,0,0,0,1,0,0,0,0),
  785. array(1,0,0,1,0,0,0,0,0),
  786. array(1,0,1,0,0,0,0,0,0),
  787. array(1,1,0,0,0,0,0,0,0),
  788. array(1,0,1,0,0,0,0,0,0),
  789. array(1,0,0,1,0,0,0,0,0),
  790. array(1,0,0,0,1,0,0,0,0),
  791. array(1,0,0,0,0,1,0,0,0),
  792. array(1,0,0,0,0,0,1,0,0),
  793. array(1,0,0,0,0,0,0,1,0),
  794. array(1,0,0,0,0,0,0,0,1),
  795. ),
  796. array(
  797. array(0,1,0,0,0,0,0,0,1),
  798. array(0,1,0,0,0,0,0,1,0),
  799. array(0,1,0,0,0,0,1,0,0),
  800. array(0,1,0,0,0,1,0,0,0),
  801. array(0,1,0,0,1,0,0,0,0),
  802. array(0,1,0,1,0,0,0,0,0),
  803. array(0,1,1,0,0,0,0,0,0),
  804. array(0,1,0,0,0,0,0,0,0),
  805. array(0,1,1,0,0,0,0,0,0),
  806. array(0,1,0,1,0,0,0,0,0),
  807. array(0,1,0,0,1,0,0,0,0),
  808. array(0,1,0,0,0,1,0,0,0),
  809. array(0,1,0,0,0,0,1,0,0),
  810. array(0,1,0,0,0,0,0,1,0),
  811. array(1,1,1,0,0,0,1,1,1),
  812. ),
  813. array(
  814. array(0,0,0,0,0,0,0,0,0),
  815. array(0,1,0,0,0,0,0,0,0),
  816. array(0,1,0,0,0,0,0,0,0),
  817. array(0,1,0,0,0,1,0,0,0),
  818. array(0,1,0,0,1,0,0,0,0),
  819. array(0,1,0,1,0,0,0,0,0),
  820. array(0,1,1,0,0,0,0,0,0),
  821. array(0,1,0,0,0,0,0,0,0),
  822. array(0,1,1,0,0,0,0,0,0),
  823. array(0,1,0,1,0,0,0,0,0),
  824. array(0,1,0,0,1,0,0,0,0),
  825. array(0,1,0,0,0,1,0,0,0),
  826. array(0,1,0,0,0,0,1,0,0),
  827. array(0,1,0,0,0,0,0,1,0),
  828. array(0,1,0,0,0,0,0,1,0),
  829. ),
  830. ),
  831. 'L' => array(
  832. array(
  833. array(0,0,0,0,0,0,0,0,0),
  834. array(1,0,0,0,0,0,0,0,0),
  835. array(1,0,0,0,0,0,0,0,0),
  836. array(1,0,0,0,0,0,0,0,0),
  837. array(1,0,0,0,0,0,0,0,0),
  838. array(1,0,0,0,0,0,0,0,0),
  839. array(1,0,0,0,0,0,0,0,0),
  840. array(1,0,0,0,0,0,0,0,0),
  841. array(1,0,0,0,0,0,0,0,0),
  842. array(1,0,0,0,0,0,0,0,0),
  843. array(1,0,0,0,0,0,0,0,0),
  844. array(1,0,0,0,0,0,0,0,0),
  845. array(1,0,0,0,0,0,0,0,0),
  846. array(1,0,0,0,0,0,0,0,0),
  847. array(1,1,1,1,1,1,1,1,1),
  848. ),
  849. array(
  850. array(0,0,0,0,0,0,0,0,0),
  851. array(0,1,0,0,0,0,0,0,0),
  852. array(0,1,0,0,0,0,0,0,0),
  853. array(0,1,0,0,0,0,0,0,0),
  854. array(0,1,0,0,0,0,0,0,0),
  855. array(0,1,0,0,0,0,0,0,0),
  856. array(0,1,0,0,0,0,0,0,0),
  857. array(0,1,0,0,0,0,0,0,0),
  858. array(0,1,0,0,0,0,0,0,0),
  859. array(0,1,0,0,0,0,0,0,0),
  860. array(0,1,0,0,0,0,0,0,0),
  861. array(0,1,0,0,0,0,0,0,0),
  862. array(0,1,0,0,0,0,0,0,0),
  863. array(0,1,0,0,0,0,0,0,1),
  864. array(1,1,1,1,1,1,1,1,1),
  865. ),
  866. array(
  867. array(0,0,0,0,0,0,0,0,0),
  868. array(0,1,0,0,0,0,0,0,0),
  869. array(0,1,0,0,0,0,0,0,0),
  870. array(0,1,0,0,0,0,0,0,0),
  871. array(0,1,0,0,0,0,0,0,0),
  872. array(0,1,0,0,0,0,0,0,0),
  873. array(0,1,0,0,0,0,0,0,0),
  874. array(0,1,0,0,0,0,0,0,0),
  875. array(0,1,0,0,0,0,0,0,0),
  876. array(0,1,0,0,0,0,0,0,0),
  877. array(0,1,0,0,0,0,0,0,0),
  878. array(0,1,0,0,0,0,0,0,0),
  879. array(0,1,0,0,0,0,0,0,0),
  880. array(0,1,1,0,0,0,0,0,0),
  881. array(0,0,1,1,1,0,0,0,0),
  882. ),
  883. ),
  884. 'M' => array(
  885. array(
  886. array(1,1,0,0,0,0,0,1,1),
  887. array(1,1,0,0,0,0,0,1,1),
  888. array(1,0,1,0,0,0,1,0,1),
  889. array(1,0,1,0,0,0,1,0,1),
  890. array(1,0,1,0,0,0,1,0,1),
  891. array(1,0,0,1,0,1,0,0,1),
  892. array(1,0,0,1,0,1,0,0,1),
  893. array(1,0,0,1,0,1,0,0,1),
  894. array(1,0,0,0,1,0,0,0,1),
  895. array(1,0,0,0,1,0,0,0,1),
  896. array(1,0,0,0,0,0,0,0,1),
  897. array(1,0,0,0,0,0,0,0,1),
  898. array(1,0,0,0,0,0,0,0,1),
  899. array(1,0,0,0,0,0,0,0,1),
  900. array(1,0,0,0,0,0,0,0,1),
  901. ),
  902. array(
  903. array(0,0,0,0,0,0,0,0,0),
  904. array(0,1,0,0,0,0,0,1,0),
  905. array(0,1,1,0,0,0,1,1,0),
  906. array(0,1,1,0,0,0,1,1,0),
  907. array(0,1,1,0,0,0,1,1,0),
  908. array(0,1,0,1,0,1,0,1,0),
  909. array(0,1,0,1,0,1,0,1,0),
  910. array(0,1,0,1,0,1,0,1,0),
  911. array(0,1,0,0,1,0,0,1,0),
  912. array(0,1,0,0,1,0,0,1,0),
  913. array(0,1,0,0,0,0,0,1,0),
  914. array(0,1,0,0,0,0,0,1,0),
  915. array(0,1,0,0,0,0,0,1,0),
  916. array(0,1,0,0,0,0,0,1,0),
  917. array(1,1,1,0,0,0,1,1,1),
  918. ),
  919. array(
  920. array(0,0,0,0,0,0,0,0,0),
  921. array(0,0,0,0,0,0,0,0,0),
  922. array(0,0,0,0,0,0,0,0,0),
  923. array(0,0,0,0,0,0,0,0,0),
  924. array(0,0,0,0,0,0,0,0,0),
  925. array(0,0,0,0,0,0,0,0,0),
  926. array(0,1,1,1,0,1,1,1,0),
  927. array(1,1,0,1,1,1,0,1,1),
  928. array(1,0,0,0,1,0,0,0,1),
  929. array(1,0,0,0,1,0,0,0,1),
  930. array(1,0,0,0,1,0,0,0,1),
  931. array(1,0,0,0,1,0,0,0,1),
  932. array(1,0,0,0,1,0,0,0,1),
  933. array(1,0,0,0,1,0,0,0,1),
  934. array(1,0,0,0,1,0,0,0,1),
  935. ),
  936. ),
  937. 'N' => array(
  938. array(
  939. array(1,1,0,0,0,0,0,0,1),
  940. array(1,1,0,0,0,0,0,0,1),
  941. array(1,0,1,0,0,0,0,0,1),
  942. array(1,0,1,0,0,0,0,0,1),
  943. array(1,0,0,1,0,0,0,0,1),
  944. array(1,0,0,1,0,0,0,0,1),
  945. array(1,0,0,0,1,0,0,0,1),
  946. array(1,0,0,0,1,0,0,0,1),
  947. array(1,0,0,0,1,0,0,0,1),
  948. array(1,0,0,0,0,1,0,0,1),
  949. array(1,0,0,0,0,1,0,0,1),
  950. array(1,0,0,0,0,0,1,0,1),
  951. array(1,0,0,0,0,0,1,0,1),
  952. array(1,0,0,0,0,0,0,1,1),
  953. array(1,0,0,0,0,0,0,1,1),
  954. ),
  955. array(
  956. array(0,0,0,0,0,0,0,0,0),
  957. array(0,1,0,0,0,0,0,1,0),
  958. array(0,1,1,0,0,0,0,1,0),
  959. array(0,1,1,0,0,0,0,1,0),
  960. array(0,1,1,0,0,0,0,1,0),
  961. array(0,1,0,1,0,0,0,1,0),
  962. array(0,1,0,1,0,0,0,1,0),
  963. array(0,1,0,1,0,0,0,1,0),
  964. array(0,1,0,0,1,0,0,1,0),
  965. array(0,1,0,0,1,1,0,1,0),
  966. array(0,1,0,0,0,1,0,1,0),
  967. array(0,1,0,0,0,1,1,1,0),
  968. array(0,1,0,0,0,0,1,1,0),
  969. array(0,1,0,0,0,0,0,1,0),
  970. array(1,1,1,0,0,0,1,1,1),
  971. ),
  972. array(
  973. array(0,0,0,0,0,0,0,0,0),
  974. array(0,0,0,0,0,0,0,0,0),
  975. array(0,0,0,0,0,0,0,0,0),
  976. array(0,0,0,0,0,0,0,0,0),
  977. array(0,0,0,0,0,0,0,0,0),
  978. array(0,0,0,0,0,0,0,0,0),
  979. array(0,0,0,0,0,0,0,0,0),
  980. array(1,0,1,1,1,1,0,0,0),
  981. array(1,1,1,0,0,1,1,0,0),
  982. array(1,0,0,0,0,0,1,0,0),
  983. array(1,0,0,0,0,0,1,0,0),
  984. array(1,0,0,0,0,0,1,0,0),
  985. array(1,0,0,0,0,0,1,0,0),
  986. array(1,0,0,0,0,0,1,0,0),
  987. array(1,0,0,0,0,0,1,0,0),
  988. ),
  989. ),
  990. 'O' => array(
  991. array(
  992. array(0,0,1,1,1,1,1,0,0),
  993. array(0,1,0,0,0,0,0,1,0),
  994. array(1,0,0,0,0,0,0,0,1),
  995. array(1,0,0,0,0,0,0,0,1),
  996. array(1,0,0,0,0,0,0,0,1),
  997. array(1,0,0,0,0,0,0,0,1),
  998. array(1,0,0,0,0,0,0,0,1),
  999. array(1,0,0,0,0,0,0,0,1),
  1000. array(1,0,0,0,0,0,0,0,1),
  1001. array(1,0,0,0,0,0,0,0,1),
  1002. array(1,0,0,0,0,0,0,0,1),
  1003. array(1,0,0,0,0,0,0,0,1),
  1004. array(1,0,0,0,0,0,0,0,1),
  1005. array(0,1,0,0,0,0,0,1,0),
  1006. array(0,0,1,1,1,1,1,0,0),
  1007. ),
  1008. array(
  1009. array(0,0,1,1,1,1,1,0,0),
  1010. array(0,1,0,0,0,0,0,1,0),
  1011. array(1,1,0,0,0,0,0,1,1),
  1012. array(1,1,0,0,0,0,0,1,1),
  1013. array(1,1,0,0,0,0,0,1,1),
  1014. array(1,1,0,0,0,0,0,1,1),
  1015. array(1,1,0,0,0,0,0,1,1),
  1016. array(1,1,0,0,0,0,0,1,1),
  1017. array(1,1,0,0,0,0,0,1,1),
  1018. array(1,1,0,0,0,0,0,1,1),
  1019. array(1,1,0,0,0,0,0,1,1),
  1020. array(1,1,0,0,0,0,0,1,1),
  1021. array(1,1,0,0,0,0,0,1,1),
  1022. array(0,1,0,0,0,0,0,1,0),
  1023. array(0,0,1,1,1,1,1,0,0),
  1024. ),
  1025. array(
  1026. array(0,0,0,0,0,0,0,0,0),
  1027. array(0,0,0,0,0,0,0,0,0),
  1028. array(0,0,0,0,0,0,0,0,0),
  1029. array(0,0,0,0,0,0,0,0,0),
  1030. array(0,0,0,0,0,0,0,0,0),
  1031. array(0,0,0,0,0,0,0,0,0),
  1032. array(0,0,0,0,0,0,0,0,0),
  1033. array(0,1,1,1,1,1,0,0,0),
  1034. array(1,1,1,0,0,1,1,0,0),
  1035. array(1,0,0,0,0,0,1,0,0),
  1036. array(1,0,0,0,0,0,1,0,0),
  1037. array(1,0,0,0,0,0,1,0,0),
  1038. array(1,0,0,0,0,0,1,0,0),
  1039. array(1,1,0,0,0,1,1,0,0),
  1040. array(0,1,1,1,1,1,0,0,0),
  1041. ),
  1042. ),
  1043. 'P' => array(
  1044. array(
  1045. array(1,1,1,1,1,1,1,0,0),
  1046. array(1,0,0,0,0,0,0,1,0),
  1047. array(1,0,0,0,0,0,0,0,1),
  1048. array(1,0,0,0,0,0,0,0,1),
  1049. array(1,0,0,0,0,0,0,0,1),
  1050. array(1,0,0,0,0,0,0,0,1),
  1051. array(1,0,0,0,0,0,0,1,0),
  1052. array(1,1,1,1,1,1,1,0,0),
  1053. array(1,0,0,0,0,0,0,0,0),
  1054. array(1,0,0,0,0,0,0,0,0),
  1055. array(1,0,0,0,0,0,0,0,0),
  1056. array(1,0,0,0,0,0,0,0,0),
  1057. array(1,0,0,0,0,0,0,0,0),
  1058. array(1,0,0,0,0,0,0,0,0),
  1059. array(1,0,0,0,0,0,0,0,0),
  1060. ),
  1061. array(
  1062. array(1,1,1,1,1,1,1,0,0),
  1063. array(0,1,0,0,0,0,0,1,0),
  1064. array(0,1,0,0,0,0,0,0,1),
  1065. array(0,1,0,0,0,0,0,0,1),
  1066. array(0,1,0,0,0,0,0,0,1),
  1067. array(0,1,0,0,0,0,0,0,1),
  1068. array(0,1,0,0,0,0,0,1,0),
  1069. array(1,1,1,1,1,1,1,0,0),
  1070. array(0,1,0,0,0,0,0,0,0),
  1071. array(0,1,0,0,0,0,0,0,0),
  1072. array(0,1,0,0,0,0,0,0,0),
  1073. array(0,1,0,0,0,0,0,0,0),
  1074. array(0,1,0,0,0,0,0,0,0),
  1075. array(0,1,0,0,0,0,0,0,0),
  1076. array(1,1,1,0,0,0,0,0,0),
  1077. ),
  1078. array(
  1079. array(0,0,0,0,0,0,0,0,0),
  1080. array(0,0,0,0,0,0,0,0,0),
  1081. array(1,0,0,0,0,0,0,0,0),
  1082. array(1,0,1,1,0,0,0,0,0),
  1083. array(1,1,0,1,1,0,0,0,0),
  1084. array(1,0,0,0,1,0,0,0,0),
  1085. array(1,0,0,0,1,0,0,0,0),
  1086. array(1,0,0,1,1,0,0,0,0),
  1087. array(1,1,1,1,0,0,0,0,0),
  1088. array(1,0,0,0,0,0,0,0,0),
  1089. array(1,0,0,0,0,0,0,0,0),
  1090. array(1,0,0,0,0,0,0,0,0),
  1091. array(1,0,0,0,0,0,0,0,0),
  1092. array(1,0,0,0,0,0,0,0,0),
  1093. array(1,0,0,0,0,0,0,0,0),
  1094. ),
  1095. ),
  1096. 'Q' => array(
  1097. array(
  1098. array(0,0,1,1,1,1,1,0,0),
  1099. array(0,1,0,0,0,0,0,1,0),
  1100. array(1,0,0,0,0,0,0,0,1),
  1101. array(1,0,0,0,0,0,0,0,1),
  1102. array(1,0,0,0,0,0,0,0,1),
  1103. array(1,0,0,0,0,0,0,0,1),
  1104. array(1,0,0,0,0,0,0,0,1),
  1105. array(1,0,0,0,0,0,0,0,1),
  1106. array(1,0,0,0,0,0,0,0,1),
  1107. array(1,0,0,0,0,0,0,0,1),
  1108. array(1,0,0,0,0,0,0,0,1),
  1109. array(1,0,0,0,0,1,0,0,1),
  1110. array(1,0,0,0,0,0,1,0,1),
  1111. array(0,1,0,0,0,0,0,1,0),
  1112. array(0,0,1,1,1,1,1,0,1),
  1113. ),
  1114. array(
  1115. array(0,0,1,1,1,1,1,0,0),
  1116. array(0,1,0,0,0,0,0,1,0),
  1117. array(1,0,0,0,0,0,0,0,1),
  1118. array(1,0,0,0,0,0,0,0,1),
  1119. array(1,0,0,0,0,0,0,0,1),
  1120. array(1,0,0,0,0,0,0,0,1),
  1121. array(1,0,0,0,0,0,0,0,1),
  1122. array(1,0,0,0,0,0,0,0,1),
  1123. array(1,0,0,0,0,0,0,0,1),
  1124. array(1,0,0,0,1,0,0,0,1),
  1125. array(1,1,0,0,1,1,0,1,1),
  1126. array(0,1,1,1,1,1,1,1,0),
  1127. array(0,0,0,0,0,0,1,1,0),
  1128. array(0,0,0,0,0,0,0,1,1),
  1129. array(0,0,0,0,0,0,0,0,1),
  1130. ),
  1131. array(
  1132. array(0,0,0,0,0,0,0,0,0),
  1133. array(0,0,0,0,0,0,0,0,0),
  1134. array(0,0,0,0,0,0,0,0,0),
  1135. array(0,0,0,0,0,1,1,1,1),
  1136. array(0,0,0,0,1,1,0,0,1),
  1137. array(0,0,0,0,1,0,0,0,1),
  1138. array(0,0,0,0,1,0,0,0,1),
  1139. array(0,0,0,0,1,1,0,1,1),
  1140. array(0,0,0,0,0,1,1,0,1),
  1141. array(0,0,0,0,0,0,0,0,1),
  1142. array(0,0,0,0,0,0,0,0,1),
  1143. array(0,0,0,0,0,0,0,0,1),
  1144. array(0,0,0,0,0,0,0,0,1),
  1145. array(0,0,0,0,0,0,0,0,1),
  1146. array(0,0,0,0,0,0,0,0,1),
  1147. ),
  1148. ),
  1149. 'R' => array(
  1150. array(
  1151. array(1,1,1,1,1,1,1,0,0),
  1152. array(1,0,0,0,0,0,0,1,0),
  1153. array(1,0,0,0,0,0,0,0,1),
  1154. array(1,0,0,0,0,0,0,0,1),
  1155. array(1,0,0,0,0,0,0,0,1),
  1156. array(1,0,0,0,0,0,0,0,1),
  1157. array(1,0,0,0,0,0,0,1,0),
  1158. array(1,1,1,1,1,1,1,0,0),
  1159. array(1,1,1,0,0,0,0,0,0),
  1160. array(1,0,0,1,0,0,0,0,0),
  1161. array(1,0,0,0,1,0,0,0,0),
  1162. array(1,0,0,0,0,1,0,0,0),
  1163. array(1,0,0,0,0,0,1,0,0),
  1164. array(1,0,0,0,0,0,0,1,0),
  1165. array(1,0,0,0,0,0,0,0,1),
  1166. ),
  1167. array(
  1168. array(1,1,1,1,1,1,1,0,0),
  1169. array(0,1,0,0,0,0,0,1,0),
  1170. array(0,1,0,0,0,0,0,0,1),
  1171. array(0,1,0,0,0,0,0,0,1),
  1172. array(0,1,0,0,0,0,0,0,1),
  1173. array(0,1,0,0,0,0,0,0,1),
  1174. array(0,1,0,0,0,0,0,1,0),
  1175. array(1,1,1,1,1,1,1,0,0),
  1176. array(0,1,1,0,0,0,0,0,0),
  1177. array(0,1,1,1,0,0,0,0,0),
  1178. array(0,1,0,1,1,0,0,0,0),
  1179. array(0,1,0,0,1,1,0,0,0),
  1180. array(0,1,0,0,0,1,1,0,0),
  1181. array(0,1,0,0,0,0,1,1,0),
  1182. array(1,1,1,0,0,0,1,1,1),
  1183. ),
  1184. array(
  1185. array(0,0,0,0,0,0,0,0,0),
  1186. array(0,0,0,0,0,0,0,0,0),
  1187. array(0,0,0,0,0,0,0,0,0),
  1188. array(0,0,0,0,0,0,0,0,0),
  1189. array(0,0,0,0,0,0,0,0,0),
  1190. array(0,0,0,0,0,0,0,0,0),
  1191. array(1,0,0,0,0,0,0,0,0),
  1192. array(1,1,1,1,1,0,0,0,0),
  1193. array(1,1,0,0,1,1,0,0,0),
  1194. array(1,0,0,0,0,0,0,0,0),
  1195. array(1,0,0,0,0,0,0,0,0),
  1196. array(1,0,0,0,0,0,0,0,0),
  1197. array(1,0,0,0,0,0,0,0,0),
  1198. array(1,0,0,0,0,0,0,0,0),
  1199. array(1,0,0,0,0,0,0,0,0),
  1200. ),
  1201. ),
  1202. 'S' => array(
  1203. array(
  1204. array(0,0,1,1,1,1,1,0,0),
  1205. array(0,1,0,0,0,0,0,1,0),
  1206. array(1,0,0,0,0,0,0,0,1),
  1207. array(1,0,0,0,0,0,0,0,0),
  1208. array(1,0,0,0,0,0,0,0,0),
  1209. array(1,0,0,0,0,0,0,0,0),
  1210. array(0,1,0,0,0,0,0,0,0),
  1211. array(0,0,1,1,1,1,1,0,0),
  1212. array(0,0,0,0,0,0,0,1,0),
  1213. array(0,0,0,0,0,0,0,0,1),
  1214. array(0,0,0,0,0,0,0,0,1),
  1215. array(0,0,0,0,0,0,0,0,1),
  1216. array(1,0,0,0,0,0,0,0,1),
  1217. array(0,1,0,0,0,0,0,1,0),
  1218. array(0,0,1,1,1,1,1,0,0),
  1219. ),
  1220. array(
  1221. array(0,0,1,1,1,1,1,0,1),
  1222. array(0,1,0,0,0,0,0,1,1),
  1223. array(1,0,0,0,0,0,0,0,1),
  1224. array(1,0,0,0,0,0,0,0,1),
  1225. array(1,0,0,0,0,0,0,0,0),
  1226. array(1,0,0,0,0,0,0,0,0),
  1227. array(0,1,0,0,0,0,0,0,0),
  1228. array(0,0,1,1,1,1,1,0,0),
  1229. array(0,0,0,0,0,0,0,1,0),
  1230. array(0,0,0,0,0,0,0,0,1),
  1231. array(1,0,0,0,0,0,0,0,1),
  1232. array(1,0,0,0,0,0,0,0,1),
  1233. array(1,0,0,0,0,0,0,0,1),
  1234. array(1,1,0,0,0,0,0,1,0),
  1235. array(1,0,1,1,1,1,1,0,0),
  1236. ),
  1237. array(
  1238. array(0,0,0,0,0,0,0,0,0),
  1239. array(0,0,0,0,0,0,0,0,0),
  1240. array(0,0,0,0,0,0,0,0,0),
  1241. array(0,0,0,0,0,0,0,0,0),
  1242. array(0,0,0,0,0,0,0,0,0),
  1243. array(0,0,0,0,0,0,0,0,0),
  1244. array(0,0,0,0,0,0,0,0,0),
  1245. array(0,1,1,1,1,0,0,0,0),
  1246. array(1,0,0,0,0,1,0,0,0),
  1247. array(1,0,0,0,0,0,0,0,0),
  1248. array(1,1,0,0,0,0,0,0,0),
  1249. array(0,1,1,1,1,0,0,0,0),
  1250. array(0,0,0,0,0,1,0,0,0),
  1251. array(1,0,0,0,1,1,0,0,0),
  1252. array(0,1,1,1,1,0,0,0,0),
  1253. ),
  1254. ),
  1255. 'T' => array(
  1256. array(
  1257. array(1,1,1,1,1,1,1,1,1),
  1258. array(0,0,0,0,1,0,0,0,0),
  1259. array(0,0,0,0,1,0,0,0,0),
  1260. array(0,0,0,0,1,0,0,0,0),
  1261. array(0,0,0,0,1,0,0,0,0),
  1262. array(0,0,0,0,1,0,0,0,0),
  1263. array(0,0,0,0,1,0,0,0,0),
  1264. array(0,0,0,0,1,0,0,0,0),
  1265. array(0,0,0,0,1,0,0,0,0),
  1266. array(0,0,0,0,1,0,0,0,0),
  1267. array(0,0,0,0,1,0,0,0,0),
  1268. array(0,0,0,0,1,0,0,0,0),
  1269. array(0,0,0,0,1,0,0,0,0),
  1270. array(0,0,0,0,1,0,0,0,0),
  1271. array(0,0,0,0,1,0,0,0,0),
  1272. ),
  1273. array(
  1274. array(1,1,1,1,1,1,1,1,1),
  1275. array(1,0,0,0,1,0,0,0,1),
  1276. array(0,0,0,0,1,0,0,0,0),
  1277. array(0,0,0,0,1,0,0,0,0),
  1278. array(0,0,0,0,1,0,0,0,0),
  1279. array(0,0,0,0,1,0,0,0,0),
  1280. array(0,0,0,0,1,0,0,0,0),
  1281. array(0,0,0,0,1,0,0,0,0),
  1282. array(0,0,0,0,1,0,0,0,0),
  1283. array(0,0,0,0,1,0,0,0,0),
  1284. array(0,0,0,0,1,0,0,0,0),
  1285. array(0,0,0,0,1,0,0,0,0),
  1286. array(0,0,0,0,1,0,0,0,0),
  1287. array(0,0,0,0,1,0,0,0,0),
  1288. array(0,0,0,1,1,1,0,0,0),
  1289. ),
  1290. array(
  1291. array(0,0,0,0,1,0,0,0,0),
  1292. array(0,0,0,0,1,0,0,0,0),
  1293. array(0,0,0,0,1,0,0,0,0),
  1294. array(0,0,1,1,1,1,1,1,0),
  1295. array(0,0,0,0,1,0,0,0,0),
  1296. array(0,0,0,0,1,0,0,0,0),
  1297. array(0,0,0,0,1,0,0,0,0),
  1298. array(0,0,0,0,1,0,0,0,0),
  1299. array(0,0,0,0,1,0,0,0,0),
  1300. array(0,0,0,0,1,0,0,0,0),
  1301. array(0,0,0,0,1,0,0,0,0),
  1302. array(0,0,0,0,1,0,0,0,0),
  1303. array(0,0,0,0,1,0,0,0,0),
  1304. array(0,0,0,0,1,1,0,0,0),
  1305. array(0,0,0,0,0,1,1,1,0),
  1306. ),
  1307. ),
  1308. 'U' => array(
  1309. array(
  1310. array(1,0,0,0,0,0,0,0,1),
  1311. array(1,0,0,0,0,0,0,0,1),
  1312. array(1,0,0,0,0,0,0,0,1),
  1313. array(1,0,0,0,0,0,0,0,1),
  1314. array(1,0,0,0,0,0,0,0,1),
  1315. array(1,0,0,0,0,0,0,0,1),
  1316. array(1,0,0,0,0,0,0,0,1),
  1317. array(1,0,0,0,0,0,0,0,1),
  1318. array(1,0,0,0,0,0,0,0,1),
  1319. array(1,0,0,0,0,0,0,0,1),
  1320. array(1,0,0,0,0,0,0,0,1),
  1321. array(1,0,0,0,0,0,0,0,1),
  1322. array(1,0,0,0,0,0,0,0,1),
  1323. array(0,1,0,0,0,0,0,1,0),
  1324. array(0,0,1,1,1,1,1,0,0),
  1325. ),
  1326. array(
  1327. array(1,0,0,0,0,0,0,0,0),
  1328. array(1,1,1,0,0,0,1,1,1),
  1329. array(0,1,0,0,0,0,0,1,0),
  1330. array(0,1,0,0,0,0,0,1,0),
  1331. array(0,1,0,0,0,0,0,1,0),
  1332. array(0,1,0,0,0,0,0,1,0),
  1333. array(0,1,0,0,0,0,0,1,0),
  1334. array(0,1,0,0,0,0,0,1,0),
  1335. array(0,1,0,0,0,0,0,1,0),
  1336. array(0,1,0,0,0,0,0,1,0),
  1337. array(0,1,0,0,0,0,0,1,0),
  1338. array(0,1,0,0,0,0,0,1,0),
  1339. array(0,1,0,0,0,0,0,1,0),
  1340. array(0,1,1,0,0,0,1,1,0),
  1341. array(0,0,1,1,1,1,1,0,0),
  1342. ),
  1343. array(
  1344. array(0,0,0,0,0,0,0,0,0),
  1345. array(0,0,0,0,0,0,0,0,0),
  1346. array(0,0,0,0,0,0,0,0,0),
  1347. array(0,0,0,0,0,0,0,0,0),
  1348. array(0,0,0,0,0,0,0,0,0),
  1349. array(0,0,0,0,0,0,0,0,0),
  1350. array(0,0,0,0,0,0,0,0,0),
  1351. array(0,0,1,0,0,0,0,0,1),
  1352. array(0,0,1,0,0,0,0,0,1),
  1353. array(0,0,1,0,0,0,0,0,1),
  1354. array(0,0,1,0,0,0,0,0,1),
  1355. array(0,0,1,0,0,0,0,0,1),
  1356. array(0,0,1,0,0,0,0,1,1),
  1357. array(0,0,1,1,0,0,1,1,1),
  1358. array(0,0,0,1,1,1,1,0,1),
  1359. ),
  1360. ),
  1361. 'V' => array(
  1362. array(
  1363. array(1,0,0,0,0,0,0,0,1),
  1364. array(1,0,0,0,0,0,0,0,1),
  1365. array(1,0,0,0,0,0,0,0,1),
  1366. array(0,1,0,0,0,0,0,1,0),
  1367. array(0,1,0,0,0,0,0,1,0),
  1368. array(0,1,0,0,0,0,0,1,0),
  1369. array(0,0,1,0,0,0,1,0,0),
  1370. array(0,0,1,0,0,0,1,0,0),
  1371. array(0,0,1,0,0,0,1,0,0),
  1372. array(0,0,1,0,0,0,1,0,0),
  1373. array(0,0,0,1,0,1,0,0,0),
  1374. array(0,0,0,1,0,1,0,0,0),
  1375. array(0,0,0,1,0,1,0,0,0),
  1376. array(0,0,0,0,1,0,0,0,0),
  1377. array(0,0,0,0,1,0,0,0,0),
  1378. ),
  1379. array(
  1380. array(0,0,0,0,0,0,0,0,0),
  1381. array(0,0,0,0,0,0,0,0,0),
  1382. array(0,0,0,0,0,0,0,0,0),
  1383. array(1,1,1,0,0,0,1,1,1),
  1384. array(0,1,0,0,0,0,0,1,0),
  1385. array(0,1,0,0,0,0,0,1,0),
  1386. array(0,0,1,0,0,0,1,0,0),
  1387. array(0,0,1,0,0,0,1,0,0),
  1388. array(0,0,1,0,0,0,1,0,0),
  1389. array(0,0,1,0,0,0,1,0,0),
  1390. array(0,0,0,1,0,1,0,0,0),
  1391. array(0,0,0,1,0,1,0,0,0),
  1392. array(0,0,0,1,0,1,0,0,0),
  1393. array(0,0,0,0,1,0,0,0,0),
  1394. array(0,0,0,0,1,0,0,0,0),
  1395. ),
  1396. array(
  1397. array(0,0,0,0,0,0,0,0,0),
  1398. array(0,0,0,0,0,0,0,0,0),
  1399. array(0,0,0,0,0,0,0,0,0),
  1400. array(0,0,0,0,0,0,0,0,0),
  1401. array(0,0,0,0,0,0,0,0,0),
  1402. array(0,0,0,0,0,0,0,0,0),
  1403. array(0,0,1,0,0,0,1,0,0),
  1404. array(0,0,1,0,0,0,1,0,0),
  1405. array(0,0,1,0,0,0,1,0,0),
  1406. array(0,0,1,0,0,0,1,0,0),
  1407. array(0,0,0,1,0,1,0,0,0),
  1408. array(0,0,0,1,0,1,0,0,0),
  1409. array(0,0,0,1,0,1,0,0,0),
  1410. array(0,0,0,0,1,0,0,0,0),
  1411. array(0,0,0,0,1,0,0,0,0),
  1412. ),
  1413. ),
  1414. 'W' => array(
  1415. array(
  1416. array(1,0,0,0,0,0,0,0,1),
  1417. array(1,0,0,0,0,0,0,0,1),
  1418. array(1,0,0,0,0,0,0,0,1),
  1419. array(1,0,0,0,0,0,0,0,1),
  1420. array(1,0,0,0,0,0,0,0,1),
  1421. array(1,0,0,0,1,0,0,0,1),
  1422. array(1,0,0,0,1,0,0,0,1),
  1423. array(1,0,0,1,0,1,0,0,1),
  1424. array(1,0,0,1,0,1,0,0,1),
  1425. array(1,0,0,1,0,1,0,0,1),
  1426. array(1,0,1,0,0,0,1,0,1),
  1427. array(1,0,1,0,0,0,1,0,1),
  1428. array(1,0,1,0,0,0,1,0,1),
  1429. array(1,1,0,0,0,0,0,1,1),
  1430. array(1,1,0,0,0,0,0,1,1),
  1431. ),
  1432. array(
  1433. array(0,0,0,0,0,0,0,0,0),
  1434. array(0,0,0,0,0,0,0,0,0),
  1435. array(1,1,1,0,0,0,1,1,1),
  1436. array(0,1,0,0,0,0,0,1,0),
  1437. array(0,1,0,0,0,0,0,1,0),
  1438. array(0,1,0,0,0,0,0,1,0),
  1439. array(0,1,0,0,0,0,0,1,0),
  1440. array(0,1,0,0,1,0,0,1,0),
  1441. array(0,1,0,0,1,0,0,1,0),
  1442. array(0,1,0,1,1,1,0,1,0),
  1443. array(0,1,0,1,0,1,0,1,0),
  1444. array(0,1,1,1,0,1,1,1,0),
  1445. array(0,1,1,0,0,0,1,1,0),
  1446. array(0,1,0,0,0,0,0,1,0),
  1447. array(0,0,0,0,0,0,0,0,0),
  1448. ),
  1449. array(
  1450. array(0,0,0,0,0,0,0,0,0),
  1451. array(0,0,0,0,0,0,0,0,0),
  1452. array(0,0,0,0,0,0,0,0,0),
  1453. array(0,0,0,0,0,0,0,0,0),
  1454. array(0,0,0,0,0,0,0,0,0),
  1455. array(0,0,0,0,0,0,0,0,0),
  1456. array(0,1,0,0,0,0,0,1,0),
  1457. array(0,1,0,0,1,0,0,1,0),
  1458. array(0,1,0,0,1,0,0,1,0),
  1459. array(0,1,0,1,1,1,0,1,0),
  1460. array(0,1,0,1,0,1,0,1,0),
  1461. array(0,1,1,1,0,1,1,1,0),
  1462. array(0,1,1,0,0,0,1,1,0),
  1463. array(0,1,0,0,0,0,0,1,0),
  1464. array(0,0,0,0,0,0,0,0,0),
  1465. ),
  1466. ),
  1467. 'X' => array(
  1468. array(
  1469. array(1,0,0,0,0,0,0,0,1),
  1470. array(1,0,0,0,0,0,0,0,1),
  1471. array(0,1,0,0,0,0,0,1,0),
  1472. array(0,1,0,0,0,0,0,1,0),
  1473. array(0,0,1,0,0,0,1,0,0),
  1474. array(0,0,0,1,0,1,0,0,0),
  1475. array(0,0,0,1,0,1,0,0,0),
  1476. array(0,0,0,0,1,0,0,0,0),
  1477. array(0,0,0,1,0,1,0,0,0),
  1478. array(0,0,0,1,0,1,0,0,0),
  1479. array(0,0,1,0,0,0,1,0,0),
  1480. array(0,1,0,0,0,0,1,0,0),
  1481. array(0,1,0,0,0,0,0,1,0),
  1482. array(1,0,0,0,0,0,0,0,1),
  1483. array(1,0,0,0,0,0,0,0,1),
  1484. ),
  1485. array(
  1486. array(0,0,0,0,0,0,0,0,0),
  1487. array(1,1,1,0,0,0,1,1,1),
  1488. array(0,1,0,0,0,0,0,1,0),
  1489. array(0,1,0,0,0,0,0,1,0),
  1490. array(0,0,1,0,0,0,1,0,0),
  1491. array(0,0,0,1,0,1,0,0,0),
  1492. array(0,0,0,1,0,1,0,0,0),
  1493. array(0,0,0,0,1,0,0,0,0),
  1494. array(0,0,0,1,0,1,0,0,0),
  1495. array(0,0,0,1,0,1,0,0,0),
  1496. array(0,0,1,0,0,0,1,0,0),
  1497. array(0,1,0,0,0,0,1,0,0),
  1498. array(0,1,0,0,0,0,0,1,0),
  1499. array(1,1,1,0,0,0,1,1,1),
  1500. array(0,0,0,0,0,0,0,0,0),
  1501. ),
  1502. array(
  1503. array(0,0,0,0,0,0,0,0,0),
  1504. array(0,0,0,0,0,0,0,0,0),
  1505. array(0,0,0,0,0,0,0,0,0),
  1506. array(0,0,0,0,0,0,0,0,0),
  1507. array(0,0,0,0,0,0,0,0,0),
  1508. array(0,0,0,0,0,0,0,0,0),
  1509. array(0,0,0,0,0,0,0,0,0),
  1510. array(0,1,0,0,0,0,0,1,0),
  1511. array(0,1,1,0,0,0,1,1,0),
  1512. array(0,0,1,1,0,1,1,0,0),
  1513. array(0,0,0,1,1,1,0,0,0),
  1514. array(0,0,0,1,1,1,0,0,0),
  1515. array(0,0,1,1,0,1,1,0,0),
  1516. array(0,1,1,0,0,0,1,1,0),
  1517. array(0,0,0,0,0,0,0,0,0),
  1518. ),
  1519. ),
  1520. 'Y' => array(
  1521. array(
  1522. array(1,0,0,0,0,0,0,0,1),
  1523. array(1,0,0,0,0,0,0,0,1),
  1524. array(0,1,0,0,0,0,0,1,0),
  1525. array(0,1,0,0,0,0,0,1,0),
  1526. array(0,0,1,0,0,0,1,0,0),
  1527. array(0,0,1,0,0,0,1,0,0),
  1528. array(0,0,0,1,0,1,0,0,0),
  1529. array(0,0,0,0,1,0,0,0,0),
  1530. array(0,0,0,0,1,0,0,0,0),
  1531. array(0,0,0,0,1,0,0,0,0),
  1532. array(0,0,0,0,1,0,0,0,0),
  1533. array(0,0,0,0,1,0,0,0,0),
  1534. array(0,0,0,0,1,0,0,0,0),
  1535. array(0,0,0,0,1,0,0,0,0),
  1536. array(0,0,0,0,1,0,0,0,0),
  1537. ),
  1538. array(
  1539. array(0,0,0,0,0,0,0,0,0),
  1540. array(1,1,1,0,0,0,1,1,1),
  1541. array(0,1,0,0,0,0,0,1,0),
  1542. array(0,1,0,0,0,0,0,1,0),
  1543. array(0,0,1,0,0,0,1,0,0),
  1544. array(0,0,1,0,0,0,1,0,0),
  1545. array(0,0,0,1,0,1,0,0,0),
  1546. array(0,0,0,0,1,0,0,0,0),
  1547. array(0,0,0,0,1,0,0,0,0),
  1548. array(0,0,0,0,1,0,0,0,0),
  1549. array(0,0,0,0,1,0,0,0,0),
  1550. array(0,0,0,0,1,0,0,0,0),
  1551. array(0,0,0,0,1,0,0,0,0),
  1552. array(0,0,0,0,1,0,0,0,0),
  1553. array(0,0,0,1,1,1,0,0,0),
  1554. ),
  1555. array(
  1556. array(0,0,0,0,0,0,0,0,0),
  1557. array(0,0,0,0,0,0,0,0,0),
  1558. array(0,0,0,0,0,0,0,0,0),
  1559. array(0,0,0,0,0,0,0,0,0),
  1560. array(0,0,0,1,0,0,0,0,1),
  1561. array(0,0,0,1,1,0,0,0,1),
  1562. array(0,0,0,0,1,0,0,1,1),
  1563. array(0,0,0,0,1,1,0,1,0),
  1564. array(0,0,0,0,0,1,1,1,0),
  1565. array(0,0,0,0,0,0,1,0,0),
  1566. array(0,0,0,0,0,1,1,0,0),
  1567. array(0,0,0,0,0,1,0,0,0),
  1568. array(0,0,0,0,1,1,0,0,0),
  1569. array(0,0,1,1,1,0,0,0,0),
  1570. array(0,0,0,0,0,0,0,0,0),
  1571. ),
  1572. ),
  1573. 'Z' => array(
  1574. array(
  1575. array(1,1,1,1,1,1,1,1,1),
  1576. array(1,0,0,0,0,0,0,0,1),
  1577. array(0,0,0,0,0,0,0,0,1),
  1578. array(0,0,0,0,0,0,0,1,0),
  1579. array(0,0,0,0,0,0,1,0,0),
  1580. array(0,0,0,0,0,1,0,0,0),
  1581. array(0,0,0,0,0,1,0,0,0),
  1582. array(0,0,0,0,1,0,0,0,0),
  1583. array(0,0,0,1,0,0,0,0,0),
  1584. array(0,0,0,1,0,0,0,0,0),
  1585. array(0,0,1,0,0,0,0,0,0),
  1586. array(0,1,0,0,0,0,0,0,0),
  1587. array(1,0,0,0,0,0,0,0,0),
  1588. array(1,0,0,0,0,0,0,0,1),
  1589. array(1,1,1,1,1,1,1,1,1),
  1590. ),
  1591. array(
  1592. array(1,1,1,1,1,1,1,1,1),
  1593. array(0,0,0,0,0,0,0,0,1),
  1594. array(0,0,0,0,0,0,0,0,1),
  1595. array(0,0,0,0,0,0,0,1,0),
  1596. array(0,0,0,0,0,0,1,0,0),
  1597. array(0,0,0,0,0,1,0,0,0),
  1598. array(0,0,0,0,0,1,0,0,0),
  1599. array(0,0,1,1,1,1,1,0,0),
  1600. array(0,0,0,1,0,0,0,0,0),
  1601. array(0,0,0,1,0,0,0,0,0),
  1602. array(0,0,1,0,0,0,0,0,0),
  1603. array(0,1,0,0,0,0,0,0,0),
  1604. array(1,0,0,0,0,0,0,0,0),
  1605. array(1,0,0,0,0,0,0,0,0),
  1606. array(1,1,1,1,1,1,1,1,1),
  1607. ),
  1608. array(
  1609. array(0,0,0,0,0,0,0,0,0),
  1610. array(0,0,0,0,0,0,0,0,0),
  1611. array(0,0,0,0,0,0,0,0,0),
  1612. array(0,0,0,0,0,0,0,0,0),
  1613. array(0,0,0,0,0,0,0,0,0),
  1614. array(0,0,0,0,0,0,0,0,0),
  1615. array(0,0,0,0,0,0,0,0,0),
  1616. array(0,0,0,0,0,0,0,0,0),
  1617. array(0,1,1,1,1,1,1,1,0),
  1618. array(0,0,0,0,0,1,1,0,0),
  1619. array(0,0,0,0,1,1,0,0,0),
  1620. array(0,0,0,1,1,0,0,0,0),
  1621. array(0,0,1,1,0,0,0,0,0),
  1622. array(0,0,1,0,0,0,0,0,0),
  1623. array(0,1,1,1,1,1,1,1,0),
  1624. ),
  1625. ),
  1626. );
  1627. return array(
  1628. 'width' => 9,
  1629. 'height' => 15,
  1630. 'data' => array(
  1631. 'A' => $chars['A'][mt_rand(0, min(sizeof($chars['A']), $config['captcha_gd_fonts']) -1)],
  1632. 'B' => $chars['B'][mt_rand(0, min(sizeof($chars['B']), $config['captcha_gd_fonts']) -1)],
  1633. 'C' => $chars['C'][mt_rand(0, min(sizeof($chars['C']), $config['captcha_gd_fonts']) -1)],
  1634. 'D' => $chars['D'][mt_rand(0, min(sizeof($chars['D']), $config['captcha_gd_fonts']) -1)],
  1635. 'E' => $chars['E'][mt_rand(0, min(sizeof($chars['E']), $config['captcha_gd_fonts']) -1)],
  1636. 'F' => $chars['F'][mt_rand(0, min(sizeof($chars['F']), $config['captcha_gd_fonts']) -1)],
  1637. 'G' => $chars['G'][mt_rand(0, min(sizeof($chars['G']), $config['captcha_gd_fonts']) -1)],
  1638. 'H' => $chars['H'][mt_rand(0, min(sizeof($chars['H']), $config['captcha_gd_fonts']) -1)],
  1639. 'I' => $chars['I'][mt_rand(0, min(sizeof($chars['I']), $config['captcha_gd_fonts']) -1)],
  1640. 'J' => $chars['J'][mt_rand(0, min(sizeof($chars['J']), $config['captcha_gd_fonts']) -1)],
  1641. 'K' => $chars['K'][mt_rand(0, min(sizeof($chars['K']), $config['captcha_gd_fonts']) -1)],
  1642. 'L' => $chars['L'][mt_rand(0, min(sizeof($chars['L']), $config['captcha_gd_fonts']) -1)],
  1643. 'M' => $chars['M'][mt_rand(0, min(sizeof($chars['M']), $config['captcha_gd_fonts']) -1)],
  1644. 'N' => $chars['N'][mt_rand(0, min(sizeof($chars['N']), $config['captcha_gd_fonts']) -1)],
  1645. 'O' => $chars['O'][mt_rand(0, min(sizeof($chars['O']), $config['captcha_gd_fonts']) -1)],
  1646. 'P' => $chars['P'][mt_rand(0, min(sizeof($chars['P']), $config['captcha_gd_fonts']) -1)],
  1647. 'Q' => $chars['Q'][mt_rand(0, min(sizeof($chars['…

Large files files are truncated, but you can click here to view the full file