/** @file frontend_test.c Licar automatic test frontend. This is a pure C program that internally tries to play the game and checks if everything looks as expected. This can also easily be run through valgrind or checked on other platforms without any frontend available. */ #define LCR_SETTING_RESOLUTION_X 320 #define LCR_SETTING_RESOLUTION_Y 240 #include #include "game.h" /* The following are inputs recorded from a live game session, which consisted of driving the LCtiny1 map, saving a replay, then playing it back and quitting the game. The values have following format: lower 8 bits hold input state, higher bits hold time in MS when to perform the game step. */ static const uint32_t steps[] = { // frame gamestate runtime carspeed 0x0000db00, // 0 0 0 0 0x0000f200, // 1 0 0 0 0x00010900, // 2 0 0 0 0x00012900, // 3 0 0 0 0x00014800, // 4 0 0 0 0x00014d00, // 5 0 0 0 0x00016b00, // 6 0 0 0 0x00018b00, // 7 0 0 0 0x00019000, // 8 0 0 0 0x0001ac00, // 9 0 0 0 0x0001af00, // 10 0 0 0 0x0001ce00, // 11 0 0 0 0x0001ed00, // 12 0 0 0 0x0001f100, // 13 0 0 0 0x00021000, // 14 0 0 0 0x00022f00, // 15 0 0 0 0x00023300, // 16 0 0 0 0x00024f00, // 17 0 0 0 0x00025500, // 18 0 0 0 0x00027000, // 19 0 0 0 0x00027600, // 20 0 0 0 0x00029200, // 21 0 0 0 0x00029704, // 22 0 0 0 0x0002b304, // 23 0 0 0 0x0002b804, // 24 0 0 0 0x0002d504, // 25 0 0 0 0x0002d804, // 26 0 0 0 0x0002f700, // 27 0 0 0 0x00031700, // 28 0 0 0 0x00031b00, // 29 0 0 0 0x00033800, // 30 0 0 0 0x00033b00, // 31 0 0 0 0x00035a00, // 32 0 0 0 0x00037900, // 33 0 0 0 0x00037d00, // 34 0 0 0 0x00039b00, // 35 0 0 0 0x0003a000, // 36 0 0 0 0x0003bc04, // 37 0 0 0 0x0003bf04, // 38 0 0 0 0x0003dd04, // 39 0 0 0 0x0003e004, // 40 0 0 0 0x0003fd04, // 41 0 0 0 0x00040104, // 42 0 0 0 0x00041e00, // 43 0 0 0 0x00042300, // 44 0 0 0 0x00044000, // 45 0 0 0 0x00044400, // 46 0 0 0 0x00046000, // 47 0 0 0 0x00046500, // 48 0 0 0 0x00048200, // 49 0 0 0 0x00048600, // 50 0 0 0 0x0004a100, // 51 0 0 0 0x0004a600, // 52 0 0 0 0x0004c300, // 53 0 0 0 0x0004c700, // 54 0 0 0 0x0004e500, // 55 0 0 0 0x0004e800, // 56 0 0 0 0x00050700, // 57 0 0 0 0x00052600, // 58 0 0 0 0x00052a00, // 59 0 0 0 0x00054800, // 60 0 0 0 0x00054b00, // 61 0 0 0 0x00056600, // 62 0 0 0 0x00056d00, // 63 0 0 0 0x00058710, // 64 0 0 0 0x00058e10, // 65 0 0 0 0x0005a910, // 66 0 0 0 0x0005ae10, // 67 0 0 0 0x0005cc00, // 68 0 0 0 0x0005d000, // 69 0 0 0 0x0005ed00, // 70 0 0 0 0x0005f100, // 71 0 0 0 0x00060e00, // 72 0 0 0 0x00061400, // 73 0 0 0 0x00063000, // 74 0 0 0 0x00065000, // 75 0 0 0 0x00065300, // 76 0 0 0 0x00067100, // 77 0 0 0 0x00067600, // 78 0 0 0 0x00069200, // 79 0 0 0 0x00069500, // 80 0 0 0 0x0006b400, // 81 0 0 0 0x0006d400, // 82 0 0 0 0x0006d700, // 83 0 0 0 0x0006f600, // 84 0 0 0 0x00071400, // 85 0 0 0 0x00071a00, // 86 0 0 0 0x00073700, // 87 0 0 0 0x00073a00, // 88 0 0 0 0x00075700, // 89 0 0 0 0x00075c00, // 90 0 0 0 0x00077910, // 91 0 0 0 0x00077c10, // 92 0 0 0 0x00079b10, // 93 0 0 0 0x0007bb00, // 94 0 0 0 0x0007bf00, // 95 0 0 0 0x0007db00, // 96 0 0 0 0x0007df00, // 97 0 0 0 0x0007fe00, // 98 0 0 0 0x00081c00, // 99 0 0 0 0x00082200, // 100 0 0 0 0x00083f00, // 101 0 0 0 0x00084400, // 102 0 0 0 0x00085f00, // 103 0 0 0 0x00086400, // 104 0 0 0 0x00088100, // 105 0 0 0 0x00088400, // 106 0 0 0 0x0008a200, // 107 0 0 0 0x0008a600, // 108 0 0 0 0x0008c300, // 109 0 0 0 0x0008c600, // 110 0 0 0 0x0008e500, // 111 0 0 0 0x00090500, // 112 0 0 0 0x00090800, // 113 0 0 0 0x00092600, // 114 0 0 0 0x00092900, // 115 0 0 0 0x00094800, // 116 0 0 0 0x00096700, // 117 0 0 0 0x00096b00, // 118 0 0 0 0x00098a00, // 119 0 0 0 0x0009a900, // 120 0 0 0 0x0009ad00, // 121 0 0 0 0x0009cb00, // 122 0 0 0 0x0009ce00, // 123 0 0 0 0x0009ed00, // 124 0 0 0 0x000a0c00, // 125 0 0 0 0x000a1000, // 126 0 0 0 0x000a2f04, // 127 0 0 0 0x000a4f04, // 128 0 0 0 0x000a5404, // 129 0 0 0 0x000a7004, // 130 0 0 0 0x000a7404, // 131 0 0 0 0x000a9000, // 132 0 0 0 0x000a9500, // 133 0 0 0 0x000ab200, // 134 0 0 0 0x000ab500, // 135 0 0 0 0x000ad400, // 136 0 0 0 0x000af100, // 137 0 0 0 0x000af800, // 138 0 0 0 0x000b1600, // 139 0 0 0 0x000b3700, // 140 0 0 0 0x000b5800, // 141 0 0 0 0x000b7800, // 142 0 0 0 0x000b7d00, // 143 0 0 0 0x000b9800, // 144 0 0 0 0x000b9d00, // 145 0 0 0 0x000bb900, // 146 0 0 0 0x000bbe00, // 147 0 0 0 0x000bd900, // 148 0 0 0 0x000bdf00, // 149 0 0 0 0x000bfc00, // 150 0 0 0 0x000c0000, // 151 0 0 0 0x000c1c00, // 152 0 0 0 0x000c2100, // 153 0 0 0 0x000c3e00, // 154 0 0 0 0x000c4300, // 155 0 0 0 0x000c5f00, // 156 0 0 0 0x000c6200, // 157 0 0 0 0x000c8100, // 158 0 0 0 0x000c9e00, // 159 0 0 0 0x000ca500, // 160 0 0 0 0x000cc200, // 161 0 0 0 0x000cc600, // 162 0 0 0 0x000ce200, // 163 0 0 0 0x000ce700, // 164 0 0 0 0x000d0300, // 165 0 0 0 0x000d0800, // 166 0 0 0 0x000d2710, // 167 0 0 0 0x000d4710, // 168 0 0 0 0x000d6600, // 169 0 0 0 0x000d6b00, // 170 0 0 0 0x000d8800, // 171 0 0 0 0x000d8b00, // 172 0 0 0 0x000da800, // 173 0 0 0 0x000dac00, // 174 0 0 0 0x000dcb00, // 175 0 0 0 0x000deb00, // 176 0 0 0 0x000def00, // 177 0 0 0 0x000e0c00, // 178 0 0 0 0x000e0f00, // 179 0 0 0 0x000e2d00, // 180 0 0 0 0x000e3100, // 181 0 0 0 0x000e4f00, // 182 0 0 0 0x000e6d00, // 183 0 0 0 0x000e7300, // 184 0 0 0 0x000e9000, // 185 0 0 0 0x000e9300, // 186 0 0 0 0x000eb100, // 187 0 0 0 0x000eb400, // 188 0 0 0 0x000ed400, // 189 0 0 0 0x000ef300, // 190 0 0 0 0x000ef600, // 191 0 0 0 0x000f1400, // 192 0 0 0 0x000f1b00, // 193 0 0 0 0x000f3600, // 194 0 0 0 0x000f5400, // 195 0 0 0 0x000f5a00, // 196 0 0 0 0x000f7700, // 197 0 0 0 0x000f7c00, // 198 0 0 0 0x000f9800, // 199 0 0 0 0x000f9b00, // 200 0 0 0 0x000fb900, // 201 0 0 0 0x000fbc00, // 202 0 0 0 0x000fdb00, // 203 0 0 0 0x000ffb00, // 204 0 0 0 0x000ffe00, // 205 0 0 0 0x00101b00, // 206 0 0 0 0x00101f00, // 207 0 0 0 0x00103e00, // 208 0 0 0 0x00105e01, // 209 0 0 0 0x00106101, // 210 0 0 0 0x00108001, // 211 0 0 0 0x00109f00, // 212 0 0 0 0x0010a300, // 213 0 0 0 0x0010c200, // 214 0 0 0 0x0010e201, // 215 0 0 0 0x0010e701, // 216 0 0 0 0x00110301, // 217 0 0 0 0x00110701, // 218 0 0 0 0x00112400, // 219 0 0 0 0x00112900, // 220 0 0 0 0x00114400, // 221 0 0 0 0x00114900, // 222 0 0 0 0x00116600, // 223 0 0 0 0x00116900, // 224 0 0 0 0x00118800, // 225 0 0 0 0x0011a701, // 226 0 0 0 0x0011ac01, // 227 0 0 0 0x0011c801, // 228 0 0 0 0x0011cd01, // 229 0 0 0 0x0011ea00, // 230 0 0 0 0x0011ee00, // 231 0 0 0 0x00120c00, // 232 0 0 0 0x00122c00, // 233 0 0 0 0x00123000, // 234 0 0 0 0x00124b00, // 235 0 0 0 0x00125100, // 236 0 0 0 0x00126c00, // 237 0 0 0 0x00127200, // 238 0 0 0 0x00129000, // 239 0 0 0 0x0012af00, // 240 0 0 0 0x0012b400, // 241 0 0 0 0x0012d000, // 242 0 0 0 0x0012d500, // 243 0 0 0 0x0012f100, // 244 0 0 0 0x0012f600, // 245 0 0 0 0x00131300, // 246 0 0 0 0x00131700, // 247 0 0 0 0x00133210, // 248 0 0 0 0x00133810, // 249 0 0 0 0x00135610, // 250 0 0 0 0x00137600, // 251 0 0 0 0x00137900, // 252 0 0 0 0x00139700, // 253 0 0 0 0x00139d00, // 254 0 0 0 0x0013b900, // 255 0 0 0 0x0013d910, // 256 0 0 0 0x0013dc10, // 257 0 0 0 0x0013fb10, // 258 0 0 0 0x00141b00, // 259 0 0 0 0x00141e00, // 260 0 0 0 0x00143d00, // 261 0 0 0 0x00145c00, // 262 0 0 0 0x00146010, // 263 0 0 0 0x00147f10, // 264 0 0 0 0x00149f10, // 265 0 0 0 0x0014a210, // 266 0 0 0 0x0014c000, // 267 0 0 0 0x0014c400, // 268 0 0 0 0x0014e000, // 269 0 0 0 0x0014e400, // 270 0 0 0 0x00150400, // 271 0 0 0 0x00152300, // 272 0 0 0 0x00152700, // 273 0 0 0 0x00154000, // 274 0 0 0 0x00154600, // 275 0 0 0 0x00156400, // 276 0 0 0 0x00156800, // 277 0 0 0 0x00158400, // 278 0 0 0 0x00158a00, // 279 0 0 0 0x0015a600, // 280 0 0 0 0x0015aa00, // 281 0 0 0 0x0015c810, // 282 0 0 0 0x0015cb10, // 283 0 0 0 0x0015e910, // 284 0 0 0 0x0015ec10, // 285 0 0 0 0x00160a00, // 286 0 0 0 0x00160e00, // 287 0 0 0 0x00162b00, // 288 0 0 0 0x00162f00, // 289 0 0 0 0x00164c00, // 290 0 0 0 0x00165100, // 291 0 0 0 0x00166b00, // 292 0 0 0 0x00167000, // 293 0 0 0 0x00168f00, // 294 0 0 0 0x0016af00, // 295 0 0 0 0x0016b300, // 296 0 0 0 0x0016d000, // 297 0 0 0 0x0016d300, // 298 0 0 0 0x0016f000, // 299 0 0 0 0x0016f400, // 300 0 0 0 0x00171300, // 301 0 0 0 0x00173100, // 302 0 0 0 0x00173700, // 303 0 0 0 0x00175400, // 304 0 0 0 0x00175900, // 305 0 0 0 0x00177300, // 306 0 0 0 0x00177900, // 307 0 0 0 0x00179600, // 308 0 0 0 0x00179b00, // 309 0 0 0 0x0017b700, // 310 0 0 0 0x0017bc00, // 311 0 0 0 0x0017d700, // 312 0 0 0 0x0017dc00, // 313 0 0 0 0x0017fa02, // 314 0 0 0 0x00181802, // 315 0 0 0 0x00181e02, // 316 0 0 0 0x00183b02, // 317 0 0 0 0x00184002, // 318 0 0 0 0x00185a00, // 319 0 0 0 0x00186000, // 320 0 0 0 0x00187d00, // 321 0 0 0 0x00188000, // 322 0 0 0 0x00189f00, // 323 0 0 0 0x0018bf00, // 324 0 0 0 0x0018c400, // 325 0 0 0 0x0018e000, // 326 0 0 0 0x0018e300, // 327 0 0 0 0x00190200, // 328 0 0 0 0x00192100, // 329 0 0 0 0x00192500, // 330 0 0 0 0x00194204, // 331 0 0 0 0x00194604, // 332 0 0 0 0x00196404, // 333 0 0 0 0x00196804, // 334 0 0 0 0x00198500, // 335 0 0 0 0x00198800, // 336 0 0 0 0x0019a600, // 337 0 0 0 0x0019ac00, // 338 0 0 0 0x0019c900, // 339 0 0 0 0x0019e804, // 340 0 0 0 0x0019ed04, // 341 0 0 0 0x001a0a04, // 342 0 0 0 0x001a2a00, // 343 0 0 0 0x001a2c00, // 344 0 0 0 0x001a4b00, // 345 0 0 0 0x001a4f00, // 346 0 0 0 0x001a6c00, // 347 0 0 0 0x001a7104, // 348 0 0 0 0x001a8b04, // 349 0 0 0 0x001a9104, // 350 0 0 0 0x001aae00, // 351 0 0 0 0x001ab100, // 352 0 0 0 0x001acf00, // 353 0 0 0 0x001ad400, // 354 0 0 0 0x001aee04, // 355 0 0 0 0x001af404, // 356 0 0 0 0x001b1104, // 357 0 0 0 0x001b1504, // 358 0 0 0 0x001b3100, // 359 0 0 0 0x001b3600, // 360 0 0 0 0x001b5300, // 361 0 0 0 0x001b5600, // 362 0 0 0 0x001b7404, // 363 0 0 0 0x001b7804, // 364 0 0 0 0x001b9404, // 365 0 0 0 0x001b9804, // 366 0 0 0 0x001bb704, // 367 0 0 0 0x001bd700, // 368 0 0 0 0x001bdb00, // 369 0 0 0 0x001bf700, // 370 0 0 0 0x001bfc00, // 371 0 0 0 0x001c1a00, // 372 0 0 0 0x001c3800, // 373 0 0 0 0x001c3e00, // 374 0 0 0 0x001c5a00, // 375 0 0 0 0x001c5e10, // 376 0 0 0 0x001c7c10, // 377 4 0 0 0x00200600, // 377 5 0 0 0x00200b00, // 377 1 0 0 0x00202000, // 378 1 0 0 0x00204000, // 379 1 0 0 0x00206200, // 380 1 0 0 0x00208000, // 381 1 0 0 0x0020a600, // 382 1 0 0 0x0020c800, // 383 1 0 0 0x0020e700, // 384 1 0 0 0x00210800, // 385 1 0 0 0x00212800, // 386 1 0 0 0x00214a00, // 387 1 0 0 0x00216c00, // 388 1 0 0 0x00218b00, // 389 1 0 0 0x0021ac00, // 390 1 0 0 0x0021cd01, // 391 1 0 0 0x0021f001, // 392 1 0 0 0x00221101, // 393 1 0 0 0x00223001, // 394 1 0 0 0x00225001, // 395 1 0 0 0x00227301, // 396 1 0 0 0x00229301, // 397 1 0 0 0x0022b501, // 398 1 0 0 0x0022d401, // 399 1 0 0 0x0022f801, // 400 1 0 0 0x00231901, // 401 1 0 0 0x00233701, // 402 1 0 0 0x00235b01, // 403 1 0 0 0x00237b01, // 404 1 0 0 0x00239b01, // 405 1 0 0 0x0023be01, // 406 1 0 0 0x0023e001, // 407 1 0 0 0x0023ff01, // 408 1 0 0 0x00241d01, // 409 1 0 0 0x00244101, // 410 1 0 0 0x00246301, // 411 1 0 0 0x00248301, // 412 1 0 0 0x0024a600, // 413 1 0 0 0x0024c300, // 414 1 0 0 0x0024e500, // 415 1 0 0 0x00250700, // 416 1 0 0 0x00252400, // 417 1 0 0 0x00254310, // 418 1 0 0 0x00256810, // 419 1 0 0 0x00258900, // 420 1 0 0 0x0025ac00, // 421 1 0 0 0x0025cc00, // 422 1 0 0 0x0025ee00, // 423 1 0 0 0x00261000, // 424 1 0 0 0x00263000, // 425 1 0 0 0x00265001, // 426 1 0 0 0x00267301, // 427 1 0 0 0x00269401, // 428 1 0 0 0x0026b601, // 429 1 0 0 0x0026d201, // 430 1 0 0 0x0026f601, // 431 1 0 0 0x00271601, // 432 1 0 0 0x00273801, // 433 1 0 0 0x00275b01, // 434 1 0 0 0x00277b01, // 435 1 0 0 0x00279b01, // 436 1 0 0 0x0027bc01, // 437 1 0 0 0x0027dc01, // 438 1 0 0 0x0027ff01, // 439 1 0 0 0x00282201, // 440 1 0 0 0x00283f01, // 441 1 0 0 0x00286201, // 442 1 0 0 0x00288401, // 443 1 0 0 0x0028a401, // 444 1 0 0 0x0028c501, // 445 1 0 0 0x0028e301, // 446 1 0 0 0x00290601, // 447 1 0 0 0x00292701, // 448 1 0 0 0x00294801, // 449 1 0 0 0x00296801, // 450 1 0 0 0x00298b01, // 451 1 0 0 0x0029ab01, // 452 1 0 0 0x0029cc01, // 453 1 0 0 0x0029ed01, // 454 1 0 0 0x002a0c01, // 455 1 0 0 0x002a3001, // 456 1 0 0 0x002a5001, // 457 1 0 0 0x002a7001, // 458 1 0 0 0x002a9201, // 459 1 0 0 0x002ab401, // 460 1 0 0 0x002ad501, // 461 1 0 0 0x002af601, // 462 1 0 0 0x002b1501, // 463 1 0 0 0x002b3701, // 464 1 0 0 0x002b5701, // 465 1 0 0 0x002b7701, // 466 1 0 0 0x002b9a01, // 467 1 0 0 0x002bb801, // 468 1 0 0 0x002bdb01, // 469 1 0 0 0x002bfb01, // 470 1 0 0 0x002c1e01, // 471 1 0 0 0x002c3e01, // 472 1 0 0 0x002c6101, // 473 1 0 0 0x002c8301, // 474 1 0 0 0x002ca101, // 475 1 0 0 0x002cc301, // 476 1 0 0 0x002ce201, // 477 1 0 0 0x002d0301, // 478 1 0 0 0x002d2501, // 479 1 0 0 0x002d4701, // 480 1 0 0 0x002d6801, // 481 1 0 0 0x002d8901, // 482 1 0 0 0x002dab01, // 483 1 0 0 0x002dcb01, // 484 1 0 0 0x002ded01, // 485 1 0 0 0x002e0a01, // 486 2 1 0 0x002e2c01, // 487 2 2 12 0x002e4d01, // 488 2 3 25 0x002e6e01, // 489 2 4 37 0x002e9001, // 490 2 5 50 0x002eb103, // 491 2 6 62 0x002ed403, // 492 2 7 67 0x002ef203, // 493 2 8 68 0x002f1603, // 494 2 9 88 0x002f3803, // 495 2 10 113 0x002f5a03, // 496 2 11 140 0x002f7a03, // 497 2 12 159 0x002f9b03, // 498 2 13 176 0x002fba03, // 499 2 14 191 0x002fdc01, // 500 2 15 205 0x002ffe01, // 501 2 16 219 0x00301e09, // 502 2 17 223 0x00304009, // 503 2 18 232 0x00306109, // 504 2 19 243 0x00308309, // 505 2 20 257 0x0030a209, // 506 2 21 264 0x0030c509, // 507 2 22 277 0x0030e408, // 508 2 23 281 0x00310308, // 509 2 24 297 0x00312508, // 510 2 25 274 0x00314808, // 511 2 26 259 0x00316808, // 512 2 27 211 0x00318a04, // 513 2 28 189 0x0031ab04, // 514 2 29 174 0x0031cd04, // 515 2 30 121 0x0031eb04, // 516 2 31 88 0x00320d04, // 517 2 32 54 0x00322c04, // 518 2 33 28 0x00325004, // 519 2 34 -27 0x00327004, // 520 2 35 -92 0x00329204, // 521 2 36 -180 0x0032b204, // 522 2 37 -170 0x0032d404, // 523 2 38 -166 0x0032f304, // 524 2 39 -183 0x00331704, // 525 2 40 -200 0x00333704, // 526 2 41 -211 0x00335a00, // 527 2 42 -226 0x00337a00, // 528 2 43 -237 0x00339b00, // 529 2 44 -211 0x0033bc00, // 530 2 45 -189 0x0033de10, // 531 2 46 -175 0x0033fc10, // 532 1 0 0 0x00341b00, // 533 1 0 0 0x00343d00, // 534 1 0 0 0x00345f00, // 535 1 0 0 0x00348000, // 536 1 0 0 0x0034a100, // 537 1 0 0 0x0034c000, // 538 1 0 0 0x0034e001, // 539 1 0 0 0x0034ff01, // 540 1 0 0 0x00352301, // 541 1 0 0 0x00354201, // 542 1 0 0 0x00356401, // 543 1 0 0 0x00358501, // 544 1 0 0 0x0035a701, // 545 1 0 0 0x0035c701, // 546 1 0 0 0x0035e901, // 547 1 0 0 0x00360b01, // 548 1 0 0 0x00362c01, // 549 1 0 0 0x00364c01, // 550 1 0 0 0x00366901, // 551 1 0 0 0x00368f01, // 552 1 0 0 0x0036b001, // 553 1 0 0 0x0036cd01, // 554 1 0 0 0x0036ee01, // 555 1 0 0 0x00370f01, // 556 1 0 0 0x00373201, // 557 1 0 0 0x00375601, // 558 1 0 0 0x00377301, // 559 1 0 0 0x00379701, // 560 1 0 0 0x0037b601, // 561 1 0 0 0x0037db01, // 562 1 0 0 0x0037f801, // 563 1 0 0 0x00381b01, // 564 1 0 0 0x00383801, // 565 1 0 0 0x00385d01, // 566 1 0 0 0x00387b01, // 567 1 0 0 0x00389e01, // 568 1 0 0 0x0038bf01, // 569 1 0 0 0x0038e101, // 570 1 0 0 0x00390101, // 571 1 0 0 0x00392401, // 572 1 0 0 0x00394401, // 573 1 0 0 0x00396501, // 574 1 0 0 0x00398501, // 575 1 0 0 0x0039a801, // 576 1 0 0 0x0039c801, // 577 1 0 0 0x0039e901, // 578 1 0 0 0x003a0801, // 579 1 0 0 0x003a2c01, // 580 1 0 0 0x003a4901, // 581 1 0 0 0x003a6d01, // 582 1 0 0 0x003a8c01, // 583 1 0 0 0x003aae01, // 584 1 0 0 0x003acf01, // 585 1 0 0 0x003af001, // 586 1 0 0 0x003b1101, // 587 1 0 0 0x003b3201, // 588 1 0 0 0x003b5401, // 589 1 0 0 0x003b7201, // 590 1 0 0 0x003b9401, // 591 1 0 0 0x003bb801, // 592 1 0 0 0x003bd701, // 593 1 0 0 0x003bf801, // 594 1 0 0 0x003c1b01, // 595 1 0 0 0x003c3b01, // 596 1 0 0 0x003c5801, // 597 1 0 0 0x003c7a01, // 598 1 0 0 0x003c9c01, // 599 2 1 0 0x003cbe01, // 600 2 2 12 0x003cdf01, // 601 2 3 25 0x003d0001, // 602 2 4 37 0x003d2201, // 603 2 5 50 0x003d4301, // 604 2 6 62 0x003d6401, // 605 2 7 67 0x003d8301, // 606 2 8 69 0x003da701, // 607 2 9 89 0x003dc801, // 608 2 10 114 0x003de901, // 609 2 11 141 0x003e0b01, // 610 2 12 161 0x003e2a01, // 611 2 13 178 0x003e4c03, // 612 2 14 197 0x003e6c03, // 613 2 15 204 0x003e8e03, // 614 2 16 222 0x003eaf03, // 615 2 17 227 0x003ed101, // 616 2 18 239 0x003ef301, // 617 2 19 253 0x003f1301, // 618 2 20 256 0x003f3301, // 619 2 21 268 0x003f5301, // 620 2 22 274 0x003f7501, // 621 2 23 291 0x003f9601, // 622 2 24 292 0x003fb801, // 623 2 25 301 0x003fd801, // 624 2 26 308 0x003ff901, // 625 2 27 316 0x00401a01, // 626 2 28 323 0x00403801, // 627 2 29 334 0x00405901, // 628 2 30 349 0x00407b01, // 629 2 31 355 0x00409c01, // 630 2 32 356 0x0040be01, // 631 2 33 360 0x0040df01, // 632 2 34 370 0x00410001, // 633 2 35 383 0x00412201, // 634 2 36 378 0x00414301, // 635 2 37 389 0x00416509, // 636 2 38 406 0x00418609, // 637 2 39 397 0x0041a209, // 638 2 40 406 0x0041c609, // 639 2 41 405 0x0041e801, // 640 2 42 411 0x00420a01, // 641 2 43 415 0x00422701, // 642 2 44 418 0x00424901, // 643 2 45 420 0x00426901, // 644 2 46 423 0x00428b01, // 645 2 47 429 0x0042ac01, // 646 2 48 446 0x0042cf01, // 647 2 49 441 0x0042ef01, // 648 2 50 451 0x00431101, // 649 2 51 456 0x00433301, // 650 2 52 453 0x00435401, // 651 2 53 454 0x00437301, // 652 2 54 459 0x00439301, // 653 2 55 464 0x0043b401, // 654 2 56 475 0x0043d801, // 655 2 57 484 0x0043f809, // 656 2 58 482 0x00441701, // 657 2 59 497 0x00443a01, // 658 2 60 500 0x00445c01, // 659 2 61 502 0x00447d01, // 660 2 62 518 0x00449e01, // 661 2 63 519 0x0044ba01, // 662 2 64 533 0x0044da01, // 663 2 65 537 0x0044ff01, // 664 2 66 547 0x00452001, // 665 2 67 554 0x00454409, // 666 2 68 567 0x00456309, // 667 2 69 570 0x00458609, // 668 2 70 579 0x0045a801, // 669 2 71 583 0x0045c801, // 670 2 72 596 0x0045e701, // 671 2 73 597 0x00460a01, // 672 2 74 602 0x00462b01, // 673 2 75 605 0x00464b01, // 674 2 76 609 0x00466a01, // 675 2 77 609 0x00468b01, // 676 2 78 611 0x0046ac01, // 677 2 79 614 0x0046ce01, // 678 2 80 623 0x0046ef01, // 679 2 81 626 0x00470f01, // 680 2 82 619 0x00473201, // 681 2 83 628 0x00475301, // 682 2 84 632 0x00477501, // 683 2 85 626 0x00479501, // 684 2 86 587 0x0047b901, // 685 2 87 547 0x0047d801, // 686 2 88 547 0x0047fa01, // 687 2 89 595 0x00481801, // 688 2 90 585 0x00483b01, // 689 2 91 579 0x00485b09, // 690 2 92 573 0x00487b09, // 691 2 93 572 0x00489a09, // 692 2 94 569 0x0048bb09, // 693 2 95 566 0x0048dc01, // 694 2 96 560 0x0048ff01, // 695 2 97 478 0x00492001, // 696 2 98 411 0x00494201, // 697 2 99 372 0x00496109, // 698 2 100 324 0x00498401, // 699 2 101 271 0x0049a401, // 700 2 102 242 0x0049c801, // 701 2 103 -217 0x0049e700, // 702 2 104 -194 0x004a0900, // 703 2 105 -176 0x004a2a00, // 704 2 106 -169 0x004a4a00, // 705 2 107 -162 0x004a6a10, // 706 2 108 -164 0x004a8a10, // 707 1 0 0 0x004aab00, // 708 1 0 0 0x004acb00, // 709 1 0 0 0x004aed00, // 710 1 0 0 0x004b0e00, // 711 1 0 0 0x004b3000, // 712 1 0 0 0x004b4f00, // 713 1 0 0 0x004b7101, // 714 1 0 0 0x004b8f01, // 715 1 0 0 0x004bb401, // 716 1 0 0 0x004bd401, // 717 1 0 0 0x004bf501, // 718 1 0 0 0x004c1401, // 719 1 0 0 0x004c3601, // 720 1 0 0 0x004c5801, // 721 1 0 0 0x004c7a01, // 722 1 0 0 0x004c9a01, // 723 1 0 0 0x004cb801, // 724 1 0 0 0x004cda01, // 725 1 0 0 0x004cfb01, // 726 1 0 0 0x004d1d01, // 727 1 0 0 0x004d3e01, // 728 1 0 0 0x004d6001, // 729 1 0 0 0x004d8001, // 730 1 0 0 0x004da201, // 731 1 0 0 0x004dc301, // 732 1 0 0 0x004de001, // 733 1 0 0 0x004e0101, // 734 1 0 0 0x004e2501, // 735 1 0 0 0x004e4701, // 736 1 0 0 0x004e6801, // 737 1 0 0 0x004e8501, // 738 1 0 0 0x004ea901, // 739 1 0 0 0x004ecc01, // 740 1 0 0 0x004eed01, // 741 1 0 0 0x004f0e01, // 742 1 0 0 0x004f2f01, // 743 1 0 0 0x004f4f01, // 744 1 0 0 0x004f7001, // 745 1 0 0 0x004f9001, // 746 1 0 0 0x004fb301, // 747 1 0 0 0x004fd001, // 748 1 0 0 0x004ff401, // 749 1 0 0 0x00501401, // 750 1 0 0 0x00503701, // 751 1 0 0 0x00505801, // 752 1 0 0 0x00507801, // 753 1 0 0 0x00509a01, // 754 1 0 0 0x0050b801, // 755 1 0 0 0x0050dc01, // 756 1 0 0 0x0050fc01, // 757 1 0 0 0x00511d01, // 758 1 0 0 0x00513e01, // 759 1 0 0 0x00516001, // 760 1 0 0 0x00518001, // 761 1 0 0 0x0051a001, // 762 1 0 0 0x0051c301, // 763 1 0 0 0x0051e101, // 764 1 0 0 0x00520401, // 765 1 0 0 0x00522301, // 766 1 0 0 0x00524701, // 767 1 0 0 0x00526701, // 768 1 0 0 0x00528701, // 769 1 0 0 0x0052aa01, // 770 1 0 0 0x0052ca01, // 771 1 0 0 0x0052ec01, // 772 1 0 0 0x00530901, // 773 1 0 0 0x00532d01, // 774 2 1 0 0x00534e01, // 775 2 2 12 0x00536f01, // 776 2 3 25 0x00539101, // 777 2 4 37 0x0053b101, // 778 2 5 50 0x0053d301, // 779 2 6 62 0x0053f401, // 780 2 7 67 0x00541501, // 781 2 8 69 0x00543501, // 782 2 9 89 0x00545601, // 783 2 10 114 0x00547703, // 784 2 11 141 0x00549603, // 785 2 12 161 0x0054b803, // 786 2 13 178 0x0054da03, // 787 2 14 195 0x0054fb01, // 788 2 15 203 0x00551b01, // 789 2 16 215 0x00553f01, // 790 2 17 223 0x00556001, // 791 2 18 234 0x00558109, // 792 2 19 249 0x0055a009, // 793 2 20 255 0x0055c209, // 794 2 21 270 0x0055e409, // 795 2 22 276 0x00560401, // 796 2 23 289 0x00562301, // 797 2 24 295 0x00564501, // 798 2 25 300 0x00566801, // 799 2 26 306 0x00568701, // 800 2 27 313 0x0056aa01, // 801 2 28 324 0x0056c901, // 802 2 29 327 0x0056e801, // 803 2 30 338 0x00570c01, // 804 2 31 352 0x00572c01, // 805 2 32 349 0x00574d01, // 806 2 33 357 0x00576e01, // 807 2 34 373 0x00578d01, // 808 2 35 389 0x0057b101, // 809 2 36 379 0x0057d209, // 810 2 37 378 0x0057f409, // 811 2 38 389 0x00581409, // 812 2 39 392 0x00583601, // 813 2 40 394 0x00585801, // 814 2 41 403 0x00587801, // 815 2 42 407 0x00589801, // 816 2 43 411 0x0058b801, // 817 2 44 413 0x0058d801, // 818 2 45 426 0x0058fb01, // 819 2 46 434 0x00591b01, // 820 2 47 439 0x00593c01, // 821 2 48 443 0x00595d01, // 822 2 49 442 0x00597f01, // 823 2 50 454 0x00599f01, // 824 2 51 451 0x0059c001, // 825 2 52 459 0x0059df01, // 826 2 53 469 0x005a0201, // 827 2 54 467 0x005a2301, // 828 2 55 481 0x005a4501, // 829 2 56 474 0x005a6601, // 830 2 57 479 0x005a8801, // 831 2 58 487 0x005aa601, // 832 2 59 494 0x005ac901, // 833 2 60 493 0x005aec01, // 834 2 61 506 0x005b0b01, // 835 2 62 513 0x005b2e01, // 836 2 63 526 0x005b4e01, // 837 2 64 531 0x005b6f01, // 838 2 65 545 0x005b9101, // 839 2 66 549 0x005baf01, // 840 2 67 559 0x005bd001, // 841 2 68 566 0x005bf301, // 842 2 69 575 0x005c1301, // 843 2 70 581 0x005c3501, // 844 2 71 591 0x005c5701, // 845 2 72 596 0x005c7701, // 846 2 73 606 0x005c9901, // 847 2 74 611 0x005cb801, // 848 2 75 614 0x005cdb01, // 849 2 76 618 0x005cfb09, // 850 2 77 632 0x005d1c01, // 851 2 78 621 0x005d3e01, // 852 2 79 621 0x005d5c01, // 853 2 80 626 0x005d7f01, // 854 2 81 641 0x005d9f01, // 855 2 82 632 0x005dc101, // 856 2 83 634 0x005de201, // 857 2 84 651 0x005e0401, // 858 2 85 636 0x005e2401, // 859 2 86 553 0x005e4501, // 860 2 87 548 0x005e6701, // 861 2 88 586 0x005e8701, // 862 2 89 591 0x005ea901, // 863 2 90 589 0x005eca09, // 864 2 91 585 0x005ee809, // 865 2 92 568 0x005f0909, // 866 2 93 563 0x005f2809, // 867 2 94 565 0x005f4901, // 868 2 95 563 0x005f6b01, // 869 2 96 561 0x005f8c09, // 870 2 97 555 0x005fb009, // 871 2 98 554 0x005fd009, // 872 2 99 460 0x005ff409, // 873 2 100 457 0x00601409, // 874 2 101 448 0x00603409, // 875 2 102 438 0x00605709, // 876 2 103 431 0x00607609, // 877 2 104 429 0x00609909, // 878 2 105 424 0x0060b809, // 879 2 106 420 0x0060da01, // 880 2 107 417 0x0060fa01, // 881 2 108 418 0x00611d01, // 882 2 109 404 0x00613e01, // 883 2 110 392 0x00615d01, // 884 2 111 392 0x00617f01, // 885 2 112 387 0x0061a101, // 886 2 113 391 0x0061c101, // 887 2 114 387 0x0061e301, // 888 2 115 392 0x00620501, // 889 2 116 389 0x00622501, // 890 2 117 394 0x00624709, // 891 2 118 398 0x00626609, // 892 2 119 396 0x00628809, // 893 2 120 403 0x0062a809, // 894 2 121 405 0x0062c801, // 895 2 122 411 0x0062ea01, // 896 2 123 411 0x00630901, // 897 2 124 413 0x00632a01, // 898 2 125 413 0x00634b01, // 899 2 126 421 0x00636c01, // 900 2 127 424 0x00638d01, // 901 2 128 428 0x0063b001, // 902 2 129 433 0x0063d203, // 903 2 130 439 0x0063f303, // 904 2 131 444 0x00641303, // 905 2 132 451 0x00643403, // 906 2 133 453 0x00645101, // 907 2 134 457 0x00647001, // 908 2 135 462 0x00649601, // 909 2 136 460 0x0064b601, // 910 2 137 467 0x0064d901, // 911 2 138 468 0x0064f901, // 912 2 139 472 0x00651b01, // 913 2 140 474 0x00653b01, // 914 2 141 479 0x00655a03, // 915 2 142 484 0x00657c03, // 916 2 143 499 0x00659c03, // 917 2 144 492 0x0065bd03, // 918 2 145 493 0x0065de01, // 919 2 146 499 0x00660001, // 920 2 147 504 0x00662101, // 921 2 148 494 0x00664303, // 922 2 149 493 0x00666303, // 923 2 150 496 0x00668603, // 924 2 151 502 0x0066a601, // 925 2 152 506 0x0066c601, // 926 2 153 513 0x0066e601, // 927 2 154 501 0x00670901, // 928 2 155 497 0x00672801, // 929 2 156 502 0x00674b01, // 930 2 157 501 0x00676901, // 931 2 158 500 0x00678a01, // 932 2 159 506 0x0067ac03, // 933 2 160 507 0x0067cc03, // 934 2 161 516 0x0067ee03, // 935 2 162 510 0x00681001, // 936 2 163 516 0x00682d01, // 937 2 164 507 0x00685203, // 938 2 165 507 0x00687503, // 939 2 166 510 0x00689403, // 940 2 167 511 0x0068b303, // 941 2 168 513 0x0068d603, // 942 2 169 522 0x0068f503, // 943 2 170 516 0x00691603, // 944 2 171 521 0x00693503, // 945 2 172 519 0x00695803, // 946 2 173 520 0x00697801, // 947 2 174 521 0x00699801, // 948 2 175 524 0x0069bb01, // 949 2 176 523 0x0069db05, // 950 2 177 516 0x0069fc05, // 951 2 178 514 0x006a1c05, // 952 2 179 499 0x006a3e01, // 953 2 180 500 0x006a5e03, // 954 2 181 481 0x006a8003, // 955 2 182 482 0x006aa103, // 956 2 183 482 0x006ac303, // 957 2 184 484 0x006ae403, // 958 2 185 484 0x006b0503, // 959 2 186 483 0x006b2703, // 960 2 187 484 0x006b4703, // 961 2 188 489 0x006b6803, // 962 2 189 490 0x006b8a03, // 963 2 190 490 0x006baa03, // 964 2 191 493 0x006bcc03, // 965 2 192 495 0x006bed03, // 966 2 193 511 0x006c0e03, // 967 2 194 522 0x006c2e03, // 968 2 195 518 0x006c5003, // 969 2 196 491 0x006c7103, // 970 2 197 480 0x006c9003, // 971 2 198 474 0x006cb303, // 972 2 199 470 0x006cd303, // 973 2 200 466 0x006cf603, // 974 2 201 462 0x006d1803, // 975 2 202 456 0x006d3803, // 976 2 203 452 0x006d5803, // 977 2 204 444 0x006d7803, // 978 2 205 438 0x006d9a03, // 979 2 206 431 0x006dba03, // 980 2 207 426 0x006ddc03, // 981 2 208 423 0x006dfa03, // 982 2 209 415 0x006e1f01, // 983 2 210 407 0x006e4209, // 984 2 211 401 0x006e6209, // 985 2 212 383 0x006e8309, // 986 2 213 364 0x006ea409, // 987 2 214 355 0x006ec709, // 988 2 215 354 0x006ee509, // 989 2 216 361 0x006f0809, // 990 2 217 360 0x006f2809, // 991 2 218 365 0x006f4901, // 992 2 219 374 0x006f6701, // 993 2 220 381 0x006f8901, // 994 2 221 380 0x006fa901, // 995 2 222 382 0x006fcb01, // 996 2 223 384 0x006fea01, // 997 2 224 394 0x00700b01, // 998 2 225 395 0x00702d09, // 999 2 226 402 0x00704e09, // 1000 2 227 416 0x00706f09, // 1001 2 228 410 0x00709109, // 1002 2 229 416 0x0070b101, // 1003 2 230 422 0x0070d301, // 1004 2 231 429 0x0070f401, // 1005 2 232 427 0x00711301, // 1006 2 233 429 0x00713101, // 1007 2 234 436 0x00715201, // 1008 2 235 443 0x00717301, // 1009 2 236 462 0x00719601, // 1010 2 237 472 0x0071b701, // 1011 2 238 470 0x0071d501, // 1012 2 239 471 0x0071f701, // 1013 2 240 472 0x00721701, // 1014 2 241 470 0x00723901, // 1015 2 242 477 0x00725a01, // 1016 2 243 482 0x00727b01, // 1017 2 244 486 0x00729b01, // 1018 2 245 484 0x0072be01, // 1019 2 246 490 0x0072e005, // 1020 2 247 492 0x0072fe05, // 1021 2 248 495 0x00732005, // 1022 2 249 497 0x00734001, // 1023 2 250 484 0x00736201, // 1024 2 251 486 0x00738301, // 1025 2 252 494 0x0073a501, // 1026 2 253 508 0x0073c601, // 1027 2 254 494 0x0073e601, // 1028 2 255 504 0x00740801, // 1029 2 256 511 0x00742501, // 1030 2 257 519 0x00744801, // 1031 2 258 523 0x00746a01, // 1032 2 259 530 0x00748c01, // 1033 2 260 536 0x0074ac01, // 1034 2 261 544 0x0074d001, // 1035 2 262 552 0x0074ed01, // 1036 2 263 558 0x00751101, // 1037 2 264 566 0x00753201, // 1038 2 265 574 0x00755301, // 1039 2 266 585 0x00757401, // 1040 2 267 591 0x00759601, // 1041 2 268 598 0x0075b701, // 1042 2 269 607 0x0075da01, // 1043 2 270 541 0x0075fb01, // 1044 2 271 432 0x00761b09, // 1045 2 272 430 0x00763b09, // 1046 2 273 437 0x00765e01, // 1047 2 274 442 0x00767d01, // 1048 2 275 440 0x0076a101, // 1049 2 276 454 0x0076bf01, // 1050 2 277 461 0x0076e101, // 1051 2 278 454 0x00770301, // 1052 2 279 450 0x00772301, // 1053 2 280 454 0x00774301, // 1054 2 281 458 0x00776501, // 1055 2 282 470 0x00778601, // 1056 2 283 464 0x0077a601, // 1057 2 284 472 0x0077c701, // 1058 2 285 469 0x0077e801, // 1059 2 286 473 0x00780a01, // 1060 2 287 468 0x00782701, // 1061 2 288 485 0x00784c01, // 1062 2 289 483 0x00786a01, // 1063 2 290 483 0x00788c01, // 1064 2 291 491 0x0078ae01, // 1065 2 292 487 0x0078ce01, // 1066 2 293 496 0x0078f001, // 1067 2 294 490 0x00791201, // 1068 2 295 499 0x00793301, // 1069 2 296 494 0x00795309, // 1070 2 297 509 0x00797509, // 1071 2 298 501 0x00799409, // 1072 2 299 508 0x0079b501, // 1073 2 300 520 0x0079d701, // 1074 2 301 506 0x0079f901, // 1075 2 302 507 0x007a1a01, // 1076 2 303 509 0x007a3b01, // 1077 2 304 510 0x007a5b01, // 1078 2 305 511 0x007a7e01, // 1079 3 305 511 0x007a9c01, // 1080 3 305 515 0x007abe01, // 1081 3 305 487 0x007ae001, // 1082 3 305 480 0x007b0001, // 1083 3 305 464 0x007b2001, // 1084 3 305 451 0x007b4201, // 1085 3 305 433 0x007b6101, // 1086 3 305 442 0x007b8301, // 1087 3 305 437 0x007ba500, // 1088 3 305 439 0x007bc300, // 1089 3 305 434 0x007be600, // 1090 3 305 437 0x007c0800, // 1091 3 305 441 0x007c2800, // 1092 3 305 444 0x007c4800, // 1093 3 305 445 0x007c6a00, // 1094 3 305 389 0x007c8d00, // 1095 3 305 387 0x007cab00, // 1096 3 305 355 0x007ccd00, // 1097 3 305 362 0x007cee00, // 1098 3 305 341 0x007d0f00, // 1099 3 305 312 0x007d3100, // 1100 3 305 274 0x007d5200, // 1101 3 305 250 0x007d7300, // 1102 3 305 222 0x007d9700, // 1103 3 305 197 0x007db600, // 1104 3 305 175 0x007dd500, // 1105 3 305 155 0x007df700, // 1106 3 305 139 0x007e1800, // 1107 3 305 124 0x007e3900, // 1108 3 305 117 0x007e5900, // 1109 3 305 102 0x007e7c00, // 1110 3 305 94 0x007e9900, // 1111 3 305 80 0x007ebb00, // 1112 3 305 78 0x007edc00, // 1113 3 305 66 0x007efd00, // 1114 3 305 61 0x007f1f00, // 1115 3 305 49 0x007f4000, // 1116 3 305 56 0x007f6100, // 1117 3 305 44 0x007f8300, // 1118 3 305 39 0x007fa420, // 1119 3 305 33 0x007fc020, // 1120 0 346 33 0x007fe000, // 1121 0 346 33 0x00800000, // 1122 0 346 33 0x00800300, // 1123 0 346 33 0x00802000, // 1124 0 346 33 0x00802500, // 1125 0 346 33 0x00804200, // 1126 0 346 33 0x00804800, // 1127 0 346 33 0x00806200, // 1128 0 346 33 0x00806700, // 1129 0 346 33 0x00808400, // 1130 0 346 33 0x00808900, // 1131 0 346 33 0x0080a400, // 1132 0 346 33 0x0080a900, // 1133 0 346 33 0x0080c600, // 1134 0 346 33 0x0080c900, // 1135 0 346 33 0x0080e600, // 1136 0 346 33 0x0080e900, // 1137 0 346 33 0x00810700, // 1138 0 346 33 0x00810c00, // 1139 0 346 33 0x00812900, // 1140 0 346 33 0x00812f00, // 1141 0 346 33 0x00814a00, // 1142 0 346 33 0x00814e00, // 1143 0 346 33 0x00816b00, // 1144 0 346 33 0x00817000, // 1145 0 346 33 0x00818b02, // 1146 0 346 33 0x00819102, // 1147 0 346 33 0x0081ad02, // 1148 0 346 33 0x0081b202, // 1149 0 346 33 0x0081ce02, // 1150 0 346 33 0x0081d200, // 1151 0 346 33 0x0081ed00, // 1152 0 346 33 0x0081f200, // 1153 0 346 33 0x00821100, // 1154 0 346 33 0x00822f00, // 1155 0 346 33 0x00823500, // 1156 0 346 33 0x00825300, // 1157 0 346 33 0x00827300, // 1158 0 346 33 0x00827800, // 1159 0 346 33 0x00829300, // 1160 0 346 33 0x00829800, // 1161 0 346 33 0x0082b500, // 1162 0 346 33 0x0082b900, // 1163 0 346 33 0x0082d600, // 1164 0 346 33 0x0082dc00, // 1165 0 346 33 0x0082f702, // 1166 0 346 33 0x0082fb02, // 1167 0 346 33 0x00831702, // 1168 0 346 33 0x00831b02, // 1169 0 346 33 0x00833902, // 1170 0 346 33 0x00833e02, // 1171 0 346 33 0x00835900, // 1172 0 346 33 0x00835d00, // 1173 0 346 33 0x00837b00, // 1174 0 346 33 0x00837f00, // 1175 0 346 33 0x00839d00, // 1176 0 346 33 0x0083bd00, // 1177 0 346 33 0x0083c100, // 1178 0 346 33 0x0083dc00, // 1179 0 346 33 0x0083e200, // 1180 0 346 33 0x0083fc00, // 1181 0 346 33 0x00840300, // 1182 0 346 33 0x00841e00, // 1183 0 346 33 0x00842400, // 1184 0 346 33 0x00843f00, // 1185 0 346 33 0x00844500, // 1186 0 346 33 0x00846100, // 1187 0 346 33 0x00846600, // 1188 0 346 33 0x00848200, // 1189 0 346 33 0x00848600, // 1190 0 346 33 0x0084a300, // 1191 0 346 33 0x0084a800, // 1192 0 346 33 0x0084c404, // 1193 0 346 33 0x0084c904, // 1194 0 346 33 0x0084e604, // 1195 0 346 33 0x0084eb04, // 1196 0 346 33 0x00850704, // 1197 0 346 33 0x00850b04, // 1198 0 346 33 0x00852900, // 1199 0 346 33 0x00854900, // 1200 0 346 33 0x00854c00, // 1201 0 346 33 0x00856904, // 1202 0 346 33 0x00856d04, // 1203 0 346 33 0x00858c04, // 1204 0 346 33 0x0085aa00, // 1205 0 346 33 0x0085b000, // 1206 0 346 33 0x0085cc00, // 1207 0 346 33 0x0085d000, // 1208 0 346 33 0x0085ed00, // 1209 0 346 33 0x0085f204, // 1210 0 346 33 0x00860e04, // 1211 0 346 33 0x00861304, // 1212 0 346 33 0x00863000, // 1213 0 346 33 0x00863300, // 1214 0 346 33 0x00865000, // 1215 0 346 33 0x00865400, // 1216 0 346 33 0x00867300, // 1217 0 346 33 0x00869104, // 1218 0 346 33 0x00869704, // 1219 0 346 33 0x0086b400, // 1220 0 346 33 0x0086b800, // 1221 0 346 33 0x0086d400, // 1222 0 346 33 0x0086d900, // 1223 0 346 33 0x0086f600, // 1224 0 346 33 0x0086fc00, // 1225 0 346 33 0x00871604, // 1226 0 346 33 0x00871b04, // 1227 0 346 33 0x00873704, // 1228 0 346 33 0x00873c04, // 1229 0 346 33 0x00875800, // 1230 0 346 33 0x00875d00, // 1231 0 346 33 0x00877900, // 1232 0 346 33 0x00877e00, // 1233 0 346 33 0x00879b04, // 1234 0 346 33 0x00879f04, // 1235 0 346 33 0x0087bc04, // 1236 0 346 33 0x0087c104, // 1237 0 346 33 0x0087db00, // 1238 0 346 33 0x0087e000, // 1239 0 346 33 0x0087ff00, // 1240 0 346 33 0x00881f00, // 1241 0 346 33 0x00882304, // 1242 0 346 33 0x00883e04, // 1243 0 346 33 0x00884304, // 1244 0 346 33 0x00885f00, // 1245 0 346 33 0x00886500, // 1246 0 346 33 0x00888200, // 1247 0 346 33 0x00888500, // 1248 0 346 33 0x0088a400, // 1249 0 346 33 0x0088c304, // 1250 0 346 33 0x0088c804, // 1251 0 346 33 0x0088e604, // 1252 0 346 33 0x00890600, // 1253 0 346 33 0x00890a00, // 1254 0 346 33 0x00892500, // 1255 0 346 33 0x00892a00, // 1256 0 346 33 0x00894804, // 1257 0 346 33 0x00894c04, // 1258 0 346 33 0x00896804, // 1259 0 346 33 0x00896c04, // 1260 0 346 33 0x00898b00, // 1261 0 346 33 0x0089aa00, // 1262 0 346 33 0x0089af00, // 1263 0 346 33 0x0089ca00, // 1264 0 346 33 0x0089d004, // 1265 0 346 33 0x0089eb04, // 1266 0 346 33 0x0089f104, // 1267 0 346 33 0x008a0d00, // 1268 0 346 33 0x008a1100, // 1269 0 346 33 0x008a3100, // 1270 0 346 33 0x008a5000, // 1271 0 346 33 0x008a5400, // 1272 0 346 33 0x008a7004, // 1273 0 346 33 0x008a7404, // 1274 0 346 33 0x008a9104, // 1275 0 346 33 0x008a9600, // 1276 0 346 33 0x008ab300, // 1277 0 346 33 0x008ab800, // 1278 0 346 33 0x008ad400, // 1279 0 346 33 0x008ad700, // 1280 0 346 33 0x008af604, // 1281 0 346 33 0x008b1604, // 1282 0 346 33 0x008b1c04, // 1283 0 346 33 0x008b3700, // 1284 0 346 33 0x008b3a00, // 1285 0 346 33 0x008b5800, // 1286 0 346 33 0x008b5d00, // 1287 0 346 33 0x008b7800, // 1288 0 346 33 0x008b7c00, // 1289 0 346 33 0x008b9b04, // 1290 0 346 33 0x008bbb00, // 1291 0 346 33 0x008bbf00, // 1292 0 346 33 0x008bdc00, // 1293 0 346 33 0x008bdf00, // 1294 0 346 33 0x008bfc00, // 1295 0 346 33 0x008c0000, // 1296 0 346 33 0x008c1f04, // 1297 0 346 33 0x008c3f04, // 1298 0 346 33 0x008c4204, // 1299 0 346 33 0x008c6000, // 1300 0 346 33 0x008c6300, // 1301 0 346 33 0x008c8200, // 1302 0 346 33 0x008ca000, // 1303 0 346 33 0x008ca500, // 1304 0 346 33 0x008cc300, // 1305 0 346 33 0x008cc800, // 1306 0 346 33 0x008ce400, // 1307 0 346 33 0x008ce800, // 1308 0 346 33 0x008d0500, // 1309 0 346 33 0x008d0b00, // 1310 0 346 33 0x008d2700, // 1311 0 346 33 0x008d4700, // 1312 0 346 33 0x008d4a00, // 1313 0 346 33 0x008d6900, // 1314 0 346 33 0x008d8600, // 1315 0 346 33 0x008d8d00, // 1316 0 346 33 0x008da900, // 1317 0 346 33 0x008dae00, // 1318 0 346 33 0x008dca00, // 1319 0 346 33 0x008dcf00, // 1320 0 346 33 0x008deb00, // 1321 0 346 33 0x008df000, // 1322 0 346 33 0x008e0e00, // 1323 0 346 33 0x008e2e00, // 1324 0 346 33 0x008e3300, // 1325 0 346 33 0x008e5010, // 1326 0 346 33 0x008ea400, // 1327 4 0 0 0x00924900, // 1327 5 0 0 0x00924b00, // 1327 1 0 0 0x00925500, // 1328 1 0 0 0x00927800, // 1329 1 0 0 0x00929800, // 1330 1 0 0 0x0092ba00, // 1331 1 0 0 0x0092dc00, // 1332 1 0 0 0x0092fc00, // 1333 1 0 0 0x00931e00, // 1334 1 0 0 0x00934000, // 1335 1 0 0 0x00936000, // 1336 1 0 0 0x00938000, // 1337 1 0 0 0x0093a100, // 1338 1 0 0 0x0093be00, // 1339 1 0 0 0x0093e300, // 1340 1 0 0 0x00940200, // 1341 1 0 0 0x00942400, // 1342 1 0 0 0x00944500, // 1343 1 0 0 0x00946700, // 1344 1 0 0 0x00948700, // 1345 1 0 0 0x0094a900, // 1346 1 0 0 0x0094ca00, // 1347 1 0 0 0x0094eb00, // 1348 1 0 0 0x00950900, // 1349 1 0 0 0x00952d00, // 1350 1 0 0 0x00954f00, // 1351 1 0 0 0x00956d00, // 1352 1 0 0 0x00958e00, // 1353 1 0 0 0x0095b000, // 1354 1 0 0 0x0095d400, // 1355 1 0 0 0x0095f400, // 1356 1 0 0 0x00961700, // 1357 1 0 0 0x00963500, // 1358 1 0 0 0x00965700, // 1359 1 0 0 0x00967700, // 1360 1 0 0 0x00969700, // 1361 1 0 0 0x0096b800, // 1362 1 0 0 0x0096db00, // 1363 1 0 0 0x0096fc00, // 1364 1 0 0 0x00971c00, // 1365 1 0 0 0x00973c00, // 1366 1 0 0 0x00975e00, // 1367 1 0 0 0x00978000, // 1368 1 0 0 0x0097a100, // 1369 1 0 0 0x0097c000, // 1370 1 0 0 0x0097e200, // 1371 1 0 0 0x00980400, // 1372 1 0 0 0x00982200, // 1373 1 0 0 0x00984600, // 1374 1 0 0 0x00986300, // 1375 1 0 0 0x00988800, // 1376 1 0 0 0x0098a700, // 1377 1 0 0 0x0098ca00, // 1378 1 0 0 0x0098ea00, // 1379 1 0 0 0x00990b00, // 1380 1 0 0 0x00992c00, // 1381 1 0 0 0x00994900, // 1382 1 0 0 0x00996a00, // 1383 1 0 0 0x00998d00, // 1384 1 0 0 0x0099ae00, // 1385 1 0 0 0x0099d000, // 1386 1 0 0 0x0099f300, // 1387 1 0 0 0x009a1000, // 1388 1 0 0 0x009a3500, // 1389 1 0 0 0x009a5400, // 1390 1 0 0 0x009a7600, // 1391 1 0 0 0x009a9700, // 1392 1 0 0 0x009ab700, // 1393 1 0 0 0x009ad900, // 1394 1 0 0 0x009afc00, // 1395 1 0 0 0x009b1a00, // 1396 2 1 0 0x009b3c00, // 1397 2 2 12 0x009b5c00, // 1398 2 3 25 0x009b7f00, // 1399 2 4 37 0x009b9f00, // 1400 2 5 50 0x009bc000, // 1401 2 6 62 0x009be000, // 1402 2 7 67 0x009bff00, // 1403 2 8 69 0x009c2300, // 1404 2 9 89 0x009c4300, // 1405 2 10 114 0x009c6600, // 1406 2 11 141 0x009c8700, // 1407 2 12 161 0x009ca800, // 1408 2 13 178 0x009cca00, // 1409 2 14 195 0x009ceb00, // 1410 2 15 203 0x009d0b00, // 1411 2 16 215 0x009d2c00, // 1412 2 17 223 0x009d4d00, // 1413 2 18 234 0x009d6f00, // 1414 2 19 249 0x009d8f20, // 1415 2 20 255 0x009da920, // 1416 0 20 255 0x009dc800, // 1417 0 20 255 0x009de800, // 1418 0 20 255 0x009deb00, // 1419 0 20 255 0x009e0a00, // 1420 0 20 255 0x009e2a00, // 1421 0 20 255 0x009e2f00, // 1422 0 20 255 0x009e4b00, // 1423 0 20 255 0x009e4f00, // 1424 0 20 255 0x009e6c00, // 1425 0 20 255 0x009e7100, // 1426 0 20 255 0x009e8b00, // 1427 0 20 255 0x009e9100, // 1428 0 20 255 0x009eae00, // 1429 0 20 255 0x009eb200, // 1430 0 20 255 0x009ed000, // 1431 0 20 255 0x009eef00, // 1432 0 20 255 0x009ef300, // 1433 0 20 255 0x009f1200, // 1434 0 20 255 0x009f3100, // 1435 0 20 255 0x009f3600, // 1436 0 20 255 0x009f5300, // 1437 0 20 255 0x009f5800, // 1438 0 20 255 0x009f7400, // 1439 0 20 255 0x009f7700, // 1440 0 20 255 0x009f9600, // 1441 0 20 255 0x009fb400, // 1442 0 20 255 0x009fba00, // 1443 0 20 255 0x009fd700, // 1444 0 20 255 0x009fdc00, // 1445 0 20 255 0x009ff810, // 1446 0 20 255 0x009ffb10, // 1447 0 20 255 0x00a01810, // 1448 0 20 255 0x00a01d10, // 1449 0 20 255 0x00a03a00, // 1450 0 20 255 0x00a03e00, // 1451 0 20 255 0x00a05b00, // 1452 0 20 255 0x00a05e00, // 1453 0 20 255 0x00a07d00, // 1454 0 20 255 0x00a09c00, // 1455 0 20 255 0x00a0a000, // 1456 0 20 255 0x00a0bf00, // 1457 0 20 255 0x00a0dd00, // 1458 0 20 255 0x00a0e200, // 1459 0 20 255 0x00a10000, // 1460 0 20 255 0x00a10400, // 1461 0 20 255 0x00a12200, // 1462 0 20 255 0x00a14000, // 1463 0 20 255 0x00a14600, // 1464 0 20 255 0x00a16300, // 1465 0 20 255 0x00a16800, // 1466 0 20 255 0x00a18320, // 1467 0 20 255 0x00a18920, // 1468 2 20 255 0x00a1ab20, // 1469 2 21 270 0x00a1ce00, // 1470 2 22 276 0x00a1f000, // 1471 2 23 289 0x00a21000, // 1472 2 24 295 0x00a23200, // 1473 2 25 300 0x00a25300, // 1474 2 26 306 0x00a27300, // 1475 2 27 313 0x00a29400, // 1476 2 28 324 0x00a2b600, // 1477 2 29 327 0x00a2d700, // 1478 2 30 338 0x00a2f800, // 1479 2 31 352 0x00a31800, // 1480 2 32 349 0x00a33900, // 1481 2 33 357 0x00a35900, // 1482 2 34 373 0x00a37b00, // 1483 2 35 389 0x00a39900, // 1484 2 36 379 0x00a3bb00, // 1485 2 37 378 0x00a3de00, // 1486 2 38 389 0x00a3ff00, // 1487 2 39 392 0x00a41c00, // 1488 2 40 394 0x00a43e00, // 1489 2 41 403 0x00a46000, // 1490 2 42 407 0x00a48400, // 1491 2 43 411 0x00a4a400, // 1492 2 44 413 0x00a4c300, // 1493 2 45 426 0x00a4e700, // 1494 2 46 434 0x00a50700, // 1495 2 47 439 0x00a52700, // 1496 2 48 443 0x00a54a00, // 1497 2 49 442 0x00a56b00, // 1498 2 50 454 0x00a58c00, // 1499 2 51 451 0x00a5ab00, // 1500 2 52 459 0x00a5cd00, // 1501 2 53 469 0x00a5f000, // 1502 2 54 467 0x00a61000, // 1503 2 55 481 0x00a62f00, // 1504 2 56 474 0x00a65200, // 1505 2 57 479 0x00a67300, // 1506 2 58 487 0x00a69300, // 1507 2 59 494 0x00a6b400, // 1508 2 60 493 0x00a6d400, // 1509 2 61 506 0x00a6f700, // 1510 2 62 513 0x00a71600, // 1511 2 63 526 0x00a73a00, // 1512 2 64 531 0x00a75900, // 1513 2 65 545 0x00a77900, // 1514 2 66 549 0x00a79c00, // 1515 2 67 559 0x00a7bd00, // 1516 2 68 566 0x00a7dd00, // 1517 2 69 575 0x00a7fe00, // 1518 2 70 581 0x00a82000, // 1519 2 71 591 0x00a84100, // 1520 2 72 596 0x00a86300, // 1521 2 73 606 0x00a88300, // 1522 2 74 611 0x00a8a400, // 1523 2 75 614 0x00a8c420, // 1524 2 76 618 0x00a8de20, // 1525 0 76 618 0x00a8fe20, // 1526 0 76 618 0x00a90320, // 1527 0 76 618 0x00a91f00, // 1528 0 76 618 0x00a92200, // 1529 0 76 618 0x00a94000, // 1530 0 76 618 0x00a94500, // 1531 0 76 618 0x00a96100, // 1532 0 76 618 0x00a96400, // 1533 0 76 618 0x00a98300, // 1534 0 76 618 0x00a9a100, // 1535 0 76 618 0x00a9a700, // 1536 0 76 618 0x00a9c400, // 1537 0 76 618 0x00a9c900, // 1538 0 76 618 0x00a9e400, // 1539 0 76 618 0x00a9e900, // 1540 0 76 618 0x00aa0600, // 1541 0 76 618 0x00aa0a00, // 1542 0 76 618 0x00aa2800, // 1543 0 76 618 0x00aa4810, // 1544 0 76 618 0x00aa4b10, // 1545 0 76 618 0x00aa6910, // 1546 0 76 618 0x00aa6c10, // 1547 0 76 618 0x00aa8b10, // 1548 0 76 618 0x00aaab00, // 1549 0 76 618 0x00aaaf00, // 1550 0 76 618 0x00aacc00, // 1551 0 76 618 0x00aad100, // 1552 0 76 618 0x00aaeb00, // 1553 0 76 618 0x00aaf000, // 1554 0 76 618 0x00ab0f00, // 1555 0 76 618 0x00ab2d00, // 1556 0 76 618 0x00ab3200, // 1557 0 76 618 0x00ab5100, // 1558 0 76 618 0x00ab7000, // 1559 0 76 618 0x00ab7400, // 1560 0 76 618 0x00ab9200, // 1561 0 76 618 0x00ab9500, // 1562 0 76 618 0x00abb300, // 1563 0 76 618 0x00abb700, // 1564 0 76 618 0x00abd500, // 1565 0 76 618 0x00abf100, // 1566 0 76 618 0x00abf800, // 1567 0 76 618 0x00ac1600, // 1568 0 76 618 0x00ac1900, // 1569 0 76 618 0x00ac3800, // 1570 0 76 618 0x00ac5700, // 1571 0 76 618 0x00ac5b00, // 1572 0 76 618 0x00ac7a00, // 1573 0 76 618 0x00ac9a00, // 1574 0 76 618 0x00ac9f00, // 1575 0 76 618 0x00acbc00, // 1576 0 76 618 0x00acdb00, // 1577 0 76 618 0x00ace000, // 1578 0 76 618 0x00acfd00, // 1579 0 76 618 0x00ad0000, // 1580 0 76 618 0x00ad1f00, // 1581 0 76 618 0x00ad3e00, // 1582 0 76 618 0x00ad4400, // 1583 0 76 618 0x00ad6000, // 1584 0 76 618 0x00ad6400, // 1585 0 76 618 0x00ad8000, // 1586 0 76 618 0x00ad8500, // 1587 0 76 618 0x00ada200, // 1588 0 76 618 0x00ada800, // 1589 0 76 618 0x00adc400, // 1590 0 76 618 0x00ade400, // 1591 0 76 618 0x00ade800, // 1592 0 76 618 0x00ae0300, // 1593 0 76 618 0x00ae0900, // 1594 0 76 618 0x00ae2500, // 1595 0 76 618 0x00ae2900, // 1596 0 76 618 0x00ae4600, // 1597 0 76 618 0x00ae4b00, // 1598 0 76 618 0x00ae6800, // 1599 0 76 618 0x00ae6b00, // 1600 0 76 618 0x00ae8800, // 1601 0 76 618 0x00ae8d00, // 1602 0 76 618 0x00aeab10, // 1603 0 76 618 0x00aec910, // 1604 0 76 618 0x00aecf10, // 1605 0 76 618 0x00aeec00, // 1606 0 76 618 0x00aef000, // 1607 0 76 618 0x00af0d00, // 1608 0 76 618 0x00af1000, // 1609 0 76 618 0x00af2e00, // 1610 0 76 618 0x00af3200, // 1611 0 76 618 0x00af4d00, // 1612 0 76 618 0x00af5300, // 1613 0 76 618 0x00af6e00, // 1614 0 76 618 0x00af7300, // 1615 0 76 618 0x00af9200, // 1616 0 76 618 0x00afb000, // 1617 0 76 618 0x00afb600, // 1618 0 76 618 0x00afd300, // 1619 0 76 618 0x00afd600, // 1620 0 76 618 0x00aff420, // 1621 0 76 618 0x00aff820, // 1622 2 76 618 0x00b01a20, // 1623 2 77 632 0x00b03e00, // 1624 2 78 621 0x00b06000, // 1625 2 79 621 0x00b07e00, // 1626 2 80 626 0x00b0a200, // 1627 2 81 641 0x00b0c300, // 1628 2 82 632 0x00b0e300, // 1629 2 83 634 0x00b10500, // 1630 2 84 651 0x00b12500, // 1631 2 85 636 0x00b14900, // 1632 2 86 553 0x00b16800, // 1633 2 87 548 0x00b18900, // 1634 2 88 586 0x00b1aa00, // 1635 2 89 591 0x00b1cb00, // 1636 2 90 589 0x00b1ec00, // 1637 2 91 585 0x00b20c00, // 1638 2 92 568 0x00b22e00, // 1639 2 93 563 0x00b25000, // 1640 2 94 565 0x00b27000, // 1641 2 95 563 0x00b29100, // 1642 2 96 561 0x00b2b000, // 1643 2 97 555 0x00b2d400, // 1644 2 98 554 0x00b2f400, // 1645 2 99 460 0x00b31600, // 1646 2 100 457 0x00b33700, // 1647 2 101 448 0x00b35600, // 1648 2 102 438 0x00b37600, // 1649 2 103 431 0x00b39a20, // 1650 2 104 429 0x00b3b220, // 1651 0 104 429 0x00b3d220, // 1652 0 104 429 0x00b3d620, // 1653 0 104 429 0x00b3f100, // 1654 0 104 429 0x00b3f600, // 1655 0 104 429 0x00b41500, // 1656 0 104 429 0x00b43400, // 1657 0 104 429 0x00b43800, // 1658 0 104 429 0x00b45500, // 1659 0 104 429 0x00b45a00, // 1660 0 104 429 0x00b47700, // 1661 0 104 429 0x00b47b00, // 1662 0 104 429 0x00b49900, // 1663 0 104 429 0x00b4b500, // 1664 0 104 429 0x00b4bc00, // 1665 0 104 429 0x00b4db00, // 1666 0 104 429 0x00b4f900, // 1667 0 104 429 0x00b4ff00, // 1668 0 104 429 0x00b51c00, // 1669 0 104 429 0x00b51f00, // 1670 0 104 429 0x00b53d10, // 1671 0 104 429 0x00b54010, // 1672 0 104 429 0x00b55e10, // 1673 0 104 429 0x00b56210, // 1674 0 104 429 0x00b58010, // 1675 0 104 429 0x00b5a000, // 1676 0 104 429 0x00b5a300, // 1677 0 104 429 0x00b5c200, // 1678 0 104 429 0x00b5e200, // 1679 0 104 429 0x00b5e600, // 1680 0 104 429 0x00b60400, // 1681 0 104 429 0x00b62210, // 1682 0 104 429 0x00b62810, // 1683 0 104 429 0x00b64410, // 1684 0 104 429 0x00b64810, // 1685 0 104 429 0x00b66510, // 1686 0 104 429 0x00b66a10, // 1687 0 104 429 0x00b68600, // 1688 0 104 429 0x00b68b00, // 1689 0 104 429 0x00b6a700, // 1690 0 104 429 0x00b6ac00, // 1691 0 104 429 0x00b6c800, // 1692 0 104 429 0x00b6cd00, // 1693 0 104 429 0x00b6ea00, // 1694 0 104 429 0x00b6ee00, // 1695 0 104 429 0x00b70c00, // 1696 0 104 429 0x00b72a00, // 1697 0 104 429 0x00b72f00, // 1698 0 104 429 0x00b74b00, // 1699 0 104 429 0x00b75100, // 1700 0 104 429 0x00b76e00, // 1701 0 104 429 0x00b77200, // 1702 0 104 429 0x00b79000, // 1703 0 104 429 0x00b7af10, // 1704 0 104 429 0x00b7b410, // 1705 0 104 429 0x00b7d100, // 1706 0 104 429 0x00b7d700, // 1707 0 104 429 0x00b7f300, // 1708 0 104 429 0x00b81200, // 1709 0 104 429 0x00b81800, // 1710 0 104 429 0x00b83300, // 1711 0 104 429 0x00b83800, // 1712 0 104 429 0x00b85500, // 1713 0 104 429 0x00b85900, // 1714 0 104 429 0x00b87600, // 1715 0 104 429 0x00b87a00, // 1716 0 104 429 0x00b89700, // 1717 0 104 429 0x00b89b00, // 1718 0 104 429 0x00b8b900, // 1719 0 104 429 0x00b8d800, // 1720 0 104 429 0x00b8dc00, // 1721 0 104 429 0x00b8fc10, // 1722 0 104 429 0x00b91b10, // 1723 0 104 429 0x00b92010, // 1724 0 104 429 0x00b93b00, // 1725 0 104 429 0x00b93f00, // 1726 0 104 429 0x00b95d00, // 1727 0 104 429 0x00b96200, // 1728 0 104 429 0x00b97e00, // 1729 0 104 429 0x00b98200, // 1730 0 104 429 0x00b99f00, // 1731 0 104 429 0x00b9a300, // 1732 0 104 429 0x00b9c000, // 1733 0 104 429 0x00b9c500, // 1734 0 104 429 0x00b9e000, // 1735 0 104 429 0x00b9e500, // 1736 0 104 429 0x00ba0200, // 1737 0 104 429 0x00ba0500, // 1738 0 104 429 0x00ba2400, // 1739 0 104 429 0x00ba4300, // 1740 0 104 429 0x00ba4800, // 1741 0 104 429 0x00ba6500, // 1742 0 104 429 0x00ba6900, // 1743 0 104 429 0x00ba8510, // 1744 0 104 429 0x00ba8910, // 1745 0 104 429 0x00baa810, // 1746 0 104 429 0x00bac600, // 1747 0 104 429 0x00bacb00, // 1748 0 104 429 0x00bae900, // 1749 0 104 429 0x00baee00, // 1750 0 104 429 0x00bb0800, // 1751 0 104 429 0x00bb0e00, // 1752 0 104 429 0x00bb2b10, // 1753 0 104 429 0x00bb2f10, // 1754 0 104 429 0x00bb4d10, // 1755 0 104 429 0x00bb6a00, // 1756 0 104 429 0x00bb7100, // 1757 0 104 429 0x00bb8c00, // 1758 0 104 429 0x00bb9200, // 1759 0 104 429 0x00bbae00, // 1760 0 104 429 0x00bbb200, // 1761 0 104 429 0x00bbd110, // 1762 0 104 429 0x00bbee10, // 1763 0 104 429 0x00bbf510, // 1764 0 104 429 0x00bc1100, // 1765 0 104 429 0x00bc1600, // 1766 0 104 429 0x00bc3300, // 1767 0 104 429 0x00bc3800, // 1768 0 104 429 0x00bc5300, // 1769 0 104 429 0x00bc5800, // 1770 0 104 429 0x00bc7500, // 1771 0 104 429 0x00bc7900, // 1772 0 104 429 0x00bc9600, // 1773 0 104 429 0x00bc9a00, // 1774 0 104 429 0x00bcb700, // 1775 0 104 429 0x00bcbc00, // 1776 0 104 429 0x00bcd700, // 1777 0 104 429 0x00bcdb00, // 1778 0 104 429 0x00bcfb00, // 1779 0 104 429 0x00bd1900, // 1780 0 104 429 0x00bd1d00, // 1781 0 104 429 0x00bd3c10, // 1782 0 104 429 0x00bd5c10, // 1783 0 104 429 0x00bd6110, // 1784 0 104 429 0x00bd7c00, // 1785 0 104 429 0x00bd8100, // 1786 0 104 429 0x00bd9e00, // 1787 0 104 429 0x00bda200, // 1788 0 104 429 0x00bdbf00, // 1789 0 104 429 0x00bdc400, // 1790 0 104 429 0x00bde000, // 1791 0 104 429 0x00bde400, // 1792 0 104 429 0x00be0100, // 1793 0 104 429 0x00be0500, // 1794 0 104 429 0x00be2300, // 1795 0 104 429 0x00be4300, // 1796 0 104 429 0x00be4700, // 1797 0 104 429 0x00be6200, // 1798 0 104 429 0x00be6800, // 1799 0 104 429 0x00be8200, // 1800 0 104 429 0x00be8a00, // 1801 0 104 429 0x00bea500, // 1802 0 104 429 0x00bea910, // 1803 0 104 429 0x00bec610, // 1804 0 104 429 0x00becb10, // 1805 0 104 429 0x00bee810, // 1806 0 104 429 0x00beeb10, // 1807 0 104 429 0x00bf0900, // 1808 0 104 429 0x00bf0d00, // 1809 0 104 429 0x00bf2a00, // 1810 0 104 429 0x00bf2e00, // 1811 0 104 429 0x00bf4b10, // 1812 0 104 429 0x00bf4f10, // 1813 0 104 429 0x00bf6b10, // 1814 0 104 429 0x00bf7010, // 1815 0 104 429 0x00bf8e00, // 1816 0 104 429 0x00bfad00, // 1817 0 104 429 0x00bfb100, // 1818 0 104 429 0x00bfcf00, // 1819 0 104 429 0x00bfd200, // 1820 0 104 429 0x00bff000, // 1821 0 104 429 0x00bff300, // 1822 0 104 429 0x00c01100, // 1823 0 104 429 0x00c01400, // 1824 0 104 429 0x00c03300, // 1825 0 104 429 0x00c05300, // 1826 0 104 429 0x00c05600, // 1827 0 104 429 0x00c07300, // 1828 0 104 429 0x00c07800, // 1829 0 104 429 0x00c09500, // 1830 0 104 429 0x00c09900, // 1831 0 104 429 0x00c0b410, // 1832 0 104 429 0x00c0ba10, // 1833 0 104 429 0x00c0d610, // 1834 0 104 429 0x00c0db10, // 1835 0 104 429 0x00c0f700, // 1836 0 104 429 0x00c0fb00, // 1837 0 104 429 0x00c11900, // 1838 0 104 429 0x00c11c00, // 1839 0 104 429 0x00c13a00, // 1840 0 104 429 0x00c14000, // 1841 0 104 429 0x00c15c00, // 1842 0 104 429 0x00c17b00, // 1843 0 104 429 0x00c18100, // 1844 0 104 429 0x00c19c00, // 1845 0 104 429 0x00c1a100, // 1846 0 104 429 0x00c1be00, // 1847 0 104 429 0x00c1c400, // 1848 0 104 429 0x00c1df20, // 1849 0 104 429 0x00c1e220, // 1850 2 104 429 0x00c20820, // 1851 2 105 424 0x00c22a20, // 1852 2 106 420 0x00c24900, // 1853 2 107 417 0x00c26900, // 1854 2 108 418 0x00c28c00, // 1855 2 109 404 0x00c2ac00, // 1856 2 110 392 0x00c2cd00, // 1857 2 111 392 0x00c2f000, // 1858 2 112 387 0x00c30c00, // 1859 2 113 391 0x00c32e00, // 1860 2 114 387 0x00c35100, // 1861 2 115 392 0x00c37300, // 1862 2 116 389 0x00c39400, // 1863 2 117 394 0x00c3b700, // 1864 2 118 398 0x00c3d600, // 1865 2 119 396 0x00c3f700, // 1866 2 120 403 0x00c41700, // 1867 2 121 405 0x00c43900, // 1868 2 122 411 0x00c45700, // 1869 2 123 411 0x00c47a00, // 1870 2 124 413 0x00c49b00, // 1871 2 125 413 0x00c4bd00, // 1872 2 126 421 0x00c4dc00, // 1873 2 127 424 0x00c4ff00, // 1874 2 128 428 0x00c51e00, // 1875 2 129 433 0x00c54100, // 1876 2 130 439 0x00c55e00, // 1877 2 131 444 0x00c57f00, // 1878 2 132 451 0x00c5a100, // 1879 2 133 453 0x00c5c400, // 1880 2 134 457 0x00c5e700, // 1881 2 135 462 0x00c60600, // 1882 2 136 460 0x00c62700, // 1883 2 137 467 0x00c64900, // 1884 2 138 468 0x00c66800, // 1885 2 139 472 0x00c68c00, // 1886 2 140 474 0x00c6ac00, // 1887 2 141 479 0x00c6cc00, // 1888 2 142 484 0x00c6ed00, // 1889 2 143 499 0x00c70f00, // 1890 2 144 492 0x00c73000, // 1891 2 145 493 0x00c74f00, // 1892 2 146 499 0x00c77300, // 1893 2 147 504 0x00c79300, // 1894 2 148 494 0x00c7b500, // 1895 2 149 493 0x00c7d300, // 1896 2 150 496 0x00c7f600, // 1897 2 151 502 0x00c81600, // 1898 2 152 506 0x00c83900, // 1899 2 153 513 0x00c85900, // 1900 2 154 501 0x00c87900, // 1901 2 155 497 0x00c89a00, // 1902 2 156 502 0x00c8bb00, // 1903 2 157 501 0x00c8dd00, // 1904 2 158 500 0x00c8fe00, // 1905 2 159 506 0x00c91c00, // 1906 2 160 507 0x00c93c00, // 1907 2 161 516 0x00c96000, // 1908 2 162 510 0x00c98000, // 1909 2 163 516 0x00c9a300, // 1910 2 164 507 0x00c9c100, // 1911 2 165 507 0x00c9e400, // 1912 2 166 510 0x00ca0300, // 1913 2 167 511 0x00ca2300, // 1914 2 168 513 0x00ca4300, // 1915 2 169 522 0x00ca6200, // 1916 2 170 516 0x00ca8600, // 1917 2 171 521 0x00caa700, // 1918 2 172 519 0x00caca00, // 1919 2 173 520 0x00caea00, // 1920 2 174 521 0x00cb0900, // 1921 2 175 524 0x00cb2b00, // 1922 2 176 523 0x00cb4d00, // 1923 2 177 516 0x00cb6c00, // 1924 2 178 514 0x00cb8f00, // 1925 2 179 499 0x00cbb000, // 1926 2 180 500 0x00cbcf00, // 1927 2 181 481 0x00cbf100, // 1928 2 182 482 0x00cc1200, // 1929 2 183 482 0x00cc3300, // 1930 2 184 484 0x00cc5500, // 1931 2 185 484 0x00cc7600, // 1932 2 186 483 0x00cc9800, // 1933 2 187 484 0x00ccba00, // 1934 2 188 489 0x00ccd800, // 1935 2 189 490 0x00ccf900, // 1936 2 190 490 0x00cd1b00, // 1937 2 191 493 0x00cd3d00, // 1938 2 192 495 0x00cd5d00, // 1939 2 193 511 0x00cd7f00, // 1940 2 194 522 0x00cda200, // 1941 2 195 518 0x00cdc200, // 1942 2 196 491 0x00cde400, // 1943 2 197 480 0x00ce0500, // 1944 2 198 474 0x00ce2700, // 1945 2 199 470 0x00ce4800, // 1946 2 200 466 0x00ce6400, // 1947 2 201 462 0x00ce8500, // 1948 2 202 456 0x00cea900, // 1949 2 203 452 0x00cec900, // 1950 2 204 444 0x00ceea00, // 1951 2 205 438 0x00cf0b00, // 1952 2 206 431 0x00cf2d00, // 1953 2 207 426 0x00cf4e00, // 1954 2 208 423 0x00cf6d00, // 1955 2 209 415 0x00cf8f00, // 1956 2 210 407 0x00cfaf00, // 1957 2 211 401 0x00cfd200, // 1958 2 212 383 0x00cff300, // 1959 2 213 364 0x00d01500, // 1960 2 214 355 0x00d03700, // 1961 2 215 354 0x00d05500, // 1962 2 216 361 0x00d07900, // 1963 2 217 360 0x00d09700, // 1964 2 218 365 0x00d0b800, // 1965 2 219 374 0x00d0db00, // 1966 2 220 381 0x00d0fc00, // 1967 2 221 380 0x00d11c00, // 1968 2 222 382 0x00d13d00, // 1969 2 223 384 0x00d15b00, // 1970 2 224 394 0x00d17e00, // 1971 2 225 395 0x00d1a000, // 1972 2 226 402 0x00d1c100, // 1973 2 227 416 0x00d1e000, // 1974 2 228 410 0x00d20000, // 1975 2 229 416 0x00d22200, // 1976 2 230 422 0x00d24100, // 1977 2 231 429 0x00d26200, // 1978 2 232 427 0x00d28200, // 1979 2 233 429 0x00d2a400, // 1980 2 234 436 0x00d2c600, // 1981 2 235 443 0x00d2e700, // 1982 2 236 462 0x00d30400, // 1983 2 237 472 0x00d30800, // 1984 2 237 472 0x00d32400, // 1985 2 238 470 0x00d32900, // 1986 2 238 470 0x00d34900, // 1987 2 239 471 0x00d36c00, // 1988 2 240 472 0x00d38900, // 1989 2 241 470 0x00d3aa00, // 1990 2 242 477 0x00d3cc00, // 1991 2 243 482 0x00d3ed00, // 1992 2 244 486 0x00d40e00, // 1993 2 245 484 0x00d43000, // 1994 2 246 490 0x00d45200, // 1995 2 247 492 0x00d47300, // 1996 2 248 495 0x00d49400, // 1997 2 249 497 0x00d4b600, // 1998 2 250 484 0x00d4d500, // 1999 2 251 486 0x00d4f700, // 2000 2 252 494 0x00d51800, // 2001 2 253 508 0x00d53700, // 2002 2 254 494 0x00d55a00, // 2003 2 255 504 0x00d57c00, // 2004 2 256 511 0x00d59d00, // 2005 2 257 519 0x00d5bb00, // 2006 2 258 523 0x00d5de00, // 2007 2 259 530 0x00d60000, // 2008 2 260 536 0x00d62200, // 2009 2 261 544 0x00d64400, // 2010 2 262 552 0x00d66300, // 2011 2 263 558 0x00d68100, // 2012 2 264 566 0x00d6a400, // 2013 2 265 574 0x00d6c700, // 2014 2 266 585 0x00d6e800, // 2015 2 267 591 0x00d70a00, // 2016 2 268 598 0x00d72b00, // 2017 2 269 607 0x00d74a00, // 2018 2 270 541 0x00d76b00, // 2019 2 271 432 0x00d78c00, // 2020 2 272 430 0x00d7ad00, // 2021 2 273 437 0x00d7cf00, // 2022 2 274 442 0x00d7ef00, // 2023 2 275 440 0x00d81000, // 2024 2 276 454 0x00d82f00, // 2025 2 277 461 0x00d85400, // 2026 2 278 454 0x00d87300, // 2027 2 279 450 0x00d89400, // 2028 2 280 454 0x00d8b400, // 2029 2 281 458 0x00d8d700, // 2030 2 282 470 0x00d8f700, // 2031 2 283 464 0x00d91800, // 2032 2 284 472 0x00d93a00, // 2033 2 285 469 0x00d95a00, // 2034 2 286 473 0x00d97b00, // 2035 2 287 468 0x00d99c00, // 2036 2 288 485 0x00d9bd00, // 2037 2 289 483 0x00d9df00, // 2038 2 290 483 0x00da0000, // 2039 2 291 491 0x00da2100, // 2040 2 292 487 0x00da4200, // 2041 2 293 496 0x00da6400, // 2042 2 294 490 0x00da8500, // 2043 2 295 499 0x00daa400, // 2044 2 296 494 0x00dac400, // 2045 2 297 509 0x00dae400, // 2046 2 298 501 0x00db0700, // 2047 2 299 508 0x00db2800, // 2048 2 300 520 0x00db4600, // 2049 2 301 506 0x00db6b00, // 2050 2 302 507 0x00db8b00, // 2051 2 303 509 0x00dbac00, // 2052 2 304 510 0x00dbcc00, // 2053 2 305 511 0x00dbee00, // 2054 3 305 511 0x00dc0e00, // 2055 3 305 511 0x00dc3100, // 2056 3 305 511 0x00dc5100, // 2057 3 305 511 0x00dc7100, // 2058 3 305 511 0x00dc9300, // 2059 3 305 511 0x00dcb400, // 2060 3 305 511 0x00dcd400, // 2061 3 305 511 0x00dcf500, // 2062 3 305 511 0x00dd1700, // 2063 3 305 511 0x00dd3900, // 2064 3 305 511 0x00dd5920, // 2065 3 305 511 0x00dd7320, // 2066 0 306 511 0x00dd7920, // 2067 0 306 511 0x00dd9500, // 2068 0 306 511 0x00dd9a00, // 2069 0 306 511 0x00ddb600, // 2070 0 306 511 0x00ddbb00, // 2071 0 306 511 0x00ddd900, // 2072 0 306 511 0x00ddf800, // 2073 0 306 511 0x00de0000, // 2074 0 306 511 0x00de1b00, // 2075 0 306 511 0x00de3904, // 2076 0 306 511 0x00de3f04, // 2077 0 306 511 0x00de5c04, // 2078 0 306 511 0x00de6004, // 2079 0 306 511 0x00de7d00, // 2080 0 306 511 0x00de8000, // 2081 0 306 511 0x00de9f00, // 2082 0 306 511 0x00debd00, // 2083 0 306 511 0x00dec300, // 2084 0 306 511 0x00dee004, // 2085 0 306 511 0x00dee404, // 2086 0 306 511 0x00df0204, // 2087 0 306 511 0x00df2100, // 2088 0 306 511 0x00df2600, // 2089 0 306 511 0x00df4400, // 2090 0 306 511 0x00df6304, // 2091 0 306 511 0x00df6804, // 2092 0 306 511 0x00df8504, // 2093 0 306 511 0x00df8a04, // 2094 0 306 511 0x00dfa600, // 2095 0 306 511 0x00dfaa00, // 2096 0 306 511 0x00dfc700, // 2097 0 306 511 0x00dfcc00, // 2098 0 306 511 0x00dfe704, // 2099 0 306 511 0x00dfeb04, // 2100 0 306 511 0x00e00a04, // 2101 0 306 511 0x00e02a04, // 2102 0 306 511 0x00e02d00, // 2103 0 306 511 0x00e04c00, // 2104 0 306 511 0x00e06900, // 2105 0 306 511 0x00e07000, // 2106 0 306 511 0x00e08b00, // 2107 0 306 511 0x00e09100, // 2108 0 306 511 0x00e0ad00, // 2109 0 306 511 0x00e0b100, // 2110 0 306 511 0x00e0ce00, // 2111 0 306 511 0x00e0d300, // 2112 0 306 511 0x00e0f010, // 2113 0 306 511 0xffffffff // end marker }; const uint32_t *step = steps; char dataFile[4096]; // simulates a text file unsigned int dataFileLen = 0; unsigned int dataFilePos = 0; char LCR_getNextDataFileChar(void) { if (dataFilePos >= dataFileLen) { dataFilePos = 0; return 0; } dataFilePos++; return dataFile[dataFilePos - 1]; } void LCR_appendDataStr(const char *str) { while (*str) { dataFile[dataFileLen] = *str; dataFileLen++; str++; } dataFilePos = 0; } uint8_t LCR_keyPressed(uint8_t key) { return ((*step) >> key) & 0x01; } void LCR_sleep(uint16_t timeMs) { } void LCR_drawPixel(unsigned long index, uint16_t color) { if ( // randomly checked pixels that are being rendered (LCR_game.frame == 10 && index == 10 && color != 0x4ace) || (LCR_game.frame == 1086 && index == 20 && color != 0x4c7a) || (LCR_game.frame == 1624 && index == 1 && color != 0x4c7a)) printf("ERROR: unexpected pixel rendered at frame %d, index %d\n", LCR_game.frame,(int) index); } int testState( unsigned int frame, unsigned int expectedGameState, unsigned int expectedRunTime, int expectedCarSpeed) { if (LCR_game.frame != frame) return 1; printf("checking game state at frame %d...\n",frame); return LCR_game.state == expectedGameState && LCR_game.runTime == expectedRunTime && LCR_racingGetCarSpeedSigned() == expectedCarSpeed; } int main(void) { puts("testing Licar"); LCR_gameInit(0,0); puts("starting to play the game..."); while (1) { if ( !testState(2,0,0,0) || !testState(468,1,0,0) || !testState(520,2,35,-92) || !testState(1084,3,305,451) || !testState(763,1,0,0) || !testState(1103,3,305,197)) { puts("ERROR: unexpected game state"); break; } if (!LCR_gameStep((*step) >> 8)) { puts("game closed"); break; } if (*step == 0xffffffff) { puts("ERROR: reached the end step without game being closed"); break; } step++; } LCR_gameEnd(); puts("done"); return 0; }