]> git.neil.brown.name Git - freerunner.git/commitdiff
re-add guessture without a submodule
authorNeilBrown <neilb@suse.de>
Sun, 6 Feb 2011 11:03:19 +0000 (22:03 +1100)
committerNeilBrown <neilb@suse.de>
Sun, 6 Feb 2011 11:03:19 +0000 (22:03 +1100)
guessture/pixelpath [new file with mode: 0644]
guessture/pixelpath.2008-09-03-12-30-20 [new file with mode: 0644]
guessture/pixelpath.2008-09-03-12-30-20.bad [new file with mode: 0644]
guessture/pixelpath.2008-09-03-12-30-20.bad.new [new file with mode: 0644]
guessture/pixelpath.2008-09-03-12-30-20.bad.new.bad [new file with mode: 0644]
guessture/pixelpath.orig [new file with mode: 0644]
guessture/test.py [new file with mode: 0755]

diff --git a/guessture/pixelpath b/guessture/pixelpath
new file mode 100644 (file)
index 0000000..e457b05
--- /dev/null
@@ -0,0 +1,170 @@
+'A': 99,456 99,444 99,426 101,410 107,388 115,366 125,344 133,326 141,306 149,286 155,266 165,246 173,228 181,210 191,192 199,172 211,154 221,138 227,126 233,118 239,112 240,110 244,106 245,105 246,105 248,105 254,115 260,131 270,147 278,169 286,191 292,215 300,241 304,275 310,313 316,345 322,373 328,393 332,413 336,431 340,441 344,451 348,457 350,463 351,465 351,467 352,467 353,468 353,469 353,470 354,470
+'A': 133,408 133,392 133,376 133,358 133,338 137,316 145,298 151,282 159,268 165,254 173,244 181,234 189,226 197,220 207,214 219,210 231,206 247,204 261,204 277,202 291,200 301,200 311,200 321,200 329,200 337,208 347,220 353,234 361,252 369,270 373,282 379,292 381,302 385,312 385,336 385,346 385,349 387,355 387,357 387,359 387,361 387,371 387,383 387,393 387,405 387,413 387,415 387,418 387,419 387,421 387,422 387,424 387,425
+'A': 102,458 102,440 104,420 108,398 116,370 126,342 134,312 146,280 154,250 164,228 170,210 176,196 180,182 184,170 186,156 190,144 192,134 196,128 198,122 199,121 200,120 201,119 202,119 203,118 205,118 207,118 210,118 216,120 222,128 228,148 234,170 244,194 254,218 264,242 272,260 280,276 286,288 292,302 296,316 300,332 304,346 308,358 312,366 314,372 318,380 322,392 328,400 330,410 332,416 336,422 337,423 337,424 338,425 338,426 339,426 339,428 340,429 341,430 341,431 342,432 343,432 343,433 344,433
+'B': 133,470 133,469 133,459 133,443 133,423 133,401 133,375 133,349 133,325 133,297 133,273 133,253 133,233 133,219 133,205 133,197 133,183 133,171 133,155 133,139 135,125 135,113 135,110 135,107 135,105 136,103 136,102 137,101 138,101 139,101 142,101 150,101 162,101 174,101 188,101 200,101 212,105 228,115 242,127 258,145 274,155 284,165 294,173 300,179 306,189 306,205 306,223 306,239 306,253 306,263 300,271 294,275 288,277 278,279 266,279 252,279 240,279 230,279 220,279 212,279 209,279 206,279 204,279 202,279 201,279 199,279 197,279 196,279 195,279 195,278 205,280 217,284 229,288 243,292 255,298 269,306 281,312 289,318 299,324 305,326 311,334 313,350 317,376 319,376 323,386 323,394 323,404 323,418 321,428 313,436 301,442 287,448 275,448 263,450 251,454 237,458 223,458 207,462 193,462 181,462 169,462 161,462 158,462 155,462 152,462 151,462 149,462 148,462 147,462 147,461 146,461 145,461
+'B': 154,499 154,498 154,496 154,484 152,464 152,444 150,430 150,418 148,410 146,402 146,400 146,397 146,385 146,365 146,351 146,339 146,331 146,328 146,320 146,318 146,315 146,313 146,311 146,310 146,308 146,292 146,270 146,256 146,244 146,230 146,214 146,200 146,190 146,180 146,166 146,158 146,150 146,142 146,140 146,138 146,137 146,136 146,134 146,133 146,131 146,130 146,129 146,121 146,113 146,110 146,107 146,106 146,105 146,104 146,103 148,103 156,103 159,103 162,103 168,101 176,101 186,101 194,101 204,103 214,107 224,111 234,113 244,119 254,127 264,135 272,141 278,147 280,148 286,154 292,166 300,180 310,196 322,212 330,222 338,230 342,236 348,244 350,254 350,266 350,278 350,290 350,302 350,314 350,328 344,336 334,346 324,354 310,358 298,362 282,362 264,364 248,364 230,364 214,364 202,364 190,364 182,364 179,364 176,364 174,364 173,364 176,364 192,364 208,368 224,372 240,376 256,382 270,388 284,398 298,408 306,416 314,422 320,426 322,432 324,438 324,450 324,460 324,468 320,474 310,482 298,486 284,490 268,496 252,500 236,500 224,500 212,500 202,500 194,500 191,500 189,500 186,500 184,500 182,500 181,499 179,499 178,499 177,499 176,499 175,499 174,499 173,499 172,498 172,497 171,497 170,497 169,496
+'B': 217,505 217,497 217,477 217,451 217,417 217,383 217,349 217,315 217,285 217,255 217,233 217,215 217,203 219,193 221,185 221,182 221,181 221,179 221,178 221,176 221,175 221,174 221,173 222,173 223,172 227,168 237,164 247,158 257,154 267,154 273,152 281,152 289,152 297,156 307,166 317,172 323,178 329,184 333,190 334,192 336,208 336,224 336,238 336,250 336,268 336,276 336,278 332,284 326,288 314,294 304,300 292,306 282,310 272,312 264,316 258,318 255,318 252,318 249,318 248,318 246,319 245,319 244,319 243,319 242,319 241,319 243,319 251,319 265,319 277,319 289,319 301,319 311,325 323,333 331,349 339,361 345,373 349,381 351,387 353,395 355,405 355,415 355,433 351,453 341,471 333,481 321,493 315,499 307,507 297,513 289,517 281,519 273,523 270,523 262,525 260,526 257,526 254,526 251,526 249,526 247,526 246,526 245,526 243,526 242,526 241,526 239,525 238,523 234,517 232,517 230,516 229,514 228,514 228,513 227,513 226,513 226,512
+'c': 389,217 381,213 371,209 361,205 347,199 333,191 319,187 305,183 287,183 271,183 255,183 237,183 221,189 205,199 189,213 171,229 155,247 143,265 131,285 121,303 115,323 113,345 113,365 113,383 113,401 121,415 133,425 145,431 163,435 185,435 211,435 237,433 261,431 283,431 301,429 315,427 327,425 333,423 341,421 344,421 345,421 347,421 349,420 350,420 351,420 352,419 353,418
+'c': 304,175 292,171 274,167 256,161 236,161 216,161 194,161 176,161 158,161 140,161 122,163 108,171 96,185 84,203 78,223 76,245 76,269 76,291 76,313 76,335 80,357 86,381 88,401 94,421 100,441 106,459 116,471 128,481 146,485 166,485 186,485 208,479 228,475 244,467 258,463 268,459 276,459 282,457 285,457 287,457 288,456 288,455 289,455 290,455 290,454 290,453 291,453
+'c': 386,154 374,150 358,148 338,144 318,140 294,140 270,140 244,140 220,140 192,140 166,146 142,158 122,172 104,190 90,206 80,222 72,234 66,252 64,276 62,302 62,334 62,366 62,390 62,408 64,430 70,446 82,464 96,478 112,486 130,490 154,494 176,496 200,496 222,496 240,496 256,496 268,496 278,496 290,496 304,496 318,496 334,496 346,496 356,496 364,496 372,496 374,496 376,496 377,496 378,496 379,496 380,496 381,496
+'D': 127,468 132,291 131,200 133,183 134,179 148,170 191,154 240,162 307,214 339,286 322,356 281,410 231,430 186,451 164,450 158,448 146,445 135,448 129,447 127,445 124,443 124,443 124,443 124,443 124,443 124,443 124,443 124,443 124,443 124,443 124,443 124,443 124,443 124,443 124,443 124,443 124,443 124,443 124,443
+'D': 165,437 171,400 181,324 186,277 190,237 198,165 201,152 203,145 210,134 223,131 232,133 244,133 266,137 301,148 322,161 349,186 370,222 373,236 374,265 368,308 359,337 334,376 316,397 272,419 237,427 223,427 211,427 202,426 192,424 187,422 182,419 173,414 173,414 173,414 173,414 173,414 173,414 173,414 173,414
+'D': 175,447 176,399 181,325 185,281 192,220 196,198 202,177 206,170 213,166 234,165 234,165 278,173 329,199 341,211 347,224 353,254 345,316 318,368 282,400 260,416 208,438 197,438 190,433 182,424 172,401 172,401 172,401 172,401 172,401 172,401 172,401 172,401 172,401
+'E': 344,174 346,172 346,172 313,167 245,168 222,176 199,190 146,236 140,245 143,268 149,283 168,294 223,311 237,313 251,317 289,316 304,314 317,311 321,307 321,307 284,303 232,300 193,303 178,308 159,322 153,338 162,358 174,384 181,395 188,405 217,427 255,440 268,440 285,438 294,435 305,431 317,432 317,432 317,432 317,432 317,432 317,432 317,432 317,432 317,432 317,432 317,432 317,432
+'E': 318,164 321,163 310,162 269,159 207,156 163,158 140,172 138,182 138,182 138,205 144,280 146,296 158,305 168,308 182,309 206,309 251,308 270,306 282,306 286,306 272,306 249,308 223,308 167,308 159,312 156,316 154,320 153,325 153,340 154,351 158,367 169,400 173,415 177,426 181,433 199,435 219,437 267,444 300,454 314,458 328,461 335,464 335,464 338,463 338,463 338,463 338,463 338,463 338,463 338,463 338,463 338,463
+'E': 310,154 270,140 200,145 159,171 151,184 145,217 148,251 161,273 185,287 216,289 244,285 261,279 266,278 267,276 255,275 235,276 174,290 155,305 149,314 144,335 147,347 160,373 160,373 196,404 241,423 287,432 307,433 322,428 327,422 327,422 327,422 327,422 327,422 327,422 327,422 327,422 327,422 327,422 327,422 327,422 327,422 327,422 327,422 327,422 327,422 327,422 327,422
+'f': 303,157 303,149 243,153 214,154 154,159 143,165 147,170 156,174 159,183 159,203 160,227 162,287 164,341 163,401 161,429 160,441 160,449 160,454 160,448 160,448 160,448 160,448 160,448 160,448 160,448 160,448 160,448 160,448 160,448 160,448 160,448
+'f': 331,150 184,165 173,183 171,194 171,238 171,312 171,312 168,356 167,404 166,439 165,461 164,470 164,472 164,471 164,469 164,469 164,469 164,469 164,469 164,469 164,469
+'f': 338,168 273,171 240,169 165,169 153,173 146,180 147,197 148,210 147,240 147,269 151,346 156,381 158,397 158,416 158,429 156,438 154,442 150,444 150,444 150,444 150,444 150,444 150,444
+'G': 339,206 211,174 194,181 176,202 164,223 152,250 141,306 144,333 151,360 172,408 197,435 197,435 217,441 259,437 284,428 327,390 333,377 336,367 338,357 338,349 337,346 338,352 338,364 339,380 340,399 339,417 340,438 341,441 341,442 340,443 340,443 340,443 340,443 340,443 340,443
+'G': 341,207 344,197 313,181 288,175 258,174 231,181 206,194 165,238 151,265 137,336 148,378 154,393 174,422 199,443 219,449 240,452 284,449 303,440 341,407 348,396 353,378 353,369 352,364 351,361 350,371 351,390 350,422 349,453 349,463 350,472 350,474 349,475 349,475 349,475 349,475 349,475 349,475 349,475 349,475 349,475 349,475 349,475 349,475 349,475 349,475 349,475 349,475
+'G': 360,203 229,165 176,173 138,203 112,265 111,301 123,347 139,391 147,404 164,422 213,455 227,459 253,461 274,450 320,408 336,386 349,362 353,343 353,336 350,342 348,361 347,389 344,421 342,444 341,451 341,452 341,452 340,450 340,450 340,450 340,450 340,450 340,450 340,450 340,450 340,450 340,450 340,450 340,450 340,450 340,450 340,450 340,450
+'H': 154,140 157,133 158,134 158,140 160,185 161,212 163,244 169,312 174,387 171,416 169,430 166,445 165,448 165,445 167,426 170,401 179,352 189,320 197,309 209,298 209,298 244,287 259,285 274,282 284,283 296,282 311,280 314,283 314,302 313,325 311,353 309,423 307,442 307,442 308,412 311,358 311,330 312,264 313,228 312,196 308,134 307,126 308,125 314,141 314,141 314,141 314,141 314,141 314,141 314,141 314,141 314,141 314,141 314,141 314,141
+'H': 150,140 151,134 152,134 154,132 156,135 158,141 161,161 162,176 162,194 163,212 164,243 165,275 166,326 166,345 166,345 169,424 170,442 170,449 170,451 170,451 170,446 170,446 172,422 173,355 173,337 175,322 177,309 179,301 192,296 192,296 210,291 230,284 251,279 286,271 297,270 306,272 316,285 316,285 318,311 323,373 325,423 325,447 324,452 323,455 319,443 319,443 316,418 311,357 309,319 305,250 300,198 298,164 297,157 298,153 299,155 299,155 300,161 300,161 300,161 300,161 300,161 300,161 300,161 300,161
+'i': 226,145 230,145 232,145 236,159 236,159 237,186 237,219 233,299 235,403 238,436 238,446 239,455 239,455 239,455 239,454 239,452 241,445 241,445 241,445
+'i': 226,135 227,379 223,431 222,455 222,467 223,470 224,471 225,469 224,468 224,468 224,467 225,467 226,466 226,466 226,466 226,466 226,466 226,466 226,466
+'i': 230,132 236,143 239,161 241,185 242,252 242,279 242,295 241,327 240,356 239,369 240,391 241,409 241,427 241,444 240,452 239,466 237,478 237,484 237,486 237,491 237,496 237,495 237,495 235,487 235,487 235,487 235,487 235,487 235,487 235,487 235,487 235,487 235,487 235,487 235,487 235,487 235,487
+'j': 236,138 243,195 243,234 242,254 241,276 241,318 245,359 248,392 248,406 249,419 245,444 238,468 234,478 230,487 226,495 219,502 199,509 199,509 191,508 179,493 179,493 171,470 158,430 152,415 151,406 151,398 152,397 156,399 156,399 156,399 156,399 156,399 156,399 156,399 156,399 156,399
+'j': 231,138 232,132 236,142 238,153 241,180 244,210 247,240 249,312 248,331 246,364 245,383 244,401 244,418 243,432 242,443 235,466 231,477 225,485 218,494 209,498 191,494 181,487 159,465 159,465 138,429 133,413 130,397 132,388 134,386 137,386 137,386 137,386 137,386 137,386 137,386 137,386
+'j': 245,124 250,163 252,221 252,250 252,281 250,333 246,374 242,406 240,431 240,431 238,444 235,457 231,468 218,484 209,489 199,491 189,489 178,484 168,477 153,460 153,460 128,406 126,392 127,383 133,368 136,365 138,362 138,362 137,364 137,364 137,364 137,364 137,364 137,364
+'K': 177,116 183,240 183,291 184,361 185,395 185,426 185,451 185,465 186,468 186,473 188,469 191,464 202,446 209,433 221,409 232,384 261,313 268,299 294,250 307,216 309,211 311,205 312,204 312,205 308,221 301,241 284,289 264,344 253,377 243,405 238,420 236,424 236,425 236,427 237,427 242,428 249,431 249,431 294,459 306,468 318,480 321,485 321,486 320,484 320,484 320,484 320,484 320,484 320,484 320,484 320,484 320,484 320,484 320,484 320,484 320,484 320,484 320,484 320,484 320,484 320,484 320,484 320,484 320,484 320,484 320,484 320,484
+'K': 187,138 186,123 187,130 187,154 185,219 184,254 183,337 183,358 183,402 184,423 185,457 185,471 186,485 187,487 214,441 228,416 270,328 282,295 307,229 307,229 320,208 347,157 350,150 350,148 349,152 342,170 337,185 337,185 316,236 305,266 284,321 272,360 267,374 255,408 252,416 251,420 252,419 253,416 256,414 259,413 275,415 275,415 303,435 315,446 327,455 333,461 338,467 341,471 340,470 340,470 340,470 340,470 340,470 340,470 340,470 340,470 340,470 340,470 340,470 340,470 340,470
+'K': 200,155 198,118 197,134 197,159 194,227 191,300 190,364 192,426 194,448 194,459 196,457 199,451 212,434 228,413 262,363 277,339 305,291 321,260 358,188 370,169 375,162 374,163 371,169 356,192 341,218 300,288 286,317 283,328 288,326 299,337 305,346 319,368 341,403 358,432 367,451 371,457 370,454 367,452 367,452 367,452 367,452 367,452 367,452 367,452 367,452 367,452 367,452 367,452 367,452 367,452 367,452 367,452 367,452 367,452 367,452 367,452
+'l': 194,170 194,127 196,146 197,208 197,246 198,323 199,395 198,424 197,449 197,456 198,458 202,458 212,459 220,458 258,456 280,453 344,458 372,459 381,459 395,458 399,458 400,456 395,455 395,455 395,455 395,455 395,455 395,455 395,455 395,455 395,455 395,455 395,455 395,455 395,455
+'l': 149,155 155,186 158,220 160,246 162,272 163,340 163,373 163,401 165,418 168,430 169,437 171,443 173,448 180,451 192,452 200,453 233,449 233,449 256,448 308,447 330,443 351,443 358,444 363,446 367,447 368,448 367,449 366,450 366,450 366,450 366,450 366,450 366,450 366,450 366,450 366,450 366,450 366,450 366,450 366,450 366,450 366,450
+'l': 171,110 188,220 189,274 187,362 186,404 183,432 183,437 183,441 184,440 184,440 185,440 189,439 199,441 215,443 238,444 267,445 298,443 330,438 330,438 382,435 395,436 407,435 410,435 408,436 407,436 405,437 405,437 405,437 405,437 405,437 405,437 405,437 405,437 405,437 405,437 405,437 405,437 405,437
+'M': 124,443 130,447 132,442 130,417 128,398 128,398 128,366 130,333 138,244 140,223 146,189 149,174 161,169 161,169 198,231 217,266 225,281 243,309 250,317 263,316 267,310 273,299 290,260 305,223 314,201 318,196 321,197 328,219 334,247 341,281 355,350 365,400 370,427 374,444 376,450 377,454 379,452 379,452 379,452 379,452 379,452 379,452 379,452 379,452 379,452 379,452
+'M': 117,448 108,405 98,354 95,318 99,272 102,251 110,220 116,207 133,190 157,185 184,195 196,205 220,259 226,288 231,306 232,310 232,308 231,303 231,288 236,267 242,239 254,211 271,196 296,198 325,211 350,238 361,265 378,334 382,365 384,382 385,413 384,429 384,433 384,433 385,431 385,431 385,431 385,431 385,431 385,431 385,431 385,431 385,431 385,431 385,431 385,431 385,431 385,431 385,431 385,431 385,431 385,431 385,431 385,431 385,431 385,431
+'M': 91,456 97,402 98,387 105,339 110,282 118,221 125,194 135,179 148,190 176,224 204,274 219,301 229,309 239,302 250,282 262,252 274,228 306,168 315,179 327,222 340,282 354,341 370,403 377,426 381,440 382,443 383,443 383,443 383,443 382,443 382,443 382,443 382,443 382,443 382,443 382,443 382,443 382,443 382,443 382,443 382,443 382,443 382,443 382,443 382,443 382,443 382,443 382,443 382,443 382,443
+'N': 89,469 100,432 100,415 103,368 105,340 112,264 116,229 123,208 133,201 145,206 153,216 181,265 210,324 244,391 260,414 275,427 279,427 283,417 285,406 290,381 306,328 327,257 333,224 335,208 336,202 335,205 335,205 335,205 335,205 335,205 335,205 335,205 335,205 335,205 335,205 335,205 335,205 335,205 335,205 335,205 335,205 335,205
+'N': 86,460 90,354 93,317 98,298 134,230 146,216 158,212 185,221 196,228 212,245 221,264 238,343 244,388 249,422 255,447 261,456 280,458 290,456 301,450 313,433 334,391 352,336 364,276 374,207 376,179 379,163 382,165 383,180 383,180 383,180 383,180 383,180 383,180 383,180 383,180 383,180 383,180 383,180 383,180 383,180 383,180 383,180 383,180
+'N': 88,463 97,360 102,327 106,295 118,234 124,222 130,216 141,226 164,267 176,299 194,358 194,358 213,411 230,442 236,449 248,456 252,452 278,367 290,328 300,294 317,222 321,212 324,220 324,220 324,220 324,220 324,220 324,220 324,220
+'N': 110,455 110,453 110,450 110,434 110,416 110,396 110,376 116,356 126,326 134,298 144,268 150,246 158,228 162,214 168,206 170,198 174,190 178,182 182,168 188,156 196,146 202,138 208,132 212,128 214,122 216,122 218,122 222,140 226,168 230,194 236,222 242,250 250,276 258,300 266,324 272,346 278,368 284,390 288,408 294,422 300,434 306,446 308,456 312,460 313,462 315,468 316,470 317,470 318,470 320,470 321,470 327,454 333,436 341,416 347,394 355,374 363,354 369,332 373,310 381,288 385,266 391,244 395,224 399,202 401,182 401,166 403,152 405,142 405,139 405,137 406,135 406,125 406,122 406,121 406,119 406,117 406,116 406,115
+'o': 219,184 211,183 157,210 157,210 126,251 117,276 109,304 111,360 133,410 149,429 170,442 233,455 247,453 247,453 267,437 304,389 326,342 328,322 327,304 317,279 306,254 269,214 256,210 245,207 231,205 222,203 217,203 214,203 214,203 215,205 215,205 215,205 215,205 215,205 215,205
+'o': 230,191 120,381 127,395 159,425 215,448 242,448 242,448 260,438 280,422 307,385 314,357 308,291 303,275 290,253 251,204 238,198 226,196 211,197 198,202 189,208 184,212 181,213 181,215 181,215 184,216 184,216 184,216 184,216 184,216
+'o': 229,224 214,214 214,214 196,218 139,240 118,260 106,291 101,329 101,350 101,350 107,377 115,403 144,447 161,461 181,471 212,478 212,478 233,473 269,445 295,410 295,410 300,385 300,335 287,268 282,254 269,234 269,234 254,225 208,214 195,213 186,211 179,212 179,212 179,212 176,216 176,216 176,216 176,216 176,216
+'P': 141,473 146,458 148,423 149,410 153,383 163,307 164,289 166,223 168,198 170,187 171,184 172,183 175,182 180,179 211,166 221,167 247,174 270,189 286,211 292,240 283,271 267,289 217,319 189,320 167,317 161,312 164,310 167,308 174,307 174,307 174,307 174,307 174,307 174,307 174,307 174,307 174,307 174,307 174,307 174,307 174,307 174,307 174,307 174,307 174,307 174,307 174,307 174,307
+'P': 138,505 143,412 153,351 163,279 165,249 168,236 179,209 187,201 205,192 226,186 238,182 261,181 273,185 282,196 290,219 292,260 266,299 228,320 178,323 158,319 151,316 152,315 155,316 155,316 155,316 155,316 155,316 155,316 155,316 155,316 155,316 155,316 155,316 155,316 155,316 155,316
+'P': 156,499 162,415 166,351 170,319 174,287 182,224 182,212 182,205 183,195 184,187 184,187 188,187 193,186 200,184 200,184 252,196 267,204 278,214 285,226 286,252 281,275 251,316 228,327 189,338 175,333 166,326 164,313 164,313 175,308 175,308 175,308 175,308 175,308 175,308
+'Q': 226,413 223,405 217,404 200,395 183,384 164,368 130,329 110,291 109,265 115,241 127,222 167,189 213,176 237,174 281,190 312,219 323,242 322,325 305,347 280,367 266,374 237,381 212,382 204,380 199,377 198,372 201,367 214,365 231,367 249,373 290,393 300,400 309,407 320,413 329,418 336,421 336,421 336,421 336,421 336,421 336,421 336,421 336,421 336,421 336,421 336,421 336,421
+'Q': 209,397 155,368 117,327 108,311 105,295 105,295 106,266 124,216 141,194 161,182 184,173 232,170 255,176 275,185 300,210 311,250 310,289 305,303 285,340 285,340 254,366 226,373 215,373 204,371 195,369 191,365 190,359 199,348 199,348 215,345 260,355 272,363 281,372 291,382 307,397 313,401 316,405 316,405 316,405 316,405 316,405 316,405 316,405 316,405
+'R': 140,447 138,416 138,416 137,389 137,361 140,330 144,294 149,260 155,206 157,180 160,175 164,167 169,160 177,153 188,148 201,145 201,145 253,156 268,166 275,178 279,203 276,228 261,268 243,284 191,300 181,298 175,295 174,295 176,294 181,297 189,298 197,303 197,303 213,319 229,334 277,385 277,385 295,410 299,415 303,420 305,421 305,422 306,421 306,421 309,424 309,424
+'R': 148,470 145,440 145,429 144,404 144,359 145,299 145,299 154,218 158,192 161,189 172,178 186,166 207,159 234,158 261,162 273,169 282,179 289,206 287,236 278,265 239,306 216,314 165,316 157,314 157,315 167,316 189,327 212,345 234,370 245,386 268,417 279,431 288,444 299,456 301,460 301,461 301,461 301,461 301,461 301,461 301,461 301,461 301,461 301,461 301,461 301,461 301,461 301,461 301,461 301,461 301,461 301,461 301,461 301,461
+'R': 138,469 144,464 141,443 140,418 140,387 142,354 145,325 156,247 160,230 163,216 167,205 179,184 188,175 199,169 231,165 231,165 275,188 286,201 285,226 278,253 249,296 230,307 197,311 185,309 178,308 177,308 184,311 194,316 209,330 240,372 256,395 278,432 292,449 296,454 300,458 301,460 301,461 301,461 299,461 299,461 299,461 299,461 299,461 299,461 299,461 299,461
+'s': 307,214 306,198 281,186 241,180 209,181 183,186 183,186 146,228 136,260 136,283 150,297 172,310 200,320 225,328 238,331 264,338 288,348 308,361 323,377 329,385 334,404 325,428 305,451 281,467 267,473 245,476 223,473 163,457 148,451 126,437 120,432 120,425 126,422 126,422 126,422 126,422 126,422 126,422 126,422 126,422 126,422 126,422 126,422 126,422 126,422 126,422 126,422 126,422 126,422 126,422 126,422 126,422 126,422 126,422 126,422
+'s': 306,207 298,207 293,203 278,195 260,189 203,190 179,196 159,206 142,226 135,256 140,283 146,294 161,311 229,332 252,335 275,343 298,357 315,375 321,383 324,403 316,422 298,440 272,461 246,476 209,473 148,451 135,444 118,426 115,414 126,410 134,407 134,407 134,407 134,407 134,407 134,407 134,407 134,407 134,407 134,407 134,407 134,407 134,407 134,407 134,407 134,407 134,407 134,407 134,407 134,407 134,407 134,407 134,407
+'s': 309,214 302,187 272,177 272,177 222,177 182,183 160,198 151,221 149,246 158,269 158,269 173,284 214,308 237,313 251,315 277,324 289,331 312,344 327,358 332,368 332,393 328,405 328,405 297,436 277,447 252,453 228,453 176,441 163,434 154,425 138,403 135,395 132,384 130,383 128,383 128,383 128,383 128,383 128,383 128,383 128,383 128,383 128,383 128,383 128,383 128,383 128,383 128,383
+'t': 123,187 145,180 202,184 230,185 242,186 255,185 265,185 271,185 274,184 274,184 276,185 276,191 275,214 274,240 271,272 268,310 267,347 266,421 266,438 265,452 264,470 263,481 263,491 263,490 261,487 261,487 261,487 261,487
+'t': 109,194 120,185 158,188 194,189 220,188 240,188 255,189 259,193 257,199 253,213 251,238 250,254 248,295 241,359 238,394 234,427 234,457 234,480 232,494 231,499 228,498 228,498 228,498 228,498 228,498 228,498 228,498 228,498 228,498 228,498 228,498 228,498 228,498 228,498 228,498 228,498 228,498
+'t': 100,166 111,167 111,167 154,169 222,176 230,176 243,176 246,177 246,181 243,190 242,210 243,239 244,299 245,354 248,409 248,437 249,463 250,480 251,487 250,488 249,491 248,490 248,492 248,492 248,492 248,492 248,492 248,492 248,492 248,492 248,492 248,492 248,492 248,492 248,492 248,492 248,492 248,492
+'U': 98,190 102,349 124,408 142,435 163,454 184,465 205,467 224,462 242,446 260,421 271,388 276,349 278,308 280,274 279,246 277,224 276,210 276,203 277,202 277,202 277,202 276,203 276,203 276,203 276,203 276,203 276,203 276,203 276,203 276,203 276,203 276,203 276,203 276,203 276,203 276,203 276,203 276,203 276,203 276,203
+'U': 81,166 81,280 90,342 103,387 127,439 137,452 146,458 171,469 185,470 214,471 230,467 243,461 269,445 280,433 280,433 290,412 304,361 310,332 313,304 316,261 316,261 314,217 309,180 307,171 306,164 306,163 307,165 307,165 307,165 307,165 307,165 307,165
+'U': 95,209 104,198 104,198 104,217 104,244 104,275 105,341 117,392 143,443 163,462 163,462 196,472 226,470 226,470 244,463 262,452 304,404 311,389 316,375 322,352 326,325 332,277 333,260 334,243 333,228 333,201 333,197 334,202 334,202 334,202 334,202
+'V': 332,212 324,211 323,211 322,213 322,213 304,243 292,267 266,324 239,390 232,405 225,419 215,441 212,448 209,451 208,451 203,446 198,437 198,437 188,412 171,351 161,309 145,247 133,216 131,212 132,211 136,214 139,214 139,214 139,214 139,214 139,214 139,214 139,214 139,214 139,214
+'V': 336,227 335,223 333,221 325,234 300,279 283,309 250,367 223,415 214,431 209,442 205,453 203,455 200,455 196,451 186,433 175,411 117,253 112,243 109,236 109,235 113,234 113,234 113,234 113,234
+'V': 334,236 329,221 326,226 312,249 278,306 258,338 217,425 207,450 203,458 202,459 202,459 200,457 196,447 176,392 164,362 138,284 113,215 109,208 110,208 116,215 116,215 119,222 119,222 119,222 119,222 119,222 119,222 119,222 119,222 119,222
+'W': 102,202 116,231 130,303 143,370 153,408 155,415 158,422 161,423 161,423 189,375 189,375 220,320 228,303 237,288 241,286 246,289 250,299 250,299 258,324 269,370 279,403 282,411 286,417 295,414 295,414 306,393 318,365 330,332 342,291 355,211 357,194 360,190 360,190 360,190 360,190 360,190 360,190 360,190
+'w': 105,194 98,199 93,219 89,242 90,272 103,334 134,392 158,405 158,405 170,405 190,395 209,381 236,345 249,315 252,300 253,300 255,306 256,318 258,335 269,374 276,389 285,399 297,403 318,396 318,396 345,357 356,331 366,301 378,254 382,238 384,224 385,212 385,190 385,190 385,184 384,183 384,183 383,184 383,185 383,185 382,186 381,186 380,187 380,188 380,189 379,187 379,187 379,187 379,187 379,187
+'W': 92,186 91,176 90,169 94,179 102,196 124,251 148,325 158,360 174,413 179,430 185,441 190,443 190,443 201,428 226,383 249,342 258,327 267,323 267,323 287,356 295,381 313,446 318,457 329,460 329,460 340,442 352,418 380,347 426,216 432,203 433,202 430,198 430,198 430,198 430,198 430,198 430,198 430,198
+'x': 113,175 142,214 180,272 201,302 247,363 290,425 303,450 310,460 316,464 318,459 323,442 328,421 340,360 350,300 353,226 352,210 348,183 347,172 345,175 345,175 313,214 269,271 248,299 225,330 174,400 157,419 151,429 151,433 150,434 150,434 150,434 150,434 150,434 150,434 150,434 150,434 150,434 150,434 150,434 150,434 150,434 150,434 150,434
+'x': 134,207 181,278 236,350 278,405 293,429 298,436 303,442 306,442 312,426 318,404 335,342 343,308 352,234 350,223 348,220 348,220 322,232 300,251 243,305 214,332 148,391 138,404 134,414 132,418 129,424 122,427 122,427 122,427 122,427 122,427 122,427 122,427 122,427 122,427
+'x': 143,208 158,228 185,279 229,343 252,372 287,412 299,423 307,429 316,425 316,425 318,407 322,382 326,346 331,304 333,222 328,211 314,216 280,246 236,309 190,368 155,404 138,426 138,426 135,431 131,436 131,436 131,436 131,436 131,436 131,436 131,436 131,436
+'y': 140,187 137,183 137,180 137,181 138,181 138,180 139,179 139,178 140,179 148,191 174,237 191,264 227,312 236,316 248,313 248,313 260,299 287,256 300,228 316,188 320,175 322,166 322,164 319,168 319,168 309,189 282,249 267,285 250,322 233,364 212,428 207,451 205,465 204,470 204,476 204,476 204,476 204,476 204,476 204,476
+'y': 132,156 191,267 225,352 232,361 243,365 252,353 257,342 269,317 284,288 323,211 328,195 330,175 330,168 328,166 320,182 308,207 270,281 229,356 192,438 187,457 183,476 182,481 182,480 180,476 180,476 180,476 180,476 180,476 180,476 180,476 180,476 180,476 180,476 180,476
+'y': 176,180 205,257 219,295 224,309 230,324 235,335 241,341 254,335 254,335 265,314 299,235 306,217 311,204 313,195 314,186 314,183 306,198 296,223 265,297 250,331 234,364 221,396 200,456 198,462 196,464 194,466 192,469 189,469 189,469 189,469 189,469 189,469 189,469
+'z': 146,190 181,187 245,195 258,199 276,214 278,225 278,225 247,272 225,299 166,373 146,401 141,420 146,434 151,438 160,442 183,443 237,443 280,442 308,439 327,439 333,441 336,443 332,439 332,439 332,439 332,439 332,439 332,439 332,439 332,439 332,439 332,439 332,439
+'z': 124,171 238,178 263,185 276,194 276,194 257,222 240,245 201,305 168,372 157,400 155,422 158,436 169,438 188,435 234,431 295,432 308,434 327,434 333,434 335,434 335,434 327,432 327,432 327,432 327,432 327,432 327,432 327,432 327,432 327,432 327,432 327,432 327,432
+'a': 255,284 264,267 239,258 217,255 165,256 154,262 139,279 134,308 141,337 157,361 181,373 209,377 233,366 248,348 257,319 262,292 263,276 263,272 263,281 269,339 297,367 311,369 318,362 317,353 317,353 317,353 317,353 317,353 317,353 317,353 317,353 317,353 317,353 317,353 317,353 317,353 317,353 317,353 317,353 317,353 317,353 317,353
+'a': 262,246 195,257 143,280 132,313 143,353 152,364 172,376 218,383 239,371 261,331 267,296 270,265 270,253 268,267 268,281 269,323 273,359 276,374 277,379 276,379 276,379 273,375 273,375 273,375 273,375 273,375 273,375 273,375 273,375 273,375 273,375 273,375 273,375
+'a': 266,248 178,255 156,273 147,303 149,340 164,372 196,391 229,395 251,385 267,361 276,319 278,281 278,260 278,254 278,257 278,267 281,308 287,349 293,376 297,391 298,389 296,385 296,385 296,385 296,385 296,385 296,385 296,385 296,385 296,385 296,385 296,385 296,385 296,385 296,385 296,385
+'b': 194,155 197,156 198,170 199,181 197,207 191,270 183,355 182,390 181,416 181,432 180,427 182,409 189,387 203,363 221,345 241,337 260,337 274,349 278,371 267,396 241,416 210,420 186,415 179,412 174,397 176,383 176,383 179,386 179,386 179,386 179,386 179,386 179,386 179,386 179,386 179,386 179,386 179,386 179,386 179,386 179,386 179,386 179,386 179,386 179,386 179,386 179,386 179,386
+'b': 201,181 201,177 198,211 194,270 191,304 187,361 181,420 180,437 186,416 199,394 220,373 246,356 269,357 282,372 285,396 273,423 254,434 198,440 186,434 178,427 172,421 170,408 174,403 186,390 186,390 186,390 186,390 186,390 186,390 186,390 186,390 186,390 186,390 186,390 186,390 186,390 186,390 186,390 186,390 186,390
+'b': 197,153 200,156 201,158 201,165 200,191 196,255 189,327 187,357 181,418 178,430 177,430 179,416 188,391 196,375 212,355 259,320 272,317 294,324 303,335 308,350 308,350 300,378 260,423 232,431 207,426 174,390 175,382 186,376 186,376 186,376 186,376 186,376 186,376 186,376 186,376 186,376 186,376 186,376 186,376 186,376
+'C': 290,428 284,428 274,435 234,442 199,437 188,432 170,413 163,401 161,384 164,368 195,317 246,286 258,287 275,298 275,303 274,305 272,312 272,312 272,312 272,312 272,312 272,312 272,312 272,312
+'C': 289,424 301,421 304,415 302,416 299,418 293,424 255,445 199,458 199,458 158,437 138,412 127,380 133,350 149,329 187,303 241,294 253,297 268,306 272,311 268,317 268,317 268,317 268,317 268,317 268,317 268,317 268,317 268,317 268,317 268,317 268,317
+'C': 276,439 280,435 280,440 280,440 255,460 234,470 198,477 198,477 178,469 160,454 134,421 130,396 141,351 176,294 176,294 215,282 251,286 264,291 275,299 280,306 280,306 282,321 282,321
+'d': 287,335 167,365 162,393 174,420 197,436 208,439 228,439 237,436 253,420 263,396 281,332 283,303 284,286 285,249 287,213 288,198 288,185 287,187 285,209 279,267 275,303 269,370 274,391 279,400 288,409 289,410 289,410 289,410 289,410 289,410 289,410 289,410 289,410 289,410 289,410 289,410 289,410 289,410 289,410 289,410 289,410
+'d': 272,343 272,340 262,338 204,344 183,364 187,404 220,438 247,441 268,428 268,428 286,386 297,328 300,300 299,223 294,190 290,174 290,174 290,222 288,260 292,353 295,368 304,393 309,415 311,424 310,421 310,421 310,421 310,421 310,421 310,421 310,421 310,421 310,421 310,421 310,421 310,421 310,421 310,421 310,421 310,421
+'d': 297,352 293,339 198,386 198,401 208,431 225,450 246,455 267,443 276,432 286,408 294,381 308,315 311,239 309,206 306,183 305,179 305,179 301,227 296,301 297,370 307,398 316,419 323,427 325,428 325,428 323,426 323,426 323,426 323,426 323,426 323,426 323,426 323,426 323,426 323,426 323,426 323,426 323,426 323,426 323,426 323,426 323,426
+'e': 204,366 194,359 199,357 204,357 219,358 272,367 286,371 302,375 309,374 309,371 308,369 309,367 312,361 314,351 314,346 306,332 298,325 261,308 209,308 209,308 181,345 179,381 188,415 207,437 231,452 243,455 271,456 290,455 300,451 300,451 303,440 303,440 303,440 303,440 303,440 303,440 303,440 303,440 303,440 303,440 303,440 303,440 303,440 303,440 303,440 303,440 303,440 303,440 303,440
+'e': 155,334 208,341 267,346 289,348 301,346 304,348 304,346 304,347 304,346 306,341 311,335 315,322 312,309 307,301 290,290 247,273 196,279 174,291 143,319 135,368 139,386 168,425 206,448 261,450 291,440 291,440 291,440 291,440 291,440 291,440 291,440 291,440 291,440 291,440 291,440 291,440 291,440 291,440 291,440 291,440
+'e': 156,326 157,319 163,319 169,320 187,323 231,331 294,345 308,348 326,350 334,350 334,350 336,348 340,342 343,327 342,318 330,300 290,267 233,248 180,265 146,315 144,371 171,418 216,446 295,462 305,459 314,442 314,442 314,442 314,442 314,442 314,442 314,442 314,442 314,442 314,442 314,442 314,442 314,442 314,442 314,442
+'F': 184,472 190,469 191,462 192,437 191,403 191,385 191,359 193,303 195,237 197,209 205,184 218,166 237,153 261,156 285,175 312,216 322,237 324,243 324,243 322,243 322,243 322,243 322,243 322,243 322,243 322,243 322,243 322,243 322,243 322,243 322,243
+'F': 181,470 180,355 183,327 193,255 195,228 201,206 213,186 229,173 245,172 265,177 285,189 303,209 313,237 316,260 315,268 314,268 313,269 313,269 313,269 313,269 313,269 313,269 313,269 313,269 313,269 313,269 313,269 313,269 313,269 313,269
+'F': 179,475 180,464 179,452 177,412 177,373 179,356 183,324 191,253 195,221 201,195 207,187 225,176 246,179 256,186 279,200 300,225 318,256 326,279 328,289 327,289 325,283 325,283 325,283 325,283 325,283 325,283 325,283 325,283 325,283 325,283 325,283 325,283 325,283
+'g': 289,196 177,203 171,246 189,275 213,289 231,293 238,292 246,292 281,272 290,242 293,203 290,205 285,292 280,366 276,427 252,467 200,434 188,380 188,380 188,380 188,380 188,380 188,380 188,380 188,380 188,380 188,380 188,380 188,380 188,380 188,380 188,380 188,380 188,380 188,380
+'g': 293,214 239,192 227,197 217,205 199,224 193,237 188,251 191,280 191,280 205,293 234,304 262,303 271,299 284,281 287,267 289,253 291,233 291,230 290,234 286,253 277,325 275,342 269,374 264,393 243,440 234,446 209,444 198,437 189,429 178,409 178,409 175,387 175,387 175,387 175,387 175,387 175,387 175,387 175,387 175,387 175,387
+'h': 184,173 187,159 183,195 178,255 177,286 183,362 185,378 188,401 190,411 191,419 191,419 191,410 192,401 201,374 210,358 221,342 232,331 232,331 294,336 294,336 297,353 298,405 295,418 295,424 295,425 295,425 295,425 295,425 295,425 295,425 295,425
+'h': 191,168 189,162 188,198 185,260 180,336 181,379 181,398 183,414 184,425 185,424 185,419 188,411 188,411 208,370 234,336 246,328 259,328 271,334 285,343 302,376 303,396 302,415 297,441 297,445 297,445 300,437 300,437 300,437 300,437 300,437 300,437
+'h': 196,183 187,299 188,356 188,388 189,416 190,428 189,433 190,427 192,417 200,386 214,355 233,335 255,328 280,331 280,331 306,367 310,396 309,411 307,430 307,436 307,431 307,431 307,431 307,431 307,431 307,431 307,431 307,431 307,431 307,431 307,431 307,431 307,431 307,431
+'J': 195,355 196,364 196,376 202,391 209,401 216,404 225,403 233,401 237,396 246,378 253,349 256,320 255,292 255,274 256,250 258,244 259,249 259,250 259,250 259,250 257,250 257,250 257,250 257,250 257,250 257,250 257,250 257,250 257,250 257,250 257,250 257,250 257,250
+'J': 196,360 197,352 195,373 197,391 201,405 207,412 215,412 220,412 232,405 238,398 251,372 257,339 255,307 253,292 252,276 249,245 249,234 248,218 248,214 249,213 251,224 251,224 251,224 251,224 251,224 251,224 251,224 251,224 251,224 251,224 251,224 251,224 251,224
+'J': 194,370 193,352 193,349 193,352 194,360 195,382 197,394 204,412 217,421 230,420 236,415 248,396 253,381 261,338 263,300 263,286 263,268 264,251 264,222 264,208 265,205 265,204 264,208 264,208 264,208 264,208 264,208 264,208 264,208 264,208 264,208 264,208 264,208
+'k': 214,204 208,365 207,391 207,405 207,410 208,410 208,409 208,409 209,409 210,407 210,406 211,405 212,405 212,405 212,404 212,404 213,402 216,398 220,394 225,387 240,370 247,363 254,358 259,352 262,350 264,349 248,363 228,381 222,390 215,403 217,407 232,410 244,412 256,413 268,414 276,414 281,413 281,412 281,412 281,412 281,412 281,412 281,412 281,412 281,412
+'k': 203,214 206,193 206,238 204,267 201,317 199,335 197,353 196,369 195,387 195,405 196,408 197,408 200,404 200,404 228,375 239,364 245,358 251,352 249,353 234,366 216,383 208,389 203,394 199,397 198,398 199,400 213,403 237,411 250,414 264,416 274,416 280,416 282,416 282,416 282,416 282,416 282,416 282,416 282,416 282,416
+'k': 195,206 199,237 197,266 196,298 194,344 193,363 193,380 192,401 192,406 194,407 206,399 220,387 246,362 257,349 265,338 267,331 260,340 239,369 219,391 213,395 208,399 205,401 210,399 217,399 228,401 254,409 268,412 281,413 289,413 295,412 288,410 288,410 288,410 288,410 288,410 288,410 288,410 288,410 288,410
+'L': 258,400 245,402 224,405 197,405 176,403 170,399 166,395 167,394 169,393 169,389 170,350 179,273 180,255 178,233 178,227 179,224 180,224 180,224 178,222 178,222 178,222 178,222 178,222 178,222 178,222 178,222 178,222 178,222
+'L': 262,400 262,395 263,395 264,395 264,395 264,395 262,395 251,395 235,396 191,398 182,398 173,397 171,396 171,396 171,396 170,391 170,391 169,348 171,297 172,260 171,246 169,217 169,210 170,207 172,212 172,212 172,218 172,218 172,218 172,218
+'L': 268,399 265,391 249,395 231,396 196,399 183,398 167,396 163,395 162,396 163,395 164,394 165,393 165,392 166,391 166,391 166,391 167,390 167,390 168,390 169,385 170,380 170,376 171,374 171,373 170,365 170,355 171,343 172,316 175,287 179,223 181,215 182,213 183,212 184,211 185,208 185,208 185,208
+'m': 130,309 138,323 137,336 136,349 135,362 135,379 134,383 133,383 133,378 135,370 139,356 155,329 165,319 174,317 182,323 192,351 195,374 195,368 199,357 204,344 211,331 227,320 235,327 235,327 252,384 254,398 254,405 254,405 254,405 254,405 254,405 254,405 254,405 254,405
+'m': 136,333 135,348 134,360 134,373 134,383 133,391 133,387 135,377 138,366 152,339 162,326 172,317 181,314 188,318 194,328 200,359 200,370 200,374 199,373 204,352 212,341 231,328 242,329 251,335 259,344 264,356 270,381 270,381 272,395 272,395 272,395 272,395 272,395 272,395 272,395
+'m': 125,340 132,343 134,363 135,373 136,382 136,390 136,398 136,400 136,397 137,391 140,383 152,359 171,336 181,330 196,330 202,341 207,354 212,380 214,388 214,397 216,395 218,387 228,363 233,352 244,338 249,337 262,343 269,349 279,370 282,380 284,388 284,392 284,392 283,395 283,395 283,395 283,395 283,395 283,395 283,395 283,395 283,395 283,395 283,395 283,395 283,395
+'n': 180,312 178,341 175,371 174,382 173,388 173,391 172,390 172,385 173,376 182,347 198,321 207,316 216,319 234,338 240,352 242,370 242,386 241,396 240,402 241,404 242,401 242,401 242,401 242,401 242,401 242,401
+'n': 175,318 180,341 176,368 174,387 172,395 172,395 172,391 174,377 177,367 183,355 198,333 216,321 230,323 241,339 246,352 249,367 251,396 251,404 250,408 251,400 251,400 251,400 251,400 251,400 251,400 251,400 251,400 251,400 251,400
+'n': 181,321 180,330 178,352 177,374 176,382 176,391 175,392 175,384 180,368 192,343 207,324 221,316 237,318 250,331 256,357 257,386 256,402 256,406 258,406 258,406 258,406 258,406 258,406 258,406 258,406 258,406 258,406 258,406 258,406 258,406 258,406 258,406 258,406 258,406
+'O': 231,290 270,297 292,333 291,345 288,358 280,373 270,388 270,388 223,403 210,398 202,391 191,369 190,346 198,327 209,309 215,302 221,298 226,295 236,299 239,302 239,302 241,303 241,303 241,303 241,303 241,303 241,303 241,303
+'O': 242,305 261,287 277,289 286,294 300,311 302,333 292,355 273,372 262,377 240,381 224,378 217,366 214,358 215,335 219,326 230,309 252,299 256,299 258,301 259,304 259,304 259,304 259,304 259,304 259,304 259,304 259,304 259,304 259,304 259,304 259,304
+'p': 211,309 198,380 197,392 193,420 191,432 191,440 190,443 190,441 191,421 192,407 193,391 200,359 206,344 212,329 226,311 233,306 242,304 259,310 264,318 267,331 258,358 248,366 236,370 223,365 209,345 210,328 210,328 210,328 210,328 210,328 210,328 210,328 210,328 210,328
+'p': 193,299 198,297 199,309 198,321 197,335 195,370 195,387 195,402 195,422 195,426 194,427 193,418 193,411 195,387 201,360 205,346 210,332 224,305 238,286 244,281 254,288 258,315 256,331 249,346 239,357 227,359 205,348 201,339 201,330 212,320 212,320 212,320 212,320 212,320 212,320 212,320 212,320 212,320 212,320 212,320 212,320
+'p': 203,301 203,304 198,343 192,380 190,395 189,424 189,432 189,437 189,439 189,437 188,424 189,412 192,380 197,362 211,332 235,304 243,302 249,302 255,310 255,342 250,359 241,371 214,370 196,354 197,348 204,333 204,333 204,333 204,333 204,333 204,333 204,333 204,333 204,333
+'q': 266,278 255,268 226,275 202,293 199,305 197,316 206,335 214,338 231,333 238,327 248,313 252,303 257,285 258,281 259,278 258,284 254,308 241,376 236,394 230,421 228,429 227,431 227,430 230,419 237,406 241,399 250,390 250,390 250,390 250,390 250,390 250,390 250,390 250,390 250,390 250,390 250,390
+'q': 252,274 253,263 230,268 217,274 205,285 199,295 198,319 205,327 215,331 227,331 246,317 253,305 257,292 260,281 261,274 261,274 259,292 249,362 243,396 240,409 239,421 242,426 247,417 269,382 278,367 286,353 290,346 290,346 295,338 295,338 295,338 295,338 295,338
+'q': 238,254 257,255 252,257 236,267 221,281 199,329 201,340 223,344 233,337 241,326 252,301 256,289 260,271 261,269 261,269 258,281 250,333 240,382 236,413 236,428 239,427 239,427 273,363 287,339 290,338 290,338 290,338 290,338 290,338 290,338 290,338 290,338 290,338
+'r': 170,286 180,304 178,338 178,353 177,361 176,364 175,360 175,336 178,320 184,305 200,286 212,280 237,275 250,277 260,280 268,285 271,296 271,296 271,296 271,296 271,296 271,296
+'r': 175,293 179,355 178,368 178,366 177,358 181,331 191,305 200,296 221,282 232,279 251,278 260,281 269,289 269,289 272,294 272,294 272,294 272,294 272,294 272,294 272,294
+'r': 184,309 195,336 196,362 196,379 195,384 195,385 195,384 198,367 202,352 213,324 220,315 229,310 240,306 252,305 275,309 281,313 284,316 284,316 283,317 283,317 283,317 283,317 283,317 283,317
+'S': 185,395 193,401 211,407 229,403 243,393 247,381 239,365 231,359 221,355 200,349 190,338 189,331 193,321 201,312 215,303 230,299 237,302 245,305 247,310 247,310 247,310 247,310 247,310 247,310 247,310 247,310 247,310 247,310 247,310 247,310 247,310 247,310
+'S': 182,407 213,413 235,403 242,390 241,371 233,354 227,348 210,345 200,345 184,343 178,337 171,323 172,315 177,309 196,297 219,290 229,288 244,291 248,292 255,294 255,294 255,294 255,294 255,294 255,294 255,294 255,294 255,294 255,294 255,294
+'S': 157,408 161,410 166,417 172,421 181,424 212,429 224,427 236,424 239,417 239,395 232,381 213,357 201,348 191,341 182,334 173,320 176,311 185,301 197,295 225,290 237,292 246,292 255,296 255,296 255,296 255,296 255,296 255,296 255,296
+'T': 218,443 230,383 247,307 251,291 255,272 257,266 258,263 259,260 257,260 253,261 236,259 187,248 187,248 174,245 172,245 175,247 175,247 174,244 174,244 174,244 174,244 174,244 174,244
+'T': 218,441 221,437 222,436 225,431 230,416 232,406 232,406 243,355 247,335 256,292 261,274 263,263 263,258 265,253 263,253 261,256 244,260 219,259 202,254 197,253 198,253 200,253 197,252 197,252 197,252 197,252 197,252 197,252 197,252 197,252 197,252 197,252 197,252 197,252 197,252 197,252
+'T': 238,463 238,456 239,454 240,451 241,432 243,391 248,342 253,306 255,294 258,276 260,271 261,268 260,268 250,268 228,266 202,266 193,266 185,262 178,257 178,255 183,255 183,255 183,255 183,255 183,255 183,255 183,255 183,255 183,255 183,255
+'u': 191,286 186,289 186,320 188,335 199,357 207,363 217,367 229,368 241,365 251,357 264,330 266,314 267,288 267,281 267,280 267,280 270,295 274,330 281,360 285,367 289,374 292,375 292,375 292,375 292,375 292,375 292,375 292,375
+'u': 182,298 182,293 182,291 183,288 183,286 185,284 186,282 186,285 186,285 185,333 189,351 205,369 227,370 237,366 246,357 246,357 258,320 262,288 262,282 262,281 259,307 258,324 263,352 269,360 276,360 284,353 296,336 296,336 296,336 296,336 296,336
+'u': 178,266 183,266 185,262 187,259 187,261 187,267 187,267 186,305 189,342 193,355 200,366 209,373 232,371 243,365 260,343 267,327 273,292 274,279 274,272 274,270 274,285 276,321 276,340 278,351 287,359 287,359 294,356 306,344 306,344 306,344 306,344 306,344 306,344
+'W': 294,292 296,303 293,314 280,341 270,351 247,359 235,352 214,328 209,316 207,308 210,300 212,300 212,302 211,308 208,317 195,339 186,348 175,355 163,356 151,353 151,353 118,313 113,300 114,290 114,290 117,289 124,288 124,288 124,288 124,288 124,288 124,288
+'W': 291,304 294,301 295,301 292,315 285,328 275,338 262,348 234,349 221,343 212,334 207,311 210,302 215,295 219,291 221,294 220,300 212,323 193,347 181,355 168,358 143,352 123,328 117,315 115,304 116,296 118,292 120,290 122,290 121,291 121,291 121,291 121,291 121,291 121,291 121,291 121,291 121,291
+'X': 165,367 212,334 233,309 239,299 252,288 260,295 267,316 271,342 273,356 276,381 277,388 275,393 272,391 245,365 229,348 192,310 186,302 184,295 187,296 190,301 190,301 190,301 190,301 190,301 190,301 190,301 190,301 190,301 190,301 190,301 190,301
+'X': 163,407 204,356 229,336 249,320 262,307 268,303 269,306 269,312 269,336 270,367 270,394 269,406 264,408 260,407 249,395 210,348 182,320 175,315 170,312 171,308 173,305 173,305 169,305 169,305 169,305 169,305 169,305 169,305 169,305 169,305 169,305 169,305 169,305 169,305 169,305 169,305
+'y': 186,253 195,294 212,306 234,309 249,302 256,288 258,267 258,250 259,247 261,266 262,297 261,333 257,366 253,381 240,406 222,409 204,389 193,368 193,368 193,357 193,357 193,357 193,357 193,357 193,357 193,357 193,357 193,357 193,357 193,357 193,357 193,357 193,357 193,357
+'y': 207,220 199,288 216,311 240,313 253,307 262,299 269,289 273,275 273,249 273,236 272,231 273,232 273,232 274,274 269,330 255,388 241,409 241,409 219,401 210,390 202,375 201,352 201,352 201,352 201,352 201,352 201,352 201,352
+'y': 207,221 206,223 206,285 209,304 224,318 234,320 246,316 256,308 270,283 274,266 277,236 277,228 277,225 276,242 274,267 269,317 205,353 205,353 205,353 205,353 205,353 205,353
+'Z': 255,363 231,359 220,357 209,355 199,355 190,354 183,351 179,348 177,345 179,336 189,323 196,316 216,302 225,296 235,289 242,282 251,271 253,268 252,267 248,267 230,264 216,263 203,263 192,263 185,263 181,263 178,262 172,258 172,258 172,258 172,258 172,258 172,258
+'Z': 250,359 201,355 184,355 177,354 171,353 168,352 164,348 165,344 165,344 174,332 187,321 214,302 237,289 245,285 254,279 254,277 250,274 233,268 205,265 192,266 172,270 166,272 162,271 158,269 156,266 152,265 152,265 152,265 152,265 152,265 152,265 152,265 152,265
+'Z': 256,370 232,364 203,364 192,365 181,366 171,364 165,362 161,351 165,343 190,319 202,309 215,297 224,291 233,283 241,273 241,273 217,271 198,273 149,272 140,271 135,270 132,269 132,269 131,269 131,269 131,269 131,269 131,269
+'0': 191,408 211,398 228,377 238,347 238,332 231,305 215,294 194,297 184,302 174,310 159,335 156,347 155,361 157,373 165,393 170,400 170,400 183,405 192,405 200,404 207,403 211,402 213,399 213,399 213,399 213,399 213,399 213,399 213,399 213,399
+'0': 180,411 200,411 216,402 241,379 252,365 256,350 256,322 256,322 244,305 193,287 167,298 158,304 149,311 139,329 138,343 140,358 152,383 162,393 173,399 196,408 204,410 209,412 211,408 211,408 211,408 211,408 211,408 211,408 211,408
+'0': 183,410 184,406 187,407 194,408 210,409 233,403 244,395 253,385 259,370 258,347 251,324 239,303 201,277 169,274 156,279 144,288 137,300 129,336 130,353 139,380 159,397 171,402 183,408 202,407 202,407 202,407 202,407 202,407 202,407 202,407 202,407 202,407 202,407
+'2': 175,270 185,258 198,243 206,238 224,235 232,241 232,241 237,260 233,320 225,333 215,341 194,361 194,361 186,369 181,374 178,377 179,379 181,380 187,380 203,380 234,380 256,381 256,381 263,381 264,381 264,381 263,380 260,380 260,380 260,380 260,380 260,380
+'2': 172,283 183,257 203,234 221,228 236,230 242,235 249,251 244,274 231,311 224,327 208,344 191,356 183,363 181,365 181,366 183,367 188,368 204,367 231,366 246,366 259,368 275,369 277,369 275,368 272,367 272,367 264,365 264,365 264,365 264,365 264,365 264,365 264,365 264,365 264,365 264,365 264,365 264,365
+'2': 172,274 183,258 188,248 196,238 218,224 218,224 239,230 239,230 243,249 230,309 212,332 203,341 195,352 190,361 188,366 187,369 188,370 190,370 196,370 196,370 213,368 243,365 264,365 266,367 266,367 258,367 258,367 258,367 258,367
+'3': 173,239 189,224 213,223 227,227 237,234 244,260 238,274 229,285 218,291 207,294 196,295 197,296 213,302 224,306 234,313 243,320 248,352 243,367 224,389 209,394 194,396 179,393 169,389 162,386 162,386 158,380 158,380 158,380 158,380 158,380
+'3': 151,244 197,219 218,222 228,230 234,253 229,267 211,287 202,290 192,288 191,287 197,288 212,297 219,302 233,317 235,331 235,331 227,370 209,396 199,396 185,394 172,389 163,384 158,380 159,375 159,375 159,375 159,375 159,375 159,375 159,375 159,375 159,375
+'3': 164,234 169,234 172,230 177,223 185,217 195,214 220,222 232,233 239,263 227,284 208,291 201,291 197,292 199,295 203,298 210,302 220,306 229,314 236,325 239,355 234,370 225,384 196,394 173,393 170,390 170,390 167,383 167,383 167,383 167,383 167,383 167,383 167,383 167,383
+'4': 208,398 227,289 230,238 231,212 232,197 231,195 224,209 195,266 186,280 171,301 164,310 156,319 156,320 156,320 166,320 184,320 249,320 262,320 271,321 271,321 271,321 261,322 261,322 261,322 261,322 261,322 261,322 261,322
+'4': 205,394 213,374 221,329 224,310 231,260 237,224 237,206 235,198 228,205 218,224 198,262 180,293 167,305 162,308 160,311 164,313 178,316 196,320 248,322 259,320 265,319 270,318 270,318 266,321 266,321 266,321 266,321 266,321 266,321 266,321 266,321 266,321
+'4': 210,402 214,393 216,386 219,373 219,373 229,320 233,289 238,241 238,217 238,214 235,214 230,221 230,221 186,273 173,286 164,294 154,305 152,308 153,311 153,311 186,323 241,334 254,332 269,328 275,326 275,326 270,329 270,329 270,329 270,329 270,329 270,329 270,329
+'5': 284,214 216,213 203,216 188,221 186,223 188,227 189,234 189,245 188,262 186,278 186,301 186,301 188,306 201,306 224,309 235,312 256,321 263,329 265,342 265,342 254,381 237,391 186,387 175,380 167,372 163,367 163,359 163,359 163,359 163,359 163,359 163,359 163,359
+'5': 259,210 263,210 247,210 200,211 190,212 185,214 181,217 181,225 183,234 185,269 186,286 186,300 186,305 186,309 191,310 196,309 214,309 238,316 238,316 255,335 258,351 244,382 244,382 211,392 197,388 185,380 181,374 177,366 177,366 177,366 177,366 177,366 177,366 177,366
+'6': 238,176 215,213 205,228 199,242 191,270 184,313 183,334 185,349 194,373 202,381 212,386 222,388 238,384 244,377 247,364 250,334 244,311 238,304 219,296 210,295 202,296 196,298 191,302 189,305 188,307 187,308 186,308 184,308 184,308 184,308 184,308 184,308 184,308
+'6': 238,178 241,173 234,187 219,220 209,250 201,276 190,321 188,339 188,369 192,383 198,394 207,402 217,409 237,413 245,409 253,399 258,386 262,370 261,352 250,320 241,310 231,306 220,306 212,310 206,313 195,314 195,314 195,314 195,314 195,314
+'6': 256,213 261,188 261,185 258,193 258,193 248,217 229,279 221,315 215,346 209,393 211,419 217,424 225,430 237,432 250,431 269,414 269,414 275,374 268,338 260,331 249,325 226,330 215,335 206,339 206,339 193,341 193,341 193,341 193,341 193,341
+'7': 161,209 171,214 184,215 202,216 222,216 257,213 269,210 279,205 278,211 269,229 258,253 222,321 206,348 199,360 191,373 179,394 176,401 174,405 170,411 168,414 167,416 165,417 165,417 167,415 167,415 167,415 167,415 167,415 167,415 167,415 167,415
+'7': 158,203 160,201 162,200 177,201 177,201 195,204 216,206 251,205 262,200 271,193 273,191 272,192 270,198 261,221 252,248 225,320 225,320 209,358 203,372 196,388 192,398 188,406 186,411 185,415 184,416 183,415 183,415 183,415 183,415
+'7': 142,196 153,205 161,206 181,205 202,203 237,200 260,196 266,195 272,195 264,208 254,228 226,282 210,324 197,356 191,369 184,383 179,392 175,398 173,402 172,404 172,405 172,402 172,402 172,402 172,402 172,402 172,402
+'8': 234,183 196,202 183,211 172,230 171,246 174,260 191,280 202,288 213,295 224,302 233,309 240,320 252,363 251,379 246,394 238,406 219,423 210,426 196,416 179,380 180,370 184,358 191,344 205,318 211,309 219,298 226,286 232,273 233,245 233,245 225,219 221,211 218,206 213,204 213,204 213,204 213,204 213,204 213,204 213,204 213,204 213,204 213,204
+'8': 228,188 168,217 161,248 169,281 177,294 186,305 198,314 222,330 234,338 243,346 251,356 257,367 255,395 242,420 231,424 208,423 200,416 193,407 188,380 189,364 193,348 199,334 210,320 231,290 238,276 243,260 243,244 234,213 228,204 221,202 209,206 209,206 209,206 209,206 209,206 209,206 209,206 209,206 209,206 209,206 209,206
+'8': 241,206 235,206 186,223 165,241 163,251 163,266 176,288 200,302 222,314 238,327 244,334 255,356 257,369 257,395 252,408 244,418 235,427 222,432 212,433 203,429 197,421 190,396 187,367 187,367 214,303 229,292 239,285 248,276 254,263 256,249 242,226 233,220 233,220 220,214 220,214 220,214 220,214 220,214 220,214 220,214 220,214 220,214 220,214
+'9': 250,208 176,222 168,231 164,241 163,252 166,263 166,263 211,292 236,294 243,289 250,282 259,262 262,250 264,240 265,231 265,223 264,219 264,217 263,218 262,222 261,229 260,252 259,277 256,323 256,323 254,366 254,379 254,395 253,406 252,416 252,422 252,422 252,428 252,429 252,428 252,428 253,427 254,427 255,427
+'9': 259,190 263,194 253,191 239,189 209,189 197,195 188,204 177,244 176,261 177,277 181,287 199,302 212,304 226,304 240,299 249,293 255,282 258,270 258,256 257,243 256,235 255,237 255,237 253,260 249,287 246,317 242,349 238,394 236,409 235,419 235,423 235,431 235,431 235,433 236,433 236,433 236,433
+'9': 270,204 275,202 273,199 270,197 263,194 231,195 231,195 194,211 175,237 173,266 181,290 181,290 206,303 235,304 244,299 253,292 264,270 271,239 274,214 275,206 274,212 274,212 267,260 261,309 256,356 253,388 252,396 251,409 250,413 250,413 250,413 250,413 250,413 250,413 250,413 250,413 250,413 250,413 250,413
diff --git a/guessture/pixelpath.2008-09-03-12-30-20 b/guessture/pixelpath.2008-09-03-12-30-20
new file mode 100644 (file)
index 0000000..9e10d58
--- /dev/null
@@ -0,0 +1,356 @@
+'A': 109,479 115,465 120,454 131,429 141,403 153,376 166,340 178,309 208,231 214,214 219,199 223,188 228,177 231,172 235,170 246,184 257,206 269,233 280,265 289,299 297,332 306,382 309,401 315,424 315,424 317,435 321,445 327,459 327,459 328,464 329,468 329,468 330,470
+'A': 115,472 119,463 120,461 120,460 121,454 123,445 125,433 128,418 134,377 140,347 147,312 155,280 166,244 183,198 191,184 199,174 207,167 218,162 228,160 238,162 252,174 265,192 278,221 289,250 301,301 304,321 306,339 307,356 308,374 309,387 312,409 315,421 318,435 321,446 324,459
+'A': 119,449 126,443 134,425 144,402 158,373 173,339 173,339 189,303 202,270 214,238 231,192 236,178 240,169 241,166 250,173 260,189 270,211 282,239 290,270 296,301 304,353 306,372 309,389 310,403 312,415 313,422 315,429 315,433 316,436 315,426 313,407 305,365 299,350 293,339 288,335 283,333 275,335 257,338 237,341 199,341 185,342 174,344 170,344 164,340
+'A': 117,457 118,454 122,431 129,400 138,363 148,325 162,280 176,244 200,195 211,179 221,167 238,169 258,178 277,197 295,224 306,254 313,285 315,321 311,381 306,421 304,431 303,442 302,449 301,452 301,453 302,452 303,444 307,407 308,391 307,376 305,371 288,360 276,358 254,357 216,358 200,359 187,360 178,362 168,365 161,367 158,369 156,369 155,364
+'B': 167,469 167,459 168,438 171,372 172,333 174,295 177,261 180,227 187,196 205,155 224,143 245,139 265,142 288,150 302,166 308,186 306,212 297,240 283,264 256,295 245,301 233,302 226,302 219,302 216,302 226,306 238,313 253,324 281,352 288,367 285,394 273,416 259,434 238,452 215,455 160,440 160,440 142,422
+'B': 184,147 183,165 181,196 177,241 174,290 172,339 169,405 168,426 168,438 168,443 167,446 167,423 166,392 168,356 171,312 178,269 192,205 206,181 222,170 241,167 273,174 283,196 275,267 267,282 267,282 256,292 245,297 231,301 218,302 210,303 208,303 214,304 225,305 243,317 258,332 268,353 269,392 256,413 240,427 220,430 182,424 169,415 162,407 168,391
+'B': 153,404 156,390 156,375 157,346 157,314 158,282 161,251 167,224 177,198 198,164 208,154 220,149 240,153 275,167 286,192 283,217 253,267 219,285 208,288 198,287 191,287 185,286 182,284 192,281 208,280 230,282 255,287 291,303 300,312 305,322 296,343 283,366 265,385 243,400 222,403 183,391 171,383 162,376 162,364
+'B': 151,424 153,403 154,385 155,358 156,326 159,287 175,205 175,205 189,184 203,166 221,154 244,143 279,139 292,142 302,146 309,154 316,165 321,181 321,199 311,222 297,241 277,256 228,273 228,273 220,274 217,273 214,274 222,271 235,270 263,271 294,285 305,293 318,307 325,318 326,341 318,364 300,386 274,407 208,428 208,428 194,427 182,424 174,419 167,413 158,403
+'B': 150,438 151,428 150,419 148,407 145,393 138,349 134,319 131,288 131,262 135,208 140,190 146,173 153,160 162,148 172,140 194,140 217,145 257,167 268,179 274,193 270,213 257,236 225,266 210,274 199,275 195,276 191,276 189,276 191,275 202,275 218,276 237,280 269,296 281,306 290,318 296,329 301,342 302,353 292,368 277,384 247,409 233,415 213,412 181,400 167,390 162,383 157,380
+'B': 184,165 185,177 182,200 179,234 174,273 168,335 164,356 161,372 158,385 154,397 152,405 151,410 156,385 160,362 165,337 172,311 182,284 193,258 211,216 219,202 226,192 233,187 245,181 258,182 271,187 282,194 290,208 296,221 296,249 290,260 282,269 270,278 258,282 247,284 239,285 235,285 235,285 233,285 235,285 251,288 251,288 271,299 279,307 285,318 287,331 288,344 287,357 283,372 277,387 277,387 257,412 257,412 236,420 201,423 185,420 164,410 156,404 150,400 147,394
+'C': 308,406 308,407 306,410 306,410 303,413 297,416 280,420 262,424 240,423 217,420 187,408 158,385 149,373 138,348 135,324 140,240 146,223 155,210 177,197 206,184 234,177 280,172 295,175 308,179 317,183 325,186 329,188 330,189 330,190
+'C': 327,420 324,410 321,410 321,410 317,411 300,417 278,422 252,427 222,429 183,428 169,426 157,421 147,412 137,399 129,386 125,371 125,343 133,292 146,263 164,243 183,230 204,216 226,209 244,207 279,211 290,216 299,221 303,223 306,225 309,226
+'C': 289,407 278,410 259,413 233,417 206,417 135,402 116,388 103,368 97,347 92,318 95,289 103,263 115,239 132,220 152,205 175,192 200,184 227,177 270,175 286,177 297,181 303,183 307,186 308,188
+'D': 170,195 172,194 173,196 174,212 173,234 174,265 174,301 174,351 174,370 174,383 175,390 175,395 174,398 175,397 174,384 174,364 174,337 177,303 185,269 201,217 208,201 227,191 247,192 271,197 305,220 314,233 315,264 310,296 298,330 261,381 239,392 205,397 180,374 172,346
+'D': 175,205 175,211 173,234 172,389 172,425 172,425 171,430 171,419 170,398 169,373 170,343 174,314 182,287 202,245 220,227 238,218 257,215 281,217 311,233 323,256 329,282 329,309 324,338 310,361 289,380 264,394 223,408 207,411 194,409 184,405 163,387
+'D': 169,216 169,215 169,216 169,234 168,262 169,298 169,338 171,397 173,415 175,427 176,433 177,437 178,439 177,426 178,405 180,380 182,351 187,307 195,264 201,248 209,233 236,220 257,227 288,251 301,278 303,310 297,340 287,374 270,400 252,419 230,430 208,434 175,427 167,419 166,394
+'D': 175,422 174,422 174,423 174,408 175,381 176,348 176,284 176,264 175,251 176,248 176,244 176,243 177,242 179,241 182,237 196,234 225,231 249,240 280,264 294,289 296,319 290,350 279,382 242,419 222,424 190,420 178,412 170,403 166,384
+'D': 165,426 168,419 168,402 169,377 171,343 174,272 175,246 176,227 176,219 177,212 178,209 179,209 192,209 210,209 231,213 257,221 280,235 299,257 311,285 314,316 304,351 286,381 265,403 243,416 220,419 183,408 162,391
+'D': 107,418 109,418 111,398 113,379 118,342 125,297 138,223 141,198 142,180 142,175 142,169 143,168 143,169 152,169 170,173 193,184 220,198 243,216 263,237 276,265 281,299 275,335 260,369 237,395 210,412 182,419 136,420 121,415 109,409 105,402 103,390 113,364
+'D': 220,409 219,408 219,405 221,383 224,352 229,309 236,231 237,206 238,192 238,187 238,183 239,181 252,183 273,186 296,192 323,203 346,222 362,243 371,272 368,307 355,343 333,377 309,403 283,420 259,425 224,416 212,409 195,390
+'D': 175,202 178,212 175,231 172,264 169,300 169,340 171,394 172,411 172,419 172,422 171,406 171,376 170,341 172,281 174,262 179,244 192,230 209,219 230,217 252,224 272,240 295,275 296,307 288,340 276,369 259,399 241,419 221,430 190,426 177,417 168,404 158,379
+'D': 181,216 183,218 184,234 185,256 186,286 185,326 184,382 183,403 183,416 182,423 182,428 181,417 179,398 177,370 177,337 179,303 190,255 205,236 224,224 244,221 268,221 289,232 306,251 317,275 319,304 311,338 293,370 270,398 243,416 201,427 185,425 159,404
+'E': 300,197 293,198 277,199 257,201 233,206 197,220 185,229 174,241 168,250 171,262 184,273 205,281 244,292 257,294 266,296 271,296 275,296 266,294 246,292 220,292 193,293 170,300 143,324 137,340 142,363 155,383 281,438 281,438 296,436 307,432 319,421
+'E': 295,202 292,200 291,199 276,197 245,194 227,192 214,193 204,197 192,205 170,244 161,262 150,295 148,306 147,312 148,315 148,315 153,317 171,320 193,321 222,322 265,323 277,322 282,322 273,319 273,319 255,315 231,310 187,306 171,308 161,312 157,315 152,320 151,324 151,344 153,386 155,407 155,419 156,426 157,435 158,440 159,444 173,445 192,444 216,441 256,439 270,438 280,441 287,442 293,442 297,443 306,434
+'E': 275,184 274,189 258,191 237,196 214,206 190,221 174,240 158,281 157,298 169,314 188,324 235,338 252,340 265,342 271,341 276,338 269,327 256,316 238,309 218,309 200,320 174,346 167,361 170,397 183,419 201,438 221,447 244,454 281,450 294,446 303,441 310,432
+'E': 288,191 284,189 272,189 253,192 215,200 200,207 187,215 177,223 168,239 172,263 183,286 216,316 228,322 241,324 248,327 254,329 256,330 257,331 255,331 240,331 208,337 191,341 178,350 170,359 162,372 160,389 167,415 183,458 194,475 212,487 231,493 269,500 281,499 290,499 297,499
+'E': 275,183 278,187 279,187 279,188 279,187 280,189 279,189 276,189 270,189 261,188 249,189 235,190 207,199 207,199 194,208 181,217 170,227 163,237 157,244 152,253 150,265 149,278 150,292 152,304 154,312 155,322 155,322 153,337 152,344 153,347 153,347 153,350 173,348 197,346 241,346 252,347 261,350 267,352 272,352 275,353 261,352 238,352 210,352 160,352 146,354 138,358 137,364 137,376 141,388 150,414 162,441 177,465 198,488 218,500 270,504 282,502 296,497
+'E': 299,169 296,168 285,171 267,178 243,187 217,198 196,214 180,233 167,287 181,305 199,319 221,332 259,342 271,344 277,344 280,345 281,345 280,342 277,342 271,340 253,338 232,338 206,340 166,347 154,350 149,352 148,352 146,354 147,362 147,372 148,386 150,404 155,436 157,452 159,464 160,469 161,473 162,475 178,474 196,473 233,474 266,474 278,474 292,476 300,478 308,478 316,474
+'F': 344,178 338,173 320,169 298,166 271,167 228,171 212,174 200,181 192,190 186,229 195,252 210,271 227,279 261,293 274,297 285,300 292,301 297,303 300,302 301,302 298,300 281,292 249,281 232,276 219,277 208,279 197,284 186,298 183,305 183,324 184,348 188,391 190,407 194,419 196,426 199,437 201,444 201,450 202,459 202,464 202,467 202,468 202,469 201,469
+'F': 330,190 325,195 309,192 288,189 261,186 230,190 207,198 187,215 172,236 159,276 158,295 160,310 176,322 198,332 242,342 258,344 270,345 275,346 279,346 279,345 264,338 245,332 210,324 197,326 185,330 174,337 163,347 156,358 152,373 152,390 154,408 156,426 162,444 168,462 174,477 180,490 183,499 186,504 187,505 186,506 186,501
+'F': 342,172 337,172 321,173 298,177 206,195 188,196 188,196 187,196 186,200 186,200 189,220 192,242 190,291 187,307 185,319 185,325 185,329 195,330 215,331 240,331 284,333 310,335 317,336 324,336 327,336 327,336 314,336 288,334 229,331 209,330 196,330 192,331 188,331 186,334 186,351 187,373 190,441 192,458 194,470 195,482 195,488 195,490 195,492
+'F': 332,166 333,168 333,169 333,168 330,168 325,168 303,168 280,172 255,179 217,196 197,220 197,220 190,251 190,251 190,266 201,284 215,298 234,309 257,318 293,324 308,326 319,327 326,327 332,328 334,328 326,325 308,325 284,322 255,325 209,339 196,350 185,389 194,462 200,481 206,494 212,502 218,509 221,512 223,513 223,512 223,512
+'F': 304,195 301,195 295,193 277,185 257,181 216,173 203,174 193,174 188,175 183,176 180,178 180,197 179,225 177,257 174,294 170,335 164,377 153,445 148,476 148,479 149,468 151,444 154,415 167,332 167,332 175,287 185,221 188,201 189,191 189,186 189,182
+'F': 318,183 317,189 314,189 298,190 278,190 253,191 215,191 202,190 193,190 190,189 190,205 190,226 191,255 190,291 189,327 188,362 188,417 188,437 189,451 189,456 188,451 188,429 189,390 190,339 185,205 185,203 185,203 186,208
+'F': 317,200 314,200 312,199 299,196 281,195 246,194 233,195 223,195 217,195 211,197 208,214 207,241 206,278 205,320 203,358 198,415 198,433 198,443 198,447 198,450 198,451 198,427 199,394 201,352 203,302 205,234 204,213 202,202 201,198 200,195 201,195 202,196
+'F': 342,258 337,260 321,259 301,258 261,260 247,260 237,261 233,263 230,261 228,294 224,324 221,361 219,397 216,450 215,467 214,478 214,483 213,487 212,487 214,468 217,434 219,389 224,315 225,291 226,277 227,272 228,263
+'F': 178,472 177,429 177,407 178,364 179,319 181,274 181,213 180,195 180,182 182,176 195,172 211,171 233,176 260,180 299,189 313,193 324,196 329,197 335,198
+'F': 170,476 170,464 169,440 169,412 170,379 172,342 174,308 180,273 188,243 199,218 226,184 239,174 252,167 271,167 296,171 336,188 348,196 355,201 357,203 357,205
+'F': 169,469 171,462 174,444 177,415 182,376 185,330 188,230 188,212 187,199 188,190 190,183 193,179 198,177 212,177 229,177 252,179 291,184 305,186 317,188 325,188 333,190 337,189 337,188
+'F': 173,469 171,471 170,470 170,469 169,447 167,423 166,396 166,362 167,333 170,302 179,245 184,223 191,205 207,191 226,181 247,178 270,181 302,195 313,205 323,214 327,219 332,224 333,226 332,226
+'6': 349,227 345,216 341,209 334,202 315,191 291,184 268,182 241,185 220,195 200,214 182,239 170,267 160,324 161,351 167,398 171,416 178,433 188,444 200,456 215,463 230,467 245,468 260,464 274,458 274,458 290,438 311,400 317,382 319,369 318,361 318,354 317,351 316,350 314,349 310,349 304,348 288,348 256,345 242,343 234,342 231,341 228,341 227,341 228,341 228,340
+'G': 334,214 337,207 339,205 341,204 341,202 339,199 325,188 308,181 287,175 261,174 238,180 215,188 190,201 159,226 150,241 146,258 145,283 152,333 170,377 179,389 191,404 207,412 227,417 247,418 282,406 295,399 306,389 315,380 322,368 327,355 328,345 326,338 323,333 320,330 317,330 313,329 301,331 295,332 290,332 287,334 286,334 286,335
+'G': 346,212 347,204 335,193 315,181 212,184 212,184 186,199 167,219 156,242 151,266 151,290 158,318 169,342 184,364 203,380 224,389 245,391 280,383 293,375 305,364 314,351 321,339 326,328 328,322 328,320 328,321 328,325 328,336 328,347 328,360 329,373 330,382 331,388 332,389
+'G': 335,227 344,223 348,222 350,219 349,212 337,195 319,177 294,164 263,157 235,164 210,178 178,209 169,226 164,242 168,268 174,294 185,320 199,341 217,356 237,365 257,369 290,367 302,364 312,357 319,350 324,339 327,332 328,326 328,325 327,330 326,341 325,354 325,369 326,381 327,391 328,397 330,401 329,403 330,404
+'G': 341,188 340,188 330,178 314,168 293,160 266,153 240,156 214,163 192,175 176,193 157,227 158,252 163,276 192,320 213,333 269,347 282,346 293,343 301,338 311,329 317,321 321,314 322,306 322,303 322,300 322,299 321,299 321,300 321,298 321,299 321,301 320,316 318,350 316,368 316,377 317,385 317,390 318,392 320,390
+'H': 155,159 149,182 146,203 141,241 138,287 136,329 128,451 127,457 127,460 132,447 140,428 156,388 178,353 187,341 209,325 228,317 250,311 284,314 295,320 306,342 311,369 316,419 315,434 313,444 313,449 312,452 312,453 312,449 313,436 314,419 316,392 318,353 321,311 325,244 326,223 325,209 325,202 325,196 325,193 325,191 325,190 327,187
+'H': 165,147 165,153 162,176 157,205 151,240 148,282 146,319 145,374 145,408 145,418 146,426 146,429 149,415 156,376 160,354 165,337 169,324 176,313 187,305 206,304 240,305 256,307 269,307 282,308 295,310 306,310 312,314 315,332 315,373 316,392 315,410 317,432 317,439 317,441 316,427 315,407 315,375 316,338 315,300 309,204 307,187 307,187 306,177 306,174 306,171 309,172
+'H': 180,155 179,160 177,178 175,205 171,241 168,284 166,324 165,415 166,433 166,443 167,448 172,438 181,408 186,389 200,351 209,337 237,317 252,313 267,309 279,310 292,309 302,308 311,308 320,309 322,312 322,312 323,332 323,358 324,406 325,421 327,435 327,443 329,450 329,453 328,453 327,437 326,421 322,389 322,389 318,353 315,313 313,269 311,213 310,186 310,182 310,179 310,178
+'H': 178,152 177,157 176,180 174,209 171,243 170,282 169,319 170,376 170,412 169,418 169,425 169,426 169,425 170,419 172,397 175,372 185,326 193,312 201,302 217,301 246,308 261,313 286,323 298,324 308,325 314,325 317,324 319,320 319,320 318,287 318,257 317,200 315,175 311,155 309,152 309,152 309,163 308,186 307,219 306,261 306,303 308,345 315,402 319,420 322,431 323,435 324,440 324,441 325,436
+'H': 190,152 190,155 188,175 185,202 182,237 178,280 175,319 170,413 169,431 168,443 168,448 168,451 169,432 171,407 174,379 179,332 183,318 190,307 199,302 219,302 240,309 278,324 304,335 304,335 314,338 321,339 326,339 330,334 334,315 338,293 347,223 348,204 348,194 347,185 347,182 347,182 344,202 340,234 336,277 333,326 331,371 328,435 327,471 326,477 326,483 326,485 324,475
+'H': 188,137 186,140 185,153 185,175 184,205 182,244 180,283 178,377 179,425 179,427 183,382 186,331 187,316 187,303 189,295 190,289 200,290 200,290 217,300 235,309 256,315 288,324 300,323 312,321 320,321 328,319 338,311 338,311 341,290 344,265 346,213 347,193 347,174 348,163 348,154 346,164 343,190 339,225 336,272 334,318 334,359 338,419 339,434 341,443 340,444 340,445 340,439
+'H': 174,149 179,153 178,168 176,194 173,229 170,273 168,315 170,376 172,397 174,413 175,425 176,433 177,435 177,435 180,412 185,382 196,325 209,291 223,291 239,292 256,301 287,316 299,321 312,325 322,328 333,331 340,332 344,330 347,327 351,307 355,283 361,230 362,210 363,194 363,187 363,181 360,192 356,215 352,251 348,297 346,344 346,414 347,435 347,448 348,457 348,463 348,466 349,467
+'I': 258,178 258,177 258,179 257,193 256,215 253,244 251,280 249,317 246,370 245,406 244,418 244,431 243,439 243,441 246,432 249,412 254,380 260,338 265,294 272,229 275,207 277,193 278,188 279,183 280,185
+'I': 234,172 235,178 234,198 234,224 233,257 233,295 233,331 231,402 229,416 227,428 225,439 225,445 225,448 225,448 226,442 229,420 231,390 233,352 236,302 236,260 234,198 232,173 233,169 233,167 234,167
+'I': 236,180 235,180 234,185 233,207 232,242 231,280 230,320 228,415 227,435 226,451 225,459 224,465 223,467 224,467 226,448 234,379 240,327 246,251 246,205 245,195 244,185 244,185 244,185 245,180
+'J': 248,220 248,212 250,206 251,203 252,197 253,192 254,188 254,186 255,186 254,187 253,208 251,237 250,274 248,313 246,364 245,383 245,400 245,413 246,426 246,434 247,439 247,442 246,444 235,447 215,450 189,454 141,458 117,457 114,457 111,456 112,456 117,456 136,454 161,452 187,451 230,449 241,448 247,448 249,449 251,449 252,445
+'J': 254,209 253,203 253,201 253,202 253,201 254,205 255,224 256,249 257,282 258,324 259,359 260,411 261,427 261,455 261,463 260,468 246,466 223,461 193,458 160,453 115,447 105,446 101,445 118,447 144,445 175,444 211,442 255,445 267,446 273,447 274,446 274,446
+'J': 157,194 160,198 162,200 167,200 185,200 207,202 230,202 268,202 282,201 301,200 307,200 309,200 305,200 296,200 285,199 272,198 260,196 252,195 247,195 245,196 245,199 246,204 247,210 249,231 250,253 252,278 254,309 255,335 257,383 255,399 252,416 246,428 237,441 163,385 170,369
+'J': 151,187 156,186 160,185 167,184 184,184 226,185 251,186 284,189 297,190 305,191 309,191 313,191 314,191 302,192 283,191 243,188 232,187 226,186 225,186 224,187 225,187 225,188 226,188 229,200 232,217 235,242 238,276 239,311 237,349 233,384 224,416 203,452 183,451 166,438 140,402 133,379
+'J': 143,351 145,346 146,345 146,348 146,357 149,371 154,387 176,420 186,430 196,437 205,437 215,438 225,434 236,426 249,406 259,376 265,345 268,310 268,273 264,220 261,200 259,187 257,179 256,174 255,172 255,167 255,163
+'J': 139,364 149,397 154,411 162,425 172,436 185,444 198,450 209,451 219,450 228,445 253,397 265,363 274,321 277,281 275,224 272,207 270,194 268,185 265,176 263,168 261,163 259,160 259,159 259,160
+'K': 147,169 149,172 151,191 153,223 160,306 163,352 169,415 172,436 175,450 177,456 180,461 183,462 189,458 204,441 220,418 239,389 261,354 278,321 293,288 304,256 318,204 324,169 324,164 325,158 322,173 315,200 303,240 287,287 267,335 236,404 226,425 219,440 217,444 218,444 218,443 218,444 218,443 218,444 220,444 236,446 255,449 295,454 309,458 323,461 332,464 341,467 347,468 348,468 349,468
+'K': 153,207 154,199 155,218 156,244 158,279 161,325 164,365 171,423 174,442 176,455 178,462 180,467 192,452 208,429 228,398 255,358 281,317 321,251 333,228 339,211 342,203 345,196 345,195 335,217 322,244 298,300 290,319 283,336 279,347 276,356 278,360 282,363 296,378 313,397 343,433 354,445 362,453 366,457 370,461
+'K': 170,198 169,204 169,222 169,251 170,288 173,334 179,400 181,423 183,437 186,448 187,457 189,460 192,460 204,443 221,419 241,389 263,353 293,302 306,271 323,229 331,208 337,198 338,194 340,190 340,192 333,211 321,237 288,304 280,321 280,321 279,327 278,330 279,332 281,334 290,344 304,358 319,375 347,408 357,422 365,432 370,439 375,445 378,449
+'K': 170,187 175,198 176,216 181,279 181,319 183,361 184,416 186,436 188,448 190,452 192,457 192,457 205,440 221,416 241,385 264,348 288,309 322,253 334,232 349,208 344,218 333,243 286,342 273,367 273,367 273,369 272,370 273,370 275,370 286,381 301,397 318,414 348,446 357,456 365,465 368,470 295,359
+'K': 183,201 183,202 182,209 183,233 184,265 185,303 187,344 191,427 192,443 194,451 195,458 196,460 197,461 199,459 211,443 225,423 242,397 268,356 274,343 278,335 280,331 282,327 283,325 283,324 283,326 283,324 284,324 287,317 298,295 308,271 328,229 333,214 337,204 339,196 340,190 341,186 339,190 329,212 317,243 284,326 268,363 253,396 231,438 224,449 220,455 219,456 221,456 223,455 223,455 224,455 225,454 227,454 243,458 262,458 285,460 306,461 344,467 355,470 364,473 368,474 372,474 374,474 375,475
+'K': 381,191 380,191 367,208 350,229 326,262 295,306 264,353 234,396 180,469 173,477 171,479 169,480 171,466 172,445 174,414 177,371 181,319 185,269 187,197 186,177 185,166 184,163 187,160 196,173 210,194 228,219 250,251 274,281 297,311 319,340 349,379 358,391 365,401 370,407 373,413 375,415 375,415
+'K': 359,182 362,179 363,179 363,180 355,190 341,210 322,239 300,276 280,313 263,347 240,394 223,423 218,431 211,442 210,443 210,442 211,441 211,426 212,402 213,370 214,327 212,282 209,241 199,185 194,164 193,163 194,163 197,168 200,177 212,195 225,217 263,267 285,295 306,323 338,363 348,375 355,382 358,385 361,388 361,388 362,387 362,387 360,386
+'K': 339,168 348,167 351,165 353,165 352,168 340,186 322,211 301,244 276,286 253,329 231,371 189,444 182,454 176,460 173,465 173,465 171,469 170,469 171,451 173,425 176,389 179,347 181,262 180,200 177,180 176,167 176,167 175,162 176,159 191,177 206,196 242,247 265,281 287,314 308,346 338,394 348,409 354,416 354,416 360,421 360,421
+'L': 167,142 169,143 165,161 161,191 159,229 155,276 150,344 149,366 148,382 147,393 147,401 148,405 149,408 153,408 168,409 186,412 208,412 233,413 256,411 291,410 302,409 309,410 311,410 304,410 286,408 260,408 230,407 188,405 174,407 161,411 151,413 142,414 137,415 136,417 137,418 140,414
+'L': 196,152 191,152 185,169 179,199 173,237 165,282 156,347 153,369 151,384 150,390 150,395 153,397 162,397 180,401 200,403 225,407 252,410 295,415 311,416 321,416 325,418 327,418 312,419 290,419 265,417 237,415 201,409 178,407 178,407 166,404 163,405 163,405 163,406 164,413
+'L': 326,425 326,425 315,424 298,425 272,428 243,430 217,435 178,440 165,443 155,444 149,443 144,443 143,442 144,429 145,408 146,379 148,339 158,183 158,180 159,182
+'L': 325,414 323,417 312,420 295,424 271,429 241,437 193,447 177,450 166,451 160,451 156,451 154,450 154,440 154,440 154,419 153,392 151,358 151,318 154,245 156,220 157,203 157,198 157,193 157,191
+'L': 332,423 331,423 328,424 313,424 293,425 266,427 197,434 183,436 173,435 169,433 165,434 163,433 163,434 163,433 163,432 163,406 165,367 166,321 168,231 167,205 166,191 164,187 163,185 165,191
+'M': 103,469 105,459 106,436 106,408 109,333 111,297 115,265 121,233 134,190 161,159 161,159 195,159 210,166 225,177 233,190 241,209 246,229 249,247 251,261 252,271 252,279 252,284 252,285 251,287 251,288 251,286 253,258 255,242 260,228 266,219 274,210 285,203 296,197 309,194 325,204 337,222 345,248 350,282 349,337 350,377 351,393 352,411 353,436 353,436 353,440 353,443 353,442
+'M': 105,446 106,445 110,430 115,409 122,379 131,340 140,297 153,221 158,194 161,176 163,169 171,170 182,182 192,201 202,224 212,248 224,286 230,299 234,309 238,313 248,299 258,274 269,246 290,199 298,185 305,177 311,176 322,193 329,222 335,260 341,302 348,361 352,378 355,389 357,397 359,408 361,425
+'M': 106,457 109,449 111,444 113,434 118,408 125,370 132,322 145,238 149,211 151,195 152,191 154,187 162,202 173,228 194,274 202,290 209,301 213,307 218,311 224,311 238,298 253,278 271,249 315,182 321,174 326,180 330,198 333,231 333,271 335,311 336,375 337,396 337,413 338,422 339,435
+'M': 99,453 105,453 105,448 107,438 110,411 114,376 119,333 127,286 145,220 152,201 161,187 175,189 191,198 224,249 230,265 233,281 234,292 235,302 236,307 246,277 256,256 256,256 277,222 305,203 323,207 341,218 350,237 358,268 358,326 355,358 350,400 348,418 347,430
+'M': 96,453 104,446 112,423 119,391 135,306 142,269 142,269 153,216 159,196 169,209 182,230 205,280 214,299 221,310 225,315 235,308 247,290 261,265 289,220 301,204 309,196 314,194 322,207 328,232 333,262 337,296 346,388 347,400 347,400 350,411 350,411 349,415
+'M': 127,444 126,441 126,420 128,390 130,351 135,302 143,259 159,201 167,187 183,191 198,206 212,229 230,275 233,291 235,300 235,303 235,306 236,305 242,286 253,261 277,215 288,201 298,192 314,201 329,220 349,318 348,365 348,380 347,390 347,393 347,396
+'N': 121,465 123,454 124,444 126,433 128,419 131,390 134,362 137,332 140,299 148,253 151,235 154,221 156,212 159,203 163,197 167,197 178,212 188,237 212,304 224,337 237,366 258,406 267,420 276,431 283,435 290,441 293,442 296,439 302,418 309,384 325,302 338,218 340,202 341,194 343,186 343,186 346,179
+'N': 109,434 110,422 111,399 114,369 117,335 124,293 132,254 149,196 156,180 172,173 189,181 208,195 226,217 240,245 264,308 280,356 287,375 294,388 299,395 303,401 305,403 305,404 306,402 309,381 314,353 318,318 322,240 320,186 320,172 321,164 322,161 322,158 325,157
+'N': 119,415 119,412 119,405 120,380 122,350 125,315 130,274 136,219 138,198 139,183 140,175 140,168 147,174 155,191 164,216 175,250 186,282 199,312 234,365 244,371 253,372 253,372 267,361 278,341 286,311 293,275 297,240 300,190 300,175 300,166 300,164 300,161 301,159
+'N': 104,411 113,379 115,360 121,326 128,283 140,220 144,199 147,188 148,185 151,184 163,197 176,213 192,235 208,264 221,290 231,315 248,354 255,364 262,370 267,371 275,367 285,346 296,314 314,231 322,172 323,155 324,147 324,143
+'N': 112,420 112,414 112,404 115,378 117,350 121,319 127,285 135,254 149,211 157,197 164,190 174,187 190,200 204,220 217,245 236,292 251,325 258,336 266,349 272,358 276,364 278,367 279,369 280,367 287,349 296,323 306,289 318,248 330,189 333,170 333,160 334,158 335,155
+'N': 109,411 113,390 116,362 120,325 126,278 135,198 137,175 139,161 141,155 142,151 145,152 149,155 155,165 169,190 184,218 201,249 221,281 237,305 263,337 272,350 282,363 289,371 295,378 299,382 302,382 308,364 316,335 325,300 336,257 350,197 354,178 356,167 356,163 358,158 361,154
+'N': 123,458 123,455 123,454 127,435 131,409 138,373 147,325 160,257 164,235 166,225 168,223 169,219 174,220 187,238 201,265 224,317 240,359 247,372 253,384 256,388 265,374 275,349 287,313 300,267 313,204 315,175 314,176
+'N': 139,414 140,410 140,408 142,403 146,384 163,301 168,280 171,264 173,259 175,254 185,266 195,286 207,316 224,366 231,384 236,395 240,399 250,392 260,377 270,353 284,307 287,289 289,273 290,261 292,250 293,239
+'O': 232,165 241,170 241,170 256,178 272,191 289,208 308,230 329,268 337,284 339,314 333,344 318,375 295,397 267,407 239,404 216,390 198,367 186,331 182,292 183,250 204,170 222,160 222,160 251,160 263,164 272,171
+'O': 226,199 234,198 250,203 267,211 287,226 308,247 323,272 334,301 340,329 337,360 323,388 301,410 270,426 237,428 208,418 184,394 170,361 165,323 170,284 189,229 200,213 210,203 239,206 250,209 268,217
+'O': 262,209 263,209 276,221 282,233 293,257 301,291 300,325 294,358 281,387 235,427 210,434 187,431 167,413 150,384 137,350 129,314 129,280 138,253 156,232 179,217 204,212 251,219 258,221 260,223 261,225
+'O': 204,207 211,206 226,208 243,218 261,234 280,258 293,288 302,318 302,351 294,383 279,410 260,431 237,442 213,441 190,427 171,405 158,381 149,354 146,327 149,301 189,228 200,216 209,211 209,211 231,217
+'P': 132,461 132,457 135,434 136,412 139,371 145,317 157,204 160,191 160,187 163,183 168,179 178,173 197,167 220,163 243,167 266,177 283,195 295,222 296,256 291,285 277,306 255,317 230,316 186,301 173,291 163,276
+'P': 144,470 148,461 148,449 147,419 146,382 146,335 148,279 151,201 152,180 153,174 156,173 169,167 188,163 208,159 233,159 256,167 277,182 291,202 296,225 292,247 275,266 252,279 205,280 190,276 181,268 180,260 182,244
+'P': 118,472 117,472 118,468 118,448 119,422 123,386 127,340 133,293 142,250 208,159 221,157 233,160 245,166 255,178 260,205 261,232 252,262 237,287 204,303 173,287 166,279 159,271 158,266 163,255
+'P': 124,467 125,466 125,464 126,445 128,418 133,387 140,347 150,308 165,250 183,204 192,190 204,174 233,160 245,159 257,164 264,177 271,191 273,206 266,231 255,252 240,270 209,292 197,297 186,301 180,302 176,302 174,304 173,303 174,303
+'P': 132,479 135,475 136,473 136,472 135,468 135,458 135,436 135,411 135,383 136,354 138,326 141,299 159,235 181,180 181,180 191,163 207,146 224,140 244,139 265,148 277,165 282,189 280,214 272,239 259,258 242,270 211,277 198,275 188,271 181,266 174,262 171,259 170,257 170,255 172,257
+'P': 135,483 135,473 133,470 131,462 129,434 128,404 129,368 131,325 135,290 142,258 150,227 164,201 181,177 211,147 224,140 238,135 268,149 280,160 291,178 292,204 288,251 270,283 270,283 251,289 229,293 193,291 181,288 172,283 166,277 161,268 160,257 161,247 163,237 166,230 169,225 171,221 175,216
+'P': 144,468 142,467 141,468 141,468 139,469 136,467 124,419 120,387 117,350 122,278 129,240 138,206 150,176 174,137 186,125 199,117 221,119 244,125 279,150 291,175 295,201 291,246 273,271 254,273 231,270 194,259 183,251 174,239 167,227 161,212 157,198 157,183 160,169 166,159 171,150 174,145 176,144 177,146
+'Q': 256,426 253,426 243,432 225,432 206,427 188,416 170,400 159,378 145,324 144,294 146,263 156,217 162,199 170,184 179,172 200,160 227,156 256,158 286,168 311,186 331,210 345,237 352,268 351,299 346,327 335,353 322,375 304,394 273,417 259,424 246,426 236,425 216,413 210,405 209,395 212,387 225,385 252,391 285,407 296,414 308,422 315,428 323,432 340,436 349,437 349,437 366,435
+'Q': 242,418 238,413 226,416 208,414 184,409 161,399 143,382 130,353 123,316 123,276 130,235 165,173 187,155 213,149 243,149 270,157 295,172 313,195 323,222 325,256 320,295 309,332 295,364 276,389 258,404 237,411 204,407 192,400 185,391 187,381 201,373 219,370 242,375 264,384 294,402 304,407 313,410 326,410
+'Q': 227,419 209,412 197,409 179,400 160,387 145,371 135,344 129,310 130,273 139,230 163,173 184,156 208,152 260,165 284,182 319,225 327,250 321,306 321,306 306,337 286,367 264,389 239,403 202,408 190,401 184,391 185,380 189,370 206,365 225,365 247,371 270,381 301,397 330,408
+'Q': 211,412 210,409 205,408 187,402 167,392 149,372 131,343 121,311 119,272 123,236 132,206 147,180 164,159 187,146 213,139 267,155 290,173 305,197 314,225 314,256 304,295 288,331 265,362 239,384 214,395 177,395 168,387 163,374 165,360 173,346 195,342 219,345 257,361 271,368 283,374 294,379 304,385 312,389 322,394
+'Q': 220,367 223,367 226,366 248,357 268,344 287,326 305,302 320,272 328,244 329,214 318,186 303,164 281,151 257,149 231,155 182,182 147,220 138,247 135,277 138,307 149,334 164,354 193,373 204,377 212,378 218,377 224,373 227,364 230,354 233,345 238,338 247,334 257,335 271,339 284,347 298,357 309,366 319,374 328,380 333,384 341,388
+'Q': 222,355 257,335 277,315 298,287 311,254 316,220 310,187 296,162 276,144 255,133 232,131 209,137 188,152 167,179 151,208 139,240 134,276 137,306 148,333 166,353 199,369 214,370 224,367 230,364 236,357 238,345 241,331 244,320 250,313 266,317 296,331 308,342 316,353 321,360 327,370
+'Q': 234,349 232,350 217,354 199,355 178,351 158,343 145,323 135,298 132,269 134,237 142,206 154,182 168,162 185,148 204,140 227,138 252,142 276,150 299,165 318,184 332,205 337,232 335,264 323,296 303,325 275,351 202,374 202,374 190,368 183,358 185,334 185,334 201,327 221,326 242,329 265,336 284,348 313,368 322,375 328,380 335,380
+'R': 133,172 137,174 137,177 137,177 133,222 131,254 130,291 132,356 132,401 132,401 132,414 131,421 131,423 131,424 130,408 130,385 130,354 132,316 138,265 150,221 156,206 165,189 175,179 187,170 201,169 215,170 228,179 239,202 248,244 240,270 206,302 167,312 155,312 149,309 148,309 150,308 164,312 182,319 203,331 242,358 256,370 267,380 274,387 280,394 284,400 285,403 287,403
+'R': 158,201 158,206 158,216 158,243 159,276 160,338 163,401 163,404 163,404 163,405 163,406 163,405 162,405 162,406 162,405 161,402 160,391 160,365 160,338 164,288 165,270 167,253 167,238 170,219 174,205 181,194 192,185 203,181 215,180 226,181 239,185 250,192 262,201 269,208 274,219 274,232 270,247 261,263 250,277 235,288 220,295 207,299 196,301 190,302 186,302 187,301 188,301 190,300 193,300 199,302 207,304 225,313 244,325 277,353 289,364 300,374 307,383 314,392 318,398 320,401 320,400 320,397
+'R': 161,414 161,408 160,390 161,373 163,342 167,310 173,254 175,234 178,219 182,207 188,191 197,176 209,165 222,157 236,155 266,167 275,176 285,191 289,204 288,229 282,254 270,274 242,296 229,298 216,296 207,294 200,293 197,291 196,291 196,292 197,292 198,294 201,295 208,295 223,306 242,318 261,335 291,365 302,378 310,388 317,396 323,403 327,408 328,410 328,411 328,410
+'R': 171,441 171,434 171,426 170,415 169,402 168,376 168,349 174,280 182,226 185,209 188,197 193,188 211,174 225,169 238,170 252,173 265,180 276,192 283,204 286,231 283,258 272,284 248,317 235,324 222,326 214,323 205,320 200,317 197,315 197,314 197,313 197,314 199,317 204,316 210,318 218,320 237,330 256,345 276,361 297,380 322,409 332,420 338,427 341,430 343,434 345,434 344,435 343,435
+'R': 163,458 167,449 168,420 167,394 168,327 177,239 177,239 177,239 189,198 196,184 223,162 255,160 269,164 269,164 280,184 286,205 288,231 283,260 271,286 245,322 233,331 224,334 218,333 214,333 212,331 213,331 219,334 244,343 264,359 284,375 311,406 321,417 328,426 333,430 336,434 338,436 336,439
+'R': 157,178 156,183 157,198 157,222 158,251 161,287 166,340 172,375 173,387 174,410 174,417 174,421 174,419 174,401 173,376 172,347 169,316 167,287 168,259 172,215 177,197 183,181 191,170 209,159 228,156 248,158 278,175 287,186 292,210 288,233 255,285 242,288 220,286 209,283 198,280 191,280 191,280 188,278 186,278 186,278 204,280 215,281 236,292 253,306 273,324 301,357 311,368 319,377 323,382 326,389 328,392 329,393 328,394 328,393 329,389
+'S': 143,427 151,429 165,432 184,433 204,432 226,429 245,423 283,402 283,402 288,349 288,349 240,301 218,294 187,294 174,295 161,296 146,289 142,285 142,285 141,279 142,273 146,268 146,268 166,247 182,234 211,210 211,210 230,207 260,210 287,221 294,227 300,231 303,233 304,235 304,237 305,239 305,251
+'S': 126,400 140,408 158,417 177,423 198,426 235,424 248,420 259,416 265,410 271,400 269,378 260,355 244,331 225,309 193,287 182,280 171,271 163,262 155,251 149,241 146,233 146,225 148,217 161,199 161,199 171,191 191,186 212,184 248,185 261,185 278,187 285,189 289,191 295,196 295,196
+'S': 130,396 134,403 140,408 157,415 177,421 198,425 234,428 267,416 275,406 278,381 270,360 259,338 243,315 222,299 187,279 162,266 157,261 152,255 153,244 158,231 167,219 185,202 207,191 229,183 253,181 286,183 298,186 308,189 314,191 320,193 322,195 324,197
+'S': 139,417 142,408 155,410 172,412 193,416 220,419 244,420 281,417 294,413 305,408 311,400 313,378 305,357 288,333 263,312 238,299 194,284 180,279 169,273 162,266 156,258 153,252 153,247 162,234 175,223 191,209 212,198 233,191 272,184 287,183 312,188 322,189 328,193 331,195
+'S': 134,408 143,411 160,417 180,423 204,428 246,434 261,436 274,437 283,436 317,386 321,367 319,354 317,339 309,321 297,305 271,282 259,278 222,282 206,286 189,291 178,291 167,290 159,289 153,283 148,277 145,267 144,255 146,238 150,221 157,204 166,191 185,176 206,168 230,164 255,163 290,167 302,170 310,173 319,184
+'S': 161,400 166,397 172,396 190,393 212,385 235,380 262,372 294,355 310,338 310,338 298,329 278,321 252,313 223,302 183,286 169,277 159,269 152,262 147,253 145,243 156,226 174,212 197,201 226,190 255,184 296,178 315,178 315,178 317,177 319,175
+'T': 132,194 134,190 147,189 164,191 187,191 214,191 239,193 278,189 305,186 311,185 315,186 317,185 302,182 272,180 257,179 248,179 242,181 234,191 233,195 235,202 240,221 244,242 248,267 252,299 258,350 260,370 261,385 262,395 262,408 262,411 261,414 261,414
+'T': 120,205 126,208 137,208 154,208 175,207 201,208 240,208 254,208 262,207 265,207 267,207 267,211 264,234 261,262 258,299 256,337 254,387 254,402 254,410 254,414 254,417 254,416 255,391 258,356 259,314 261,239 261,217 260,203 260,199 260,194 261,193
+'T': 124,212 126,215 129,214 143,211 164,209 191,210 236,212 253,212 262,212 266,212 269,213 267,227 265,248 263,275 262,331 266,381 266,394 267,409 267,417 267,421 267,424 269,414 271,387 273,348 275,298 270,200 268,192 267,191 267,189 268,190
+'T': 112,218 117,221 122,220 140,217 163,215 191,213 237,210 254,209 266,207 272,207 276,207 274,220 270,244 266,278 262,317 261,374 261,395 261,409 260,416 261,422 262,412 264,389 265,355 263,236 261,215 260,207 260,203
+'T': 256,431 261,424 264,413 268,388 271,355 274,319 277,278 279,223 279,205 279,196 278,193 278,190 278,189 263,189 240,188 212,186 166,183 155,181 150,180 149,180 147,182 147,180 148,180
+'T': 261,431 263,427 265,414 268,391 270,362 272,323 272,284 271,228 269,212 267,204 267,201 267,199 267,198 253,201 234,202 214,206 176,207 163,209 154,208 149,209 143,209
+'T': 239,419 243,416 248,398 254,374 259,345 265,313 278,234 282,214 288,183 290,180 290,178 290,178 291,178 291,177 290,177 289,177 275,176 257,174 236,172 198,169 186,167 176,167 171,166 166,167 165,167 165,166 165,167 165,166 166,166
+'T': 242,417 242,419 242,420 243,420 244,420 244,418 246,416 248,412 251,390 254,362 258,327 262,288 269,207 271,178 272,168 272,162 272,162 272,161 272,161 273,161 273,161 271,161 271,161 257,161 238,161 201,162 189,162 179,162 173,161 168,160 165,159 165,158 165,159 166,162
+'U': 141,155 142,162 139,175 136,197 133,228 133,262 137,295 145,344 150,359 156,375 182,398 216,411 229,409 245,409 256,404 274,386 288,365 298,338 305,307 307,279 308,234 309,217 309,199 309,182 309,168 308,157 307,152 307,150 307,153
+'U': 302,146 299,146 299,147 299,150 300,160 302,200 303,219 291,324 278,360 278,360 270,376 251,400 240,409 227,415 213,415 200,412 189,408 179,402 170,395 163,375 158,349 153,321 146,242 146,242 151,190 155,173 159,154 162,148 164,141 166,139
+'U': 149,162 147,183 147,201 146,232 151,305 155,321 155,321 169,349 177,364 186,376 195,387 204,394 213,399 238,400 248,399 248,399 248,399 264,386 276,369 288,344 302,300 306,282 311,240 312,221 314,201 314,187 315,172 316,161 317,151 318,151 318,147
+'U': 318,181 315,178 315,181 314,196 312,218 311,246 307,276 300,320 296,337 289,354 277,375 252,408 239,420 217,423 183,420 168,414 156,394 148,366 143,331 143,287 149,227 153,212 156,202 160,195 167,184 179,159
+'U': 150,191 152,198 152,225 151,247 153,280 155,315 161,347 175,387 185,399 197,405 209,406 222,408 241,400 260,386 277,367 293,342 303,311 307,279 310,226 309,207 308,189 308,179 308,170 307,167
+'U': 307,182 305,189 303,205 300,228 295,261 289,296 282,328 268,376 246,410 229,416 209,418 192,408 174,393 161,373 152,347 146,314 143,276 142,218 144,202 153,187
+'V': 312,209 310,208 310,209 306,219 299,239 288,268 275,306 244,395 237,412 232,424 228,432 228,432 225,438 223,441 222,440 215,419 206,392 193,356 178,312 159,247 153,226 151,215 149,212 148,208 149,208 151,212
+'V': 311,206 311,205 311,206 306,218 297,243 284,278 270,315 257,350 238,405 231,424 227,437 224,443 222,447 222,448 221,447 217,434 208,407 196,369 184,326 164,260 159,240 155,226 153,220 152,216 152,217
+'V': 309,227 307,228 305,233 296,262 284,300 271,338 253,398 248,416 244,429 241,437 237,445 235,448 233,449 225,436 217,415 206,387 193,352 181,314 165,258 160,239 157,226 154,216
+'W': 114,219 115,222 120,242 126,270 134,304 150,362 155,379 164,405 168,414 173,417 178,416 184,410 205,373 214,355 222,338 225,331 228,324 229,323 234,337 244,366 251,381 257,392 262,399 266,405 269,407 272,407 281,392 292,364 306,330 320,291 335,236 339,212 339,211 340,208 340,207
+'W': 113,214 117,230 121,249 129,280 138,318 153,375 160,394 166,408 171,414 178,419 190,406 201,387 211,362 227,313 231,298 233,290 240,303 253,331 261,349 269,363 276,373 284,382 290,388 302,378 315,359 329,330 343,293 358,239 360,223 361,215 361,211
+'W': 106,211 106,213 110,232 116,258 123,291 132,327 139,359 150,403 154,415 157,422 159,423 169,407 179,382 191,351 204,316 216,280 233,220 237,201 240,189 240,188 246,208 251,233 259,262 269,296 279,326 297,373 305,389 310,399 314,403 317,406 323,393 331,374 340,349 353,315 365,285 381,233 385,213 387,200 387,194 388,189 388,188 387,186
+'W': 350,233 347,237 346,239 346,241 343,258 340,279 333,305 324,334 308,376 300,389 291,396 284,399 273,399 260,380 241,344 235,323 234,310 233,302 234,293 235,289 235,287 236,286 235,287 234,288 231,295 226,307 219,321 210,337 199,352 187,367 175,378 163,383 153,383 142,366 133,344 125,318 118,269 118,254 118,244 118,241 118,237 117,234
+'W': 336,233 336,232 336,233 335,236 331,260 325,287 309,343 301,361 291,375 282,382 272,387 257,374 237,341 229,322 227,306 227,298 226,289 228,286 228,287 227,288 220,305 209,327 186,369 163,390 153,391 153,391 139,377 128,357 121,330 119,285 122,267 127,251 130,243 132,236 134,233
+'X': 100,460 104,463 106,462 116,448 130,429 150,404 173,373 197,342 223,309 250,274 286,228 296,217 299,212 300,225 299,253 298,289 297,328 298,369 298,474 298,476 297,477 290,461 278,440 260,412 236,373 209,332 168,269 157,253 151,247 149,246
+'X': 140,444 144,442 152,427 164,404 196,341 214,309 231,278 252,233 257,217 265,202 268,198 268,198 275,212 282,238 287,271 293,314 295,357 297,417 297,435 297,446 295,453 295,453 294,453 281,437 266,412 244,376 219,335 196,298 149,237 139,229 132,222 132,222 126,215 124,212 123,210 126,209
+'X': 109,463 121,451 135,434 152,413 173,387 196,354 217,320 235,290 258,242 265,229 270,220 274,217 279,214 283,214 288,218 292,242 294,273 295,310 295,402 296,421 297,435 297,435 299,450 300,457 298,461 287,445 269,423 248,394 223,359 200,326 178,296 138,241 133,233 130,229 130,229 129,225
+'X': 131,211 142,225 152,241 172,269 194,300 215,327 235,352 262,390 271,403 277,413 280,417 283,420 284,421 285,421 291,378 297,349 304,314 315,262 318,243 319,229 319,223 310,226 295,244 251,307 226,342 204,374 158,436 158,436 143,454 139,458 137,460 137,458 137,458 150,438 171,407 219,341 249,298 260,285 260,285 269,272 277,260 284,253 288,246 291,241 291,242 288,242
+'X': 133,230 134,235 143,247 157,265 175,288 200,318 223,345 263,389 288,414 288,414 300,426 303,428 305,428 305,428 309,414 313,394 318,366 323,333 328,304 334,257 334,240 332,231 330,224 327,218 313,232 296,254 248,320 224,350 224,350 201,376 168,406 157,415 141,429 141,429 136,434 134,436 141,430 154,415 176,391 204,359 231,331 269,292 281,279 290,267 297,256 302,247 305,242 307,239 302,244
+'X': 150,238 150,241 150,243 152,246 162,263 178,283 197,307 220,335 270,391 282,405 282,405 289,413 295,420 300,421 305,402 310,379 315,353 320,321 324,294 329,250 330,236 328,227 319,233 304,247 286,268 263,296 240,324 218,352 197,376 164,411 152,422 143,429 139,431 136,433 147,419 166,396 194,363 228,323 277,270 292,254 305,240 305,240 308,234
+'Y': 146,183 147,185 154,200 166,218 191,255 202,268 212,277 221,283 231,284 242,282 267,253 287,211 294,197 301,177 304,166 308,157 302,164 291,193 273,234 254,277 236,317 220,354 202,405 198,422 196,432 200,425 208,404 223,370 240,331 261,288 279,249 293,215 312,134 312,134 313,118
+'Y': 157,165 162,172 163,175 166,180 175,200 192,237 209,269 209,269 226,288 226,288 234,295 242,297 250,295 259,293 268,286 292,259 313,222 319,211 325,195 326,186 327,178 328,172 328,169 327,168 321,180 313,197 302,221 288,250 273,281 258,318 243,352 221,401 213,415 208,423 205,428 202,432 201,434 201,433 202,433 202,434 202,433 202,434 202,433 202,432 202,431 206,421 216,400 232,370 252,335 272,297 289,260 313,187 313,187 314,173 316,164 316,156 317,152 318,151 318,152 318,153
+'Y': 159,165 173,194 185,220 197,248 197,248 226,305 235,316 235,316 243,322 251,327 259,329 267,324 281,301 294,277 308,249 331,207 338,191 344,179 346,168 349,158 350,153 349,150 343,164 332,189 318,225 300,269 283,310 268,349 243,402 236,419 230,433 227,441 224,448 223,450 229,440 240,420 254,392 271,355 289,318 305,282 320,247 340,197 344,178 347,162 348,154 349,147 349,146 350,146 350,145 350,147
+'Y': 165,166 165,166 169,179 177,200 226,304 233,314 241,324 247,330 252,331 263,319 276,302 291,278 307,252 331,209 338,192 344,180 347,174 348,171 343,178 329,203 310,238 286,282 263,324 230,385 220,404 213,418 210,425 208,431 207,433 207,432 214,420 225,402 241,376 262,342 283,308 303,274 327,225 334,207 338,189 340,174 343,159 345,151 345,146 346,146 343,158
+'Z': 164,203 170,206 187,206 211,208 240,207 289,207 304,207 318,211 316,223 303,239 283,257 257,279 229,299 202,319 177,340 144,370 134,383 129,390 126,394 124,399 124,400 137,397 159,396 188,392 222,389 255,390 298,392 312,394 321,393 325,394 329,393 317,395 294,398 265,400 228,402 172,402 141,404 141,404 135,407 130,408 131,404
+'Z': 155,221 162,221 176,216 194,210 246,201 288,199 303,200 313,202 318,205 310,223 290,249 263,278 227,310 193,340 152,379 142,391 138,398 138,401 148,402 169,401 229,396 259,396 286,397 325,403 325,403 337,403 348,403 348,403 341,405 293,413 256,417 217,419 167,418 154,418 147,419 144,418 142,419 142,420 142,420 143,419
+'Z': 167,229 170,234 174,234 193,237 216,241 245,242 278,244 308,245 352,244 363,244 367,245 348,259 320,277 281,300 234,329 193,355 141,391 131,400 127,404 136,407 154,409 184,411 220,412 296,410 344,405 364,404 366,404 366,404 367,405 353,407 325,413 289,418 243,423 177,426 157,424 148,422 146,420 143,420 145,419
+'Z': 166,232 169,231 183,232 202,234 232,238 265,243 317,248 332,248 342,247 338,251 324,264 301,277 267,300 231,327 196,355 148,395 137,408 131,413 142,415 161,415 190,413 225,409 301,403 353,403 353,403 367,403 376,404 380,404 367,405 338,409 296,415 248,420 175,426 154,427 142,428 135,428
+'Z': 347,406 329,407 315,408 284,409 246,410 209,410 154,411 140,411 133,408 137,399 165,371 191,353 249,318 292,289 306,278 314,269 318,264 318,264 320,258 320,258 301,256 277,256 247,259 215,261 187,262 146,263 132,263 124,264 121,264 119,264
+'Z': 339,397 339,402 321,402 297,403 267,403 229,403 194,404 149,401 138,401 133,398 141,390 160,376 187,361 219,343 251,324 295,294 309,285 318,278 322,276 317,273 299,271 268,272 230,272 191,272 139,268 125,268 118,268 115,268
+'Z': 341,425 303,420 288,420 256,420 224,422 178,423 161,422 149,421 143,419 138,418 148,410 169,397 201,380 242,356 278,337 325,308 335,301 340,295 339,292 326,289 301,287 271,285 193,280 143,276 130,274 123,273 119,275
+'a': 288,255 262,255 247,255 224,259 186,274 175,285 168,299 166,312 166,328 179,347 197,359 216,363 238,362 256,351 273,332 292,296 296,281 297,267 296,260 296,255 288,280 286,297 285,318 289,334 296,352 328,364 354,355
+'a': 289,252 285,245 271,244 250,245 223,251 183,271 172,281 166,296 165,311 167,326 185,341 221,353 239,352 257,337 270,317 287,276 289,260 290,250 290,246 287,263 285,303 294,328 310,338 340,340 356,329
+'a': 284,238 260,241 246,245 223,252 188,269 176,281 169,294 167,308 167,323 178,339 194,348 212,352 234,350 252,340 268,327 291,296 296,281 299,267 298,259 296,253 292,264 287,297 287,315 292,327 301,335 333,339 356,332
+'a': 279,247 234,249 222,252 181,266 169,276 162,289 161,304 162,319 176,334 198,343 221,345 245,342 276,325 285,316 292,302 295,285 296,268 296,257 292,252 286,284 286,303 289,323 311,344 323,348 336,348 357,338
+'a': 293,238 291,236 276,237 261,241 240,245 217,252 197,264 176,291 174,319 179,330 179,330 195,340 215,343 236,341 268,328 278,317 286,305 291,292 296,275 297,260 297,250 297,244 297,251 297,261 297,275 298,290 300,319 302,328 303,334 303,336 303,338
+'a': 297,239 274,238 261,239 238,243 200,259 188,270 182,285 181,299 182,315 195,337 195,337 237,337 271,321 282,310 289,297 295,285 300,270 302,256 303,246 299,251 293,267 288,290 274,349 274,349 272,360 271,363 270,367 272,366
+'a': 295,239 290,232 274,232 253,232 231,236 195,248 175,280 173,295 174,315 181,329 199,342 233,352 250,350 273,336 283,326 291,312 297,296 301,279 304,263 305,250 306,239 306,233 306,232 305,232 303,242 301,256 298,274 297,295 297,313 299,326 301,332 303,337 303,339 304,340 303,338
+'a': 306,236 297,234 259,236 259,236 235,243 211,253 182,278 175,288 170,300 171,310 174,323 181,334 212,348 228,350 245,348 257,342 271,334 298,300 306,282 310,264 305,234 305,264 304,281 305,302 306,317 307,331 308,340 310,348 310,348 310,345
+'b': 194,151 195,159 195,163 196,163 195,170 193,195 190,226 186,260 179,317 177,337 175,352 174,363 172,375 171,384 170,390 169,392 170,391 173,383 187,351 196,336 208,321 219,309 233,298 247,288 260,284 270,287 278,309 278,335 272,362 260,388 242,400 221,402 179,366 177,352 177,352 186,328
+'b': 193,171 192,167 191,173 190,193 188,220 185,252 182,289 180,325 178,378 177,404 177,406 176,410 177,410 187,384 199,362 222,327 253,306 265,306 280,310 289,321 291,346 285,373 271,397 250,416 214,422 201,416 190,405 185,394 182,380 188,353
+'b': 201,168 202,168 202,171 199,191 195,217 191,247 186,283 182,318 175,386 173,397 173,402 171,407 171,408 171,407 180,387 194,362 223,316 244,301 273,295 287,296 296,307 300,319 295,346 271,395 228,428 228,428 215,427 204,419 193,406 184,392 184,392 179,381 177,366
+'b': 206,173 206,177 206,181 204,205 200,238 195,273 190,313 186,346 178,406 176,416 175,421 174,423 178,412 188,392 200,369 238,313 238,313 270,305 302,321 308,331 308,357 299,378 285,400 264,420 244,430 212,429 201,421 193,408 189,393 187,359
+'b': 206,195 205,193 204,194 203,199 200,219 196,244 192,272 185,319 183,337 181,354 181,369 179,387 177,404 175,418 174,427 172,433 172,436 171,436 172,432 172,424 173,415 174,405 175,394 176,385 178,375 181,367 184,359 187,351 192,344 197,339 204,332 212,327 221,322 230,319 239,319 248,321 255,326 262,332 272,353 276,364 276,375 275,385 272,395 268,405 262,413 256,421 248,428 241,433 234,437 227,439 219,439 211,439 205,437 198,436 192,433 188,430 184,426 180,420 177,414 175,408 174,402 175,396 176,390 178,379
+'b': 197,184 199,191 198,191 198,194 198,196 197,200 197,208 195,219 193,234 192,249 191,264 190,279 189,292 188,306 187,320 185,334 184,347 183,358 181,370 179,381 178,392 176,401 174,411 172,419 171,423 169,427 170,427 172,420 174,412 178,402 182,390 187,376 193,363 198,350 203,340 208,331 215,325 224,319 233,314 242,311 250,311 259,313 267,318 275,323 282,330 288,341 292,353 293,364 292,377 290,389 285,399 279,409 272,418 262,426 250,433 240,440 228,443 218,445 208,445 199,444 192,441 185,436 179,431 174,425 171,415 170,404 170,392 177,371
+'b': 209,174 213,177 213,178 213,180 213,182 213,188 210,210 207,236 203,265 197,313 194,332 191,351 181,396 177,413 174,426 172,430 172,433 173,431 177,422 183,408 190,391 198,376 207,361 218,348 229,337 243,328 256,323 267,321 277,321 284,326 290,335 293,372 290,389 284,407 277,418 269,429 259,438 248,445 235,448 222,448 210,447 199,441 191,433 185,427 181,422 179,417 180,408 182,398 186,380
+'c': 336,258 332,254 331,252 328,247 323,239 306,227 270,211 253,207 239,209 220,219 201,233 184,255 163,304 158,351 170,387 179,397 191,408 210,415 233,420 273,420 287,417 299,412 307,408 321,397
+'c': 336,273 335,268 334,265 334,261 331,254 324,244 316,232 295,220 273,215 248,216 222,224 201,238 183,252 166,273 156,298 151,324 152,366 157,382 164,394 172,405 183,415 204,424 228,429 251,428 287,419 299,414 308,408 314,404 320,400 327,393
+'c': 317,250 314,253 313,252 313,253 314,249 314,250 314,251 314,252 314,251 314,252 314,253 314,252 314,253 314,252 313,253 312,253 310,253 306,253 298,254 277,256 266,257 266,257 249,261 231,267 213,277 182,292 169,299 158,305 151,309 144,313 138,317 135,319 131,319 128,320 125,322 123,324 123,325 124,324 135,329 160,344 184,355 204,366 238,383 250,392 264,397 275,403 289,410 301,415 313,421 322,426 329,428 335,432 335,432 335,433 335,432
+'c': 319,251 319,250 318,250 315,246 308,241 290,235 270,231 248,230 206,231 176,237 164,243 154,251 146,259 137,271 127,301 127,317 127,317 129,335 133,352 138,366 145,379 145,379 161,399 170,405 170,405 181,412 200,416 249,420 262,420 273,419 286,417 298,417 309,416 318,414 326,413 332,411 335,410 335,411 334,407
+'c': 326,257 326,256 326,255 325,257 324,255 322,254 318,250 312,246 302,241 290,235 277,231 255,228 255,228 247,228 238,227 218,230 205,234 193,237 193,237 168,248 147,258 136,265 127,273 120,282 120,282 109,300 109,300 104,325 104,325 104,336 104,345 106,355 110,364 115,372 120,383 127,390 134,397 142,404 151,409 161,415 171,420 181,425 193,427 206,430 220,433 247,433 258,432 281,429 293,425 293,425 306,421 324,414 328,412 328,412 331,407 331,407
+'d': 286,335 284,331 281,326 268,320 252,315 219,310 188,320 162,348 157,362 152,379 163,413 171,426 182,438 192,442 204,444 216,444 244,423 257,400 268,375 275,352 282,323 290,280 294,236 293,220 293,200 291,188 290,177 289,169 289,167 288,168 285,185 282,214 277,250 273,293 269,332 267,385 266,405 267,419 269,429 270,437 271,442 273,444 274,442
+'d': 277,318 275,308 271,303 256,299 220,296 203,298 174,321 157,362 156,377 159,397 166,408 176,422 187,431 198,436 209,440 219,438 234,423 248,400 260,374 272,340 288,259 290,241 291,228 290,214 290,200 289,189 289,182 289,181 288,182 286,200 283,223 280,252 277,284 275,331 275,349 276,366 278,382 280,399 283,410 286,417 290,420 293,420 298,421
+'d': 273,310 268,303 253,301 235,300 199,305 187,309 178,319 171,330 164,344 161,361 161,376 164,393 170,409 180,422 191,430 202,436 215,437 226,434 242,416 255,395 267,367 278,336 286,307 291,262 291,245 290,229 289,215 288,201 287,189 287,182 286,178 284,189 282,209 279,236 276,270 273,304 274,353 275,372 278,387 281,398 285,410 291,418 296,424 306,430
+'d': 278,301 269,296 252,292 233,289 180,302 180,302 169,312 155,336 155,336 153,390 159,407 167,419 177,431 189,438 202,442 216,443 228,439 228,439 245,423 261,399 275,368 287,335 293,303 297,272 295,212 293,198 291,188 290,178 288,173 288,170 287,171 287,171 286,192 285,218 283,251 282,291 284,343 286,362 290,376 297,388 304,399 312,407 331,410
+'d': 285,300 283,297 223,294 189,323 168,359 165,376 165,391 168,405 174,418 183,428 183,428 206,438 206,438 226,430 245,416 263,392 279,363 288,330 297,279 298,259 297,227 295,211 292,200 291,193 289,189 289,187 288,189 286,207 283,229 277,292 276,359 280,376 284,389 290,404 296,414 303,420 309,422 314,422 314,422 325,418
+'e': 169,324 175,323 191,322 208,324 229,325 280,329 289,329 293,329 296,329 296,329 299,328 299,324 299,316 296,303 282,285 265,271 245,261 223,256 203,258 180,266 160,279 143,297 126,339 126,356 129,374 156,414 156,414 200,440 200,440 239,446 254,445 278,442
+'e': 175,316 182,318 201,323 222,327 261,331 275,331 287,331 296,331 304,329 308,329 312,326 313,324 313,316 312,307 303,286 288,265 272,249 249,235 224,234 200,243 177,262 159,290 143,338 146,365 159,401 168,418 205,437 279,434 296,428 309,422 309,422 320,417
+'e': 175,321 182,323 195,326 212,327 231,327 254,327 289,324 302,322 313,319 319,318 325,315 327,314 327,311 325,304 317,287 304,265 288,244 267,225 246,215 223,213 198,223 176,245 158,270 146,298 141,325 143,349 157,391 173,411 194,425 214,432 240,439 264,439 303,431 318,426 342,413
+'e': 184,300 187,305 190,306 194,306 201,306 209,307 218,308 228,311 256,322 269,325 284,330 295,332 307,335 317,336 324,337 329,337 332,337 333,336 334,334 336,329 336,320 337,309 335,295 330,280 322,266 311,253 289,239 266,229 244,224 219,224 188,236 177,244 170,257 161,299 163,326 168,355 183,394 200,410 221,425 246,434 290,440 304,438 321,427
+'e': 198,312 208,313 225,304 243,292 265,279 287,262 330,224 330,224 338,215 344,209 348,205 351,204 346,202 346,202 329,197 308,191 285,188 260,189 239,195 220,206 193,230 182,241 172,255 166,271 159,315 166,362 172,375 188,401 199,413 211,423 211,423 234,429 260,430 306,423 322,418 334,415 342,413 358,409
+'e': 197,310 204,308 218,309 234,306 254,306 291,303 305,302 318,302 327,300 338,300 346,298 351,297 353,296 354,296 353,295 341,286 325,277 306,264 284,253 250,247 217,259 205,263 189,273 178,280 167,290 160,302 155,315 153,330 154,344 157,360 162,375 170,389 181,399 210,424 231,431 256,435 279,433 320,423 331,420 338,417 345,413
+'e': 174,344 178,347 182,346 199,347 220,345 245,344 272,341 311,340 324,339 334,339 340,334 346,334 349,332 350,332 351,332 352,326 354,320 354,307 352,293 341,274 326,257 305,245 281,237 233,238 210,245 190,254 160,284 151,299 145,315 142,329 144,372 147,388 153,408 160,419 178,437 197,453 234,472 249,474 269,476 289,473 314,466 350,448 360,441 368,425
+'e': 170,346 172,337 176,335 193,335 215,334 241,333 269,331 308,330 322,330 332,332 338,332 343,332 346,332 347,330 348,326 348,318 348,308 339,288 325,269 306,253 284,238 259,231 234,231 186,242 152,262 140,273 127,303 124,322 124,340 126,360 126,360 137,397 146,416 146,416 163,436 183,451 207,462 235,469 261,469 300,466 312,464 312,464 326,461
+'f': 324,180 319,179 305,175 287,170 253,160 240,158 229,158 200,173 193,184 188,198 187,226 187,226 187,253 187,280 188,335 185,378 182,413 179,440 178,446 177,451 177,454 177,453 177,453 177,452 177,452 177,452
+'f': 325,211 326,207 325,207 321,205 305,198 287,191 253,181 241,183 230,181 221,181 210,183 200,184 192,190 184,199 177,214 170,291 170,323 170,351 171,394 171,409 171,424 171,437 171,451 171,459 171,468 171,468 171,467
+'f': 343,222 345,222 345,221 343,219 329,207 312,196 277,175 263,171 249,166 237,166 225,167 215,172 207,196 201,223 197,255 190,343 189,390 189,405 189,423 189,434 189,446 189,455 188,462 187,472 187,474 187,474
+'f': 339,267 337,256 332,247 318,226 287,191 271,178 237,177 217,188 200,209 179,407 182,452 182,452 183,473 183,480 183,480 183,487 183,489 183,490
+'f': 342,196 335,196 318,202 297,210 274,223 238,243 216,256 211,259 211,259 205,264 205,263 205,268 205,268 205,291 205,315 203,347 200,400 198,420 197,437 196,453 194,476 194,476 192,482 192,484 192,486 192,487 194,486
+'f': 356,183 354,182 341,183 321,186 295,193 267,203 243,213 209,228 198,233 191,236 187,237 184,238 183,238 183,239 182,241 180,261 178,290 176,322 175,359 177,411 178,427 179,440 179,446 179,452 180,455
+'g': 292,203 261,189 249,191 211,194 197,212 190,246 191,262 198,273 229,285 245,287 262,283 273,275 292,253 292,253 297,239 299,223 298,209 296,200 292,209 288,230 285,261 281,298 278,330 275,360 271,385 260,424 253,438 243,450 227,448 201,434 193,421 189,402
+'g': 282,192 276,189 260,188 226,186 209,188 198,193 191,202 185,216 183,233 185,248 191,262 199,273 210,280 246,282 260,278 273,270 280,261 290,222 290,207 291,191 289,189 288,185 285,201 282,228 276,293 274,324 269,377 254,423 245,436 235,450 206,457 194,453 182,442 178,428 174,401
+'g': 283,199 281,193 266,182 231,165 198,163 188,169 170,205 167,224 168,244 172,256 180,271 199,281 221,284 242,279 262,265 278,233 281,216 281,202 281,195 281,189 279,207 277,235 274,266 271,303 267,339 263,376 253,428 247,447 239,460 223,464 204,465 173,440 159,408
+'g': 275,200 272,196 260,188 241,179 204,169 189,169 178,174 163,206 162,225 171,251 184,265 202,278 234,286 262,267 269,253 276,234 277,220 277,205 276,195 275,191 273,211 270,239 267,276 264,320 261,360 256,400 242,454 233,470 212,472 195,462 164,428 152,391
+'h': 185,145 180,159 172,213 168,248 166,285 164,332 163,349 163,349 161,372 161,372 159,384 159,384 162,373 167,358 178,336 193,312 220,281 233,272 244,268 254,270 265,288 272,313 275,340 274,388 271,402 267,414 260,431
+'h': 188,145 182,178 179,201 175,238 170,312 169,342 167,386 167,386 167,402 165,415 165,421 167,421 173,386 181,356 192,326 213,285 222,274 231,268 244,275 258,289 280,324 285,339 289,355 290,370 291,387 290,402 288,412 287,418
+'h': 182,152 185,166 186,175 186,199 184,242 184,264 182,280 178,323 173,364 172,375 170,390 169,401 168,413 167,422 166,430 166,434 166,436 167,434 169,426 171,413 173,400 175,386 177,373 180,362 183,351 188,341 193,330 198,320 203,313 207,307 212,303 217,300 224,298 233,298 248,300 255,305 264,320 268,331 270,342 272,356 273,370 273,382 272,395 272,406 271,414 270,422 270,429 268,438 268,438 269,441 269,441
+'h': 184,162 182,167 181,187 179,211 177,237 173,291 169,342 166,378 165,389 163,400 162,409 161,415 160,418 160,419 161,415 164,406 167,394 173,378 180,362 187,348 195,334 203,322 211,313 226,298 233,294 233,294 239,291 245,291 253,294 261,298 270,307 277,319 281,333 284,349 284,367 283,381 281,395 278,407 270,425 264,432 252,438
+'h': 190,125 190,129 189,145 187,164 184,197 182,236 179,275 176,312 172,371 171,391 170,404 169,408 169,411 170,404 172,390 186,347 194,328 203,310 212,299 223,289 235,284 248,283 259,288 269,298 276,312 280,331 283,350 286,369 287,385 288,395 288,401 288,405
+'h': 192,135 192,131 193,133 193,137 192,155 190,179 188,207 186,244 181,309 180,356 179,373 179,386 179,386 177,398 177,405 177,408 177,412 177,410 182,381 187,366 192,347 198,332 204,318 211,305 220,295 232,289 244,286 255,286 266,292 273,303 279,317 283,337 286,357 287,376 287,392 287,403 287,410 287,414 287,417 286,418 286,419
+'i': 218,199 218,204 218,209 216,232 214,261 211,316 209,334 208,352 206,365 205,380 203,391 203,403
+'i': 272,185 273,182 272,184 271,207 269,237 265,294 263,314 261,331 261,345 260,356 260,363 260,366
+'i': 147,204 149,214 150,227 149,278 150,300 150,321 150,330 150,344 150,344 151,344
+'I': 252,146 252,133 252,132 252,128 251,127 250,143 248,167 245,220 245,238 246,251 250,273
+'i': 352,245 352,247 351,268 351,297 350,357 351,379 351,409
+'1': 165,326 163,331 163,346 164,367 164,409 164,426 164,443 162,470
+'j': 247,171 247,174 246,175 246,179 246,188 247,230 246,249 246,270 243,302 242,319 239,335 235,351 229,365 221,377 211,387 201,392 189,391 168,361 163,348 160,337 159,333 160,329
+'j': 247,150 247,151 247,168 248,192 248,221 248,259 246,295 241,346 235,365 220,384 191,403 160,396 152,387 144,376 142,365 143,344
+'j': 232,139 234,142 236,149 239,173 242,199 244,229 246,262 248,289 251,332 251,350 248,368 242,384 233,402 221,416 210,424 197,426 176,392 169,375 166,356 166,338
+'j': 243,138 246,143 245,144 246,147 248,169 250,200 251,238 251,280 249,337 248,356 246,373 241,384 235,396 226,403 215,405 202,404 186,387 175,365 164,322 164,309 166,299
+'j': 270,158 269,158 269,159 269,176 268,199 266,230 264,268 260,306 231,429 213,428 186,411 168,376 164,365 160,355 160,351 163,341
+'k': 184,164 184,165 183,178 181,199 179,228 176,263 174,297 174,330 175,378 176,398 175,423 175,431 176,434 176,434 176,434 191,421 209,403 228,381 258,345 266,334 270,328 270,326 258,337 243,353 211,390 200,401 191,414 184,423 178,430 174,435 185,432 205,426 243,421 258,423 269,425 274,426 283,425
+'k': 179,175 181,181 181,202 179,230 177,263 176,299 175,348 175,367 175,385 176,399 176,413 176,420 177,423 187,412 201,398 230,364 240,352 249,345 254,339 260,334 262,331 256,337 245,349 219,377 208,389 199,401 193,410 187,419 184,424 185,428 201,426 221,422 263,413 278,410 290,410 304,407
+'k': 180,183 181,191 181,214 179,233 178,264 175,302 173,339 171,391 171,407 171,415 171,419 178,413 188,402 201,385 218,366 244,336 253,326 259,317 261,313 262,310 251,323 235,343 201,383 189,397 181,407 178,411 184,412 199,411 243,406 256,409 266,413 277,416 285,419 293,419
+'k': 188,182 188,216 187,234 185,269 184,310 182,344 180,394 180,410 180,421 180,426 180,430 182,419 186,387 190,369 194,354 200,343 211,330 220,321 228,319 234,325 235,338 233,354 228,368 221,377 214,383 209,384 207,384 212,387 229,398 259,418 272,427 279,435 286,442 286,442 287,445
+'k': 170,175 169,177 169,184 167,196 165,225 164,259 162,297 162,332 161,362 163,404 164,418 164,426 164,430 164,433 164,429 164,419 164,404 166,376 177,327 183,309 191,298 197,295 214,308 217,320 216,335 211,344 204,351 195,354 188,354 183,354 181,353 180,353 181,354 187,358 196,364 208,371 221,380 234,390 255,407 255,407 260,413 263,417 266,418
+'l': 171,158 171,198 168,218 165,260 159,325 157,349 157,367 156,383 156,398 156,408 156,414 157,415 159,414 174,411 202,407 218,405 230,406 242,406 256,406 266,406 274,406 277,406 278,406 279,406
+'l': 175,194 177,198 176,216 174,244 171,278 168,316 164,370 163,386 162,397 162,404 162,409 162,410 171,411 184,411 203,409 224,409 258,409 282,413 288,413 293,413 296,412 296,412
+'l': 185,178 184,216 178,276 174,315 169,365 168,383 167,397 167,405 167,412 167,415 170,414 177,413 196,412 216,409 237,410 272,411 282,413 291,412 298,412
+'J': 226,188 226,182 226,181 225,180 224,196 224,219 222,246 220,278 215,329 212,349 210,370 209,385 208,401 207,411 207,416 207,418 203,417 179,411 168,410 156,408 149,408 142,409 138,410 136,411 175,410 191,410 216,412 227,415 234,416 240,415
+'l': 213,178 215,181 215,182 215,181 215,182 215,181 215,182 215,181 214,197 213,217 212,247 212,284 213,320 215,372 216,407 217,416 217,423 217,426 204,429 179,437 165,439 156,440 152,440 148,439 146,439 147,439 163,434 183,430 221,423 235,421 248,422 257,424 264,424 268,425 269,425 270,425 269,425
+'m': 90,282 88,284 88,288 86,308 84,347 83,364 83,373 83,375 84,377 86,371 94,350 104,329 128,294 138,286 147,283 153,287 160,292 169,325 170,342 169,358 168,365 168,373 175,356 189,323 197,305 203,294 209,288 217,283 232,291 256,317 264,331 268,345 268,358 261,392
+'m': 139,240 138,244 136,264 134,293 134,313 133,326 133,331 133,334 134,328 136,316 141,302 164,268 195,246 205,261 213,299 214,318 212,328 212,331 212,333 218,315 234,279 242,261 250,252 265,254 280,261 294,278 311,315 313,331 308,353
+'m': 139,282 137,296 137,310 137,329 137,344 137,357 137,363 136,366 137,364 137,356 142,329 148,313 148,313 155,298 163,286 173,277 182,272 191,269 199,271 206,278 216,307 219,324 221,340 222,349 222,355 222,358 222,357 222,358 222,357 221,352 222,341 224,327 230,309 236,292 253,270 262,265 273,268 297,298 305,314 310,332 311,343 311,355 311,364 308,373
+'m': 133,265 136,273 137,310 137,329 137,350 138,362 139,375 139,381 140,384 140,386 140,380 143,350 147,333 154,313 161,298 172,281 184,267 196,255 209,248 237,256 254,299 255,342 254,356 253,365 253,369 253,370 253,372 253,370 252,366 251,355 253,331 261,286 267,268 272,257 276,253 283,249 309,261 320,271 333,284 340,297 346,310 349,323 350,337 349,350 348,359 347,367 346,373
+'m': 123,266 126,267 127,272 127,283 128,324 128,342 128,359 129,367 129,372 129,374 129,372 131,359 135,344 135,344 153,301 162,287 181,269 192,270 202,273 202,273 221,305 225,320 228,338 229,351 228,362 227,370 227,376 226,377 225,358 230,320 233,307 238,290 243,281 249,271 256,267 271,274 286,289 299,309 315,349 318,365 318,378 318,385 316,393
+'n': 150,273 148,283 147,303 146,346 146,368 147,383 147,401 147,401 147,405 148,404 149,397 155,374 163,349 180,305 188,293 195,285 202,283 210,281 218,285 236,316 244,365 245,377 246,391 246,396 246,401
+'n': 171,266 174,310 175,362 176,380 176,388 177,396 177,399 177,398 178,390 182,367 195,320 204,300 213,284 222,276 255,272 280,295 286,308 291,326 294,340 295,356 296,368 297,378 297,386 298,389 300,396
+'n': 215,220 213,241 212,256 211,283 209,330 210,346 210,356 210,362 210,366 210,367 210,367 210,351 213,329 217,306 228,265 235,252 243,242 251,235 263,228 288,227 288,227 302,244 313,265 320,291 324,335 325,350 325,361 325,365 325,369 325,370
+'n': 146,248 149,276 149,294 151,322 155,376 157,395 158,407 159,411 160,415 160,413 161,409 162,398 165,372 172,345 187,300 193,287 201,277 208,273 218,270 228,273 242,288 253,309 265,352 268,381 269,388 271,396 272,402 272,403 272,403 273,406
+'n': 242,204 241,235 239,252 238,282 235,331 234,349 233,361 233,367 233,372 233,364 238,337 248,286 255,263 261,247 268,237 278,225 290,222 321,236 334,249 347,286 349,332 348,347 346,360 346,368
+'o': 222,252 207,255 197,259 169,277 151,315 145,362 148,376 152,394 165,407 182,419 201,425 223,424 256,410 268,399 277,385 282,371 277,303 269,292 259,281 247,274 237,271 228,269 221,269 215,269 205,262
+'o': 214,226 204,224 187,233 166,247 146,268 131,297 132,361 132,361 150,382 170,394 193,404 217,409 238,404 256,392 277,364 281,339 279,315 274,292 258,255 248,245 236,240 225,241 213,243 196,247
+'o': 294,241 287,239 282,237 266,239 245,245 221,258 198,274 168,306 161,320 156,335 154,348 154,363 166,381 200,405 225,409 245,404 261,391 285,360 290,343 294,328 297,314 299,300 300,289 299,279 296,273 292,267 287,262 283,257 280,254 279,253 276,253 273,254 270,253 259,245
+'o': 172,238 169,241 165,247 164,271 170,298 183,325 203,351 226,368 265,387 280,390 291,390 299,383 305,362 304,339 297,314 284,287 268,267 250,253 232,244 202,241 189,245 177,251 171,255 162,260
+'o': 255,227 242,224 222,231 202,244 182,264 165,291 157,316 156,343 161,365 172,383 187,396 206,403 225,404 244,399 260,387 273,368 282,345 288,317 288,291 283,267 265,243 254,239 243,241 222,250
+'o': 252,242 251,241 238,245 220,253 198,267 176,284 160,306 150,331 148,356 153,380 168,401 188,417 224,433 246,427 265,413 278,394 291,367 298,319 297,300 290,284 273,274 240,265 224,267 203,275
+'o': 254,251 255,247 252,247 236,253 217,265 196,281 167,317 165,343 171,369 186,388 207,405 231,410 254,406 284,385 290,371 292,353 290,328 280,281 272,263 255,249 255,249 231,250 219,256 219,256 208,262 194,268
+'o': 246,257 230,265 218,270 204,278 178,302 169,319 164,357 175,380 191,398 210,410 244,419 256,417 266,409 278,385 288,358 293,329 293,300 280,264 270,252 259,243 246,240 211,248 197,255 183,262 177,267 169,276
+'o': 251,274 238,267 211,276 186,305 181,320 177,340 178,356 188,381 204,402 222,416 256,426 268,423 278,416 286,404 294,389 298,371 298,352 294,335 286,321 275,310 262,305 251,305 242,309 234,314 228,320
+'p': 186,235 184,239 176,288 176,288 172,319 165,389 164,412 164,417 164,417 164,419 166,405 175,351 175,351 182,318 194,265 205,238 224,206 236,195 251,203 261,219 269,239 264,291 256,307 237,319 207,316 195,306 189,291 187,262
+'p': 175,250 173,260 168,308 164,360 164,379 163,396 163,407 162,415 162,420 163,403 167,373 173,336 185,272 190,251 196,234 204,221 234,200 250,210 262,229 260,259 254,292 240,316 222,331 194,329 183,319 174,305 164,269
+'p': 185,171 186,179 185,195 183,221 178,253 174,290 166,344 164,363 163,379 162,390 159,402 162,383 166,356 173,323 182,285 192,252 212,204 219,192 228,185 250,201 258,224 257,268 251,286 232,295 201,294 187,289 180,280 176,269 175,259 177,241
+'p': 193,198 190,228 182,282 177,319 170,374 169,394 167,408 167,418 166,427 165,432 165,433 169,411 176,382 189,325 194,307 199,295 203,286 211,277 220,270 230,268 235,281 236,299 225,338 218,349 190,346 178,339 167,330 164,321 164,302
+'p': 204,201 203,203 201,220 197,242 192,275 187,311 182,341 176,389 174,405 170,427 169,433 168,436 168,433 170,398 175,367 182,336 193,289 199,272 207,255 215,242 225,232 247,228 247,228 258,237 266,249 272,264 273,282 260,314 260,314 227,327 211,323 198,314 192,305 186,274
+'p': 215,220 210,245 210,263 207,295 202,352 200,373 199,392 197,405 197,416 196,422 196,410 196,391 198,361 202,329 209,298 218,269 234,227 242,214 250,206 257,206 268,208 278,218 287,232 292,248 287,274 275,292 225,307 214,298 205,271
+'q': 277,217 261,212 240,214 227,218 215,226 194,259 188,276 186,294 189,308 195,321 212,326 231,321 259,297 267,281 272,264 275,249 277,232 278,222 279,217 276,231 272,253 266,285 261,320 256,370 254,388 254,401 253,409 253,416 253,418 261,409 272,393 295,359 307,339
+'r': 160,244 162,242 162,243 161,247 161,255 159,270 158,304 157,317 157,325 157,330 156,331 156,331 157,326 159,305 166,265 177,242 201,226 226,220 236,222 246,225 254,231 261,238 268,248
+'r': 155,267 155,273 155,280 154,290 153,303 152,318 151,333 151,346 150,354 151,357 151,360 151,358 151,351 152,341 154,328 158,314 163,301 170,290 179,278 191,268 226,261 240,262 253,265 260,269 266,272 270,274 271,275
+'r': 205,327 203,341 201,355 201,372 200,391 200,409 199,420 199,430 200,426 200,426 200,418 200,407 201,392 204,374 215,352 239,317 253,306 281,310 293,314 302,321 307,325 310,328 312,331
+'r': 129,251 133,265 135,274 134,288 133,322 133,338 134,351 134,360 134,363 135,362 135,362 139,345 139,345 141,333 147,307 151,294 157,281 157,281 166,269 175,258 187,248 218,246 232,250 245,256 251,262 258,266 263,268
+'r': 220,294 219,296 217,306 215,320 213,338 212,356 210,375 209,389 209,397 208,401 208,397 208,387 209,372 211,355 215,336 222,319 230,306 239,295 248,288 279,290 291,293 302,299 314,304
+'s': 290,239 278,231 264,231 234,234 221,234 208,238 199,242 190,248 186,257 187,265 194,272 212,280 246,292 261,299 271,306 279,314 287,322 293,332 297,341 297,350 293,362 287,373 277,383 255,392 227,390 183,380 163,358
+'s': 247,207 231,206 210,207 196,209 156,217 143,225 135,234 131,244 129,258 147,283 160,293 174,298 186,300 198,305 208,310 218,320 233,337 237,345 239,355 239,364 236,375 222,392 205,405 185,411 128,397 116,390 108,382 104,379 100,374 100,366
+'s': 303,206 285,203 272,207 235,215 222,221 215,227 213,231 217,240 233,252 265,272 280,279 293,284 305,289 318,297 330,307 339,318 343,331 344,344 335,367 322,389 304,406 280,418 255,419 232,414 199,395 191,384 180,358
+'s': 261,189 261,191 251,182 236,174 215,169 191,165 169,169 136,183 114,211 110,222 115,239 130,249 165,269 198,289 208,298 221,311 229,324 237,340 244,356 246,374 236,394 222,406 200,411 176,407 142,389 123,371
+'s': 303,235 304,230 304,227 302,220 290,208 274,196 241,183 228,181 216,183 207,187 196,192 186,202 178,212 170,226 166,238 164,250 165,261 169,272 176,281 183,290 193,297 203,302 214,305 226,307 239,306 251,304 262,303 275,303 286,306 296,312 305,321 310,329 314,342 317,354 316,367 314,382 310,395 305,408 299,418 292,427 284,433 274,438 263,443 251,447 238,449 224,451 211,447 197,441 184,431 172,419 163,408 155,397 146,372
+'s': 310,207 310,207 308,206 290,202 267,200 240,203 198,213 185,220 178,227 174,234 173,245 184,262 236,297 250,303 263,308 274,314 287,323 299,334 307,346 314,362 315,378 303,400 287,419 263,431 235,438 210,436 174,425 161,417 147,397
+'t': 136,239 136,234 136,233 148,233 164,233 212,231 225,231 233,230 239,231 242,232 240,252 237,280 233,311 229,348 225,402 224,420 224,432 224,437 224,443
+'t': 146,238 146,236 147,235 148,234 153,233 161,233 173,234 187,237 203,238 219,240 232,242 250,242 253,243 255,244 255,246 253,262 252,285 251,310 250,358 250,376 251,391 251,401 252,411 253,418 253,422 253,425 254,427
+'t': 141,236 141,235 141,234 143,234 156,235 174,234 197,235 235,237 249,238 260,237 267,237 272,235 275,236 274,238 271,256 267,278 255,385 252,413 252,413 250,421 250,427 250,430 249,430 250,427
+'u': 185,218 188,219 189,219 186,219 181,226 175,236 171,260 170,303 173,323 178,335 196,352 209,355 223,355 239,350 253,342 267,331 290,293 297,276 302,257 304,243 306,229 306,219 306,213 305,211 304,213 297,229 286,271 281,292 280,311 288,334 311,344 323,344 323,344 334,346
+'u': 183,194 181,209 175,226 171,251 167,298 169,315 175,329 183,340 195,351 209,357 224,359 259,347 271,339 286,318 301,279 308,258 310,243 310,234 310,225 309,220 309,218 308,218 306,242 306,285 307,301 311,318 317,329 327,342 337,351 348,356 360,354 370,351 384,330
+'u': 192,200 190,210 185,230 178,271 177,292 181,310 187,325 195,340 214,347 234,349 268,337 280,327 290,315 297,303 304,286 308,270 312,253 314,237 316,225 317,215 318,211 317,211 315,218 313,231 312,248 312,268 317,303 332,321 343,325 343,325 371,327 371,327
+'u': 177,179 168,200 161,241 160,271 166,298 183,343 200,357 218,366 236,364 258,358 274,345 288,323 303,282 307,262 309,246 308,232 308,219 307,210 306,206 305,204 304,208 301,229 298,254 292,304 290,323 290,340 289,352 289,361 289,367 289,366 290,365 290,362
+'u': 178,187 172,205 169,233 168,262 177,313 185,328 204,338 223,341 260,337 271,328 282,318 299,236 300,208 300,208 301,200 301,196 301,196 299,211 296,230 291,273 291,290 291,307 292,316 293,327 294,332 295,335 296,336 296,338
+'u': 178,196 176,214 173,234 172,262 176,312 183,330 193,341 213,345 235,346 257,338 277,322 296,288 301,242 302,225 302,204 302,193 302,184 303,180 298,219 298,248 300,296 304,310 310,318 317,323 325,328 330,331 336,331
+'v': 159,263 161,258 162,258 163,263 172,294 178,312 185,332 190,348 197,365 203,377 208,385 211,390 214,391 218,391 224,385 235,369 247,349 260,324 280,285 286,270 291,259 293,253 296,247 297,245 297,244 296,243
+'v': 145,252 148,267 156,290 173,331 182,349 190,362 195,371 201,380 205,386 208,390 211,391 215,389 224,376 237,355 250,331 265,305 284,266 291,253 294,245 295,243 297,237
+'v': 139,238 147,248 155,268 173,309 182,329 189,345 193,358 198,369 201,377 202,380 203,380 204,381 207,380 213,376 231,359 249,338 269,312 295,267 301,249 304,236 304,228 305,222 304,219
+'v': 145,243 145,248 147,253 153,269 160,287 176,324 183,339 190,354 196,364 201,374 205,380 207,383 209,384 211,384 222,372 235,356 251,335 270,310 297,270 305,254 310,243 312,237 313,228
+'w': 139,262 139,258 140,258 139,256 138,262 135,269 136,314 139,334 139,334 145,354 154,362 166,372 179,376 212,363 223,352 233,338 237,326 241,311 243,298 244,291 245,286 245,285 245,292 246,301 247,316 250,334 254,349 260,360 269,367 279,370 307,357 328,324 330,308 331,288 330,274 329,260 328,249 328,243 327,237
+'w': 129,254 126,265 125,300 127,317 133,336 140,346 150,357 162,365 175,368 188,366 201,361 213,352 222,338 230,324 236,306 240,277 240,275 240,277 242,286 246,300 251,316 257,331 265,342 274,350 282,356 292,356 304,354 315,346 326,334 333,319 338,304 340,288 340,273 341,262 340,254 338,245
+'w': 136,253 135,251 133,255 131,263 130,275 130,292 138,329 144,344 153,354 163,361 175,362 188,359 203,352 225,328 236,300 238,290 238,284 238,281 238,282 239,288 240,301 244,315 248,330 255,343 263,352 272,360 282,362 293,363 305,358 317,347 327,336 335,321 340,306 343,291 343,279 343,270 343,263 343,263 341,257
+'w': 135,265 129,276 128,289 130,306 135,326 141,341 149,354 165,362 194,361 206,353 214,341 219,329 224,315 227,302 229,292 230,288 231,284 235,305 239,320 251,349 260,358 272,364 285,367 299,366 313,360 313,360 313,360 324,340 336,302 338,285 338,272 336,260
+'x': 161,250 167,258 175,277 186,299 199,324 223,364 234,376 243,388 251,396 259,403 266,410 272,412 282,398 298,361 306,340 312,321 315,303 319,283 320,268 320,257 319,253 316,252 299,265 279,282 256,304 232,327 201,357 189,366 178,376 158,387 152,391 147,396 146,397
+'x': 152,254 154,253 155,255 162,268 173,286 188,308 208,333 225,352 253,381 261,388 271,396 276,401 281,403 294,381 302,357 314,307 317,283 319,265 317,254 316,244 311,236 296,250 276,271 254,296 230,322 199,352 188,363 176,373 168,380 159,387 155,391 152,394 152,395 152,395
+'x': 154,237 156,239 163,251 175,268 190,288 208,313 237,348 248,361 259,373 267,381 281,395 285,396 290,392 296,383 308,344 312,324 315,302 316,285 315,268 312,253 310,244 305,241 290,254 268,277 245,303 217,332 179,370 166,382 139,408 137,411
+'y': 170,191 171,199 171,211 172,226 175,245 195,279 229,291 241,290 256,285 264,277 274,264 282,249 286,235 289,223 290,215 290,210 289,209 288,210 286,217 282,239 278,266 273,314 271,342 264,381 260,402 240,435 228,446 207,445 179,422 168,408 159,383
+'y': 167,192 166,194 167,198 177,216 189,235 212,272 222,284 232,294 239,299 248,303 255,301 263,294 287,262 296,247 304,234 305,226 306,220 306,216 304,217 286,250 273,276 258,306 243,336 220,380 211,395 204,409 198,420 194,430 191,435 190,438 190,440 191,440
+'y': 169,206 169,209 169,216 170,227 173,242 178,257 185,270 195,280 207,287 220,291 246,292 257,288 271,275 271,275 277,264 284,235 286,221 285,198 284,192 284,188 284,186 283,187 283,189 283,189 281,203 279,228 277,258 274,292 272,324 269,353 264,379 252,416 243,428 231,437 219,437 205,435 194,425 184,412 180,395 180,368
+'y': 193,185 188,198 189,222 197,266 205,284 214,293 243,295 257,292 271,286 280,280 290,271 298,258 304,243 307,228 308,215 308,208 306,205 303,218 293,267 281,335 272,385 263,410 250,430 234,441 215,447 182,419
+'y': 196,193 195,191 193,204 193,225 197,271 202,287 227,309 263,315 275,310 290,301 299,291 307,275 315,229 315,211 315,198 315,198 313,218 311,246 307,283 303,323 297,360 288,394 276,423 259,444 239,453 218,449 200,435 179,387
+'y': 191,190 194,202 199,222 211,259 218,277 226,291 233,302 241,312 249,319 263,324 270,321 282,304 302,268 311,249 315,235 317,226 319,218 319,214 313,224 302,252 288,283 273,317 259,352 242,398 236,415 231,432 226,445 221,456 219,463 216,462
+'y': 192,214 194,217 201,237 214,274 222,293 239,312 248,317 248,317 258,319 274,306 290,286 305,262 328,218 334,204 335,196 330,203 320,220 306,250 290,285 275,321 260,358 240,406 233,424 227,436 224,443 218,451
+'y': 191,206 191,216 199,243 205,259 213,275 219,285 228,296 237,302 246,307 254,309 269,301 284,288 312,254 321,239 327,225 329,215 331,205 331,200 329,200 320,219 308,246 294,278 276,317 261,350 238,398 230,413 225,425 222,434 219,441 219,445
+'z': 185,220 185,220 195,224 210,229 241,236 253,239 264,241 272,244 280,249 273,268 258,292 237,316 168,384 151,412 184,410 210,409 239,409 239,409 278,409 292,411 304,411 324,411 329,410 331,410 333,406
+'2': 148,257 152,256 158,255 174,251 207,243 224,242 236,244 245,247 253,250 257,253 258,258 246,274 229,295 210,317 190,342 166,380 158,394 153,404 151,410 150,414 151,415 164,416 183,415 207,413 237,413 264,412 304,410 317,411 326,411 330,411 333,411 334,411 333,408
+'z': 141,251 144,247 147,247 151,245 158,243 177,242 213,240 231,242 245,242 261,246 265,246 255,254 237,273 216,293 195,316 166,352 157,363 149,374 145,382 141,387 139,393 140,393 155,393 173,391 197,394 225,395 251,397 291,398 305,396 317,396 323,397 328,399 331,400 331,399 329,395
+'z': 154,233 158,236 162,236 167,234 183,234 203,235 239,239 253,241 266,241 274,241 281,240 284,241 276,248 260,260 240,277 215,298 192,319 162,355 154,366 148,377 145,383 143,390 141,394 142,395 156,397 176,398 201,401 231,402 258,404 298,404 312,404 324,403 330,403 336,402 339,403
+'z': 143,231 148,241 150,242 153,243 157,241 164,239 183,237 205,234 245,234 259,235 271,237 279,238 285,239 288,240 276,249 255,265 229,288 204,312 171,351 162,364 156,376 148,389 147,391 147,393 158,395 158,395 176,396 200,395 232,392 280,385 297,383 309,383 316,384 322,384 326,385 327,384
+'z': 152,235 155,233 157,232 170,232 187,231 210,231 235,231 271,231 282,232 288,233 284,240 273,250 256,266 234,285 211,306 179,342 168,358 159,373 156,383 152,392 151,397 153,399 166,401 207,403 207,403 237,402 303,402 318,403 327,404 335,405 339,405 341,405
+'0': 225,445 224,448 222,448 218,444 212,437 202,416 191,393 181,367 166,312 164,284 170,241 176,227 185,215 204,208 224,203 248,206 284,217 301,234 311,255 314,280 316,311 311,342 298,392 292,408 285,422 277,432 267,443 255,452 242,457 230,457 220,455 214,450 210,444 209,432
+'0': 223,452 221,448 219,448 215,448 208,446 194,429 179,405 165,376 154,342 149,310 165,230 182,211 204,201 204,201 226,199 255,197 318,242 328,267 331,295 327,325 327,325 317,356 304,383 287,406 265,424 244,434 197,426
+'0': 206,425 230,414 242,410 264,402 288,393 308,381 325,364 345,327 344,300 336,269 321,244 302,218 276,201 249,191 221,191 194,200 170,218 150,244 136,274 129,301 128,329 134,355 154,395 184,419 197,424 213,429 226,427 239,422 256,405
+'0': 224,412 265,402 288,392 311,376 343,344 351,320 351,294 339,265 322,232 295,201 265,178 236,165 205,164 178,178 154,205 136,234 118,284 119,310 124,334 135,359 151,385 191,416 212,419 235,413 265,391 279,367
+'D': 200,430 195,426 181,409 173,394 161,366 148,332 142,297 142,262 149,228 163,197 180,173 199,158 220,152 241,153 262,160 283,172 303,189 333,226 338,258 332,294 317,325 295,355 268,372 209,388
+'0': 246,393 245,396 246,396 245,396 245,397 241,399 233,402 223,404 212,405 201,403 190,397 180,387 169,375 150,319 147,287 149,234 155,216 162,201 180,186 201,173 225,166 251,166 274,175 296,189 314,207 327,229 335,254 334,285 328,314 317,342 301,362 280,375 258,384 222,391 199,393
+'1': 237,473 237,460 238,449 240,428 243,400 249,363 254,323 259,281 265,165 265,164 266,162
+'1': 241,395 241,393 243,377 243,353 244,320 245,287 246,253 246,203 243,156 242,142 241,128 240,123 241,117
+'1': 209,396 209,395 210,392 210,376 210,352 209,320 208,280 207,241 207,205 205,151 205,123 205,119 205,115 207,116
+'1': 248,405 248,407 249,407 250,404 253,381 255,348 259,306 263,256 264,214 260,157 256,130
+'2': 187,255 186,252 186,248 184,237 187,214 199,171 208,155 219,145 237,143 257,147 274,159 290,182 295,214 294,246 276,307 260,333 229,367 229,367 214,378 204,386 199,388 195,391 206,391 222,391 244,391 271,390 309,388 322,388 329,388 331,388 333,388
+'2': 183,260 183,247 185,230 191,208 202,184 224,152 244,146 263,148 277,159 291,178 295,207 291,240 283,273 266,304 235,345 221,358 207,368 198,374 189,380 185,383 184,385 195,386 211,387 232,388 298,385 313,385 327,387 336,389 344,389 349,390
+'2': 174,254 177,235 177,222 178,207 192,169 201,155 213,142 248,130 263,129 277,132 286,139 295,151 300,178 297,210 272,287 255,317 229,355 218,366 208,377 200,384 193,390 189,392 187,393 189,394 192,394 192,394 208,394 227,395 252,392 281,391 322,385 336,386 343,387 346,387 349,388 350,389
+'2': 177,259 179,244 180,233 183,218 193,192 220,136 229,126 238,122 260,119 260,119 260,119 288,143 295,179 296,219 288,253 275,293 259,320 230,353 219,364 208,373 199,380 191,387 186,391 184,393 183,393 182,393 183,392 196,391 218,389 245,385 294,376 310,374 323,375 332,379 339,381 345,383 348,385 348,386 348,384
+'2': 176,244 180,233 181,224 183,209 186,194 205,155 215,142 228,131 238,126 252,124 265,125 279,129 291,149 297,173 298,205 291,242 279,278 265,308 250,334 215,372 197,386 197,386 189,392 185,395 183,398 182,399 183,398 185,398 190,395 199,395 219,397 244,396 271,398 316,394 332,393 344,393 351,393 358,393 358,393 356,399
+'2': 164,244 170,228 174,212 184,187 196,163 220,126 230,115 240,109 250,108 263,109 275,117 287,142 294,170 294,202 288,239 273,275 235,338 205,374 194,383 186,390 182,393 177,395 174,398 174,398 173,398 173,397 173,396 182,394 198,393 218,389 243,385 269,383 294,381 331,379 344,379 353,380 359,382 363,385 365,382
+'2': 160,236 164,234 174,204 193,167 201,156 213,142 223,134 236,128 249,124 264,126 277,132 290,143 299,156 301,186 296,219 283,253 265,288 246,313 216,345 205,356 195,366 189,375 182,387 178,390 176,393 175,394 175,393 175,396 175,394 175,395 176,396 189,391 210,385 232,381 257,374 279,371 310,372 322,375 331,375 336,375 342,378
+'3': 177,159 179,148 181,141 194,140 211,141 245,144 257,147 267,153 273,174 273,196 263,238 253,249 242,259 233,263 227,266 223,267 221,270 223,270 246,277 258,281 273,288 283,296 293,310 300,334 301,359 292,403 283,417 266,431 246,432 208,430 195,421 176,403
+'3': 180,131 189,137 198,140 209,140 222,142 233,144 244,144 252,149 258,156 263,166 266,182 269,200 271,221 272,238 273,252 272,264 259,279 241,293 204,309 191,312 183,310 181,310 181,309 183,309 189,309 199,308 211,305 226,302 239,299 249,299 255,299 259,301 261,305 263,310 265,317 268,327 271,347 270,370 263,410 257,424 248,434 240,441 228,448 203,452 191,451 180,450 172,447 166,445 164,445
+'3': 176,138 182,133 186,130 200,129 216,131 235,141 253,155 265,174 274,210 273,224 266,236 256,245 246,253 236,259 229,261 226,263 224,262 227,265 244,275 267,297 278,312 278,312 288,339 293,364 291,409 276,427 258,438 238,440 199,434 176,417 166,394
+'3': 185,135 190,136 192,134 206,134 223,138 241,148 258,164 265,188 261,228 236,249 224,250 212,252 207,251 203,250 201,250 222,258 233,263 246,273 255,285 260,339 252,367 238,392 220,406 201,411 171,403 162,395 153,380
+'3': 187,176 189,174 208,176 222,175 262,177 274,177 281,179 284,185 278,203 267,224 251,246 219,281 208,292 198,301 191,307 186,312 184,315 198,312 217,311 240,315 265,324 283,341 293,360 295,382 286,406 267,425 245,439 206,449 193,447 184,443 172,430
+'3': 194,151 196,151 214,152 227,152 263,156 273,159 277,175 272,195 262,220 248,245 224,277 213,288 205,296 200,300 196,304 195,305 217,300 229,300 252,306 269,319 285,340 295,368 294,397 282,424 264,447 243,462 219,471 196,473 176,465 160,450 140,400
+'3': 182,157 183,155 197,159 208,161 242,168 255,171 264,176 265,195 259,221 248,245 222,284 212,293 204,298 202,301 200,302 210,303 228,305 261,315 273,324 281,347 282,374 274,427 257,449 238,459 216,462 177,455 155,429
+'4': 236,426 237,421 237,420 241,408 246,388 252,360 258,324 270,248 273,194 271,175 269,163 268,157 266,151 255,157 236,174 214,193 175,231 163,243 156,251 153,253 151,255 164,258 185,261 214,264 247,267 297,270 314,271 326,273 330,273 335,275 336,274
+'4': 238,445 247,427 249,413 254,383 259,346 263,303 266,258 263,199 261,181 260,167 259,161 259,156 258,155 248,171 230,195 175,262 175,262 163,274 157,281 151,287 149,290 173,289 196,287 226,286 260,285 290,285 333,288 345,290 351,291 353,291 354,291
+'4': 252,452 250,437 249,416 248,390 248,322 248,286 248,232 247,212 242,178 240,163 238,154 237,149 236,149 227,162 213,181 195,206 176,234 148,272 139,283 133,290 130,294 128,298 127,299 128,299 140,298 157,298 180,297 208,298 239,297 273,296 322,293 338,293 347,291 351,292 355,291 356,291 355,292
+'4': 232,445 235,430 238,410 242,387 249,360 257,328 267,296 287,217 289,196 288,183 288,183 287,169 285,160 284,155 284,153 282,153 269,165 249,184 223,209 194,234 155,264 144,272 136,279 134,282 136,282 154,283 175,285 200,290 232,295 261,302 290,307 331,309 344,308 351,307 355,307 358,306 359,306 358,306 357,308
+'4': 229,458 228,448 228,429 230,407 233,377 237,337 242,295 247,191 246,172 244,157 243,149 242,138 240,138 240,138 231,154 231,154 215,180 195,215 173,251 145,299 138,309 135,314 134,315 133,315 134,316 145,316 188,314 221,311 255,308 304,304 304,304 328,305 333,305 337,307 337,307 338,307 338,308
+'s': 315,147 310,147 309,146 308,146 298,148 280,149 259,152 234,156 197,163 172,162 172,162 168,162 166,163 167,163 168,162 168,164 168,164 165,179 162,199 158,226 154,255 151,293 151,304 151,308 151,313 151,314 151,312 154,310 160,308 170,305 191,301 228,293 245,289 270,291 281,292 288,296 290,314 287,335 280,360 267,388 250,406 230,421 198,433 185,433 164,419
+'s': 287,160 286,159 286,158 285,155 282,155 267,160 248,165 228,169 190,173 178,173 170,173 167,173 164,173 163,174 164,174 165,177 166,184 164,207 160,253 156,284 155,294 154,304 154,310 154,314 154,314 154,315 155,315 155,314 156,314 157,313 157,312 158,312 162,312 177,311 194,309 214,307 248,307 260,310 272,317 284,346 283,370 277,397 268,417 254,441 238,459 219,471 200,478 168,474 157,466 145,455 136,446 127,435 119,422
+'6': 260,145 263,139 263,139 251,152 235,170 180,248 169,278 161,312 156,344 156,344 158,376 164,402 176,423 193,436 211,440 232,437 251,427 269,409 281,384 288,353 286,303 271,284 254,273 220,265 188,271 179,274 169,277 166,279 163,277
+'6': 262,142 263,149 262,152 250,160 234,178 216,199 196,230 180,262 166,293 151,342 150,359 151,375 163,397 178,418 197,433 219,444 240,443 261,432 281,411 293,385 301,335 289,312 270,294 248,283 223,272 186,272 175,276 160,292
+'6': 201,118 186,145 177,159 163,183 147,213 134,245 124,276 119,304 116,347 119,364 127,376 137,385 149,392 172,385 191,370 206,351 216,325 213,288 207,274 198,265 187,259 137,254 134,256
+'6': 375,172 366,178 350,191 332,211 313,237 294,271 283,306 280,342 283,372 298,410 308,420 318,425 328,425 341,422 365,396 371,381 367,358 346,332 333,322 319,321 309,321 297,321 287,322 280,324 269,327
+'6': 255,197 225,220 217,230 201,250 188,272 176,299 163,343 158,362 157,380 156,398 157,419 160,436 164,449 171,459 181,466 193,469 206,467 234,445 241,432 244,413 241,397 236,378 227,361 195,338 182,335 168,336 160,339 149,344 149,344 140,341
+'6': 278,157 258,164 248,173 231,192 214,220 202,250 193,281 189,315 189,345 195,390 203,402 214,409 226,409 245,395 259,374 276,324 269,301 257,285 240,279 209,275 198,278 189,281 170,287
+'7': 160,191 162,188 179,189 201,190 226,192 273,196 289,198 302,201 311,205 316,207 319,211 307,225 290,248 270,277 249,309 231,339 213,366 189,401 181,415 175,425 172,430 169,434 168,437 168,437
+'7': 171,190 172,191 175,190 193,188 215,188 241,187 285,186 300,186 309,186 312,185 307,195 295,214 279,241 262,274 246,306 231,337 207,384 197,400 188,415 181,425 175,433 172,439 170,440 170,441
+'7': 173,194 179,187 194,185 213,185 238,185 280,184 295,184 308,184 315,185 322,186 319,197 310,213 295,239 276,270 257,303 238,336 221,367 197,412 189,426 182,435 178,440 175,444 173,446 173,445
+'7': 167,185 175,184 192,184 210,182 265,179 278,180 291,181 301,182 310,186 315,187 317,189 306,207 293,232 278,262 261,296 244,331 227,363 209,392 183,433 175,444 172,450 170,452 170,453
+'7': 171,191 176,189 192,188 210,187 230,185 253,184 288,184 302,184 313,185 317,185 321,185 315,196 303,217 286,247 267,285 246,324 227,361 198,415 188,432 179,446 174,453 169,461 165,466
+'7': 121,198 135,197 154,195 220,192 220,192 236,192 247,193 253,194 257,195 250,209 237,227 221,256 203,290 187,323 171,355 150,398 142,414 135,429 130,442 124,454 121,461 120,464 120,463
+'7': 258,223 260,222 265,222 283,221 303,221 323,220 356,217 366,215 374,215 377,215 380,215 381,215 377,221 364,245 350,274 335,306 320,341 305,373 290,404 268,448 261,462 256,473 253,479 250,484 249,486 249,485
+'8': 281,157 276,154 260,160 238,167 216,179 182,208 175,220 172,233 173,244 177,258 189,273 216,296 230,304 242,312 250,318 260,327 266,337 271,349 274,375 273,388 273,388 262,409 249,430 233,446 214,461 183,468 157,451 149,437 142,418 143,402 152,374 167,350 200,312 213,302 225,291 236,282 267,250 278,235 286,219 286,208 282,193 274,181 264,170 249,154
+'8': 270,176 268,177 249,179 232,181 189,191 173,198 164,211 159,226 163,269 177,291 194,309 224,334 236,341 246,351 255,359 263,370 268,381 271,394 270,408 261,427 247,445 224,459 199,463 164,451 154,436 149,420 157,395 169,369 187,344 210,317 240,282 254,259 270,220 276,202 275,189 270,181 264,173 245,163
+'9': 291,193 278,186 265,186 246,185 223,188 201,195 183,209 165,247 165,266 169,280 187,291 220,300 236,298 248,289 257,278 267,264 281,232 285,216 286,205 288,198 287,207 285,228 283,254 281,290 280,327 278,360 273,410 272,427 270,438 269,445 269,451
+'9': 290,181 285,178 267,178 245,179 204,184 191,191 172,224 166,242 165,260 170,273 179,287 190,295 203,300 217,300 231,297 244,291 274,268 294,241 298,229 300,216 300,216 301,204 300,197 299,195 298,200 296,221 294,246 291,276 289,314 286,370 285,392 285,410 286,422 286,433 287,440 287,445 287,446
+'9': 304,175 302,176 281,175 264,177 240,181 214,188 195,202 182,220 177,244 179,266 194,298 204,305 216,309 229,309 243,306 277,283 290,269 300,251 304,237 307,220 309,207 309,200 308,199 303,221 299,249 294,282 286,381 286,405 286,405 285,425 284,448 284,448 283,453
+'9': 303,182 296,173 278,170 258,171 221,181 201,213 198,230 203,271 209,286 237,295 252,293 267,287 275,279 285,270 292,257 298,243 303,228 307,213 309,200 310,192 310,189 301,228 297,265 295,308 292,394 291,412 290,427 290,438 290,450 290,457 292,465
+'9': 304,165 293,161 277,159 243,160 222,170 208,188 201,211 193,255 196,272 200,285 206,297 235,302 248,299 262,289 271,279 281,265 289,250 305,190 304,186 300,204 297,227 295,260 293,303 292,345 294,405 294,425 295,439 295,450 296,459 297,463
+'9': 303,180 298,178 285,178 267,178 247,180 226,187 209,199 186,228 181,244 180,259 182,273 186,289 193,302 223,316 236,319 249,319 257,316 267,310 289,275 296,258 300,238 299,225 298,211 297,201 296,195 296,191 296,189 295,191 291,207 287,229 283,258 279,292 278,324 278,357 278,388 280,434 280,449 280,459 281,463 281,467 281,466
+'9': 302,190 295,192 281,189 264,187 244,188 214,200 195,220 189,235 189,235 184,254 189,299 197,315 208,328 219,333 233,335 247,336 261,333 273,328 283,320 291,308 300,285 308,242 311,221 311,209 311,202 309,196 307,195 303,211 300,237 297,271 295,309 294,345 294,399 293,419 293,435 292,446 291,456 291,463 291,467
+' ': 146,308 152,310 164,311 180,314 201,317 226,324 262,331 276,332 287,331 294,332 300,331 303,329 302,329 302,325
+' ': 134,269 139,268 141,266 156,266 175,265 198,265 224,265 260,267 274,270 285,271 290,271 296,271 297,270 296,269
+' ': 147,324 150,322 153,322 166,323 185,323 208,322 234,322 282,321 292,321 300,322 307,322 311,322 312,322 312,320
+' ': 158,248 160,248 161,248 164,248 180,245 200,245 224,243 265,238 278,237 288,237 295,238 305,240 307,241 305,240
+' ': 145,305 148,306 150,306 151,307 155,308 174,309 198,312 225,309 271,310 288,309 301,310 308,310 316,310 320,311 321,310 321,312
diff --git a/guessture/pixelpath.2008-09-03-12-30-20.bad b/guessture/pixelpath.2008-09-03-12-30-20.bad
new file mode 100644 (file)
index 0000000..6cc6c5d
--- /dev/null
@@ -0,0 +1,90 @@
+'??': 165,145 167,144 167,143 167,144 166,144 167,144 167,146 166,166 165,197 164,244 164,295 169,372 170,393 172,405 172,408 171,401 169,378 167,347 166,311 168,259 175,233 189,195 198,175 206,162 215,154 227,147 263,144 299,160 292,244 292,244 281,248 268,252 265,251 263,252 269,255 279,261 292,271 303,283 312,296 315,319 309,342 298,364 282,384 263,397 244,405 198,398 189,392 179,383
+'??': 173,179 168,209 166,230 161,265 156,302 147,354 143,371 140,382 138,386 139,379 141,358 146,327 158,261 167,229 184,188 221,165 221,165 241,167 264,172 281,185 293,203 298,229 296,260 284,297 265,334 242,364 215,386 188,394 164,390 127,354
+'??': 219,415 217,412 215,391 214,355 215,313 215,245 215,231 215,224 216,223 216,222 216,223 216,222 225,220 241,218 259,217 281,219 304,228 324,245 339,270 344,302 339,339 326,376 307,403 285,420 262,425 226,421 202,410
+'??': 310,179 307,175 293,172 274,168 253,164 217,155 205,152 195,152 187,153 181,155 177,156 176,162 176,193 167,242 163,258 158,276 155,283 152,294 151,301 152,311 155,313 155,313 173,313 208,314 226,314 239,314 246,314 259,315 248,314 232,313 213,310 179,311 167,310 157,314 150,316 145,320 142,325 141,324 142,328 142,336 150,403 153,424 156,440 157,451 160,460 162,465 164,471 165,476 165,478 166,482
+'??': 326,175 316,169 296,168 272,169 248,176 222,185 204,202 181,232 176,247 174,260 176,270 190,287 207,299 227,307 261,313 275,313 287,310 295,310 302,310 305,310 296,310 280,309 238,305 203,305 188,306 174,308 165,309 158,310 155,311 155,312 156,315 158,321 164,342 174,386 183,432 185,448 187,469 187,483 187,498 187,506 186,512 186,510
+'??': 339,203 346,201 348,200 348,199 337,192 320,186 294,184 264,189 234,202 194,236 183,252 175,280 173,308 174,342 180,374 192,400 211,421 231,434 253,443 275,447 296,446 327,433 350,404 354,390 358,376 357,369 355,362 350,359 348,359 348,359 345,359 344,360 341,359 314,357 302,355 293,355 291,355 290,355 291,355 290,355 288,352
+'??': 164,147 162,183 161,202 159,237 156,278 154,314 152,394 151,410 151,422 151,422 151,426 151,429 154,416 159,396 167,374 179,350 192,333 208,320 228,310 248,306 282,306 295,311 306,321 313,334 320,351 323,370 324,388 324,404 323,418 322,428 321,435 321,435 320,425 318,403 316,376 314,345 314,303 315,264 318,202 318,182 319,171 318,161 318,161 319,161 321,173
+'??': 258,183 258,186 257,203 257,223 257,247 258,275 260,303 263,369 263,385 262,399 262,399 259,415 254,431 238,451 216,466 188,474 137,476 120,473 110,470 106,468 102,464 111,464 127,461 153,456 180,451 224,445 239,447 249,448 254,449 259,449 259,449 258,446
+'??': 255,195 255,195 254,196 254,197 254,196 254,195 254,196 255,198 255,204 257,229 260,258 264,314 269,363 270,378 269,399 261,430 254,444 236,459 217,469 195,475 171,476 132,472 117,467 106,462 101,459 97,456 103,450 113,446 133,441 156,436 179,432 206,430 242,430 254,429 264,427 270,427 275,427 278,427 279,428 280,427 280,427 280,428 279,427 278,424
+'??': 253,195 251,195 251,197 253,207 255,231 257,263 260,295 265,347 266,364 269,379 270,393 271,410 268,424 263,438 248,453 230,466 209,476 185,480 151,480 126,479 126,479 116,477 105,474 98,471 95,468 93,467 103,464 117,461 135,458 184,447 208,441 244,438 244,438 266,436 271,436 276,437 277,438 277,438 277,438 271,438
+'??': 141,190 155,193 173,191 196,191 222,190 249,190 305,190 315,190 320,192 324,192 324,193 307,192 289,190 252,186 241,185 233,186 230,187 228,188 228,190 229,195 231,220 235,253 239,293 242,336 244,394 244,413 234,435 204,451 185,441 160,408 155,379
+'??': 135,350 136,347 136,348 136,349 138,357 149,391 156,409 165,426 172,434 182,444 190,447 199,448 215,437 230,418 244,394 254,363 258,288 255,228 254,209 253,198 253,194 252,190 252,189 253,189 252,189
+'??': 187,164 186,166 181,188 178,218 174,259 170,301 167,362 166,383 166,400 167,412 168,421 168,426 177,424 192,422 212,416 237,410 275,406 289,405 299,406 305,406 310,405 310,407 294,410 273,417 231,425 215,428 200,430 188,429 176,430 167,430 162,430 160,430 161,429
+'??': 188,216 202,209 221,208 243,213 268,224 294,243 313,264 327,288 335,314 332,345 320,379 304,407 284,428 260,438 235,438 209,428 186,408 169,380 159,348 157,312 162,275 178,224 186,210 194,203 200,200 208,200 224,206
+'??': 195,207 202,202 216,206 233,213 252,225 274,248 292,276 305,306 309,336 301,365 283,392 260,413 236,428 210,434 188,429 171,415 157,396 148,369 144,337 144,303 174,216 187,201 197,191 204,190 221,195
+'??': 123,486 124,480 123,478 121,475 119,468 117,446 117,415 120,375 126,329 135,285 145,247 159,210 176,179 204,140 228,126 228,126 261,132 275,139 286,148 293,157 296,180 292,208 280,235 263,260 231,286 218,292 206,297 197,302 187,307 177,313
+'??': 130,183 128,189 129,208 130,236 131,270 133,309 137,363 137,382 138,394 138,401 138,405 139,406 139,389 139,362 142,328 147,286 154,251 168,201 176,188 184,180 194,177 226,196 236,219 229,268 215,289 184,305 171,308 160,308 155,309 159,308 169,309 184,315 202,323 221,338 238,353 265,381 275,392 282,402 286,408 290,413 291,415 288,414
+'??': 138,416 140,404 140,391 139,364 139,336 141,304 153,223 164,194 169,185 179,179 189,177 202,178 202,178 202,178 234,195 245,206 251,230 247,254 240,277 199,317 199,317 187,319 174,316 169,316 169,316 171,316 175,316 188,322 205,330 226,345 250,363 281,390 292,403 300,411 304,417 306,422 307,423 305,422
+'??': 145,198 145,207 146,226 148,254 149,290 150,326 152,379 153,394 154,404 154,407 154,411 154,412 154,411 153,391 152,365 154,330 159,288 170,234 178,216 184,204 191,196 201,190 232,196 243,203 252,216 250,239 229,295 217,302 217,302 206,304 194,304 183,301 183,301 181,302 184,304 184,304 191,306 201,309 221,319 242,334 275,362 286,375 296,389 303,398 310,409 314,416 316,419 317,420 315,421
+'??': 126,376 130,384 143,397 160,404 180,413 204,418 227,420 262,416 275,410 285,403 292,391 293,366 286,340 273,319 255,300 235,289 215,284 183,286 170,286 159,285 146,269 142,258 142,246 144,233 149,222 155,208 155,208 178,175 197,163 219,157 240,160 264,163 298,175 311,182 321,189 327,195 335,207
+'??': 142,402 151,412 168,420 188,426 213,428 241,429 283,424 298,421 310,415 317,409 317,389 306,365 288,342 264,318 235,299 207,280 170,251 160,237 156,226 156,219 168,207 185,198 206,191 230,183 253,178 276,175 312,176 324,179 339,188 346,197
+'??': 129,370 129,373 132,379 137,386 151,398 168,405 187,415 207,421 239,427 253,427 266,427 278,426 292,423 305,415 317,404 326,389 332,371 333,352 330,333 323,314 314,297 294,281 273,271 234,262 220,262 207,265 195,268 181,272 166,277 153,282 142,283 133,283 126,279 121,274 118,264 116,251 115,237 117,225 119,214 122,204 128,195 145,180 164,169 201,145 214,142 227,140 246,145 267,152 300,171 317,194 317,194 326,205
+'??': 159,415 163,410 176,407 194,404 216,399 244,391 271,380 312,360 325,353 333,346 336,339 326,330 306,321 279,315 246,307 217,301 174,290 146,276 139,268 135,257 145,240 163,223 187,208 214,196 284,178 300,176 311,175 325,170
+'??': 151,189 156,189 160,188 179,188 205,188 233,187 263,186 302,184 317,184 329,184 335,185 340,185 329,188 310,191 283,193 238,196 223,197 214,197 211,198 208,198 210,201 215,205 221,214 230,239 238,266 253,323 253,323 258,347 262,387 262,400 262,413 262,416 262,416 262,418
+'??': 127,194 131,198 132,197 148,193 173,188 203,187 236,185 265,185 303,188 314,189 320,190 322,192 304,193 262,195 243,194 234,195 232,195 230,194 230,195 237,212 244,235 249,261 259,359 261,386 261,392 262,399 262,399 262,399 262,400
+'??': 159,212 161,215 167,235 175,262 184,294 194,331 202,366 213,415 217,429 219,437 221,440 224,442 231,431 243,409 258,380 275,346 292,311 314,260 320,239 323,223 324,214 324,207 316,225 305,254 289,295 273,338 250,395 243,413 237,427 234,437 231,445 230,449 230,451 231,448
+'??': 154,210 155,207 155,208 159,222 163,246 170,280 177,316 188,370 192,388 197,404 200,412 204,420 208,423 215,420 229,403 244,384 260,360 277,329 291,300 310,254 315,237 305,241 293,272 293,272 278,309 264,343 241,390 232,405 220,427 215,435 213,438 214,439
+'??': 153,209 158,216 160,225 164,248 171,276 177,308 188,363 193,381 198,398 202,409 206,419 209,424 212,427 214,427 219,423 235,402 254,372 277,334 298,293 318,238 321,221 320,211 320,207 314,217 304,240 290,276 273,314 247,374 240,391 235,402 233,407 232,412 230,415 230,416 230,415
+'??': 129,276 129,280 130,283 131,288 135,300 152,338 171,387 177,404 184,422 190,432 195,441 198,446 200,448 202,447 206,442 211,434 217,425 222,414 227,402 231,395 233,390 235,387 235,388 237,388 240,393 245,400 252,407 259,413 264,420 269,423 272,424 275,424 279,422 287,407 297,384 310,353 337,267 340,254 341,247 342,245 341,246
+'??': 155,199 158,206 173,234 182,248 194,264 203,273 213,280 224,281 238,270 253,252 277,213 298,175 303,164 308,154 299,177 283,215 264,257 243,305 225,343 203,392 196,409 192,420 191,424 196,411 206,381 222,342 250,272 259,253 263,242 264,239 266,239
+'??': 157,190 157,182 157,184 156,185 160,217 163,233 169,251 177,259 188,267 199,270 219,264 251,248 265,239 289,211 298,196 305,182 307,176 302,186 294,207 282,239 269,276 257,311 235,365 226,384 218,398 212,408 207,415 204,419 203,419 201,419 185,419 153,419 137,418 127,418 122,418 118,417 137,416 137,416 155,413 190,412 202,411 212,411 216,412 219,411 220,409
+'??': 149,170 149,171 149,172 150,173 150,175 152,176 154,180 158,186 169,204 181,224 202,260 217,284 222,289 225,294 228,297 229,296 243,282 243,282 252,273 266,250 287,212 294,194 298,179 301,167 304,155 306,147 307,145 308,142 308,143 307,144 302,160 294,183 284,215 271,256 259,294 248,330 230,381 222,398 218,409 216,414 214,418 214,419 215,419 215,417 215,419 214,418 213,418 197,420 162,427 143,429 130,429 121,430 113,431 108,432 106,432 105,432 106,432 120,432 139,430 181,423 197,422 210,420 217,420 224,420 227,420 229,420
+'??': 159,175 159,176 160,183 168,216 173,234 181,252 189,262 201,274 221,282 241,284 275,278 286,271 296,260 303,239 309,214 310,169 308,157 306,151 305,152 302,170 300,193 297,225 294,262 290,297 286,333 274,385 267,401 258,413 250,417 243,421 239,422 236,421 236,420 236,421 226,420 208,418 189,416 151,410 139,409 131,410 127,410 124,410 122,410 122,409 122,408 122,409 124,409 141,408 167,406 193,404 239,398 252,398 260,397 263,398 267,397
+'??': 165,194 162,202 166,219 178,258 195,277 212,288 229,292 261,294 274,290 286,285 300,268 312,246 321,222 326,179 325,162 323,150 321,144 319,140 318,142 316,149 311,174 306,203 302,239 299,276 295,307 286,354 280,372 265,392 246,406 223,416 184,422 170,419 160,415 150,412 148,411 149,411 160,412 175,411 197,409 224,407 264,403 277,403 287,403 295,403 302,404 308,405 311,404 312,404 312,405 312,404 312,403
+'??': 204,171 201,170 197,186 191,212 185,251 180,291 178,326 175,374 175,389 174,396 173,398 173,400 181,381 193,360 218,321 230,309 239,300 248,297 259,293 268,296 276,303 282,313 281,336 272,361 247,399 215,408 203,403 189,394 181,384 175,374 176,355
+'??': 210,189 207,197 205,216 200,242 196,273 191,306 187,337 181,380 178,397 176,408 174,414 174,419 176,412 181,395 188,376 198,352 211,331 227,313 257,296 281,314 280,363 263,406 253,420 241,430 241,430 224,426 206,415 206,415 179,384 171,367
+'??': 252,195 252,196 252,199 250,205 244,228 237,252 224,297 219,313 214,328 208,344 202,359 196,375 191,391 186,406 183,419 179,430 178,435 176,437 178,435 180,429 184,419 189,408 195,395 200,384 205,374 210,365 216,356 222,349 229,343 237,338 244,332 253,327 277,322 284,325 290,331 294,338 297,346 297,360 295,376 288,393 280,410 269,424 259,434 248,442 236,446 224,448 210,445 200,441 192,437 186,431 182,423 181,414 183,404 186,394 198,376
+'??': 209,334 216,332 223,329 240,319 260,306 282,289 305,268 332,232 345,215 346,211 349,208 349,204 349,202 347,200 332,194 310,193 285,195 255,201 227,213 189,236 177,246 167,258 161,273 155,289 152,306 153,323 156,337 168,365 168,365 186,391 186,391 196,400 208,409 229,414 252,416 278,417 318,407 334,402 345,395 352,391 362,377
+'??': 184,163 184,163 184,164 185,170 185,187 186,211 186,256 186,273 185,316 185,337 183,357 178,386 178,386 174,398 167,417 167,417 163,423 161,422 161,422 160,414 158,403 157,390 156,377 169,343 213,295 229,296 229,296 238,302 246,309 253,317 258,329 261,343 261,359 260,374 259,388 258,399 257,408 256,413 256,416 256,417 256,419 256,418
+'??': 182,160 182,161 182,166 182,177 181,203 180,231 180,284 180,302 181,321 181,337 181,356 180,373 178,389 175,401 171,408 168,413 164,414 159,412 154,405 150,394 152,355 157,338 165,324 172,316 182,308 193,303 225,295 240,294 255,294 265,299 274,308 279,318 281,331 275,354 267,375 243,408 233,415 210,418 198,412 187,405 179,395 173,388 168,380
+'??': 179,110 180,125 180,130 179,134 179,141 178,168 178,196 177,227 175,263 173,313 172,333 171,351 170,365 169,377 168,385 167,390 167,391 167,392 167,390 168,383 169,374 170,363 170,351 171,340 172,328 175,314 178,301 182,290 188,280 195,272 202,267 211,265 221,263 230,266 241,270 251,277 260,285 267,293 272,303 274,317 276,331 275,349 263,375 238,406 205,408 195,401 183,393 179,386 180,309
+'??': 173,172 173,182 173,200 172,223 170,253 169,289 168,321 167,372 168,405 168,415 169,425 169,430 171,412 177,374 181,355 187,338 193,329 200,322 206,320 211,325 215,335 213,362 208,373 201,377 194,379 189,378 187,378 187,378 187,377 197,381 197,381 205,386 215,391 226,398 239,407 250,416 259,424 266,431 270,436 271,438
+'??': 206,203 206,213 206,232 205,262 205,300 205,343 206,405 206,426 206,438 206,442 206,447 207,447 209,445 214,442 221,438 232,434 246,431 260,428 272,427 280,428 285,428 287,428 275,430 254,434 227,437 198,443 160,450 148,452 142,454 140,454 138,454 139,454 143,452
+'??': 196,329 194,333 191,367 189,386 189,405 188,414 188,424 188,429 188,430 188,427 194,409 204,388 228,350 236,340 245,334 250,332 263,349 267,362 270,378 271,391 272,403 272,411 272,415 272,417 272,412 273,401 289,363 298,346 309,332 317,327 328,325 337,330 346,342 360,404 361,417 362,422 362,430
+'??': 133,269 136,272 136,276 133,308 132,325 132,342 132,356 133,369 134,381 134,389 134,393 134,395 136,389 140,379 145,366 150,354 156,344 162,337 177,325 187,321 195,318 202,320 208,327 212,338 215,352 217,369 217,379 218,389 218,389 218,391 218,390 217,389 218,387 222,368 222,368 228,354 235,341 241,329 247,322 253,318 260,318 266,322 273,331 278,342 282,354 285,366 286,378 286,388 287,398 287,404 287,407
+'??': 170,282 174,292 175,317 172,387 170,406 170,406 170,411 170,413 170,414 170,408 170,408 173,385 177,358 183,323 191,288 206,241 214,226 222,213 228,206 237,203 247,208 268,242 273,260 275,279 265,297 250,315 218,337 204,337 193,332 188,320 189,277 197,248
+'??': 204,187 202,202 198,228 193,258 187,293 181,329 173,378 170,397 167,412 166,422 165,429 164,433 166,419 172,399 182,376 202,330 211,313 219,300 225,291 233,281 241,276 248,274 254,277 259,284 261,293 255,319 236,356 225,367 203,359 193,350 180,326 178,308
+'??': 277,217 262,216 251,217 218,221 206,226 197,234 192,247 188,264 186,280 187,295 209,313 249,307 261,295 276,267 276,267 284,239 284,239 287,226 288,217 289,212 288,210 286,216 282,227 274,252 267,281 259,311 247,358 239,391 236,406 231,427 231,431 231,433 234,430 241,422 250,410 250,410 250,410 278,372 290,357 307,337
+'??': 279,209 270,211 255,217 237,226 203,252 185,290 182,322 188,331 206,332 227,323 246,309 271,277 276,262 279,247 280,235 281,227 276,242 270,267 261,301 251,341 238,392 235,409 233,420 231,425 231,429 231,430 233,428 238,423 245,416 251,410 256,406 260,403
+'??': 272,218 260,217 248,221 235,227 215,245 190,283 183,301 182,317 194,324 211,327 243,317 255,307 264,293 270,277 276,260 280,245 281,239 274,255 265,281 254,313 237,369 232,388 228,412 227,418 227,418 236,410 253,392 272,369 307,325 317,311 322,300 325,294
+'??': 277,217 265,214 248,218 231,227 201,252 192,266 186,284 183,299 184,316 188,327 195,334 205,336 216,334 229,330 258,303 268,287 276,271 278,260 280,247 281,239 281,234 281,231 280,232 279,237 276,246 254,325 241,373 237,391 233,406 231,420 227,435 224,448 222,456 220,460 220,463 222,460 227,454 235,446 244,436 255,426 263,419 269,413 275,407
+'??': 210,191 181,210 158,223 147,232 138,241 134,252 130,263 130,274 134,283 141,291 151,297 162,303 174,303 187,299 199,291 211,279 220,266 226,252 229,236 229,224 228,215 228,210 223,220 217,241 209,269 200,302 187,354 184,371 182,385 180,393 178,401 177,407 176,409 176,412 176,411 187,399 210,377 221,366 227,359 230,356
+'??': 224,322 226,310 226,307 225,309 212,338 206,354 200,371 197,380 195,388 193,392 194,390 197,383 201,371 209,357 233,318 245,306 255,296 263,295 275,297 287,301 297,306 304,310 307,313
+'??': 320,223 315,221 303,226 285,233 264,242 240,252 203,268 190,273 180,276 175,280 172,281 185,288 204,297 228,306 254,317 289,336 298,342 303,347 304,349 290,353 270,360 246,366 220,375 184,391 173,398 164,404 158,407 154,410 152,411 151,412 152,412 152,411
+'??': 297,191 295,192 284,192 268,196 247,198 211,206 200,208 190,213 183,222 179,233 179,245 185,259 206,272 228,284 267,307 278,315 288,324 296,335 302,348 307,363 303,388 292,412 274,431 249,445 224,445 184,431 171,421 155,396
+'??': 227,211 227,214 227,220 228,243 228,276 229,335 230,358 231,377 231,394 230,409 230,421 228,429 228,430 228,433 223,422 215,405 204,387 181,355 170,346 159,338 148,333 138,329 132,326 129,326 127,326 129,325 144,322 164,321 193,320 225,320 255,321 297,325 310,328 319,331 323,332 327,332
+'??': 249,176 250,186 249,206 247,234 245,267 244,304 242,356 242,375 242,393 243,405 242,418 242,426 242,431 241,431 233,417 220,401 186,354 169,330 144,294 135,279 130,269 127,263 125,258 125,256 126,257 139,260 180,266 209,268 238,270 268,274 268,274 297,280 336,292 350,297 358,300 363,301 366,302 367,300
+'??': 242,173 242,182 243,224 243,224 243,256 242,345 243,365 243,381 244,392 244,403 244,403 245,409 245,412 242,409 242,409 242,409 230,405 213,399 193,394 158,384 145,379 135,372 128,368 122,363 119,361 118,361 119,361 154,354 180,350 209,345 235,341 261,339 297,337 320,341 325,343 329,344 328,347
+'??': 245,185 245,191 245,207 245,230 246,260 245,292 245,345 246,365 246,384 246,400 246,415 246,423 246,427 246,426 246,422 245,414 242,404 233,384 220,366 204,345 174,312 161,301 150,294 141,291 133,287 128,286 126,285 125,285 126,285 127,286 130,286 130,286 146,284 167,283 229,285 262,290 294,295 340,304 356,305 356,305 372,310 376,311 377,311 374,308 374,308
+'??': 260,148 258,160 257,170 256,196 256,228 256,263 257,300 258,331 260,375 260,390 261,399 261,402 261,406 261,405 259,400 251,380 251,380 242,367 225,350 206,335 172,313 160,306 148,301 140,298 131,296 125,294 123,294 124,293 127,291 143,289 162,285 188,284 219,284 251,282 283,282 332,279 347,282 358,281 364,282 369,283 369,281
+'??': 264,129 263,135 262,136 263,139 262,141 261,155 258,191 257,221 256,268 256,316 256,332 256,352 256,363 256,374 257,381 257,383 257,381 258,381 258,382 257,381 257,378 257,377 257,373 257,365 257,360 256,349 254,340 251,335 246,325 239,316 229,306 217,295 205,285 193,277 162,261 154,257 149,253 146,251 144,249 143,251 143,251 142,249 142,250 143,248 142,247 142,249 142,250 143,251 143,252 143,253 144,247 144,247 144,247 146,247 146,247 161,248 178,249 201,252 227,254 250,258 287,263 301,265 312,266 319,268 330,270 333,272 333,272 334,272 334,274 334,273 333,266
+'??': 260,144 260,135 260,131 260,132 260,135 260,157 258,187 254,263 254,296 257,344 258,359 259,370 260,377 261,383 261,387 260,386 259,386 256,381 243,366 229,352 213,336 195,317 170,287 161,273 152,260 147,254 142,248 140,247 140,245 140,246 141,246 141,245 154,247 173,250 197,254 227,259 256,264 299,270 324,277 332,281 337,284 340,286 341,286 341,286 340,286
+'??': 264,123 264,126 264,130 264,151 265,174 267,231 264,299 262,316 258,332 252,346 243,361 224,368 203,366 184,357 158,326 152,312 148,297 147,284 148,272 162,260 180,252 201,245 225,240 271,235 305,237 318,240 331,242 341,243 350,245 356,246 359,247 360,247 358,247
+'??': 177,192 178,203 178,214 179,228 183,245 188,260 197,273 226,281 240,284 254,281 264,276 274,270 282,261 287,250 290,237 290,222 290,212 289,207 288,203 288,205 286,221 284,248 281,284 277,321 271,378 263,404 250,424 232,432 196,430 182,420 173,409 164,394
+'??': 174,185 175,214 179,232 192,280 207,296 235,304 249,302 261,296 272,287 283,275 293,260 301,246 306,230 309,216 310,203 309,193 308,189 307,187 303,203 300,225 298,253 295,287 291,364 291,380 291,393 291,401 291,409 291,413 291,410
+'??': 186,415 179,395 170,370 163,343 157,312 157,241 157,241 170,191 183,170 200,155 217,147 242,141 266,146 289,153 310,167 327,188 339,213 345,242 345,277 322,343 300,369 272,385 243,391 243,391 201,384 179,365
+'??': 184,130 190,137 203,134 221,137 240,142 260,155 273,173 279,196 275,231 268,242 257,251 248,256 240,261 237,263 240,266 255,274 272,287 299,316 306,331 304,359 290,401 273,421 241,430 226,430 214,425 197,409
+'??': 287,161 280,160 263,160 243,161 207,167 195,168 186,169 182,168 179,166 178,166 178,167 178,169 179,172 180,180 178,203 173,248 169,269 166,280 164,289 162,297 161,304 161,305 163,303 176,297 195,292 215,289 251,290 263,295 272,306 276,326 274,349 268,373 257,394 241,407 223,415 203,416 171,407 149,379 149,379
+'??': 280,153 280,151 278,151 272,150 242,148 226,147 211,147 202,148 193,149 186,152 182,152 181,154 180,154 180,155 180,154 180,155 179,156 178,160 173,180 164,226 160,248 158,265 158,274 156,283 156,286 156,287 157,287 157,286 156,285 157,285 157,285 158,285 159,283 165,280 175,276 194,273 271,306 277,314 280,338 273,362 264,385 250,408 234,423 204,434 191,436 178,434 168,429 159,422 153,415 150,410 148,401
+'??': 286,142 285,150 274,153 259,153 239,156 204,155 191,158 180,158 174,161 169,164 165,164 165,164 165,164 166,164 165,168 165,168 165,174 161,197 154,241 150,280 149,290 148,298 148,302 147,305 147,304 148,303 148,302 150,301 155,298 164,294 174,290 187,286 200,284 213,283 226,282 253,288 266,294 276,305 284,321 288,339 282,369 272,396 254,421 213,449 213,449 158,438 158,438 139,420 136,413 132,408 132,408 132,404
+'??': 282,150 280,149 276,151 260,155 241,158 205,159 192,159 182,158 173,158 172,157 172,158 172,157 172,158 172,159 171,166 167,191 163,217 154,269 152,285 151,298 150,306 149,312 149,312 149,314 149,315 149,314 149,314 149,313 149,314 150,313 152,313 156,311 164,306 182,299 203,294 225,291 260,294 274,298 286,305 296,316 304,338 306,364 303,390 295,417 281,440 264,456 243,466 221,469 199,466 164,452 154,444 147,437 139,428
+'??': 274,163 274,168 273,170 273,168 271,170 256,174 238,177 201,184 187,184 176,183 167,179 166,179 166,178 166,180 166,187 163,212 160,239 154,288 151,315 151,319 152,316 164,312 181,309 200,305 223,309 266,328 274,339 276,353 275,378 269,402 258,426 242,447 224,459 203,465 178,463 141,448 129,438 120,430 111,418
+'??': 273,161 271,161 256,163 236,166 194,169 180,170 170,169 166,169 163,169 163,171 164,178 165,188 162,213 157,258 155,276 154,283 154,292 153,300 153,301 153,303 163,298 186,287 209,282 229,284 249,289 293,316 293,316 297,338 293,360 283,388 266,413 244,429 218,439 176,440 162,436 144,414
+'??': 262,149 261,149 247,154 234,157 195,163 179,163 169,163 165,162 161,162 160,162 160,166 159,186 158,227 158,249 159,266 160,278 161,287 161,293 162,294 163,292 179,288 199,284 239,281 253,283 265,291 269,314 266,343 254,373 236,399 212,415 187,422 151,416 140,409 132,402 120,385
+'??': 267,160 268,159 267,158 246,161 207,166 186,169 175,169 169,169 165,169 164,169 165,169 165,171 166,191 166,234 167,256 167,270 167,276 166,283 167,286 167,287 178,283 196,279 217,276 241,275 277,283 289,299 295,322 291,348 284,377 269,401 248,421 224,435 199,445 175,448 155,443 138,430 108,389
+'??': 270,148 262,152 248,166 231,184 213,206 195,234 182,264 173,298 167,329 165,358 168,386 175,408 205,444 224,452 246,451 268,442 287,425 299,405 304,379 302,355 293,332 277,307 258,290 224,274 201,281 193,289 179,305
+'??': 127,212 147,229 173,255 173,255 208,286 223,303 248,349 248,349 236,413 236,413 236,413 208,441 195,444 165,435 154,423 147,408 156,387 171,366 189,348 222,324 234,316 249,299 268,265 268,223 262,210 244,188 224,177 200,171 174,171 154,182 127,208 120,221 116,229 113,233
+'??': 149,217 180,249 188,259 205,280 219,302 231,323 244,363 245,388 240,411 228,427 212,443 177,448 163,445 153,437 150,416 151,396 162,375 179,353 199,337 218,323 256,294 282,264 283,241 274,219 259,199 192,175 173,187 148,218 141,232 140,247
+'??': 274,176 271,174 252,172 236,172 211,174 170,186 158,195 154,208 156,219 163,233 206,268 221,277 232,286 259,315 268,331 273,360 258,408 241,430 222,443 189,452 176,450 166,440 163,418 164,394 172,370 185,346 203,325 222,306 238,287 264,252 272,239 277,227 280,217 281,203 281,192 276,178
+'??': 201,196 200,195 190,198 177,206 150,230 141,243 136,257 135,269 136,283 151,297 167,308 202,327 233,349 242,359 254,372 261,383 268,398 270,413 267,430 260,445 240,456 217,459 195,455 175,444 161,426 154,406 156,387 165,367 180,351 208,329 240,307 250,300 261,290 265,281 262,261 252,242 237,227 208,209 197,206 184,204
+'??': 213,184 212,190 209,191 188,205 176,215 166,229 171,243 182,259 199,276 221,296 241,319 258,342 271,367 278,391 277,413 270,433 255,448 235,455 214,455 181,445 172,437 165,426 169,407 178,387 192,368 210,351 240,332 270,315 280,307 291,294 287,272 281,251 258,217 231,197 220,193 207,190 187,199
+'??': 156,228 162,231 164,234 180,249 197,269 217,295 240,330 255,360 271,407 270,423 266,437 250,450 232,460 198,469 187,467 177,460 169,448 162,433 161,416 175,394 217,359 241,343 261,330 288,300 296,285 299,266 296,250 277,208 258,193 235,185 200,184 170,207 161,219 149,236 144,244 139,256
+'??': 300,195 293,203 281,210 264,221 246,235 226,252 211,270 191,302 185,318 180,360 179,379 182,398 187,409 196,420 227,426 241,423 256,416 263,409 269,399 267,377 255,339 235,302 221,284 204,263 180,234 171,223 164,214 161,207 158,199 160,192 165,184 175,177 195,170 216,167 238,169 260,174 289,187 301,194 308,201 313,216
+'??': 310,237 305,239 302,242 295,246 278,256 258,270 238,287 209,317 201,331 187,367 183,385 190,410 203,426 220,437 240,443 258,437 281,413 273,377 246,345 214,320 197,304 171,273 161,258 163,234 172,214 196,178 218,171 238,171 258,178 291,199 297,220 294,241 264,281
+'??': 300,218 273,237 260,246 238,263 216,285 199,305 178,341 172,357 168,374 166,390 174,416 187,436 205,449 228,455 249,451 267,438 280,418 285,394 282,370 268,348 250,331 230,321 196,310 184,305 173,294 165,280 160,262 167,235 180,212 199,192 222,179 246,177 280,184 291,191 303,205
+'??': 174,211 179,201 195,180 206,170 227,163 260,164 292,184 299,193 305,205 302,215 286,233 266,248 241,266 160,340 153,354 149,367 146,384 154,408 167,427 185,444 207,455 230,458 270,446 285,427 294,403 295,360 283,338 268,318 252,301 234,280 211,251 202,238 194,228 187,221 181,215 177,212 175,211
+'??': 163,214 171,205 176,199 195,185 214,174 237,167 261,166 291,180 295,202 288,225 272,245 253,267 216,290 202,298 188,309 177,319 165,332 156,346 153,384 172,420 184,429 199,438 212,443 235,446 257,442 277,432 293,415 298,392 297,367 288,339 260,285 243,261 224,239 194,214 181,206 172,202 165,195
+'??': 170,203 186,195 195,188 205,181 226,177 248,176 272,181 308,202 309,222 301,241 264,273 242,284 219,295 187,316 161,346 155,358 148,374 147,386 153,409 164,432 182,450 204,462 232,465 274,454 286,446 291,427 290,406 285,361 275,336 262,312 245,291 225,266 196,234 181,214 179,212 177,209 176,209 175,209
+'??': 148,227 149,218 152,214 165,203 181,192 200,183 222,177 253,176 266,179 278,186 288,196 294,217 291,238 280,258 261,278 239,292 215,304 180,323 168,332 157,342 148,353 141,368 137,385 138,404 142,422 149,437 164,458 181,472 202,480 227,481 262,466 274,455 279,428 277,402 273,374 262,345 250,324 236,305 220,286 194,257 181,246 172,236 166,231 162,227 160,226 159,226 156,227
+'??': 281,191 258,186 244,186 206,191 192,197 181,205 174,216 168,230 167,246 172,260 179,271 209,277 222,277 236,272 246,266 256,256 264,242 271,229 277,216 282,203 285,194 287,189 285,194 285,194 277,220 268,252 259,285 250,323 237,377 231,413 229,423 229,423 227,433 227,438 226,441 227,442
diff --git a/guessture/pixelpath.2008-09-03-12-30-20.bad.new b/guessture/pixelpath.2008-09-03-12-30-20.bad.new
new file mode 100644 (file)
index 0000000..858a5c6
--- /dev/null
@@ -0,0 +1,5 @@
+'8': 264,191 255,184 243,178 231,175 218,171 205,171 192,171 182,174 173,186 167,202 166,218 166,236 167,255 182,270 200,289 219,289 241,293 262,300 281,306 300,313 315,323 325,333 332,343 335,359 335,375 335,391 334,407 327,422 318,432 306,441 291,444 273,444 252,444 230,434 209,422 191,413 175,404 162,395 152,383 145,367 141,348 138,330 138,315 138,300 145,287 158,274 176,258 194,242 210,227 225,215 238,206 247,200 256,196 262,192 265,191 267,189 269,188 270,186 271,184 271,182 272,182 273,180 274,180 274,179
+'8': 242,161 238,161 234,161 227,161 218,161 211,161 204,161 197,161 194,161 192,161 192,162 192,180 204,198 222,214 241,232 257,247 272,262 281,278 285,299 285,318 285,358 283,358 273,376 258,389 242,395 223,395 202,395 183,388 167,376 154,360 145,336 141,314 140,292 140,277 147,268 163,265 182,265 203,265 224,264 245,261 264,260 279,257 291,251 297,235 298,210 298,183 298,164 294,152 288,142 282,136 278,133 274,130 271,130 264,130 260,130 253,130 246,130 239,131 232,137 228,143 222,147 220,149 218,151 216,151 215,154 215,155 214,155 213,156 212,157
+'8': 279,129 279,128 270,127 260,127 245,127 230,127 215,127 202,131 190,135 181,141 172,153 166,165 160,177 159,192 159,204 159,217 159,227 166,237 178,247 191,259 206,269 224,278 243,288 261,297 277,306 290,310 302,316 311,326 318,338 325,356 332,374 336,393 339,409 340,427 340,445 340,464 337,482 328,495 319,505 310,511 300,514 288,514 272,511 256,502 241,492 226,482 213,463 194,456 188,450 184,444 181,440 181,421 181,403 190,381 202,362 215,343 227,325 240,309 256,296 269,283 282,271 294,264 301,257 308,253 312,250 315,246 318,242 318,239 318,230 318,228 318,226 318,222 314,213 310,207 306,203 302,200 299,193 295,186 294,180 291,174 288,170 286,168 284,167 282,165 281,165 278,161 274,155 273,153 270,149 268,147 267,146 266,145 264,144 263,143 261,142 260,141 259,138 259,137 258,137 258,136 257,135
+'8': 198,215 213,239 229,264 242,291 257,345 267,345 277,370 287,394 293,413 299,432 300,450 300,465 300,477 291,484 278,490 262,493 246,493 230,493 212,490 196,483 183,473 173,464 163,451 157,444 153,437 153,433 153,430 165,427 183,421 202,414 223,402 241,386 260,370 278,355 296,342 312,329 325,316 337,300 344,284 351,268 354,250 354,226 354,202 350,184 338,168 325,156 310,149 292,146 277,145 261,144 248,144 233,144 208,144 198,145 186,154 177,166 168,178 162,190 156,197 153,203 153,212 153,222 153,232 153,241 153,248 154,251 156,252 158,252 159,253 159,254 160,254
+'8': 161,244 171,244 184,256 199,269 214,281 227,297 239,318 251,343 261,397 276,418 280,437 283,453 284,469 285,482 285,500 285,513 285,528 281,541 272,551 263,561 253,567 241,570 229,570 214,566 201,553 188,541 179,528 175,518 174,508 174,495 174,480 180,465 192,452 205,437 221,422 236,404 249,389 262,379 272,373 281,366 287,360 293,356 296,355 300,351 304,338 310,325 313,318 316,312 319,306 319,304 319,289 319,274 316,261 306,248 291,223 260,216 248,212 238,212 228,212 221,212 214,212 205,212 198,212 191,212 184,212 177,213 170,216 164,223 158,227 154,237 148,243 148,250 148,259 148,263 148,267 148,269 148,271 149,272 149,273 150,273 151,275 151,276
diff --git a/guessture/pixelpath.2008-09-03-12-30-20.bad.new.bad b/guessture/pixelpath.2008-09-03-12-30-20.bad.new.bad
new file mode 100644 (file)
index 0000000..eaf25d5
--- /dev/null
@@ -0,0 +1,2 @@
+'??': 273,182 269,182 262,182 253,186 246,192 239,207 233,220 229,235 228,248 228,266 234,278 249,287 264,296 282,306 301,315 317,325 332,355 353,377 357,401 357,423 357,444 351,460 339,475 326,485 308,489 287,492 266,492 244,492 223,489 205,479 193,460 186,436 185,406 185,378 191,354 207,338 226,326 248,316 270,310 291,304 312,300 331,293 347,287 359,278 371,265 378,246 382,227 385,208 386,192 386,174 386,158 382,146 372,136 362,127 350,121 338,115 326,115 317,115 307,114 301,113 297,113 294,113 290,128 281,135 277,141 274,145 273,147 273,148 272,150 271,150 270,151 267,155 265,156 261,159 259,160 257,160 256,161 255,163 253,164 252,164 251,164 251,165 251,168 251,171 251,174 250,177 249,178 249,181 249,182 248,183 248,184
+'??': 199,134 193,141 186,148 182,157 176,170 173,180 170,192 170,204 170,228 173,228 185,237 200,244 216,250 234,256 253,266 271,275 287,287 300,305 312,326 321,350 328,374 332,393 332,414 332,432 320,444 304,451 289,452 271,452 255,445 240,433 225,420 215,410 205,401 201,394 201,382 201,372 214,362 229,350 245,341 264,329 282,314 316,277 329,258 339,233 342,208 342,187 342,163 342,141 333,122 323,110 311,100 299,97 284,94 271,93 256,93 244,93 231,93 219,93 206,97 194,112 182,112 172,121 165,128 159,134 153,138 151,139 149,141 147,143 147,146 146,147 145,148 145,149 145,152 145,154 145,156
diff --git a/guessture/pixelpath.orig b/guessture/pixelpath.orig
new file mode 100644 (file)
index 0000000..944aca9
--- /dev/null
@@ -0,0 +1,204 @@
+0: 99,456 99,444 99,426 101,410 107,388 115,366 125,344 133,326 141,306 149,286 155,266 165,246 173,228 181,210 191,192 199,172 211,154 221,138 227,126 233,118 239,112 240,110 244,106 245,105 246,105 248,105 254,115 260,131 270,147 278,169 286,191 292,215 300,241 304,275 310,313 316,345 322,373 328,393 332,413 336,431 340,441 344,451 348,457 350,463 351,465 351,467 352,467 353,468 353,469 353,470 354,470
+0: 133,408 133,392 133,376 133,358 133,338 137,316 145,298 151,282 159,268 165,254 173,244 181,234 189,226 197,220 207,214 219,210 231,206 247,204 261,204 277,202 291,200 301,200 311,200 321,200 329,200 337,208 347,220 353,234 361,252 369,270 373,282 379,292 381,302 385,312 385,336 385,346 385,349 387,355 387,357 387,359 387,361 387,371 387,383 387,393 387,405 387,413 387,415 387,418 387,419 387,421 387,422 387,424 387,425
+0: 102,458 102,440 104,420 108,398 116,370 126,342 134,312 146,280 154,250 164,228 170,210 176,196 180,182 184,170 186,156 190,144 192,134 196,128 198,122 199,121 200,120 201,119 202,119 203,118 205,118 207,118 210,118 216,120 222,128 228,148 234,170 244,194 254,218 264,242 272,260 280,276 286,288 292,302 296,316 300,332 304,346 308,358 312,366 314,372 318,380 322,392 328,400 330,410 332,416 336,422 337,423 337,424 338,425 338,426 339,426 339,428 340,429 341,430 341,431 342,432 343,432 343,433 344,433
+1: 133,470 133,469 133,459 133,443 133,423 133,401 133,375 133,349 133,325 133,297 133,273 133,253 133,233 133,219 133,205 133,197 133,183 133,171 133,155 133,139 135,125 135,113 135,110 135,107 135,105 136,103 136,102 137,101 138,101 139,101 142,101 150,101 162,101 174,101 188,101 200,101 212,105 228,115 242,127 258,145 274,155 284,165 294,173 300,179 306,189 306,205 306,223 306,239 306,253 306,263 300,271 294,275 288,277 278,279 266,279 252,279 240,279 230,279 220,279 212,279 209,279 206,279 204,279 202,279 201,279 199,279 197,279 196,279 195,279 195,278 205,280 217,284 229,288 243,292 255,298 269,306 281,312 289,318 299,324 305,326 311,334 313,350 317,376 319,376 323,386 323,394 323,404 323,418 321,428 313,436 301,442 287,448 275,448 263,450 251,454 237,458 223,458 207,462 193,462 181,462 169,462 161,462 158,462 155,462 152,462 151,462 149,462 148,462 147,462 147,461 146,461 145,461
+1: 154,499 154,498 154,496 154,484 152,464 152,444 150,430 150,418 148,410 146,402 146,400 146,397 146,385 146,365 146,351 146,339 146,331 146,328 146,320 146,318 146,315 146,313 146,311 146,310 146,308 146,292 146,270 146,256 146,244 146,230 146,214 146,200 146,190 146,180 146,166 146,158 146,150 146,142 146,140 146,138 146,137 146,136 146,134 146,133 146,131 146,130 146,129 146,121 146,113 146,110 146,107 146,106 146,105 146,104 146,103 148,103 156,103 159,103 162,103 168,101 176,101 186,101 194,101 204,103 214,107 224,111 234,113 244,119 254,127 264,135 272,141 278,147 280,148 286,154 292,166 300,180 310,196 322,212 330,222 338,230 342,236 348,244 350,254 350,266 350,278 350,290 350,302 350,314 350,328 344,336 334,346 324,354 310,358 298,362 282,362 264,364 248,364 230,364 214,364 202,364 190,364 182,364 179,364 176,364 174,364 173,364 176,364 192,364 208,368 224,372 240,376 256,382 270,388 284,398 298,408 306,416 314,422 320,426 322,432 324,438 324,450 324,460 324,468 320,474 310,482 298,486 284,490 268,496 252,500 236,500 224,500 212,500 202,500 194,500 191,500 189,500 186,500 184,500 182,500 181,499 179,499 178,499 177,499 176,499 175,499 174,499 173,499 172,498 172,497 171,497 170,497 169,496
+1: 217,505 217,497 217,477 217,451 217,417 217,383 217,349 217,315 217,285 217,255 217,233 217,215 217,203 219,193 221,185 221,182 221,181 221,179 221,178 221,176 221,175 221,174 221,173 222,173 223,172 227,168 237,164 247,158 257,154 267,154 273,152 281,152 289,152 297,156 307,166 317,172 323,178 329,184 333,190 334,192 336,208 336,224 336,238 336,250 336,268 336,276 336,278 332,284 326,288 314,294 304,300 292,306 282,310 272,312 264,316 258,318 255,318 252,318 249,318 248,318 246,319 245,319 244,319 243,319 242,319 241,319 243,319 251,319 265,319 277,319 289,319 301,319 311,325 323,333 331,349 339,361 345,373 349,381 351,387 353,395 355,405 355,415 355,433 351,453 341,471 333,481 321,493 315,499 307,507 297,513 289,517 281,519 273,523 270,523 262,525 260,526 257,526 254,526 251,526 249,526 247,526 246,526 245,526 243,526 242,526 241,526 239,525 238,523 234,517 232,517 230,516 229,514 228,514 228,513 227,513 226,513 226,512
+2: 389,217 381,213 371,209 361,205 347,199 333,191 319,187 305,183 287,183 271,183 255,183 237,183 221,189 205,199 189,213 171,229 155,247 143,265 131,285 121,303 115,323 113,345 113,365 113,383 113,401 121,415 133,425 145,431 163,435 185,435 211,435 237,433 261,431 283,431 301,429 315,427 327,425 333,423 341,421 344,421 345,421 347,421 349,420 350,420 351,420 352,419 353,418
+2: 304,175 292,171 274,167 256,161 236,161 216,161 194,161 176,161 158,161 140,161 122,163 108,171 96,185 84,203 78,223 76,245 76,269 76,291 76,313 76,335 80,357 86,381 88,401 94,421 100,441 106,459 116,471 128,481 146,485 166,485 186,485 208,479 228,475 244,467 258,463 268,459 276,459 282,457 285,457 287,457 288,456 288,455 289,455 290,455 290,454 290,453 291,453
+2: 386,154 374,150 358,148 338,144 318,140 294,140 270,140 244,140 220,140 192,140 166,146 142,158 122,172 104,190 90,206 80,222 72,234 66,252 64,276 62,302 62,334 62,366 62,390 62,408 64,430 70,446 82,464 96,478 112,486 130,490 154,494 176,496 200,496 222,496 240,496 256,496 268,496 278,496 290,496 304,496 318,496 334,496 346,496 356,496 364,496 372,496 374,496 376,496 377,496 378,496 379,496 380,496 381,496
+3: 127,468 132,291 131,200 133,183 134,179 148,170 191,154 240,162 307,214 339,286 322,356 281,410 231,430 186,451 164,450 158,448 146,445 135,448 129,447 127,445 124,443 124,443 124,443 124,443 124,443 124,443 124,443 124,443 124,443 124,443 124,443 124,443 124,443 124,443 124,443 124,443 124,443 124,443 124,443
+3: 165,437 171,400 181,324 186,277 190,237 198,165 201,152 203,145 210,134 223,131 232,133 244,133 266,137 301,148 322,161 349,186 370,222 373,236 374,265 368,308 359,337 334,376 316,397 272,419 237,427 223,427 211,427 202,426 192,424 187,422 182,419 173,414 173,414 173,414 173,414 173,414 173,414 173,414 173,414
+3: 175,447 176,399 181,325 185,281 192,220 196,198 202,177 206,170 213,166 234,165 234,165 278,173 329,199 341,211 347,224 353,254 345,316 318,368 282,400 260,416 208,438 197,438 190,433 182,424 172,401 172,401 172,401 172,401 172,401 172,401 172,401 172,401 172,401
+4: 344,174 346,172 346,172 313,167 245,168 222,176 199,190 146,236 140,245 143,268 149,283 168,294 223,311 237,313 251,317 289,316 304,314 317,311 321,307 321,307 284,303 232,300 193,303 178,308 159,322 153,338 162,358 174,384 181,395 188,405 217,427 255,440 268,440 285,438 294,435 305,431 317,432 317,432 317,432 317,432 317,432 317,432 317,432 317,432 317,432 317,432 317,432 317,432
+4: 318,164 321,163 310,162 269,159 207,156 163,158 140,172 138,182 138,182 138,205 144,280 146,296 158,305 168,308 182,309 206,309 251,308 270,306 282,306 286,306 272,306 249,308 223,308 167,308 159,312 156,316 154,320 153,325 153,340 154,351 158,367 169,400 173,415 177,426 181,433 199,435 219,437 267,444 300,454 314,458 328,461 335,464 335,464 338,463 338,463 338,463 338,463 338,463 338,463 338,463 338,463 338,463
+4: 310,154 270,140 200,145 159,171 151,184 145,217 148,251 161,273 185,287 216,289 244,285 261,279 266,278 267,276 255,275 235,276 174,290 155,305 149,314 144,335 147,347 160,373 160,373 196,404 241,423 287,432 307,433 322,428 327,422 327,422 327,422 327,422 327,422 327,422 327,422 327,422 327,422 327,422 327,422 327,422 327,422 327,422 327,422 327,422 327,422 327,422 327,422
+5: 303,157 303,149 243,153 214,154 154,159 143,165 147,170 156,174 159,183 159,203 160,227 162,287 164,341 163,401 161,429 160,441 160,449 160,454 160,448 160,448 160,448 160,448 160,448 160,448 160,448 160,448 160,448 160,448 160,448 160,448 160,448
+5: 331,150 184,165 173,183 171,194 171,238 171,312 171,312 168,356 167,404 166,439 165,461 164,470 164,472 164,471 164,469 164,469 164,469 164,469 164,469 164,469 164,469
+5: 338,168 273,171 240,169 165,169 153,173 146,180 147,197 148,210 147,240 147,269 151,346 156,381 158,397 158,416 158,429 156,438 154,442 150,444 150,444 150,444 150,444 150,444 150,444
+6: 339,206 211,174 194,181 176,202 164,223 152,250 141,306 144,333 151,360 172,408 197,435 197,435 217,441 259,437 284,428 327,390 333,377 336,367 338,357 338,349 337,346 338,352 338,364 339,380 340,399 339,417 340,438 341,441 341,442 340,443 340,443 340,443 340,443 340,443 340,443
+6: 341,207 344,197 313,181 288,175 258,174 231,181 206,194 165,238 151,265 137,336 148,378 154,393 174,422 199,443 219,449 240,452 284,449 303,440 341,407 348,396 353,378 353,369 352,364 351,361 350,371 351,390 350,422 349,453 349,463 350,472 350,474 349,475 349,475 349,475 349,475 349,475 349,475 349,475 349,475 349,475 349,475 349,475 349,475 349,475 349,475 349,475 349,475
+6: 360,203 229,165 176,173 138,203 112,265 111,301 123,347 139,391 147,404 164,422 213,455 227,459 253,461 274,450 320,408 336,386 349,362 353,343 353,336 350,342 348,361 347,389 344,421 342,444 341,451 341,452 341,452 340,450 340,450 340,450 340,450 340,450 340,450 340,450 340,450 340,450 340,450 340,450 340,450 340,450 340,450 340,450 340,450
+7: 149,167
+7: 154,140 157,133 158,134 158,140 160,185 161,212 163,244 169,312 174,387 171,416 169,430 166,445 165,448 165,445 167,426 170,401 179,352 189,320 197,309 209,298 209,298 244,287 259,285 274,282 284,283 296,282 311,280 314,283 314,302 313,325 311,353 309,423 307,442 307,442 308,412 311,358 311,330 312,264 313,228 312,196 308,134 307,126 308,125 314,141 314,141 314,141 314,141 314,141 314,141 314,141 314,141 314,141 314,141 314,141 314,141
+7: 150,140 151,134 152,134 154,132 156,135 158,141 161,161 162,176 162,194 163,212 164,243 165,275 166,326 166,345 166,345 169,424 170,442 170,449 170,451 170,451 170,446 170,446 172,422 173,355 173,337 175,322 177,309 179,301 192,296 192,296 210,291 230,284 251,279 286,271 297,270 306,272 316,285 316,285 318,311 323,373 325,423 325,447 324,452 323,455 319,443 319,443 316,418 311,357 309,319 305,250 300,198 298,164 297,157 298,153 299,155 299,155 300,161 300,161 300,161 300,161 300,161 300,161 300,161 300,161
+8: 226,145 230,145 232,145 236,159 236,159 237,186 237,219 233,299 235,403 238,436 238,446 239,455 239,455 239,455 239,454 239,452 241,445 241,445 241,445
+8: 226,135 227,379 223,431 222,455 222,467 223,470 224,471 225,469 224,468 224,468 224,467 225,467 226,466 226,466 226,466 226,466 226,466 226,466 226,466
+8: 230,132 236,143 239,161 241,185 242,252 242,279 242,295 241,327 240,356 239,369 240,391 241,409 241,427 241,444 240,452 239,466 237,478 237,484 237,486 237,491 237,496 237,495 237,495 235,487 235,487 235,487 235,487 235,487 235,487 235,487 235,487 235,487 235,487 235,487 235,487 235,487 235,487
+9: 236,138 243,195 243,234 242,254 241,276 241,318 245,359 248,392 248,406 249,419 245,444 238,468 234,478 230,487 226,495 219,502 199,509 199,509 191,508 179,493 179,493 171,470 158,430 152,415 151,406 151,398 152,397 156,399 156,399 156,399 156,399 156,399 156,399 156,399 156,399 156,399
+9: 231,138 232,132 236,142 238,153 241,180 244,210 247,240 249,312 248,331 246,364 245,383 244,401 244,418 243,432 242,443 235,466 231,477 225,485 218,494 209,498 191,494 181,487 159,465 159,465 138,429 133,413 130,397 132,388 134,386 137,386 137,386 137,386 137,386 137,386 137,386 137,386
+9: 245,124 250,163 252,221 252,250 252,281 250,333 246,374 242,406 240,431 240,431 238,444 235,457 231,468 218,484 209,489 199,491 189,489 178,484 168,477 153,460 153,460 128,406 126,392 127,383 133,368 136,365 138,362 138,362 137,364 137,364 137,364 137,364 137,364 137,364
+10: 177,116 183,240 183,291 184,361 185,395 185,426 185,451 185,465 186,468 186,473 188,469 191,464 202,446 209,433 221,409 232,384 261,313 268,299 294,250 307,216 309,211 311,205 312,204 312,205 308,221 301,241 284,289 264,344 253,377 243,405 238,420 236,424 236,425 236,427 237,427 242,428 249,431 249,431 294,459 306,468 318,480 321,485 321,486 320,484 320,484 320,484 320,484 320,484 320,484 320,484 320,484 320,484 320,484 320,484 320,484 320,484 320,484 320,484 320,484 320,484 320,484 320,484 320,484 320,484 320,484 320,484 320,484
+10: 187,138 186,123 187,130 187,154 185,219 184,254 183,337 183,358 183,402 184,423 185,457 185,471 186,485 187,487 214,441 228,416 270,328 282,295 307,229 307,229 320,208 347,157 350,150 350,148 349,152 342,170 337,185 337,185 316,236 305,266 284,321 272,360 267,374 255,408 252,416 251,420 252,419 253,416 256,414 259,413 275,415 275,415 303,435 315,446 327,455 333,461 338,467 341,471 340,470 340,470 340,470 340,470 340,470 340,470 340,470 340,470 340,470 340,470 340,470 340,470 340,470
+10: 200,155 198,118 197,134 197,159 194,227 191,300 190,364 192,426 194,448 194,459 196,457 199,451 212,434 228,413 262,363 277,339 305,291 321,260 358,188 370,169 375,162 374,163 371,169 356,192 341,218 300,288 286,317 283,328 288,326 299,337 305,346 319,368 341,403 358,432 367,451 371,457 370,454 367,452 367,452 367,452 367,452 367,452 367,452 367,452 367,452 367,452 367,452 367,452 367,452 367,452 367,452 367,452 367,452 367,452 367,452 367,452
+11: 194,170 194,127 196,146 197,208 197,246 198,323 199,395 198,424 197,449 197,456 198,458 202,458 212,459 220,458 258,456 280,453 344,458 372,459 381,459 395,458 399,458 400,456 395,455 395,455 395,455 395,455 395,455 395,455 395,455 395,455 395,455 395,455 395,455 395,455 395,455
+11: 149,155 155,186 158,220 160,246 162,272 163,340 163,373 163,401 165,418 168,430 169,437 171,443 173,448 180,451 192,452 200,453 233,449 233,449 256,448 308,447 330,443 351,443 358,444 363,446 367,447 368,448 367,449 366,450 366,450 366,450 366,450 366,450 366,450 366,450 366,450 366,450 366,450 366,450 366,450 366,450 366,450 366,450
+11: 171,110 188,220 189,274 187,362 186,404 183,432 183,437 183,441 184,440 184,440 185,440 189,439 199,441 215,443 238,444 267,445 298,443 330,438 330,438 382,435 395,436 407,435 410,435 408,436 407,436 405,437 405,437 405,437 405,437 405,437 405,437 405,437 405,437 405,437 405,437 405,437 405,437 405,437
+12: 124,443 130,447 132,442 130,417 128,398 128,398 128,366 130,333 138,244 140,223 146,189 149,174 161,169 161,169 198,231 217,266 225,281 243,309 250,317 263,316 267,310 273,299 290,260 305,223 314,201 318,196 321,197 328,219 334,247 341,281 355,350 365,400 370,427 374,444 376,450 377,454 379,452 379,452 379,452 379,452 379,452 379,452 379,452 379,452 379,452 379,452
+12: 117,448 108,405 98,354 95,318 99,272 102,251 110,220 116,207 133,190 157,185 184,195 196,205 220,259 226,288 231,306 232,310 232,308 231,303 231,288 236,267 242,239 254,211 271,196 296,198 325,211 350,238 361,265 378,334 382,365 384,382 385,413 384,429 384,433 384,433 385,431 385,431 385,431 385,431 385,431 385,431 385,431 385,431 385,431 385,431 385,431 385,431 385,431 385,431 385,431 385,431 385,431 385,431 385,431 385,431 385,431 385,431
+12: 91,456 97,402 98,387 105,339 110,282 118,221 125,194 135,179 148,190 176,224 204,274 219,301 229,309 239,302 250,282 262,252 274,228 306,168 315,179 327,222 340,282 354,341 370,403 377,426 381,440 382,443 383,443 383,443 383,443 382,443 382,443 382,443 382,443 382,443 382,443 382,443 382,443 382,443 382,443 382,443 382,443 382,443 382,443 382,443 382,443 382,443 382,443 382,443 382,443 382,443
+13: 89,469 100,432 100,415 103,368 105,340 112,264 116,229 123,208 133,201 145,206 153,216 181,265 210,324 244,391 260,414 275,427 279,427 283,417 285,406 290,381 306,328 327,257 333,224 335,208 336,202 335,205 335,205 335,205 335,205 335,205 335,205 335,205 335,205 335,205 335,205 335,205 335,205 335,205 335,205 335,205 335,205 335,205
+13: 86,460 90,354 93,317 98,298 134,230 146,216 158,212 185,221 196,228 212,245 221,264 238,343 244,388 249,422 255,447 261,456 280,458 290,456 301,450 313,433 334,391 352,336 364,276 374,207 376,179 379,163 382,165 383,180 383,180 383,180 383,180 383,180 383,180 383,180 383,180 383,180 383,180 383,180 383,180 383,180 383,180 383,180 383,180
+13: 88,463 97,360 102,327 106,295 118,234 124,222 130,216 141,226 164,267 176,299 194,358 194,358 213,411 230,442 236,449 248,456 252,452 278,367 290,328 300,294 317,222 321,212 324,220 324,220 324,220 324,220 324,220 324,220 324,220
+14: 219,184 211,183 157,210 157,210 126,251 117,276 109,304 111,360 133,410 149,429 170,442 233,455 247,453 247,453 267,437 304,389 326,342 328,322 327,304 317,279 306,254 269,214 256,210 245,207 231,205 222,203 217,203 214,203 214,203 215,205 215,205 215,205 215,205 215,205 215,205
+14: 230,191 120,381 127,395 159,425 215,448 242,448 242,448 260,438 280,422 307,385 314,357 308,291 303,275 290,253 251,204 238,198 226,196 211,197 198,202 189,208 184,212 181,213 181,215 181,215 184,216 184,216 184,216 184,216 184,216
+14: 229,224 214,214 214,214 196,218 139,240 118,260 106,291 101,329 101,350 101,350 107,377 115,403 144,447 161,461 181,471 212,478 212,478 233,473 269,445 295,410 295,410 300,385 300,335 287,268 282,254 269,234 269,234 254,225 208,214 195,213 186,211 179,212 179,212 179,212 176,216 176,216 176,216 176,216 176,216
+15: 141,473 146,458 148,423 149,410 153,383 163,307 164,289 166,223 168,198 170,187 171,184 172,183 175,182 180,179 211,166 221,167 247,174 270,189 286,211 292,240 283,271 267,289 217,319 189,320 167,317 161,312 164,310 167,308 174,307 174,307 174,307 174,307 174,307 174,307 174,307 174,307 174,307 174,307 174,307 174,307 174,307 174,307 174,307 174,307 174,307 174,307 174,307 174,307
+15: 138,505 143,412 153,351 163,279 165,249 168,236 179,209 187,201 205,192 226,186 238,182 261,181 273,185 282,196 290,219 292,260 266,299 228,320 178,323 158,319 151,316 152,315 155,316 155,316 155,316 155,316 155,316 155,316 155,316 155,316 155,316 155,316 155,316 155,316 155,316 155,316
+15: 156,499 162,415 166,351 170,319 174,287 182,224 182,212 182,205 183,195 184,187 184,187 188,187 193,186 200,184 200,184 252,196 267,204 278,214 285,226 286,252 281,275 251,316 228,327 189,338 175,333 166,326 164,313 164,313 175,308 175,308 175,308 175,308 175,308 175,308
+16: 144,512 146,498 146,486 146,471 146,471 150,442 160,358 161,340 167,314 195,240 204,222 213,208 238,184 263,168 272,167 290,173 296,185 296,185 289,246 281,265 281,265 234,307 218,314 207,316 198,314 187,309 184,307 181,306 180,305 180,305 180,305 180,305 181,304 181,303 181,303 181,303 181,302 180,303 179,303 178,303 177,303 175,303 168,301 154,298 146,296 137,294 127,292 120,290 115,290 110,298 108,304 105,308 105,308 101,304 99,300 99,295 99,291 99,290 99,290 99,290 98,290 98,291 98,293 97,293 97,294 97,294 97,295 100,293 104,293 111,292 127,294 135,294 143,295 150,296 157,298 161,300 166,301 166,301 170,304 176,307 176,307 180,307 181,307 182,306 182,306 181,306 180,306 177,306 166,305 160,303 151,299 148,298 148,297 148,297 148,298 148,297 148,295 148,297 148,296 149,296 150,296 151,296 152,296 153,296 153,295 153,296 153,297 153,294
+16: 226,413 223,405 217,404 200,395 183,384 164,368 130,329 110,291 109,265 115,241 127,222 167,189 213,176 237,174 281,190 312,219 323,242 322,325 305,347 280,367 266,374 237,381 212,382 204,380 199,377 198,372 201,367 214,365 231,367 249,373 290,393 300,400 309,407 320,413 329,418 336,421 336,421 336,421 336,421 336,421 336,421 336,421 336,421 336,421 336,421 336,421 336,421
+16: 209,397 155,368 117,327 108,311 105,295 105,295 106,266 124,216 141,194 161,182 184,173 232,170 255,176 275,185 300,210 311,250 310,289 305,303 285,340 285,340 254,366 226,373 215,373 204,371 195,369 191,365 190,359 199,348 199,348 215,345 260,355 272,363 281,372 291,382 307,397 313,401 316,405 316,405 316,405 316,405 316,405 316,405 316,405 316,405
+17: 140,447 138,416 138,416 137,389 137,361 140,330 144,294 149,260 155,206 157,180 160,175 164,167 169,160 177,153 188,148 201,145 201,145 253,156 268,166 275,178 279,203 276,228 261,268 243,284 191,300 181,298 175,295 174,295 176,294 181,297 189,298 197,303 197,303 213,319 229,334 277,385 277,385 295,410 299,415 303,420 305,421 305,422 306,421 306,421 309,424 309,424
+17: 148,470 145,440 145,429 144,404 144,359 145,299 145,299 154,218 158,192 161,189 172,178 186,166 207,159 234,158 261,162 273,169 282,179 289,206 287,236 278,265 239,306 216,314 165,316 157,314 157,315 167,316 189,327 212,345 234,370 245,386 268,417 279,431 288,444 299,456 301,460 301,461 301,461 301,461 301,461 301,461 301,461 301,461 301,461 301,461 301,461 301,461 301,461 301,461 301,461 301,461 301,461 301,461 301,461 301,461
+17: 138,469 144,464 141,443 140,418 140,387 142,354 145,325 156,247 160,230 163,216 167,205 179,184 188,175 199,169 231,165 231,165 275,188 286,201 285,226 278,253 249,296 230,307 197,311 185,309 178,308 177,308 184,311 194,316 209,330 240,372 256,395 278,432 292,449 296,454 300,458 301,460 301,461 301,461 299,461 299,461 299,461 299,461 299,461 299,461 299,461 299,461
+18: 307,214 306,198 281,186 241,180 209,181 183,186 183,186 146,228 136,260 136,283 150,297 172,310 200,320 225,328 238,331 264,338 288,348 308,361 323,377 329,385 334,404 325,428 305,451 281,467 267,473 245,476 223,473 163,457 148,451 126,437 120,432 120,425 126,422 126,422 126,422 126,422 126,422 126,422 126,422 126,422 126,422 126,422 126,422 126,422 126,422 126,422 126,422 126,422 126,422 126,422 126,422 126,422 126,422 126,422 126,422
+18: 306,207 298,207 293,203 278,195 260,189 203,190 179,196 159,206 142,226 135,256 140,283 146,294 161,311 229,332 252,335 275,343 298,357 315,375 321,383 324,403 316,422 298,440 272,461 246,476 209,473 148,451 135,444 118,426 115,414 126,410 134,407 134,407 134,407 134,407 134,407 134,407 134,407 134,407 134,407 134,407 134,407 134,407 134,407 134,407 134,407 134,407 134,407 134,407 134,407 134,407 134,407 134,407 134,407
+18: 309,214 302,187 272,177 272,177 222,177 182,183 160,198 151,221 149,246 158,269 158,269 173,284 214,308 237,313 251,315 277,324 289,331 312,344 327,358 332,368 332,393 328,405 328,405 297,436 277,447 252,453 228,453 176,441 163,434 154,425 138,403 135,395 132,384 130,383 128,383 128,383 128,383 128,383 128,383 128,383 128,383 128,383 128,383 128,383 128,383 128,383 128,383 128,383
+19: 123,187 145,180 202,184 230,185 242,186 255,185 265,185 271,185 274,184 274,184 276,185 276,191 275,214 274,240 271,272 268,310 267,347 266,421 266,438 265,452 264,470 263,481 263,491 263,490 261,487 261,487 261,487 261,487
+19: 109,194 120,185 158,188 194,189 220,188 240,188 255,189 259,193 257,199 253,213 251,238 250,254 248,295 241,359 238,394 234,427 234,457 234,480 232,494 231,499 228,498 228,498 228,498 228,498 228,498 228,498 228,498 228,498 228,498 228,498 228,498 228,498 228,498 228,498 228,498 228,498 228,498
+19: 100,166 111,167 111,167 154,169 222,176 230,176 243,176 246,177 246,181 243,190 242,210 243,239 244,299 245,354 248,409 248,437 249,463 250,480 251,487 250,488 249,491 248,490 248,492 248,492 248,492 248,492 248,492 248,492 248,492 248,492 248,492 248,492 248,492 248,492 248,492 248,492 248,492 248,492
+20: 98,190 102,349 124,408 142,435 163,454 184,465 205,467 224,462 242,446 260,421 271,388 276,349 278,308 280,274 279,246 277,224 276,210 276,203 277,202 277,202 277,202 276,203 276,203 276,203 276,203 276,203 276,203 276,203 276,203 276,203 276,203 276,203 276,203 276,203 276,203 276,203 276,203 276,203 276,203 276,203
+20: 81,166 81,280 90,342 103,387 127,439 137,452 146,458 171,469 185,470 214,471 230,467 243,461 269,445 280,433 280,433 290,412 304,361 310,332 313,304 316,261 316,261 314,217 309,180 307,171 306,164 306,163 307,165 307,165 307,165 307,165 307,165 307,165
+20: 95,209 104,198 104,198 104,217 104,244 104,275 105,341 117,392 143,443 163,462 163,462 196,472 226,470 226,470 244,463 262,452 304,404 311,389 316,375 322,352 326,325 332,277 333,260 334,243 333,228 333,201 333,197 334,202 334,202 334,202 334,202
+21: 332,212 324,211 323,211 322,213 322,213 304,243 292,267 266,324 239,390 232,405 225,419 215,441 212,448 209,451 208,451 203,446 198,437 198,437 188,412 171,351 161,309 145,247 133,216 131,212 132,211 136,214 139,214 139,214 139,214 139,214 139,214 139,214 139,214 139,214 139,214
+21: 336,227 335,223 333,221 325,234 300,279 283,309 250,367 223,415 214,431 209,442 205,453 203,455 200,455 196,451 186,433 175,411 117,253 112,243 109,236 109,235 113,234 113,234 113,234 113,234
+21: 334,236 329,221 326,226 312,249 278,306 258,338 217,425 207,450 203,458 202,459 202,459 200,457 196,447 176,392 164,362 138,284 113,215 109,208 110,208 116,215 116,215 119,222 119,222 119,222 119,222 119,222 119,222 119,222 119,222 119,222
+22: 102,202 116,231 130,303 143,370 153,408 155,415 158,422 161,423 161,423 189,375 189,375 220,320 228,303 237,288 241,286 246,289 250,299 250,299 258,324 269,370 279,403 282,411 286,417 295,414 295,414 306,393 318,365 330,332 342,291 355,211 357,194 360,190 360,190 360,190 360,190 360,190 360,190 360,190
+22: 105,194 98,199 93,219 89,242 90,272 103,334 134,392 158,405 158,405 170,405 190,395 209,381 236,345 249,315 252,300 253,300 255,306 256,318 258,335 269,374 276,389 285,399 297,403 318,396 318,396 345,357 356,331 366,301 378,254 382,238 384,224 385,212 385,190 385,190 385,184 384,183 384,183 383,184 383,185 383,185 382,186 381,186 380,187 380,188 380,189 379,187 379,187 379,187 379,187 379,187
+22: 92,186 91,176 90,169 94,179 102,196 124,251 148,325 158,360 174,413 179,430 185,441 190,443 190,443 201,428 226,383 249,342 258,327 267,323 267,323 287,356 295,381 313,446 318,457 329,460 329,460 340,442 352,418 380,347 426,216 432,203 433,202 430,198 430,198 430,198 430,198 430,198 430,198 430,198
+23: 113,175 142,214 180,272 201,302 247,363 290,425 303,450 310,460 316,464 318,459 323,442 328,421 340,360 350,300 353,226 352,210 348,183 347,172 345,175 345,175 313,214 269,271 248,299 225,330 174,400 157,419 151,429 151,433 150,434 150,434 150,434 150,434 150,434 150,434 150,434 150,434 150,434 150,434 150,434 150,434 150,434 150,434 150,434
+23: 134,207 181,278 236,350 278,405 293,429 298,436 303,442 306,442 312,426 318,404 335,342 343,308 352,234 350,223 348,220 348,220 322,232 300,251 243,305 214,332 148,391 138,404 134,414 132,418 129,424 122,427 122,427 122,427 122,427 122,427 122,427 122,427 122,427 122,427
+23: 143,208 158,228 185,279 229,343 252,372 287,412 299,423 307,429 316,425 316,425 318,407 322,382 326,346 331,304 333,222 328,211 314,216 280,246 236,309 190,368 155,404 138,426 138,426 135,431 131,436 131,436 131,436 131,436 131,436 131,436 131,436 131,436
+24: 140,187 137,183 137,180 137,181 138,181 138,180 139,179 139,178 140,179 148,191 174,237 191,264 227,312 236,316 248,313 248,313 260,299 287,256 300,228 316,188 320,175 322,166 322,164 319,168 319,168 309,189 282,249 267,285 250,322 233,364 212,428 207,451 205,465 204,470 204,476 204,476 204,476 204,476 204,476 204,476
+24: 132,156 191,267 225,352 232,361 243,365 252,353 257,342 269,317 284,288 323,211 328,195 330,175 330,168 328,166 320,182 308,207 270,281 229,356 192,438 187,457 183,476 182,481 182,480 180,476 180,476 180,476 180,476 180,476 180,476 180,476 180,476 180,476 180,476 180,476
+24: 176,180 205,257 219,295 224,309 230,324 235,335 241,341 254,335 254,335 265,314 299,235 306,217 311,204 313,195 314,186 314,183 306,198 296,223 265,297 250,331 234,364 221,396 200,456 198,462 196,464 194,466 192,469 189,469 189,469 189,469 189,469 189,469 189,469
+25: 146,190 181,187 245,195 258,199 276,214 278,225 278,225 247,272 225,299 166,373 146,401 141,420 146,434 151,438 160,442 183,443 237,443 280,442 308,439 327,439 333,441 336,443 332,439 332,439 332,439 332,439 332,439 332,439 332,439 332,439 332,439 332,439 332,439
+25: 124,171 238,178 263,185 276,194 276,194 257,222 240,245 201,305 168,372 157,400 155,422 158,436 169,438 188,435 234,431 295,432 308,434 327,434 333,434 335,434 335,434 327,432 327,432 327,432 327,432 327,432 327,432 327,432 327,432 327,432 327,432 327,432 327,432
+25: 114,179 192,303 141,402 134,425 135,437 138,440 148,445 185,444 243,445 315,443 349,446 346,440 342,437 341,437 341,437 341,437 341,437 341,437 341,437 341,437 341,437 341,437 341,437
+26: 255,284 264,267 239,258 217,255 165,256 154,262 139,279 134,308 141,337 157,361 181,373 209,377 233,366 248,348 257,319 262,292 263,276 263,272 263,281 269,339 297,367 311,369 318,362 317,353 317,353 317,353 317,353 317,353 317,353 317,353 317,353 317,353 317,353 317,353 317,353 317,353 317,353 317,353 317,353 317,353 317,353 317,353
+26: 262,246 195,257 143,280 132,313 143,353 152,364 172,376 218,383 239,371 261,331 267,296 270,265 270,253 268,267 268,281 269,323 273,359 276,374 277,379 276,379 276,379 273,375 273,375 273,375 273,375 273,375 273,375 273,375 273,375 273,375 273,375 273,375 273,375
+26: 266,248 178,255 156,273 147,303 149,340 164,372 196,391 229,395 251,385 267,361 276,319 278,281 278,260 278,254 278,257 278,267 281,308 287,349 293,376 297,391 298,389 296,385 296,385 296,385 296,385 296,385 296,385 296,385 296,385 296,385 296,385 296,385 296,385 296,385 296,385 296,385
+27: 194,155 197,156 198,170 199,181 197,207 191,270 183,355 182,390 181,416 181,432 180,427 182,409 189,387 203,363 221,345 241,337 260,337 274,349 278,371 267,396 241,416 210,420 186,415 179,412 174,397 176,383 176,383 179,386 179,386 179,386 179,386 179,386 179,386 179,386 179,386 179,386 179,386 179,386 179,386 179,386 179,386 179,386 179,386 179,386 179,386 179,386 179,386 179,386
+27: 201,181 201,177 198,211 194,270 191,304 187,361 181,420 180,437 186,416 199,394 220,373 246,356 269,357 282,372 285,396 273,423 254,434 198,440 186,434 178,427 172,421 170,408 174,403 186,390 186,390 186,390 186,390 186,390 186,390 186,390 186,390 186,390 186,390 186,390 186,390 186,390 186,390 186,390 186,390 186,390
+27: 197,153 200,156 201,158 201,165 200,191 196,255 189,327 187,357 181,418 178,430 177,430 179,416 188,391 196,375 212,355 259,320 272,317 294,324 303,335 308,350 308,350 300,378 260,423 232,431 207,426 174,390 175,382 186,376 186,376 186,376 186,376 186,376 186,376 186,376 186,376 186,376 186,376 186,376 186,376 186,376
+28: 290,428 284,428 274,435 234,442 199,437 188,432 170,413 163,401 161,384 164,368 195,317 246,286 258,287 275,298 275,303 274,305 272,312 272,312 272,312 272,312 272,312 272,312 272,312 272,312
+28: 289,424 301,421 304,415 302,416 299,418 293,424 255,445 199,458 199,458 158,437 138,412 127,380 133,350 149,329 187,303 241,294 253,297 268,306 272,311 268,317 268,317 268,317 268,317 268,317 268,317 268,317 268,317 268,317 268,317 268,317 268,317
+28: 276,439 280,435 280,440 280,440 255,460 234,470 198,477 198,477 178,469 160,454 134,421 130,396 141,351 176,294 176,294 215,282 251,286 264,291 275,299 280,306 280,306 282,321 282,321
+29: 287,335 167,365 162,393 174,420 197,436 208,439 228,439 237,436 253,420 263,396 281,332 283,303 284,286 285,249 287,213 288,198 288,185 287,187 285,209 279,267 275,303 269,370 274,391 279,400 288,409 289,410 289,410 289,410 289,410 289,410 289,410 289,410 289,410 289,410 289,410 289,410 289,410 289,410 289,410 289,410 289,410
+29: 272,343 272,340 262,338 204,344 183,364 187,404 220,438 247,441 268,428 268,428 286,386 297,328 300,300 299,223 294,190 290,174 290,174 290,222 288,260 292,353 295,368 304,393 309,415 311,424 310,421 310,421 310,421 310,421 310,421 310,421 310,421 310,421 310,421 310,421 310,421 310,421 310,421 310,421 310,421 310,421
+29: 297,352 293,339 198,386 198,401 208,431 225,450 246,455 267,443 276,432 286,408 294,381 308,315 311,239 309,206 306,183 305,179 305,179 301,227 296,301 297,370 307,398 316,419 323,427 325,428 325,428 323,426 323,426 323,426 323,426 323,426 323,426 323,426 323,426 323,426 323,426 323,426 323,426 323,426 323,426 323,426 323,426 323,426
+30: 204,366 194,359 199,357 204,357 219,358 272,367 286,371 302,375 309,374 309,371 308,369 309,367 312,361 314,351 314,346 306,332 298,325 261,308 209,308 209,308 181,345 179,381 188,415 207,437 231,452 243,455 271,456 290,455 300,451 300,451 303,440 303,440 303,440 303,440 303,440 303,440 303,440 303,440 303,440 303,440 303,440 303,440 303,440 303,440 303,440 303,440 303,440 303,440 303,440
+30: 155,334 208,341 267,346 289,348 301,346 304,348 304,346 304,347 304,346 306,341 311,335 315,322 312,309 307,301 290,290 247,273 196,279 174,291 143,319 135,368 139,386 168,425 206,448 261,450 291,440 291,440 291,440 291,440 291,440 291,440 291,440 291,440 291,440 291,440 291,440 291,440 291,440 291,440 291,440 291,440
+30: 156,326 157,319 163,319 169,320 187,323 231,331 294,345 308,348 326,350 334,350 334,350 336,348 340,342 343,327 342,318 330,300 290,267 233,248 180,265 146,315 144,371 171,418 216,446 295,462 305,459 314,442 314,442 314,442 314,442 314,442 314,442 314,442 314,442 314,442 314,442 314,442 314,442 314,442 314,442 314,442
+31: 184,472 190,469 191,462 192,437 191,403 191,385 191,359 193,303 195,237 197,209 205,184 218,166 237,153 261,156 285,175 312,216 322,237 324,243 324,243 322,243 322,243 322,243 322,243 322,243 322,243 322,243 322,243 322,243 322,243 322,243 322,243
+31: 181,470 180,355 183,327 193,255 195,228 201,206 213,186 229,173 245,172 265,177 285,189 303,209 313,237 316,260 315,268 314,268 313,269 313,269 313,269 313,269 313,269 313,269 313,269 313,269 313,269 313,269 313,269 313,269 313,269 313,269
+31: 179,475 180,464 179,452 177,412 177,373 179,356 183,324 191,253 195,221 201,195 207,187 225,176 246,179 256,186 279,200 300,225 318,256 326,279 328,289 327,289 325,283 325,283 325,283 325,283 325,283 325,283 325,283 325,283 325,283 325,283 325,283 325,283 325,283
+32: 288,216 287,191 285,208 284,281 286,357 268,438 212,424 195,391 198,383 199,384 200,386 200,387 199,386 199,386 199,386 199,386 199,386 199,386 199,386 199,386 199,386 199,386 199,386
+32: 289,196 177,203 171,246 189,275 213,289 231,293 238,292 246,292 281,272 290,242 293,203 290,205 285,292 280,366 276,427 252,467 200,434 188,380 188,380 188,380 188,380 188,380 188,380 188,380 188,380 188,380 188,380 188,380 188,380 188,380 188,380 188,380 188,380 188,380 188,380
+32: 293,214 239,192 227,197 217,205 199,224 193,237 188,251 191,280 191,280 205,293 234,304 262,303 271,299 284,281 287,267 289,253 291,233 291,230 290,234 286,253 277,325 275,342 269,374 264,393 243,440 234,446 209,444 198,437 189,429 178,409 178,409 175,387 175,387 175,387 175,387 175,387 175,387 175,387 175,387 175,387 175,387
+33: 184,173 187,159 183,195 178,255 177,286 183,362 185,378 188,401 190,411 191,419 191,419 191,410 192,401 201,374 210,358 221,342 232,331 232,331 294,336 294,336 297,353 298,405 295,418 295,424 295,425 295,425 295,425 295,425 295,425 295,425 295,425
+33: 191,168 189,162 188,198 185,260 180,336 181,379 181,398 183,414 184,425 185,424 185,419 188,411 188,411 208,370 234,336 246,328 259,328 271,334 285,343 302,376 303,396 302,415 297,441 297,445 297,445 300,437 300,437 300,437 300,437 300,437 300,437
+33: 196,183 187,299 188,356 188,388 189,416 190,428 189,433 190,427 192,417 200,386 214,355 233,335 255,328 280,331 280,331 306,367 310,396 309,411 307,430 307,436 307,431 307,431 307,431 307,431 307,431 307,431 307,431 307,431 307,431 307,431 307,431 307,431 307,431 307,431
+34: 250,334 255,323 256,306 257,286 257,270 258,259 258,255 259,260 260,280 259,310 257,339 256,362 254,381 254,396 255,411 256,420 256,426 256,430 256,434 257,434 257,434 256,431 256,431 256,431 256,431 256,431 256,431 256,431 256,431 256,431 256,431 256,431 256,431 256,431 256,431 256,431
+34: 240,331 248,320 253,303 255,278 258,250 261,229 263,221 264,223 266,253 266,253 264,317 263,337 260,370 259,396 258,404 258,413 259,417 259,420 260,425 260,425 260,425 260,425 260,425 260,425 260,425 260,425 260,425 260,425 260,425 260,425 260,425
+34: 268,328 268,317 267,292 262,255 260,230 258,210 257,200 257,201 256,214 254,242 250,280 248,319 247,335 246,353 243,384 242,400 243,407 244,410 245,412 245,413 245,413 245,413 245,413 245,413 245,413 245,413 245,413 245,413 245,413 245,413 245,413 245,413 245,413 245,413 245,413 245,413
+35: 195,355 196,364 196,376 202,391 209,401 216,404 225,403 233,401 237,396 246,378 253,349 256,320 255,292 255,274 256,250 258,244 259,249 259,250 259,250 259,250 257,250 257,250 257,250 257,250 257,250 257,250 257,250 257,250 257,250 257,250 257,250 257,250 257,250
+35: 196,360 197,352 195,373 197,391 201,405 207,412 215,412 220,412 232,405 238,398 251,372 257,339 255,307 253,292 252,276 249,245 249,234 248,218 248,214 249,213 251,224 251,224 251,224 251,224 251,224 251,224 251,224 251,224 251,224 251,224 251,224 251,224 251,224
+35: 194,370 193,352 193,349 193,352 194,360 195,382 197,394 204,412 217,421 230,420 236,415 248,396 253,381 261,338 263,300 263,286 263,268 264,251 264,222 264,208 265,205 265,204 264,208 264,208 264,208 264,208 264,208 264,208 264,208 264,208 264,208 264,208 264,208
+36: 214,204 208,365 207,391 207,405 207,410 208,410 208,409 208,409 209,409 210,407 210,406 211,405 212,405 212,405 212,404 212,404 213,402 216,398 220,394 225,387 240,370 247,363 254,358 259,352 262,350 264,349 248,363 228,381 222,390 215,403 217,407 232,410 244,412 256,413 268,414 276,414 281,413 281,412 281,412 281,412 281,412 281,412 281,412 281,412 281,412
+36: 203,214 206,193 206,238 204,267 201,317 199,335 197,353 196,369 195,387 195,405 196,408 197,408 200,404 200,404 228,375 239,364 245,358 251,352 249,353 234,366 216,383 208,389 203,394 199,397 198,398 199,400 213,403 237,411 250,414 264,416 274,416 280,416 282,416 282,416 282,416 282,416 282,416 282,416 282,416 282,416
+36: 195,206 199,237 197,266 196,298 194,344 193,363 193,380 192,401 192,406 194,407 206,399 220,387 246,362 257,349 265,338 267,331 260,340 239,369 219,391 213,395 208,399 205,401 210,399 217,399 228,401 254,409 268,412 281,413 289,413 295,412 288,410 288,410 288,410 288,410 288,410 288,410 288,410 288,410 288,410
+37: 258,400 245,402 224,405 197,405 176,403 170,399 166,395 167,394 169,393 169,389 170,350 179,273 180,255 178,233 178,227 179,224 180,224 180,224 178,222 178,222 178,222 178,222 178,222 178,222 178,222 178,222 178,222 178,222
+37: 262,400 262,395 263,395 264,395 264,395 264,395 262,395 251,395 235,396 191,398 182,398 173,397 171,396 171,396 171,396 170,391 170,391 169,348 171,297 172,260 171,246 169,217 169,210 170,207 172,212 172,212 172,218 172,218 172,218 172,218
+37: 268,399 265,391 249,395 231,396 196,399 183,398 167,396 163,395 162,396 163,395 164,394 165,393 165,392 166,391 166,391 166,391 167,390 167,390 168,390 169,385 170,380 170,376 171,374 171,373 170,365 170,355 171,343 172,316 175,287 179,223 181,215 182,213 183,212 184,211 185,208 185,208 185,208
+38: 130,309 138,323 137,336 136,349 135,362 135,379 134,383 133,383 133,378 135,370 139,356 155,329 165,319 174,317 182,323 192,351 195,374 195,368 199,357 204,344 211,331 227,320 235,327 235,327 252,384 254,398 254,405 254,405 254,405 254,405 254,405 254,405 254,405 254,405
+38: 136,333 135,348 134,360 134,373 134,383 133,391 133,387 135,377 138,366 152,339 162,326 172,317 181,314 188,318 194,328 200,359 200,370 200,374 199,373 204,352 212,341 231,328 242,329 251,335 259,344 264,356 270,381 270,381 272,395 272,395 272,395 272,395 272,395 272,395 272,395
+38: 125,340 132,343 134,363 135,373 136,382 136,390 136,398 136,400 136,397 137,391 140,383 152,359 171,336 181,330 196,330 202,341 207,354 212,380 214,388 214,397 216,395 218,387 228,363 233,352 244,338 249,337 262,343 269,349 279,370 282,380 284,388 284,392 284,392 283,395 283,395 283,395 283,395 283,395 283,395 283,395 283,395 283,395 283,395 283,395 283,395 283,395
+39: 180,312 178,341 175,371 174,382 173,388 173,391 172,390 172,385 173,376 182,347 198,321 207,316 216,319 234,338 240,352 242,370 242,386 241,396 240,402 241,404 242,401 242,401 242,401 242,401 242,401 242,401
+39: 175,318 180,341 176,368 174,387 172,395 172,395 172,391 174,377 177,367 183,355 198,333 216,321 230,323 241,339 246,352 249,367 251,396 251,404 250,408 251,400 251,400 251,400 251,400 251,400 251,400 251,400 251,400 251,400 251,400
+39: 181,321 180,330 178,352 177,374 176,382 176,391 175,392 175,384 180,368 192,343 207,324 221,316 237,318 250,331 256,357 257,386 256,402 256,406 258,406 258,406 258,406 258,406 258,406 258,406 258,406 258,406 258,406 258,406 258,406 258,406 258,406 258,406 258,406 258,406
+40: 231,290 270,297 292,333 291,345 288,358 280,373 270,388 270,388 223,403 210,398 202,391 191,369 190,346 198,327 209,309 215,302 221,298 226,295 236,299 239,302 239,302 241,303 241,303 241,303 241,303 241,303 241,303 241,303
+40: 207,298 213,294 224,288 231,284 250,285 261,288 277,306 282,316 284,328 280,354 274,369 254,392 229,398 218,395 207,389 198,381 188,355 188,339 191,324 197,311 211,294 219,290 226,290 232,291 232,291 232,291 232,291 224,255 224,255 224,255 224,255
+40: 242,305 261,287 277,289 286,294 300,311 302,333 292,355 273,372 262,377 240,381 224,378 217,366 214,358 215,335 219,326 230,309 252,299 256,299 258,301 259,304 259,304 259,304 259,304 259,304 259,304 259,304 259,304 259,304 259,304 259,304 259,304
+41: 211,309 198,380 197,392 193,420 191,432 191,440 190,443 190,441 191,421 192,407 193,391 200,359 206,344 212,329 226,311 233,306 242,304 259,310 264,318 267,331 258,358 248,366 236,370 223,365 209,345 210,328 210,328 210,328 210,328 210,328 210,328 210,328 210,328 210,328
+41: 193,299 198,297 199,309 198,321 197,335 195,370 195,387 195,402 195,422 195,426 194,427 193,418 193,411 195,387 201,360 205,346 210,332 224,305 238,286 244,281 254,288 258,315 256,331 249,346 239,357 227,359 205,348 201,339 201,330 212,320 212,320 212,320 212,320 212,320 212,320 212,320 212,320 212,320 212,320 212,320 212,320
+41: 203,301 203,304 198,343 192,380 190,395 189,424 189,432 189,437 189,439 189,437 188,424 189,412 192,380 197,362 211,332 235,304 243,302 249,302 255,310 255,342 250,359 241,371 214,370 196,354 197,348 204,333 204,333 204,333 204,333 204,333 204,333 204,333 204,333 204,333
+42: 266,278 255,268 226,275 202,293 199,305 197,316 206,335 214,338 231,333 238,327 248,313 252,303 257,285 258,281 259,278 258,284 254,308 241,376 236,394 230,421 228,429 227,431 227,430 230,419 237,406 241,399 250,390 250,390 250,390 250,390 250,390 250,390 250,390 250,390 250,390 250,390 250,390
+42: 252,274 253,263 230,268 217,274 205,285 199,295 198,319 205,327 215,331 227,331 246,317 253,305 257,292 260,281 261,274 261,274 259,292 249,362 243,396 240,409 239,421 242,426 247,417 269,382 278,367 286,353 290,346 290,346 295,338 295,338 295,338 295,338 295,338
+42: 238,254 257,255 252,257 236,267 221,281 199,329 201,340 223,344 233,337 241,326 252,301 256,289 260,271 261,269 261,269 258,281 250,333 240,382 236,413 236,428 239,427 239,427 273,363 287,339 290,338 290,338 290,338 290,338 290,338 290,338 290,338 290,338 290,338
+43: 170,286 180,304 178,338 178,353 177,361 176,364 175,360 175,336 178,320 184,305 200,286 212,280 237,275 250,277 260,280 268,285 271,296 271,296 271,296 271,296 271,296 271,296
+43: 175,293 179,355 178,368 178,366 177,358 181,331 191,305 200,296 221,282 232,279 251,278 260,281 269,289 269,289 272,294 272,294 272,294 272,294 272,294 272,294 272,294
+43: 184,309 195,336 196,362 196,379 195,384 195,385 195,384 198,367 202,352 213,324 220,315 229,310 240,306 252,305 275,309 281,313 284,316 284,316 283,317 283,317 283,317 283,317 283,317 283,317
+44: 185,395 193,401 211,407 229,403 243,393 247,381 239,365 231,359 221,355 200,349 190,338 189,331 193,321 201,312 215,303 230,299 237,302 245,305 247,310 247,310 247,310 247,310 247,310 247,310 247,310 247,310 247,310 247,310 247,310 247,310 247,310 247,310
+44: 182,407 213,413 235,403 242,390 241,371 233,354 227,348 210,345 200,345 184,343 178,337 171,323 172,315 177,309 196,297 219,290 229,288 244,291 248,292 255,294 255,294 255,294 255,294 255,294 255,294 255,294 255,294 255,294 255,294 255,294
+44: 157,408 161,410 166,417 172,421 181,424 212,429 224,427 236,424 239,417 239,395 232,381 213,357 201,348 191,341 182,334 173,320 176,311 185,301 197,295 225,290 237,292 246,292 255,296 255,296 255,296 255,296 255,296 255,296 255,296
+45: 218,443 230,383 247,307 251,291 255,272 257,266 258,263 259,260 257,260 253,261 236,259 187,248 187,248 174,245 172,245 175,247 175,247 174,244 174,244 174,244 174,244 174,244 174,244
+45: 218,441 221,437 222,436 225,431 230,416 232,406 232,406 243,355 247,335 256,292 261,274 263,263 263,258 265,253 263,253 261,256 244,260 219,259 202,254 197,253 198,253 200,253 197,252 197,252 197,252 197,252 197,252 197,252 197,252 197,252 197,252 197,252 197,252 197,252 197,252 197,252
+45: 238,463 238,456 239,454 240,451 241,432 243,391 248,342 253,306 255,294 258,276 260,271 261,268 260,268 250,268 228,266 202,266 193,266 185,262 178,257 178,255 183,255 183,255 183,255 183,255 183,255 183,255 183,255 183,255 183,255 183,255
+46: 191,286 186,289 186,320 188,335 199,357 207,363 217,367 229,368 241,365 251,357 264,330 266,314 267,288 267,281 267,280 267,280 270,295 274,330 281,360 285,367 289,374 292,375 292,375 292,375 292,375 292,375 292,375 292,375
+46: 185,317 182,304 182,298 182,293 182,291 183,288 183,286 185,284 186,282 186,285 186,285 185,333 189,351 205,369 227,370 237,366 246,357 246,357 258,320 262,288 262,282 262,281 259,307 258,324 263,352 269,360 276,360 284,353 296,336 296,336 296,336 296,336 296,336
+46: 178,266 183,266 185,262 187,259 187,261 187,267 187,267 186,305 189,342 193,355 200,366 209,373 232,371 243,365 260,343 267,327 273,292 274,279 274,272 274,270 274,285 276,321 276,340 278,351 287,359 287,359 294,356 306,344 306,344 306,344 306,344 306,344 306,344
+47: 143,276 145,268 145,265 146,265 146,265 147,265 148,265 150,266 156,269 161,270 166,269 173,267 177,265 179,263 179,265 178,270 176,280 177,306 181,320 186,332 205,351 215,356 226,359 237,359 250,348 261,329 274,289 276,275 277,262 277,262 278,260 278,260 278,260 278,260
+47: 132,258 141,265 155,264 164,263 172,263 180,262 185,262 188,261 188,263 185,269 180,291 181,302 185,317 193,330 212,348 223,351 236,352 257,339 265,328 271,310 277,294 277,294 280,281 284,274 284,274 284,274 284,274 284,274
+47: 121,254 129,255 137,254 147,253 170,254 179,256 184,259 188,259 188,259 184,265 181,273 179,284 180,295 187,318 204,334 214,335 226,332 237,325 247,316 254,306 259,298 262,290 262,290 264,276 264,276 264,276 264,276
+48: 281,292 305,277 302,299 295,327 288,339 288,339 274,349 255,352 225,339 217,313 220,303 227,291 230,290 232,295 232,300 232,300 223,313 185,340 173,338 163,331 152,319 144,305 136,287 137,284 139,284 146,284 146,284 146,284 146,284 146,284 146,284
+48: 294,292 296,303 293,314 280,341 270,351 247,359 235,352 214,328 209,316 207,308 210,300 212,300 212,302 211,308 208,317 195,339 186,348 175,355 163,356 151,353 151,353 118,313 113,300 114,290 114,290 117,289 124,288 124,288 124,288 124,288 124,288 124,288
+48: 291,304 294,301 295,301 292,315 285,328 275,338 262,348 234,349 221,343 212,334 207,311 210,302 215,295 219,291 221,294 220,300 212,323 193,347 181,355 168,358 143,352 123,328 117,315 115,304 116,296 118,292 120,290 122,290 121,291 121,291 121,291 121,291 121,291 121,291 121,291 121,291 121,291
+49: 165,367 212,334 233,309 239,299 252,288 260,295 267,316 271,342 273,356 276,381 277,388 275,393 272,391 245,365 229,348 192,310 186,302 184,295 187,296 190,301 190,301 190,301 190,301 190,301 190,301 190,301 190,301 190,301 190,301 190,301 190,301
+49: 163,407 204,356 229,336 249,320 262,307 268,303 269,306 269,312 269,336 270,367 270,394 269,406 264,408 260,407 249,395 210,348 182,320 175,315 170,312 171,308 173,305 173,305 169,305 169,305 169,305 169,305 169,305 169,305 169,305 169,305 169,305 169,305 169,305 169,305 169,305 169,305
+49: 166,405 165,404 164,404 165,403 169,395 181,382 191,372 214,348 234,331 249,319 269,326 272,355 275,385 276,406 276,412 270,413 263,406 236,373 210,346 191,327 179,311 176,299 179,297 179,297 180,304 180,304 180,304 180,304 180,304 180,304 180,304 180,304 180,304 180,304 180,304 180,304 180,304 180,304 180,304
+50: 186,253 195,294 212,306 234,309 249,302 256,288 258,267 258,250 259,247 261,266 262,297 261,333 257,366 253,381 240,406 222,409 204,389 193,368 193,368 193,357 193,357 193,357 193,357 193,357 193,357 193,357 193,357 193,357 193,357 193,357 193,357 193,357 193,357 193,357
+50: 207,220 199,288 216,311 240,313 253,307 262,299 269,289 273,275 273,249 273,236 272,231 273,232 273,232 274,274 269,330 255,388 241,409 241,409 219,401 210,390 202,375 201,352 201,352 201,352 201,352 201,352 201,352 201,352
+50: 207,221 206,223 206,285 209,304 224,318 234,320 246,316 256,308 270,283 274,266 277,236 277,228 277,225 276,242 274,267 269,317 205,353 205,353 205,353 205,353 205,353 205,353
+51: 255,363 231,359 220,357 209,355 199,355 190,354 183,351 179,348 177,345 179,336 189,323 196,316 216,302 225,296 235,289 242,282 251,271 253,268 252,267 248,267 230,264 216,263 203,263 192,263 185,263 181,263 178,262 172,258 172,258 172,258 172,258 172,258 172,258
+51: 250,359 201,355 184,355 177,354 171,353 168,352 164,348 165,344 165,344 174,332 187,321 214,302 237,289 245,285 254,279 254,277 250,274 233,268 205,265 192,266 172,270 166,272 162,271 158,269 156,266 152,265 152,265 152,265 152,265 152,265 152,265 152,265 152,265
+51: 256,370 232,364 203,364 192,365 181,366 171,364 165,362 161,351 165,343 190,319 202,309 215,297 224,291 233,283 241,273 241,273 217,271 198,273 149,272 140,271 135,270 132,269 132,269 131,269 131,269 131,269 131,269 131,269
+52: 191,408 211,398 228,377 238,347 238,332 231,305 215,294 194,297 184,302 174,310 159,335 156,347 155,361 157,373 165,393 170,400 170,400 183,405 192,405 200,404 207,403 211,402 213,399 213,399 213,399 213,399 213,399 213,399 213,399 213,399
+52: 180,411 200,411 216,402 241,379 252,365 256,350 256,322 256,322 244,305 193,287 167,298 158,304 149,311 139,329 138,343 140,358 152,383 162,393 173,399 196,408 204,410 209,412 211,408 211,408 211,408 211,408 211,408 211,408 211,408
+52: 183,410 184,406 187,407 194,408 210,409 233,403 244,395 253,385 259,370 258,347 251,324 239,303 201,277 169,274 156,279 144,288 137,300 129,336 130,353 139,380 159,397 171,402 183,408 202,407 202,407 202,407 202,407 202,407 202,407 202,407 202,407 202,407 202,407
+53: 220,283 219,280 219,277 220,274 221,274 221,281 220,303 218,348 217,370 216,384 215,391 214,397 213,398 212,398 211,396 199,394 192,391 185,388 182,388 187,390 196,393 219,397 219,397 229,398 239,400 239,400 238,400 238,400 238,400 238,400
+53: 215,254 218,336 213,384 212,392 213,393 213,391 213,390 208,391 201,391 194,391 188,391 183,389 182,389 187,394 187,394 214,396 239,392 242,392 245,392 242,393 234,395 234,395 234,395 234,395 234,395
+53: 210,242 213,238 214,253 214,276 215,347 215,365 215,380 216,388 216,397 217,397 217,398 217,395 214,395 208,394 198,394 190,393 184,392 181,391 186,392 193,394 202,397 229,398 240,395 247,394 247,393 247,393 247,393 247,393 247,393 247,393 247,393 247,393
+54: 175,270 185,258 198,243 206,238 224,235 232,241 232,241 237,260 233,320 225,333 215,341 194,361 194,361 186,369 181,374 178,377 179,379 181,380 187,380 203,380 234,380 256,381 256,381 263,381 264,381 264,381 263,380 260,380 260,380 260,380 260,380 260,380
+54: 172,283 183,257 203,234 221,228 236,230 242,235 249,251 244,274 231,311 224,327 208,344 191,356 183,363 181,365 181,366 183,367 188,368 204,367 231,366 246,366 259,368 275,369 277,369 275,368 272,367 272,367 264,365 264,365 264,365 264,365 264,365 264,365 264,365 264,365 264,365 264,365 264,365 264,365
+54: 172,274 183,258 188,248 196,238 218,224 218,224 239,230 239,230 243,249 230,309 212,332 203,341 195,352 190,361 188,366 187,369 188,370 190,370 196,370 196,370 213,368 243,365 264,365 266,367 266,367 258,367 258,367 258,367 258,367
+55: 173,239 189,224 213,223 227,227 237,234 244,260 238,274 229,285 218,291 207,294 196,295 197,296 213,302 224,306 234,313 243,320 248,352 243,367 224,389 209,394 194,396 179,393 169,389 162,386 162,386 158,380 158,380 158,380 158,380 158,380
+55: 151,244 197,219 218,222 228,230 234,253 229,267 211,287 202,290 192,288 191,287 197,288 212,297 219,302 233,317 235,331 235,331 227,370 209,396 199,396 185,394 172,389 163,384 158,380 159,375 159,375 159,375 159,375 159,375 159,375 159,375 159,375 159,375
+55: 164,234 169,234 172,230 177,223 185,217 195,214 220,222 232,233 239,263 227,284 208,291 201,291 197,292 199,295 203,298 210,302 220,306 229,314 236,325 239,355 234,370 225,384 196,394 173,393 170,390 170,390 167,383 167,383 167,383 167,383 167,383 167,383 167,383 167,383
+56: 208,398 227,289 230,238 231,212 232,197 231,195 224,209 195,266 186,280 171,301 164,310 156,319 156,320 156,320 166,320 184,320 249,320 262,320 271,321 271,321 271,321 261,322 261,322 261,322 261,322 261,322 261,322 261,322
+56: 205,394 213,374 221,329 224,310 231,260 237,224 237,206 235,198 228,205 218,224 198,262 180,293 167,305 162,308 160,311 164,313 178,316 196,320 248,322 259,320 265,319 270,318 270,318 266,321 266,321 266,321 266,321 266,321 266,321 266,321 266,321 266,321
+56: 210,402 214,393 216,386 219,373 219,373 229,320 233,289 238,241 238,217 238,214 235,214 230,221 230,221 186,273 173,286 164,294 154,305 152,308 153,311 153,311 186,323 241,334 254,332 269,328 275,326 275,326 270,329 270,329 270,329 270,329 270,329 270,329 270,329
+57: 208,406 218,377 218,377 231,325 235,295 240,245 240,227 240,217 239,211 235,213 235,213 223,230 182,280 172,291 166,298 161,304 159,305 161,307 174,308 212,314 265,313 265,313 282,309 282,309 286,308 284,309 284,309 282,310 280,310 279,310 277,311 275,311 275,310 274,310 273,310 273,310 272,309 271,308 270,307 270,307 270,307 270,307 269,307 269,306 269,307 269,308
+57: 284,214 216,213 203,216 188,221 186,223 188,227 189,234 189,245 188,262 186,278 186,301 186,301 188,306 201,306 224,309 235,312 256,321 263,329 265,342 265,342 254,381 237,391 186,387 175,380 167,372 163,367 163,359 163,359 163,359 163,359 163,359 163,359 163,359
+57: 259,210 263,210 247,210 200,211 190,212 185,214 181,217 181,225 183,234 185,269 186,286 186,300 186,305 186,309 191,310 196,309 214,309 238,316 238,316 255,335 258,351 244,382 244,382 211,392 197,388 185,380 181,374 177,366 177,366 177,366 177,366 177,366 177,366 177,366
+58: 238,176 215,213 205,228 199,242 191,270 184,313 183,334 185,349 194,373 202,381 212,386 222,388 238,384 244,377 247,364 250,334 244,311 238,304 219,296 210,295 202,296 196,298 191,302 189,305 188,307 187,308 186,308 184,308 184,308 184,308 184,308 184,308 184,308
+58: 238,178 241,173 234,187 219,220 209,250 201,276 190,321 188,339 188,369 192,383 198,394 207,402 217,409 237,413 245,409 253,399 258,386 262,370 261,352 250,320 241,310 231,306 220,306 212,310 206,313 195,314 195,314 195,314 195,314 195,314
+58: 256,213 261,188 261,185 258,193 258,193 248,217 229,279 221,315 215,346 209,393 211,419 217,424 225,430 237,432 250,431 269,414 269,414 275,374 268,338 260,331 249,325 226,330 215,335 206,339 206,339 193,341 193,341 193,341 193,341 193,341
+59: 161,209 171,214 184,215 202,216 222,216 257,213 269,210 279,205 278,211 269,229 258,253 222,321 206,348 199,360 191,373 179,394 176,401 174,405 170,411 168,414 167,416 165,417 165,417 167,415 167,415 167,415 167,415 167,415 167,415 167,415 167,415
+59: 158,203 160,201 162,200 177,201 177,201 195,204 216,206 251,205 262,200 271,193 273,191 272,192 270,198 261,221 252,248 225,320 225,320 209,358 203,372 196,388 192,398 188,406 186,411 185,415 184,416 183,415 183,415 183,415 183,415
+59: 142,196 153,205 161,206 181,205 202,203 237,200 260,196 266,195 272,195 264,208 254,228 226,282 210,324 197,356 191,369 184,383 179,392 175,398 173,402 172,404 172,405 172,402 172,402 172,402 172,402 172,402 172,402
+60: 234,183 196,202 183,211 172,230 171,246 174,260 191,280 202,288 213,295 224,302 233,309 240,320 252,363 251,379 246,394 238,406 219,423 210,426 196,416 179,380 180,370 184,358 191,344 205,318 211,309 219,298 226,286 232,273 233,245 233,245 225,219 221,211 218,206 213,204 213,204 213,204 213,204 213,204 213,204 213,204 213,204 213,204 213,204
+60: 228,188 168,217 161,248 169,281 177,294 186,305 198,314 222,330 234,338 243,346 251,356 257,367 255,395 242,420 231,424 208,423 200,416 193,407 188,380 189,364 193,348 199,334 210,320 231,290 238,276 243,260 243,244 234,213 228,204 221,202 209,206 209,206 209,206 209,206 209,206 209,206 209,206 209,206 209,206 209,206 209,206
+60: 241,206 235,206 186,223 165,241 163,251 163,266 176,288 200,302 222,314 238,327 244,334 255,356 257,369 257,395 252,408 244,418 235,427 222,432 212,433 203,429 197,421 190,396 187,367 187,367 214,303 229,292 239,285 248,276 254,263 256,249 242,226 233,220 233,220 220,214 220,214 220,214 220,214 220,214 220,214 220,214 220,214 220,214 220,214
+61: 250,208 176,222 168,231 164,241 163,252 166,263 166,263 211,292 236,294 243,289 250,282 259,262 262,250 264,240 265,231 265,223 264,219 264,217 263,218 262,222 261,229 260,252 259,277 256,323 256,323 254,366 254,379 254,395 253,406 252,416 252,422 252,422 252,428 252,429 252,428 252,428 253,427 254,427 255,427
+61: 259,190 263,194 253,191 239,189 209,189 197,195 188,204 177,244 176,261 177,277 181,287 199,302 212,304 226,304 240,299 249,293 255,282 258,270 258,256 257,243 256,235 255,237 255,237 253,260 249,287 246,317 242,349 238,394 236,409 235,419 235,423 235,431 235,431 235,433 236,433 236,433 236,433
+61: 270,204 275,202 273,199 270,197 263,194 231,195 231,195 194,211 175,237 173,266 181,290 181,290 206,303 235,304 244,299 253,292 264,270 271,239 274,214 275,206 274,212 274,212 267,260 261,309 256,356 253,388 252,396 251,409 250,413 250,413 250,413 250,413 250,413 250,413 250,413 250,413 250,413 250,413 250,413
+62: 140,403 137,368 135,319 139,280 145,249 148,241 154,241 159,249 179,307 196,348 213,372 228,379 235,377 256,321 260,299 265,256 268,224 271,216 273,210 275,207 275,207 275,207 275,207 275,207 275,207 275,207 275,207 275,207 275,207
+62: 209,337 213,324 215,317 222,295 228,274 232,263 233,264 233,277 232,288 226,321 222,354 221,365 221,379 221,386 220,388 221,390 222,394 222,394 222,394 222,394 222,394 222,394 222,394 222,394 222,394 222,394 222,394 222,394
+62: 249,391 242,385 218,386 203,385 194,384 192,383 191,380 193,374 197,359 205,331 212,300 213,285 214,260 216,244 219,240 220,241 220,244 220,244 220,244 220,244 220,244 220,244 220,244 220,244 220,244 220,244 220,244 220,244 220,244
+63: 267,388 270,388 265,390 265,390 237,391 213,391 209,391 206,391 206,391 206,390 206,387 205,382 204,363 206,294 206,277 207,263 206,249 207,248 207,248 207,248 205,259
+63: 195,362 197,380 197,381 196,382 196,384 196,376 196,364 197,348 197,348 205,295 208,275 212,258 217,244 221,238 225,234 238,231 247,234 255,243 262,271 259,284 240,299 240,299 219,303 214,303 214,303 218,302 233,306 250,315 260,332 256,359 248,370 236,376 223,377 211,375 204,370 200,359 200,359 200,359 200,359 200,359 200,359 200,359 200,359
+63: 204,382 203,357 206,320 208,298 211,261 212,250 213,244 214,242 215,241 222,237 229,236 238,238 256,251 265,262 270,274 264,299 240,312 224,312 224,307 230,307 240,309 251,316 270,334 273,346 263,371 263,371 231,381 217,380 204,377 196,367 196,367 196,367 196,367 196,367 196,367 196,367 196,367 196,367 196,367
+64: 201,389 203,318 208,299 214,281 221,266 238,245 255,247 255,247 260,277 250,310 229,324 220,327 212,327 207,327 207,325 212,325 220,329 241,348 241,348 262,371 271,384 277,393 280,400 280,400 282,403 282,407 282,407 282,407 282,407
+64: 200,313 184,340 193,363 213,373 223,375 233,373 240,368 246,359 249,349 250,338 252,327 254,329 257,335 261,345 266,353 280,363 288,364 295,362 301,355 304,346 304,335 303,323 302,314 301,307 301,305 301,305 301,305 301,305 301,305 301,305
+64: 202,298 200,345 199,356 198,369 198,373 197,369 198,357 201,339 206,328 219,313 235,306 242,309 254,317 260,338 260,360 260,365 261,370 263,374 264,377 264,377 264,377 262,370 262,370 262,370 262,370 262,370 262,370 262,370 262,370 262,370 262,370 262,370
+65: 199,304 200,299 201,309 201,321 200,348 200,361 200,370 201,380 201,382 201,380 200,376 203,356 211,330 217,319 230,305 247,305 261,317 268,343 272,371 274,388 275,391 273,385 273,385 273,385 273,385 273,385 273,385 273,385 273,385 273,385 273,385 273,385 273,385 273,385 273,385
+65: 197,302 199,298 200,304 203,318 204,341 206,365 206,385 206,398 206,401 206,401 206,397 206,388 205,375 205,369 209,353 215,337 223,323 232,313 244,309 251,310 263,316 269,324 275,348 276,374 277,386 277,388 277,391 277,391 277,391 277,388 277,388 277,388 277,388 277,388 277,388 277,388 277,388 277,388 277,388 277,388 277,388 277,388 277,388 277,388 277,388 277,388
+65: 162,287 170,289 171,294 171,309 171,319 170,344 170,356 168,383 167,390 165,406 164,414 164,408 163,401 162,379 164,354 169,331 173,323 184,309 196,300 201,297 214,299 227,309 233,315 237,322 243,339 246,362 246,374 244,394 243,402 242,411 242,413 243,413 243,409 244,397 244,381 246,370 246,363 246,363 246,363 246,363 246,363 246,363 246,363 246,363 246,363 246,363 246,363 246,363 246,363 246,363 246,363 246,363 246,363 246,363 246,363 246,363 246,363 246,363
+66: 147,280 150,275 151,275 153,282 153,290 154,299 156,322 156,332 157,343 157,355 157,358 157,355 157,351 156,344 156,337 158,322 159,314 161,306 164,301 168,295 173,291 180,290 187,291 187,291 194,295 207,318 211,332 212,344 213,353 213,359 213,361 213,361 214,358 214,358 214,358 214,358 214,358
+66: 133,300 141,299 141,299 142,298 143,297 143,301 145,309 145,318 146,326 147,334 147,342 147,350 147,351 147,344 146,338 146,325 148,319 149,312 152,305 155,300 160,296 166,295 172,298 179,303 190,319 193,330 196,339 197,351 198,352 197,352 196,348 196,348 196,348 196,348 196,348 196,348 196,348 196,348 196,348
+66: 172,284 179,295 181,322 182,340 182,349 182,351 181,351 182,347 181,341 181,333 185,312 191,303 200,297 210,292 220,291 230,294 242,307 244,318 244,327 244,341 244,343 244,342 244,342 242,341 242,341 242,341 242,341 242,341 242,341 242,341
+67: 262,287 230,277 218,280 208,284 197,290 190,298 186,306 184,316 186,323 191,330 208,341 231,342 231,342 239,342 246,340 251,339 252,338 252,338 254,338 254,338
+67: 150,298 145,308 144,326 144,326 147,337 153,349 172,365 182,364 194,352 199,343 202,334 205,326 208,319 210,313 210,317 211,327 214,336 217,348 222,358 229,364 237,366 252,356 258,345 263,333 266,319 266,319 271,298 272,292 272,292 273,289 273,289 273,289 273,289 273,289
+67: 151,400 159,374 168,313 175,284 178,276 182,273 182,273 189,285 206,343 212,358 219,372 225,381 225,381 235,381 235,381 244,370 262,327 276,288 281,275 284,269 284,269 283,267
diff --git a/guessture/test.py b/guessture/test.py
new file mode 100755 (executable)
index 0000000..33d50a9
--- /dev/null
@@ -0,0 +1,2478 @@
+#!/usr/bin/env python
+
+import pygtk
+import gtk
+import math
+import sys
+import time
+
+def LoadDict(dict):
+    # Upper case.
+    # Where they are like lowercase, we either double
+    # the last stroke (L, J, I) or draw backwards (S, Z, X)
+    # U V are a special case
+
+    # A doesn't need cross-stroke and can be pointy or curved
+    dict.add('A', "R4:6-8")
+    # or can have the cross stroke
+    dict.add('A', "R4:6-8.L7:8-0")
+
+    # B is drawn from bottom of spine, up, then in two loops
+    dict.add('B', "R4:6-34H.R7:?-6")
+    dict.add('B', "R4:6-5.R7:?-6") # Why no 'H', sample in pixelpath.2008-09-03-12-30-20.bad 
+    # or we can start from the top and double the spine
+    dict.add('B', "S3:1-7S.R4:6-34H.R7:?-6")
+    # it might not come in very far... I wonder why no 'H'
+    dict.add('B', "S3:1-7S.R4:6-5.R7:?-6")
+    
+    # C is a simple curve, bottom to top
+    dict.add('C', "R4:8-2")
+
+    # D is like B, but only one loop
+    dict.add('D', "R4:6-67")
+    dict.add('D', "R4:6-67F")
+    dict.add('D', "S3:12-67S.R4:6-67")
+
+    # E is drawn from the top, like two loops to allow a single stroke
+    dict.add('E', "L1:12-78.L67:?-8")
+
+    # F is can be drawn like E but straight at the bottom
+    dict.add('F', "L1:12-78.L467:?-6")
+    # or like an 'f' without the cross, but double the spine
+    dict.add('F', "L4:2-6.S3:7-1S")
+    # or like an 'f' but drawn from bottom up
+    dict.add('F', "R4:6-25")
+
+    # G is like c, but with an extra line to the left, or down
+    dict.add('G', "L4:2-45L")
+    dict.add('G', "L4:2-85.S8:01-78")
+
+    # H has two option
+    # 1/ straight down, loop across and down, straight up
+    dict.add('H', "S3:1-7.R7:6-8.S5:7-1")
+    dict.add('H', "L3:0-58.R8:0-8.S5:7-1")
+    # 2/ straight down, 's' up to top right, straight down
+    dict.add('H', "S3:1-7.R67:6-2.LS25:?-12.S5:1-7")
+
+    # I is a doubled i, straight down, straight up
+    dict.add('I', "S4:1-7.S4:7-1")
+
+    # J needs no cap, but doubles the tail to differentiate from j
+    dict.add('J', "R4:12-36.S7:036-258")
+    # the foot could look like a loop
+    dict.add('J', "R4:2-8C6")
+    # or can have a cap
+    dict.add('J', "S1:03-58.L5:2-6.RS6:258-03")
+    # or can be drawn from bottom up
+    dict.add('J', "L4:36-12")
+
+    # K is bigger and probably strighter than k
+    # It needs to come up to the top line
+    dict.add('K', "L34:0-12S6.L45:12-78")
+    # It can also be drawn like a backwards X
+    dict.add('K', "R4:2-8S60")
+
+    # L is like l, but with base doubled
+    dict.add('L', "L4:0-8.S7:258-036")
+    # or drawn bottom to top
+    dict.add('L', "R4:8-0")
+
+    # M is simply up/down/up/down
+    # it doesn't matter how far down it comes in the middle
+    dict.add('M', "R3:6-?.R5:?-8")
+    # FIXME those top points can become sharp!!!
+
+    # N is up down up
+    dict.add('N', "R34:6-58.SL5:67-12")
+    # But if the first point is the sharpest...
+    dict.add('N', "S3:67-12.L4:03-25")
+
+    # O is drawn clockwise, o is counter clockwise
+    dict.add('O', "R4:012-012F", bot='0')
+    dict.add('O', "R4:0-01", bot='0') # FIXME why no F ??
+
+    # P is like B without the bottom loop
+    # P is drawn from bottom of spine, up, then one high loop
+    dict.add('P', "R4:6-034H")
+    # If we can start from the top and double the spine,
+    # we get a p, so don't.
+
+    # Q is a circle from bottom to bottm, plus a tail
+    # with CW or CCW is ok
+    dict.add('Q', "RL4:678-678F.?78:?-?")
+
+    # R is like B but with a straight leg
+    # R is drawn from bottom of spine, up, then one loop and one leg
+    dict.add('R', "R34:6-34H.?78:?-8")
+    # or we can start from the top and double the spine
+    dict.add('R', "S3:1-7S.R34:6-34H.?78:?-8")
+
+    # S is drawn bottom to top
+    dict.add('S', "L74:36-?.SR14:?-0125")
+
+    # T can have a real cap, like J
+    dict.add('T', "S1:036-258.L45:2-67")
+    dict.add('T', "S1:258-036.R3:0-6")
+    # or like a lowercase t with a double stem
+    dict.add('T', "R4:0-8.S5:7-1")
+    # of like a lowercase t drawn backwards
+    dict.add('T', "L4:78-0")
+    # maybe it is two separate lines??
+    dict.add('T', "L5:678-1S2.S0:258-03")
+
+    # U is curved, drawn left to right or right to left
+    # u has a tail
+    dict.add('U', "L4:0-2C")
+    dict.add('U', "R4:2-0C")
+
+    # V is like U, but straight and must be right to left,
+    # or have a doubled final stroke
+    dict.add('V', "R4:2-0S?")
+    dict.add('V', "L4:0-2S?.S5:2-6S")
+
+    # W is straight lines, or right to left
+    dict.add('W', "L3:0-25S?.L5:036-2S?")
+    dict.add('W', "R5:2-03.R3:?-0")
+
+    # X: we join the two strokes on the right, and
+    # either go bottom to top, or double the last stroke
+    dict.add('X', "R4:6-0S28")
+    dict.add('X', "L4:0-6S82.S4:6-2S")
+
+    # Y: double the tail, either at foot or full stem
+    dict.add('Y', "L1:03-25.R4:2-6.LS67:36-52")
+    dict.add('Y', "L1:03-25.S45:2-6.S45:6-2")
+
+    # Z: double the foot, or draw backwards
+    dict.add('Z', "R34:0-6S2.S7:63-25.S7:25-36")
+    # don't worry if it is a bit curved, as we cannot be confused with '2'
+    dict.add('Z', "R74:8-2.SL1:58-30")
+
+
+    # a is a circle with a tail
+    dict.add('a', "L4:12-2.LS5:?-?")
+
+    # b is a stick, then a ball
+    dict.add('b', "S3:12-67.R7:6-63")
+    # Depending on curvature, the ball might join with the stick FIXME
+    dict.add('b', "L34:01-4578.R78:012-36")
+    dict.add('b', "R4:0-6L")
+    # FIXME a more cursive b might be good
+    
+    # c is a simple curve, top to bottom
+    dict.add('c', "L4:2-8", top = 'C')
+
+    # d is a loop, then up and down
+    dict.add('d', "L34:58-12L.SL5:012-678")
+
+    # e is a tight loop, with a tail
+    dict.add('e', "L4:0134-785H")
+
+    # f is drawn top to bottom with no cross-piece
+    dict.add('f', "L4:2-67", top = 'F')
+
+    # g is a loop then a tail
+    dict.add('g', "L14:2-25.R4:2-367")
+
+    # h is like a b but doesn't close at bottom
+    dict.add('h', "S3:1-7.R7:6-8")
+    # Depending on curvature, the ball might join with the stick FIXME
+    dict.add('h', "L34:0-4578.SR87:012-8")
+    # or the ball might cross over the stick
+    dict.add('h', "R4:0-8L")
+    
+
+    # i is a simple down stroke, which can also be I or 1
+    dict.add('i', "S4:1-7", top = 'I', bot = '1')
+
+    # j has no dot, not cap, just a simple curve
+    # if narrow, it might start at 1
+    dict.add('j', "R4:12-36")
+
+    # k is smaller than K, or loopy - like an R with a high back
+    dict.add('k', "L34:0-4578.L78:12-78")
+    dict.add('k', "S3:1-7S.R67:6-34H.?78:?-8")
+
+    # l is drawn line an L to differentiate from i
+    dict.add('l', "L4:01-8")
+    # or it can sit on a base.
+    #  l-r base
+    dict.add('l', "R3:2-6.S7:3-5")
+    # or r-l base
+    dict.add('l', "L5:2-8.S7:5-3")
+
+    # m is down/loop/loop
+    dict.add('m', "S36:1-7.R36:36-58.R58:36-58")
+    # or the loop might join to the stick
+    dict.add('m', "L3:0-2.SR4:0-8.R5:36-58")
+
+    # n has just the one loop
+    dict.add('n', "S3:1-7.R4:36-58")
+    
+
+    # o is drawn counter clockwise, O is counter clockwise
+    dict.add('o', "L4:012-012F", top='O', bot='0')
+
+    # p is like P but with a downstroke at the start.
+    dict.add('p', "S36:012-678.R45678:67-0134H")
+
+    # q is like g, but with a tick to the right
+    dict.add('q', "L01:12-25.L45:012-758")
+    dict.add('q', "L01:12-25.S5:012-678.S8:6-2")
+    
+    # r is down, then up to the right
+    dict.add('r', "S3:012-678.R4:6-2")
+
+    # s is drawn top to bottom
+    dict.add('s', "L14:2-8C.R74:?-036")
+
+    # t is has a single arm on the left
+    dict.add('t', "R4:0-8")
+    # or t can be down/uplefthalf/right
+    # FIXME need options for corners
+    dict.add('t', "R4:1-5S73")
+    dict.add('t', "R4:1-5LS83")
+    dict.add('t', "R4:1-5S70")
+    dict.add('t', "R4:1-5LS81")
+
+    # u is like U but with a tail
+    dict.add('u', "L4:0-2C.SL5:01-78")
+
+    # v like V but straight lines
+    dict.add('v', "L4:0-2S7")
+
+    # w is loopy
+    dict.add('w', "L3:0-25C.L5:03-2C")
+
+    # x is top-to-bottom and joined on right
+    dict.add('x', "L4:0-6") # S82 or C ??
+    # or is backwards-c-then-c
+    # FIXME dict.add('x', "R3:0-6C.?3:6-2.R5:3-6H.L8:0-8C"
+
+    # y is simple v then tail
+    dict.add('y', "L1:03-25.SR45:12-67")
+    # the body can be low if the tail is long
+    dict.add('y', "L4:03-2.R4:2-6")
+
+    # z must be straight
+    dict.add('z', "R34:0-6S2.LS7:036-258")
+
+    # 0 is from bottom to bottom, either direction
+    dict.add('0', "R4:78-67F")
+    dict.add('0', "L4:7-78F") # start at 6 is too much like D
+
+    # 1 is stroke from bottom to top
+    dict.add('1', "S4:7-1")
+
+    # 2 is like a 'z' but curved
+    dict.add('2', "R34:03-6C.S7:036-258")
+
+    # 3 is like an E, but backwards
+    dict.add('3', "R1:013-67.R78:?-6")
+
+    # 4 is drawn from bottom up
+    dict.add('4', "L4:7-58H")
+    #dict.add('4', "L4:7-58")
+
+    # 5 is like S, but squarer at the top
+    dict.add('5', "L1:2-678?0.R7:12-63")
+    dict.add('5', "L1:2-678?6.R7:12-63")
+    # or double to top hat to avoid difficulties
+    dict.add('5', "S1:036-258.L14:2-678.R47:12-63")
+
+    # 6 is a loop at the bottom
+    dict.add('6', "L4:12-63L")
+
+    # 7 need to be different from t ...
+    dict.add('7', "R4:0-67")
+    dict.add('7', "S1:3-5.S4:2-67S")
+
+    # 8 varies depending on where at the top we start
+    dict.add('8', "L14:12-58.R4:58-12")
+    dict.add('8', "L14:012-8.R47:58-2.SL12:8-3")
+    dict.add('8', "R4:0-25F.SL1:58-036")
+    dict.add('8', "L4:25-0F.SR1:036-258")
+    dict.add('8', "R14:01-36.L4:36-01")
+    dict.add('8', "R14:01-36.L4:36-01L")
+
+    # 9 is a CCW loop, then a stick, like g or q but less tail
+    dict.add('9', "L1:12-25.S5:12-678")
+
+    # space is a stroke to the right
+    dict.add(' ', "S4:3-5")
+    dict.add('<BS>', "S4:5-3")
+
+
+    return
+
+
+
+
+    # Capital J has a left/right tail
+    dict.add('J', "R(4)1,6.S(7)3,5")
+    # Or draw from the bottom up
+    dict.add('J', "L(4)6,2")
+
+    #dict.add('K', "L(4)0,2.R(4)6,6.L(4)2,8")
+    dict.add('K', "L(4)0,2.L(4)2,8")
+
+    # Capital L, like J, doubles the foot
+    dict.add('L', "L(4)0,8.S(7)4,3")
+    # or is drawn from bottom up
+    dict.add('L', "R(4)8,0")
+    dict.add('L', "S(7)5,3.S(3)7,1")
+
+    dict.add('M', "R(3)6,5.R(5)3,8")
+    dict.add('M', "R(3)6,5.L(1)0,2.R(5)3,8")
+
+    dict.add('N', "R(3)6,8.L(5)0,2")
+
+    # Capital O is CW, but can be CCW in special dict
+    dict.add('O', "R(4)1,1", bot='0')
+
+    dict.add('P', "R(4)6,3")
+    dict.add('Q', "R(4)7,7.S(8)0,8")
+
+    dict.add('R', "R(4)6,4.S(8)0,8")
+
+    # S is drawn bottom to top.
+    dict.add('S', "L(7)6,1.R(1)7,2")
+
+    # Double the stem for capital T
+    dict.add('T', "R(4)0,8.S(5)7,1")
+
+    # U is L to R, V is R to L for now
+    dict.add('U', "L(4)0,2")
+    dict.add('V', "R(4)2,0")
+
+    dict.add('W', "R(5)2,3.L(7)8,6.R(3)5,0")
+    dict.add('W', "R(5)2,3.R(3)5,0")
+
+    dict.add('X', "R(4)6,0")
+
+    dict.add('Y',"L(1)0,2.R(5)4,6.S(5)6,2")
+    dict.add('Y',"L(1)0,2.S(5)2,7.S(5)7,2")
+
+    dict.add('Z', "R(4)8,2.L(4)6,0")
+
+    # Lower case
+    dict.add('a', "L(4)2,2.L(5)1,7")
+    dict.add('a', "L(4)2,2.L(5)0,8")
+    dict.add('a', "L(4)2,2.S(5)0,8")
+    dict.add('b', "S(3)1,7.R(7)6,3")
+    dict.add('c', "L(4)2,8", top='C')
+    dict.add('d', "L(4)5,2.S(5)1,7")
+    dict.add('d', "L(4)5,2.L(5)0,8")
+    dict.add('e', "S(4)3,5.L(4)5,8")
+    dict.add('e', "L(4)3,8")
+    dict.add('f', "L(4)2,6", top='F')
+    dict.add('f', "S(1)5,3.S(3)1,7", top='F')
+    dict.add('g', "L(1)2,2.R(4)1,6")
+    dict.add('h', "S(3)1,7.R(7)6,8")
+    dict.add('h', "L(3)0,5.R(7)6,8")
+    dict.add('i', "S(4)1,7", top='I', bot='1')
+    dict.add('j', "R(4)1,6", top='J')
+    dict.add('k', "L(3)0,5.L(7)2,8")
+    dict.add('k', "L(4)0,5.L(7)2,8")
+    dict.add('k', "L(4)1,8.L(7)2,8")
+    dict.add('l', "L(4)0,8", top='L')
+    dict.add('l', "S(3)1,7.S(7)3,5", top='L')
+    dict.add('m', "S(3)1,7.R(3)6,8.R(5)6,8")
+    dict.add('n', "S(3)1,7.R(4)6,8")
+    dict.add('o', "L(4)1,1", top='O', bot='0')
+    dict.add('p', "S(3)1,7.R(4)6,3")
+    dict.add('q', "L(1)2,2.L(5)1,5")
+    dict.add('q', "L(1)2,2.S(5)1,7.R(8)6,2")
+    dict.add('q', "L(1)2,2.S(5)1,7.S(5)1,7")
+    # FIXME this double 1,7 is due to a gentle where the
+    # second looks like a line because it is narrow.??
+    dict.add('r', "S(3)1,7.R(4)6,2")
+    dict.add('s', "L(1)2,7.R(7)1,6", top='S', bot='5')
+    dict.add('t', "R(4)0,8", top='T', bot='7')
+    dict.add('t', "S(1)3,5.S(5)1,7", top='T', bot='7')
+    dict.add('u', "L(4)0,2.S(5)1,7")
+    dict.add('v', "L(4)0,2.L(2)0,2")
+    dict.add('w', "L(3)0,2.L(5)0,2", top='W')
+    dict.add('w', "L(3)0,5.R(7)6,8.L(5)3,2", top='W')
+    dict.add('w', "L(3)0,5.L(5)3,2", top='W')
+    dict.add('x', "L(4)0,6", top='X')
+    dict.add('y', "L(1)0,2.R(5)4,6", top='Y') # if curved
+    dict.add('y', "L(1)0,2.S(5)2,7", top='Y')
+    dict.add('z', "R(4)0,6.L(4)2,8", top='Z', bot='2')
+
+    # Digits
+    dict.add('0', "L(4)7,7")
+    dict.add('0', "R(4)7,7")
+    dict.add('1', "S(4)7,1")
+    dict.add('2', "R(4)0,6.S(7)3,5")
+    dict.add('2', "R(4)3,6.L(4)2,8")
+    dict.add('3', "R(1)0,6.R(7)1,6")
+    dict.add('4', "L(4)7,5")
+    dict.add('5', "L(1)2,6.R(7)0,3")
+    dict.add('5', "L(1)2,6.L(4)0,8.R(7)0,3")
+    dict.add('6', "L(4)2,3")
+    dict.add('7', "S(1)3,5.R(4)1,6")
+    dict.add('7', "R(4)0,6")
+    dict.add('7', "R(4)0,7")
+    dict.add('8', "L(4)2,8.R(4)4,2.L(3)6,1")
+    dict.add('8', "L(1)2,8.R(7)2,0.L(1)6,1")
+    dict.add('8', "L(0)2,6.R(7)0,1.L(2)6,0")
+    dict.add('8', "R(4)2,6.L(4)4,2.R(5)8,1")
+    dict.add('9', "L(1)2,2.S(5)1,7")
+
+    dict.add(' ', "S(4)3,5")
+    dict.add('<BS>', "S(4)5,3")
+    dict.add('-', "S(4)3,5.S(4)5,3")
+    dict.add('_', "S(4)3,5.S(4)5,3.S(4)3,5")
+    dict.add("<left>", "S(4)5,3.S(3)3,5")
+    dict.add("<right>","S(4)3,5.S(5)5,3")
+    
+#def ordered(a,b,c):
+#    return (a <= b and b <= c) or (a >= b and b >= c)
+def inorder(a,b,c):
+    if ( (a == b and b == c) or
+         (a == b and b+1 == c) or
+         (a+1 == b and b == c)):
+        return 1;
+    if  a+1 == b and b+1 == c :
+        return 2;
+    return 0;
+
+def ordered(a,b,c):
+    return max (inorder(a,b,c), inorder(c,b,a))
+def points_ordered(a,b,c):
+    y = ordered(a/3, b/3, c/3)
+    x = ordered(a%3, b%3, c%3)
+    return x > 0 and y > 0 and x+y <= 3
+def is_corner(p):
+    #return p==0 or p==2 or p == 6 or p == 8
+    return False
+
+def filter_lines(list):
+    print "filter ", list
+    if len(list) < 2:
+        return list
+    first = list.pop(0)
+    second = list.pop(0)
+    new = [first]
+    while len(list) :
+        next = list.pop(0)
+        if is_corner(second) or not points_ordered(first, second, next):
+            new.append(second)
+            first = second
+        second = next
+    new.append(second)
+    return new
+
+def path2str(path):
+    s = ""
+    for n in path:
+        s = s + ("%d" % (n+1))
+    return s
+
+def different(*args):
+    cur = 0
+    for i in args:
+        if cur != 0 and i != 0 and cur != i:
+            return True
+        if cur == 0:
+            cur = i
+    return False
+
+def maxcurve(*args):
+    for i in args:
+        if i != 0:
+            return i
+    return 0
+
+def choose_corner(curve,A,B):
+    if abs(B.x-A.x) > abs(B.y-A.y):
+        # use X component
+        if B.x > A.x:
+            # from the left
+            if curve == 0:
+                return 'L'
+            elif curve == 1:
+                # clockwise
+                return 'TL'
+            else:
+                return 'BL'
+        else:
+            # from the right
+            if curve == 0:
+                return 'R'
+            elif curve == 1:
+                return 'BR'
+            else:
+                return 'TR'
+    else:
+        # use Y component
+        if B.y > A.y:
+            # from the top
+            if curve == 0:
+                return 'T'
+            elif curve == 1:
+                # clockwise
+                return 'TR'
+            else:
+                return 'TL'
+        else:
+            # from the bottom
+            if curve == 0:
+                return 'B'
+            elif curve == 1:
+                return 'BL'
+            else:
+                return 'BR'
+
+class DictSegment:
+    # Each segment has six elements:
+    #   direction: Right Straight Left (R=cw, L=ccw)
+    #   location: 0-8.
+    #   start: 0-8
+    #   finish: 0-8
+    #   Loops: Hi Lo or Full.  There are a list of these
+    #   Curvature: Straight of Curved. Can be followed by locations of corners.
+    # A parsed segment has gives discrete values for each element.
+    # A pattern segment can give multiple values - or ? - for
+    #   direction, location, start, finish and can give ? or empty
+    #   for Curvature.  Loops must be given exactly.
+    # A parsed segment matches a pattern if there is a match in
+    # each element.
+    # If the pattern has a Straight curvature, we (currently) require an exact match
+    # We place a ':' after the location and a '-' after the 'start' to enable
+    # unambiguous parsing.
+    # We parse into strings. For parsed segments, most strings are single chars
+    def extract(self, chars, name = ""):
+        s = self.str
+        r = ""
+        while len(s) > 0 and s[0] in chars:
+            r += s[0]
+            s = s[1:]
+        if name and len(r) == 0:
+            raise ValueError, "Missing "+name
+        self.str = s
+        return r
+    def __init__(self, str):
+        # DL:S-FLC
+        self.str = str
+        self.dir = self.extract("RSL?", "Direction")
+        self.loc = self.extract("012345678?", "Location")
+        sep = self.extract(":", "Separator")
+        self.strt = self.extract("012345678?", "Start")
+        sep = self.extract("-", "Separator")
+        self.fin = self.extract("012345678?", "Finish")
+        self.loop = self.extract("HLF")
+        if len(self.str) > 0 and self.str[0] in "SC?":
+            self.curve = self.str[0]
+            self.str = self.str[1:]
+        else:
+            self.curve = "?"
+        self.points = self.extract("012345678?")
+        if len(self.str) > 0:
+            raise ValueError, "Extra character on end of segment description"
+        
+            
+    def match(self, other):
+        # self is a pattern, other is a parsed segment
+        if self.dir != '?' and other.dir not in self.dir:
+            return False
+        if self.loc != '?' and other.loc not in self.loc:
+            return False
+        if self.strt != '?' and other.strt not in self.strt:
+            return False
+        if self.fin != '?' and other.fin not in self.fin:
+            return False
+        if self.loop != other.loop:
+            return False
+        if self.curve != '?' and other.curve != self.curve:
+            return False
+        if self.curve == 'C' and other.points:
+            # if we require a curve, there must be no points - FIXME better syntax
+            pass # return False
+        if self.curve == 'S' or self.points != "":
+            if len(other.points) != len(self.points):
+                return False
+            if self.points != "?" and other.points != self.points:
+                return False
+        return True
+
+class DictPattern:
+    # A Dict Pattern is a list of segments.
+    # A parsed pattern matches a dict pattern if
+    # the are the same nubmer of segments and they
+    # all match.
+    # A DictPattern is printed as segments joined by periods.
+    #
+    def __init__(self, str):
+        self.segs = map(DictSegment, str.split("."))
+    def match(self,other):
+        if len(self.segs) != len(other.segs):
+            return False
+        for i in range(0,len(self.segs)):
+            if not self.segs[i].match(other.segs[i]):
+                return False
+        return True
+    
+            
+class Dictionary:
+    # The dictionary holds all the pattern for symbols and
+    # performs lookup
+    # Each pattern in the directionary can be associated
+    # with  3 symbols.  One when drawing in middle of screen,
+    # one for top of screen, one for bottom.
+    # Often these will all be the same.
+    # This allows e.g. s and S to have the same pattern in different
+    # location on the touchscreen.
+    # A match requires a unique entry that matches.
+    # 
+    def __init__(self):
+        self.dict = []
+    def add(self, sym, pat, top = None, bot = None):
+        if top == None: top = sym
+        if bot == None: bot = sym
+        try:
+            self.dict.append((DictPattern(pat), sym, top, bot))
+        except ValueError, v:
+            raise ValueError, v.message + " for symbol " + sym
+
+    def _match(self, p):
+        max = -1
+        val = None
+        for (ptn, sym, top, bot) in self.dict:
+            cnt = ptn.match(p)
+            if cnt > max:
+                max = cnt
+                val = (sym, top, bot)
+            elif cnt == max:
+                val = None
+        return val
+    
+    def match(self, str, pos = "mid"):
+        p = DictPattern(str)
+        m = self._match(p)
+        if m == None:
+            return m
+        (mid, top, bot) = self._match(p)
+        if pos == "top": return top
+        if pos == "bot": return bot
+        return mid
+
+    def _closest(self, p):
+        vals = []
+        for (ptn, sym, top, bot) in self.dict:
+            if ptn.match(p):
+                vals.append((sym, top, bot))
+        print "closest", vals
+        
+    def closest(self,str):
+        # Find all matches if something matches mutliple times
+        p = DictPattern(str)
+        self._closest(p)
+
+
+class Point:
+    # This represents a point in the path and all the points leading
+    # up to it.  It allows us to find the direction and curvature from
+    # one point to another
+    # We store x,y, and sum/cnt of points so far
+    def __init__(self,x,y) :
+        self.xsum = x
+        self.ysum = y
+        self.x = x
+        self.y = y
+        self.cnt = 1
+        self.known_straight = False
+
+    def tupple(self):
+        return (self.x, self.y)
+
+    def copy(self):
+        n = Point(0,0)
+        n.xsum = self.xsum
+        n.ysum = self.ysum
+        n.x = self.x
+        n.y = self.y
+        n.cnt = self.cnt
+        n.known_straight = self.known_straight
+        return n
+
+    def add(self,x,y):
+        if self.x == x and self.y == y:
+            return
+        self.x = x
+        self.y = y
+        self.xsum += x
+        self.ysum += y
+        self.cnt += 1
+
+    def xlen(self,p):
+        return abs(self.x - p.x)
+    def ylen(self,p):
+        return abs(self.y - p.y)
+    def sqlen(self,p):
+        x = self.x - p.x
+        y = self.y - p.y
+        return x*x + y*y
+    
+    def xdir(self,p):
+        if self.x > p.x:
+            return 1
+        if self.x < p.x:
+            return -1
+        return 0
+    def ydir(self,p):
+        if self.y > p.y:
+            return 1
+        if self.y < p.y:
+            return -1
+        return 0
+    def curve(self,p):
+        if self.cnt == p.cnt:
+            return 0
+        #if self.known_straight:
+        #    return 0
+        x1 = p.x ; y1 = p.y
+        (x2,y2) = self.meanpoint(p)
+        x3 = self.x; y3 = self.y
+
+        curve = (y3-y1)*(x2-x1) - (y2-y1)*(x3-x1)
+        curve = curve * 100 / ((y3-y1)*(y3-y1)
+                               + (x3-x1)*(x3-x1))
+        if curve > 6:
+            return 1
+        if curve < -6:
+            return -1
+        return 0
+
+    def curve2(self,A,C):
+        if self.cnt == A.cnt or self.cnt == C.cnt:
+            return 0
+        if not self.is_sharp(A,C, cutoff = -900):
+            # nearly straight
+            return 0
+        x1 = A.x ; y1 = A.y
+        (x2,y2) = (self.x,self.y)
+        x3 = C.x; y3 = C.y
+
+        curve = (y3-y1)*(x2-x1) - (y2-y1)*(x3-x1)
+        curve = curve * 100 / ((y3-y1)*(y3-y1)
+                               + (x3-x1)*(x3-x1))
+        print "curve2", curve
+        if curve > 1:
+            return 1
+        if curve < -1:
+            return -1
+        return 0
+
+    def Vcurve(self,p):
+        if self.cnt == p.cnt:
+            return 0
+        x1 = p.x ; y1 = p.y
+        (x2,y2) = self.meanpoint(p)
+        x3 = self.x; y3 = self.y
+
+        curve = (y3-y1)*(x2-x1) - (y2-y1)*(x3-x1)
+        curve = curve * 100 / ((y3-y1)*(y3-y1)
+                               + (x3-x1)*(x3-x1))
+        return curve
+
+    def meanpoint(self,p):
+        if self.cnt - p.cnt - 1 == 0:
+            # only the two endpoints
+            x = (self.x + p.x) / 2
+            y = (self.y + p.y) / 2
+        else:
+            # don't include either end point in mean
+            x = (self.xsum - p.xsum - self.x) / (self.cnt - p.cnt - 1)
+            y = (self.ysum - p.ysum - self.y) / (self.cnt - p.cnt - 1)
+        return (x,y)
+
+    def cosine(self,A,C):
+        # find the cosine of the angle at self between A and C
+        (ax,ay) = A
+        (cx,cy) = C
+        a = ax-self.x; b=ay-self.y
+        c = cx-self.x; d=cy-self.y
+        x = a*c + b*d
+        y = a*d - b*c
+        h = math.sqrt(x*x+y*y)
+        if h > 0:
+            cs = x*1000/h
+        else:
+            cs = 0
+        return cs
+    def sine(self,A,C):
+        # find the sine of the angle at self between A and C
+        (ax,ay) = A
+        (cx,cy) = C
+        a = ax-self.x; b=ay-self.y
+        c = cx-self.x; d=cy-self.y
+        x = a*c + b*d
+        y = a*d - b*c
+        h = math.sqrt(x*x+y*y)
+        if h > 0:
+            sn = y*1000/h
+        else:
+            sn = 0
+        return sn
+
+    def lcurve(self,A,C):
+        if self.sine(A.tupple(), C.tupple())  > 0:
+            return -1
+        else:
+            return 1
+
+    def is_sharp(self,A,C, cutoff = 900):
+        #return False
+        # Measure the cosine at self between A and C
+        # as A and C could be curve, we take the mean point on
+        # self.A and self.C as the points to find cosine between
+        (ax,ay) = self.meanpoint(A)
+        (cx,cy) = self.meanpoint(C)
+        a = ax-self.x; b=ay-self.y
+        c = cx-self.x; d=cy-self.y
+        x = a*c + b*d
+        y = a*d - b*c
+        h = math.sqrt(x*x+y*y)
+        if h > 0:
+            cs = x*1000/h
+        else:
+            cs = 0
+        return (cs > cutoff)
+
+    def is_straight(self, A, C):
+        # A-self-C is straight if the cosine < -0.9 or
+        # cosine < 0 and sine at either end is < 0.2
+        cos = self.cosine(A.tupple(),C.tupple())
+        if cos < -900:
+            print "cos = ", cos
+            return True
+        if cos > 0:
+            print "cos = ", cos
+            return False
+        sin = A.sine(self.tupple(),C.tupple())
+        if abs(sin) < 200:
+            print "cos = ", cos, "sin=", sin
+            return True
+        sin = C.sine(self.tupple(),A.tupple())
+        print "cos = ", cos, "sin2=", sin
+        if abs(sin) < 200:
+            return True
+        return False
+
+class LoopList:
+    def __init__(self):
+        self.str = ""
+        self.Fcnt = 0
+        self.save = None
+    def add(self, l):
+        if l == '-':
+            return
+        if self.save:
+            self.str += self.save
+            self.save = None
+        if l == 'F':
+            self.Fcnt += 1
+        else:
+            if self.str or self.Fcnt:
+                self.getstr()
+                self.str += l
+            else:
+                self.save = l
+    def getstr(self):
+        while self.Fcnt >= 3:
+            self.str += 'F'
+            self.Fcnt -= 2
+        self.Fcnt = 0
+        return self.str
+        
+
+
+class BBox:
+    # a BBox records min/max x/y of some Points and
+    # can subsequently report row, column, pos of each point
+    # can also locate one bbox in another
+    
+    def __init__(self, p):
+        self.minx = p.x
+        self.maxx = p.x
+        self.miny = p.y
+        self.maxy = p.y
+
+    def add(self, p):
+        if p.x > self.maxx:
+            self.maxx = p.x
+        if p.x < self.minx:
+            self.minx = p.x
+
+        if p.y > self.maxy:
+            self.maxy = p.y
+        if p.y < self.miny:
+            self.miny = p.y
+    def finish(self):
+        # if aspect ratio is bad, we adjust max/min accordingly
+        # before setting [xy][12].  We don't change self.min/max
+        # as they are used to place stroke in bigger bbox.
+        (minx,miny,maxx,maxy) = (self.minx,self.miny,self.maxx,self.maxy)
+        if (maxx - minx) * 3 < (maxy - miny) * 2:
+            # too narrow
+            mid = int((maxx + minx)/2)
+            halfwidth = int ((maxy - miny)/4)
+            minx = mid - halfwidth
+            maxx = mid + halfwidth
+        if (maxy - miny) * 3 < (maxx - minx) * 2:
+            # too wide
+            mid = int((maxy + miny)/2)
+            halfheight = int ((maxx - minx)/4)
+            miny = mid - halfheight
+            maxy = mid + halfheight
+
+        self.x1 = int((2*minx + maxx)/3)
+        self.x2 = int((minx + 2*maxx)/3)
+        self.y1 = int((2*miny + maxy)/3)
+        self.y2 = int((miny + 2*maxy)/3)
+
+    def row(self, p):
+        # 0, 1, 2 - top to bottom
+        if p.y <= self.y1:
+            return 0
+        if p.y < self.y2:
+            return 1
+        return 2
+    def col(self, p):
+        if p.x <= self.x1:
+            return 0
+        if p.x < self.x2:
+            return 1
+        return 2
+    def box(self, p):
+        # 0 to 9
+        return self.row(p) * 3 + self.col(p)
+
+    def relpos(self,b):
+        # b is a box within self.  find location 0-8
+        if b.maxx < self.x2 and b.minx < self.x1:
+            x = 0
+        elif b.minx > self.x1 and b.maxx > self.x2:
+            x = 2
+        else:
+            x = 1
+        if b.maxy < self.y2 and b.miny < self.y1:
+            y = 0
+        elif b.miny > self.y1 and b.maxy > self.y2:
+            y = 2
+        else:
+            y = 1
+        return y*3 + x
+    
+
+def curve(p1,p2,p3):
+    c = (p3.y-p1.y)*(p2.x-p1.x) - (p2.y-p1.y)*(p3.x-p1.x)
+    c = c * 100 / ((p3.y-p1.y)*(p3.y-p1.y) + (p3.x-p1.x)*(p3.x-p1.x))
+    #print "(%d,%d-%d,%d %d,%d)=%d"%(p1.x,p1.y,p3.x,p3.y,p2.x,p2.y,c),
+    if c > 0:
+        return 1
+    if c < 0:
+        return -1
+    return 0
+def Vcurve(p1,p2,p3):
+    c = (p3.y-p1.y)*(p2.x-p1.x) - (p2.y-p1.y)*(p3.x-p1.x)
+    c = c * 100 / ((p3.y-p1.y)*(p3.y-p1.y) + (p3.x-p1.x)*(p3.x-p1.x))
+    #print "(%d,%d-%d,%d %d,%d)=%d"%(p1.x,p1.y,p3.x,p3.y,p2.x,p2.y,c),
+    return c
+def intersects(l0,l, p0,p):
+    # these intersect if the curve from l0 to l via p0 and p are different
+    # and the curves from p0 to p via l0 and l are different
+    if curve(l0,p0,l) != curve(l0, p, l) and \
+       curve(p0,l0,p) != curve(p0, l, p):
+        return True
+    return False
+def intersect_dir(s, p):
+    # see if the line segment from s[-1] to p intersects
+    # any linesegment in s that is going in a different x or y direction.
+    # Find the last one and report which direction ('h' or 'v') they
+    # differ in.  or None if no intersects, or same direction.
+    p0 = s[-1]
+    l0 = s[0]
+    direct = None
+    for i in range(1,len(s)-1):
+        l = s[i]
+        print "i:",
+        if intersects(l0,l, p0,p):
+            both = False
+            if l.xdir(l0) != p.xdir(p0):
+                direct = 'h'
+                start = i-1
+                both = True
+            if l.ydir(l0) != p.ydir(p0):
+                direct = 'v'
+                start = i-1
+                both = True
+            if False and both:
+                direct = None
+        print direct
+        l0 = l
+    if direct == None:
+        return direct
+    return (direct, start)
+
+def last_change_dir(s, dr):
+    xd = 0; yd= 0
+    p0 = s[0]
+    cnt = 0
+    rv = cnt
+    for p in s[1:]:
+        xd2 = p.xdir(p0); yd2 = p.ydir(p0)
+        if dr == 'h':
+            if xd2 != xd and xd2 != 0:
+                rv = cnt
+                xd = xd2
+        else:
+            if yd2 != yd and yd2 != 0:
+                rv = cnt
+                yd = yd2
+        p0 = p
+        cnt += 1
+    return rv
+
+class PPath:
+    # a PPath refines a list of x,y points into a list of Points
+    # The Points mark out segments which end at significant Points
+    # such as inflections and reversals.
+
+    def __init__(self,width,height, x,y, draw):
+        # x4 and y4 show how long a segment must be to be significant
+        self.x4 = width/10
+        self.y4 = height/10
+        self.drawer = draw
+
+        self.start = Point(x,y)
+        self.mid = Point(x,y)
+        self.curr = Point(x,y)
+        self.list = [ self.start ]
+        self.dropped_last = False
+
+    def draw(self,p1,p2):
+        self.drawer(p1.x,p1.y,p2.x,p2.y)
+        if p2.cnt > p1.cnt:
+            x = (p2.xsum - p1.xsum) / (p2.cnt - p1.cnt)
+            y = (p2.ysum - p1.ysum) / (p2.cnt - p1.cnt)
+            self.drawer(int(x),int(y),None,None)
+        if len(self.list) > 1:
+            # find mean of points around this corner
+            p0 = self.list[-2]
+            ox = (p0.x + p2.x)/2
+            oy = (p0.y + p2.y)/2
+            # Project to other size of corner
+            d = max(abs(p1.x-ox), abs(p1.y-oy))
+            if d == 0:
+                return
+            px = p1.x + (p1.x - ox) * 15 / d
+            py = p1.y + (p1.y - oy) * 15 / d
+
+            # now measure curve at p1
+            cv = (p2.y-p0.y)*(p1.x-p0.x) - (p1.y-p0.y)*(p2.x-p0.x)
+            cv = cv * 100 / ((p2.y-p0.y)*(p2.y-p0.y) + (p2.x-p0.x)*(p2.x-p0.x))
+
+            # or better, measure tan - or cosine of angle
+            a = p0.x-p1.x; b=p0.y-p1.y
+            c = p2.x-p1.x; d=p2.y-p1.y
+            if a*c + b*d != 0:
+                tn = 1000*(a*d-b*c)/(a*c+b*d)
+                #self.drawer(px,py,None, "%d"%tn)
+                x = a*c + b*d
+                y = a*d - b*c
+                h = math.sqrt(x*x+y*y)
+                cs = x*1000/h
+                self.drawer(px,py,None, "%d"%cs)
+
+    def straight_to(self, p):
+        # is the line from p to self.start longish and straight
+        if p.xlen(self.start) < self.x4*2 and p.ylen(self.start) < self.y4*2:
+            # too short to care
+            return False
+        #print "st (%d,%d): %d" % (p.x,p.y,p.curve(self.start))
+        return p.curve(self.start) == 0
+    
+    def add(self, x, y):
+        self.curr.add(x,y)
+
+        print 'COSINE', self.mid.cosine(self.start.tupple(),self.curr.tupple())
+        if ( (abs(self.mid.xdir(self.start) - self.curr.xdir(self.mid)) != 0) or
+             (abs(self.mid.ydir(self.start) - self.curr.ydir(self.mid)) != 0) or
+             (self.straight_to(self.mid) and not self.straight_to(self.curr)) or
+             (self.mid.cosine(self.start.tupple(),self.curr.tupple()) > -200) or
+             (abs(self.curr.Vcurve(self.start))+2 < abs(self.mid.Vcurve(self.start)))
+             ):
+            pass
+        else:
+            self.mid = self.curr.copy()
+
+        if self.curr.xlen(self.mid) > self.x4 or self.curr.ylen(self.mid) > self.y4:
+            dropped_this = False
+            if len(self.list) > 1:
+                # start is on the list.  We are about to add 'mid'
+                # If start-1..start..mid form a straight line, drop start
+                if self.start.cosine(self.list[-2].tupple(), self.mid.tupple()) < -900:
+                    self.list = self.list[:-1]
+                    self.mid.known_straight = True
+                    dropped_this = self.dropped_last
+                elif False:
+                    if self.start.is_straight(self.list[-2], self.mid) and \
+                       not self.dropped_last:
+                        self.list = self.list[:-1]
+                        self.mid.known_straight = True
+                        dropped_this = True
+            print "dd", self.dropped_last, dropped_this
+            self.dropped_last = dropped_this
+            self.draw(self.list[-1],self.mid)
+            self.start = self.mid.copy()
+            self.list.append(self.start)
+            self.mid = self.curr.copy()
+
+    def close(self):
+        if len(self.list) > 1:
+            # start is on the list.  We are about to add 'curr'
+            # If start-1..start..curr form a straight line, drop start
+            if self.start.cosine(self.list[-2].tupple(), self.mid.tupple()) < -900:
+                self.list = self.list[:-1]
+                self.curr.known_straight = True
+            elif False:
+                if self.start.is_straight(self.list[-2], self.mid) and \
+                       not self.dropped_last:
+                    self.list = self.list[:-1]
+                    self.curr.known_straight = True
+        self.draw(self.list[-1], self.curr)
+        self.list.append(self.curr)
+        print "CLOSE", self.list[-1].x, self.list[-1].y
+        #self.draw(self.mid.x,self.mid.y,self.curr.x,self.curr.y)
+        #self.list.append(self.curr)
+    def text(self):
+        h='.'
+        v='.'
+        ans = ""
+        p1 = None
+        for p2 in self.list:
+            if p1 != None:
+                if p2.xlen(p1) > p2.ylen(p1):
+                    # horizontal first
+                    if p2.xdir(p1) > 0:
+                        n = 'r'
+                    else:
+                        n = 'l'
+                    if h != n:
+                        h = n
+                        ans += n
+                    if p2.ylen(p1) > self.y4:
+                        # vert too
+                        if p2.ydir(p1) > 0:
+                            n = 'd'
+                        else:
+                            n = 'u'
+                        if v != n:
+                            v = n
+                            ans += n
+                else:
+                    # virt first
+                    if p2.ydir(p1) > 0:
+                        n = 'd'
+                    else:
+                        n = 'u'
+                    if v != n:
+                        v = n
+                        ans += n
+                    if p2.xlen(p1) > self.x4:
+                        # horiz too
+                        if p2.xdir(p1) > 0:
+                            n = 'r'
+                        else:
+                            n = 'l'
+                        if h != n:
+                            h = n
+                            ans += n
+            p1 = p2
+        return ans
+
+    def get_sectlist(self):
+        # Break self.list into list of segments, so last point of one is
+        # first point of next.
+        # We start a new segment when:
+        #  - point is curved in the other direction to last point
+        #  - point is very sharp - cosine > 0.9 (using meanpoint cosine)
+        #  - a third direction change is found much closer to second than first
+        #    The new segment begins at the last direction change in other dimension
+        #
+        # So we keep track of direction changes as indexes into seg
+        #
+        if len(self.list) <= 2:
+            # just one line, it must be straight
+            return [(0,self.list)]
+        sl = []
+        A = self.list[0]
+        B = self.list[1]
+        seg = [A,B]
+        curcurve = 0
+        # A is counted as a direction change in both directions
+        dchng = [ [0], [0] ]
+        for C in self.list[2:]:
+            A = seg[-2]
+            B = seg[-1]
+            print "ABC is %d,%d %d,%d %d,%d" % (A.x,A.y, B.x,B.y, C.x, C.y)
+            segbreak = False
+            if (# direction change
+                ( curcurve and curcurve != B.lcurve(A,C) ) or
+                # sharp point
+                ( B.cosine(B.meanpoint(A), C.meanpoint(B)) > 900)
+                ):
+                # B is a segment break
+                if curcurve and curcurve != B.lcurve(A,C):
+                    print "dir change", curcurve, B.lcurve(A,C)
+                else:
+                    print "Sharp",  B.cosine(B.meanpoint(A), C.meanpoint(B))
+                                                          
+                sl.append((curcurve, seg))
+                seg = [B, C]
+                dchng = [ [0], [0] ]
+                curcurve = 0
+            else:
+                # it is worth seeing if B was a direction change
+                # compare x direction against last direction change, as
+                #  A to B could be vertical
+                breakdir = -1
+                print "dc", dchng[0][-1]
+                xx = seg[dchng[0][-1]]
+                print "xx", xx.x, xx.y
+                if abs(C.xdir(B) - B.xdir(seg[dchng[0][-1]])) == 2:
+                    # C is in a new direction, so B is a direction change.
+                    dchng[0].append(len(seg)-1)
+                    print "dirchange X", len(dchng[0])
+                    if len(dchng[0]) >= 3:
+                        # we have a third change, let's check position
+                        ax = seg[dchng[0][-3]].x
+                        bx = seg[dchng[0][-2]].x
+                        cx = seg[dchng[0][-1]].x
+                        print "X: ", abs(cx-bx), abs(bx-ax)
+                        if abs(cx-bx) * 4 < abs(bx-ax):
+                            # it is very close
+                            breakdir = 1
+                if abs(C.ydir(B) - B.ydir(seg[dchng[1][-1]])) == 2:
+                    # C is in a new direction, so B is a direction change.
+                    dchng[1].append(len(seg)-1)
+                    print "dirchange Y", len(dchng[1])
+                    if len(dchng[1]) >= 3:
+                        # we have a third change, let's check position
+                        ay = seg[dchng[1][-3]].y
+                        by = seg[dchng[1][-2]].y
+                        cy = seg[dchng[1][-1]].y
+                        print "Y: ", abs(cy-by), abs(by-ay)
+                        if abs(cy-by) * 4 < abs(by-ay):
+                            # it is very close
+                            breakdir = 0
+                if breakdir != -1:
+                    # break at last direction change
+                    # clip current segment to include the break point
+                    print "breakdir", breakdir, dchng[breakdir]
+                    prev = seg[0:dchng[breakdir][-1]+1]
+                    sl.append((curcurve, prev))
+                    # and start with the remainder
+                    seg = seg[dchng[breakdir][-1]:]
+                    dchng = [ [0], [0] ]
+                    # and B was a direction change in the other direction
+                    dchng[1 - breakdir].append(len(seg)-1)
+                seg.append(C)
+                curcurve = B.lcurve(A,C)
+                print "NOW curcurve", curcurve
+        sl.append((curcurve, seg))
+        print "sectlist:",
+        for (c,j) in sl:
+            print "%d,%d " % (c,len(j)),
+        print
+
+
+        # Remove any segment which is v.small. Must be at least 1/6
+        nsl = []
+        for (c,j) in sl:
+            bb = BBox(j[0])
+            for i in j:
+                bb.add(i)
+            print (bb.maxx - bb.minx) ,(self.bbox.maxx - self.bbox.minx), \
+                  (bb.maxy - bb.miny), (self.bbox.maxy - self.bbox.miny)
+            if ((bb.maxx - bb.minx) * 2 < (self.bbox.x2 - self.bbox.x1) and
+                (bb.maxy - bb.miny) * 2 < (self.bbox.y2 - self.bbox.y1)):
+                # too small
+                pass
+            else:
+                nsl.append((c,j))
+                
+        print "new sectlist:",
+        for (c,j) in nsl:
+            print "%d,%d " % (c,len(j)),
+        print
+        return nsl
+    
+    def old_get_sectlist(self):
+        if len(self.list) < 2:
+            return [[0,self.list]]
+        if len(self.list) == 2:
+            return [[self.list[1].curve(self.list[0]),self.list]]
+        l = []
+        A = self.list[0]
+        B = self.list[1]
+        s = [A,B]
+        curcurve = B.curve(A)
+        for C in self.list[2:]:
+
+            #cabc = C.curve(A)
+            #cabc = curve(A,B,C)
+            cabc = B.curve2(A,C)
+            cab = B.curve(A)
+            cbc = C.curve(B)
+            if B.is_sharp(A,C) and not different(cabc, cab, cbc, curcurve):
+                # B is too pointy, must break here
+                l.append([curcurve, s])
+                s = [B, C]
+                print "pointy"
+                curcurve = cbc
+            elif not different(cabc, cab, cbc, curcurve):
+                # curvature all happy
+                # However if this line intersect a previous line doing in
+                # different direction, we need a break.
+                dr = intersect_dir(s, C)
+                s.append(C)
+                if dr == None:
+                    print "happy", curcurve, "(",cabc,cab,cbc,")"
+                else:
+                    (direct, start) = dr
+                    print "start =", start, "dir =", direct
+                    # if the loop is too fat, we don't cause a break.
+                    loop = BBox(s[start+1])
+                    for i in range(start+1, len(s)-1):
+                        loop.add(s[i])
+                    if direct == 'h':
+                        ratio = (loop.maxy-loop.miny)*100 / (self.bbox.maxy-self.bbox.miny)
+                    else:
+                        ratio = (loop.maxx-loop.minx)*100 / (self.bbox.maxx-self.bbox.minx)
+                    if ratio < 25:
+                        lng = last_change_dir(s, direct)
+                        s2 = s[lng:]
+                        s = s[0:lng+1]
+                        l.append([curcurve, s])
+                        s = s2
+                        print "happy-break", curcurve, lng, direct, ratio
+                    else:
+                        print "happy-nobreak", curcurve, direct, ratio
+                if curcurve == 0:
+                    curcurve = maxcurve(cab, cbc, cabc)
+            elif not different(cabc, cab, cbc) and not B.is_sharp(A,C, cutoff=0):
+                # gentle inflection along AB
+                # was: AB goes in old and new section
+                # then: AB only in old section, but curcurve
+                #      preseved.
+                # now: back to was.
+                # If the previous segment was 'gentle' and is
+                # only 2 lines (3 points) long, it is totally
+                # overlapped and can be discarded.
+                if len(l) == 0:
+                    l.append([curcurve,s])
+                else:
+                    print "gg", len(s), A.x,A.y,l[-1][1][-1].x,l[-1][1][-1].y
+                    if len(s) == 3 and l[-1][1][-1] == A:
+                        print "discard a double gentle"
+                        pass
+                    else:
+                        l.append([curcurve,s])
+                s = [A, B, C]
+                curcurve =maxcurve(cab, cbc, cabc)
+                print "gentle", cabc,cab,cbc, curcurve, "------------------------------------------------------------"
+            else:
+                # Change of direction at B
+                l.append([curcurve,s])
+                s = [B, C]
+                print "change",cabc,cab,cbc,curcurve
+                curcurve = cbc
+
+            A = B
+            B = C
+        l.append([curcurve,s])
+
+        return l
+
+    def remove_shorts(self):
+        # in self.list, if a point is close to the previous point,
+        # remove it.
+        if len(self.list) <= 2:
+            return
+        at_start = True
+        n = [self.list[0]]
+        leng = self.x4*self.y4*2*2
+        for p in self.list[1:]:
+            l = p.sqlen(n[-1])
+            print "rm", leng, l
+            #if l * (6*6) > leng:
+            #    leng = l
+            if l > leng or not at_start:
+                n.append(p)
+                #at_start = False
+            if l > leng:
+                lastlong = len(n)
+        self.list = n[:lastlong]
+
+    def text2(self):
+        # OK, we have a list of points with curvature between.
+        # want to divide this into sections.
+        # for each 3 consectutive points ABC curve of ABC and AB and BC
+        # If all the same, they are all in a section.
+        # If not B starts a new section and the old ends on B or C...
+        print "points = ", len(self.list)
+        if len(self.list) >= 3:
+            A = self.list[0]
+            B = self.list[1]
+            C = self.list[2]
+            cos = B.cosine((A.x,A.y),(C.x,C.y))
+            print "Cosine =", cos
+            sin = B.sine((A.x,A.y),(C.x,C.y))
+            print "Sine =", sin
+            if cos  < 0:
+                s1 = A.sine((B.x,B.y),(C.x,C.y))
+                s2 = C.sine((A.x,A.y),(B.x,B.y))
+                print "Other Sines are:",s1, s2
+            #return "%d / %d" % (cos,sin)
+        print "Curve is", self.list[-1].Vcurve(self.list[0])
+        #return "Curve is %d" % self.list[-1].Vcurve(self.list[0])
+        b4 = len(self.list)
+        print "PRE_REMOVE", self.list[-1].x, self.list[-1].y
+        self.remove_shorts()
+        print "POST_REMOVE", self.list[-1].x, self.list[-1].y
+        print "remove shorts: %d -> %d" % (b4, len(self.list))
+        BB = BBox(self.list[0])
+        for p in self.list:
+            BB.add(p)
+        BB.finish()
+        self.bbox = BB
+        sectlist = self.get_sectlist()
+        t = ""
+        nt = ""
+        for c, s in sectlist:
+            if c > 0:
+                dr = "R"  # clockwise is to the Right
+            elif c < 0:
+                dr = "L"  # counterclockwise to the Left
+            else:
+                dr = "S"  # straight
+            bb = BBox(s[0])
+            for p in s:
+                bb.add(p)
+            bb.finish()
+            # If  all points are in some row or column, then
+            # line is S
+            rwdiff = False; cldiff = False
+            rw = bb.row(s[0]); cl=bb.col(s[0])
+            print "test rowcol", c, dr
+            for p in s:
+                print bb.row(p), bb.col(p)
+                if bb.row(p) != rw: rwdiff = True
+                if bb.col(p) != cl: cldiff = True
+            if not rwdiff or not cldiff: dr = "S"
+            print "curves:",
+            l0 = None
+            l = s[0]
+            straight = True
+            corners = ""
+            for p in s[1:]:
+                print "%d[%d]" % (p.Vcurve(l), p.curve(l)),
+                if p.curve(l) != 0:
+                    straight = False
+                if l0 != None:
+                    if l.cosine(l0.tupple(), p.tupple()) < -500:
+                        # too open a corner to be counted as 'all straight'
+                        straight = False
+                    print "(%d)" % l.cosine(l0.tupple(), p.tupple()),
+                    if p.curve(l) == 0 and l.curve(l0) == 0 and l.cosine(l0.tupple(), p.tupple()) > -100:
+                        #this is a corner, count it.
+                        corners += "%d" % bb.box(l)
+                l0 = l
+                l = p
+            print "."
+            # find direction changes
+            changes = -1
+            xd = 0; yd= 0
+            l = s[0]
+            for p in s[1:]:
+                xd2 = p.xdir(l); yd2 = p.ydir(l)
+                if xd2 != xd and xd2 != 0:
+                    changes += 1
+                    xd = xd2
+                if yd2 != yd and yd2 != 0:
+                    changes += 1
+                    yd = yd2
+                l = p
+            print "changes = ", changes
+
+            # No find the direction changes and count the loops.
+            # We look particularly at changes in ydir.
+            # if 'after' direction is '-1' (change from down to up) and
+            # ypos < BB.y2, then this is a 'H' high change
+            # if 'after' directons is '1' and ypos > BB.y1, then this is
+            # a 'L' low change.
+            # else if 'after' isn't 0, this is a 'F' full change
+            # We record every H or L, and if we have a string on 'n'
+            # F's, we record (n-1)/2 of them.
+            # However we start at the last y change before the first (non-initial)
+            # x change, and finish after the last (non-final) x change.
+            lasty = '-'
+            seenx = False
+            xd = 0; yd = 0; ypos = s[0].y
+            l = s[0]
+            lp = LoopList()
+            for p in s[1:]:
+                xd2 = p.xdir(l); yd2 = p.ydir(l)
+                # If both x and y change at the same time we want to handle
+                # them in the 'sensible' order. This depends on CW/CCW and dir
+                # We do X first if (is CW) == (x was increasing)
+                xfirst = (dr == 'R') == (xd == 1)
+                print "LL",xfirst, xd,yd,xd2,yd2, ypos, bb.y1, bb.y2, lasty
+                if xfirst and xd2 != xd and xd2 != 0:
+                    if xd != 0:
+                        if not seenx:
+                            # this is the first non-initial x-change
+                            lp.add(lasty)
+                            lasty = '-'
+                        seenx = True
+                    xd = xd2
+                if yd2 != yd and yd2 != 0:
+                    if yd2 == -1 and ypos < bb.y2:
+                        # This is H iff dr==L and going l-r or
+                        #  dr == R and going r-l
+                        if (dr == 'L' and xd == 1) or (dr == 'R' and xd == -1):
+                            lasty = 'H'
+                    elif yd2 == 1 and ypos > bb.y1:
+                        if (dr == 'L' and xd == -1) or (dr == 'R' and xd == 1):
+                            lasty = 'L'
+                    else:
+                        lasty = 'F'
+                    if lasty != '-':
+                        if seenx:
+                            print 'x',lasty
+                            lp.add(lasty)
+                            lasty = '-'
+                            seenx = False
+                    yd = yd2
+                if not xfirst and xd2 != xd and xd2 != 0:
+                    if xd != 0:
+                        if not seenx:
+                            # this is the first non-initial x-change
+                            lp.add(lasty)
+                            lasty = '-'
+                        seenx = True
+                    xd = xd2
+
+                l = p
+                ypos = p.y
+            print "ll",xd,yd, ypos, bb.y1, bb.y2
+            # require the last line to be fairly flat to end a loop?? JUSTIFY - GENERALISE need for a 9 that curled like a G
+            if yd != 0 and s[-1].xlen(s[-2])*2 > s[-1].ylen(s[-2]):
+                lasty = '-'
+                if yd == 1 and ypos < bb.y2:
+                    if (dr =='L' and xd == 1) or (dr == 'R' and xd == -1):
+                        lasty = 'H'
+                elif yd == -1 and ypos > bb.y1:
+                    if (dr == 'L' and xd == -1) or (dr == 'L' and xd == 1):
+                        lasty = 'L'
+                else:
+                    lasty = 'F'
+                if lasty != '-':
+                    if seenx:
+                        print 'y', lasty
+                        lp.add(lasty)
+                        lasty = '-'
+
+            loops = lp.getstr()
+            print "Loops is", loops
+            
+            t1 = dr
+            t1 += "(%d)" % BB.relpos(bb)
+            t1 += "%d,%d" % (bb.box(s[0]), bb.box(s[-1]))
+            if straight:
+                t1 += 'S'
+            else:
+                t1 += 'C'
+            if changes >= 4:
+                t1 += 'L'
+            t += t1 + '.'
+
+            t2 = "%c%d:%d-%d" % (dr,BB.relpos(bb), bb.box(s[0]), bb.box(s[-1]))
+            if t2 == "R7:6-7":
+                # debug weird 'b'
+                print "HMMM", bb.minx,bb.maxx,bb.miny,bb.maxy,s[-1].x,s[-1].y
+            t2 += loops
+            corners2 = ""
+            if straight:
+                t2 += 'S'
+                A = s[0]; B=s[1]
+                for C in s[2:]:
+                    if abs(Vcurve(A,B,C)) > 10:
+                        corners2 += "%d" % bb.box(B)
+                    A=B; B=C
+            else:
+                t2 += 'C'
+            t2 += corners
+            nt += t2 + '.'
+            print "got", t1, t2, corners
+            self.drawer(s[0].x,s[0].y+20,None,t1)
+        print t, "and", nt
+        return nt[:-1]
+
+class SymbolChooser ( gtk.HBox ) :
+    def __init__(self) :
+        gtk.HBox.__init__(self)
+        self.l = gtk.Label("0")
+        self.l.show()
+        self.syms = [ 'A','B','C','D','E','F','G','H','I','J','K','L','M',
+                      'N','O','P','Q','R','S','T','U','V','W','X','Y','Z',
+                      '0','1','2','3','4','5','6','7','8','9']
+        a = gtk.Adjustment(0,0,35,1,10,0)
+        a.connect("value_changed",self.change)
+        self.s = gtk.SpinButton(a)
+        self.s.set_digits(0)
+        self.s.set_size_request(0,40)
+        #self.s.set_draw_value(False)
+        self.add(self.s)
+        self.add(self.l)
+        self.s.show()
+
+    def change(self, a):
+        self.l.set_text(self.syms[int(a.value)])
+
+class Path:
+    def __init__(self, width, height, p1, p2):
+        self.x1 = width * p1 / 100
+        self.x2 = width * p2 / 100
+        self.y1 = height * p1 / 100
+        self.y2 = height * p2 / 100
+        self.list = []
+
+    def add(self, x, y):
+        if x > self.x2:
+            x = 2
+        elif x > self.x1:
+            x = 1
+        else:
+            x = 0
+        if y > self.y2:
+            y = 2
+        elif y > self.y1:
+            y = 1
+        else:
+            y = 0
+
+        n = y*3+x
+        if len(self.list) == 0 or self.list[-1] != n:
+            self.list.append(n)
+
+class Path2:
+    def __init__(self, width, height, p1, p2, s):
+        self.x1 = int(width * p1 / 100)
+        self.x2 = int(width * p2 / 100)
+        self.y1 = int(height * p1 / 100)
+        self.y2 = int(height * p2 / 100)
+        self.pcnt = 0
+        self.have_start = False
+        self.h = '.'
+        self.v = '.'
+        self.sh = '.'
+        self.sv = '.'
+        self.show = s
+        self.path = ""
+        self.straight = 0
+
+        self.crossh1 = 0
+        self.crossh2 = 0
+        self.crossv1 = 0
+        self.crossv2 = 0
+        self.crossv = 1
+        self.crossh = 1
+
+    def add(self,x,y):
+        if  not self.have_start:
+            self.x = x
+            self.y = y
+            self.prevx = x
+            self.prevy = y
+            self.have_start = True
+            return
+        if ((self.h != 'l' or x < self.x) and
+            (self.h != 'r' or x > self.x) and
+            (self.v != 'd' or y > self.y) and
+            (self.v != 'u' or y < self.y)) :
+            # still travelling in same direction
+            if self.pcnt == 0:
+                self.startx = x
+                self.starty = y
+                self.sumx = 0
+                self.sumy = 0
+            self.endx = x
+            self.endy = y
+            self.sumx += x
+            self.sumy += y
+            self.pcnt += 1
+            self.nextpcnt = 0
+
+        else :
+            # swapped direction. This might be in new path
+            if self.nextpcnt == 0:
+                self.nextstartx = x
+                self.nextstarty = y
+                self.nextsumx = 0
+                self.nextsumy = 0
+            self.nextsumx += x
+            self.nextsumy += y
+            self.nextpcnt += 1
+            # redraw line to show that curvature is ignored.
+            self.show(self.x, self.y, x, y)
+
+        change = '.'
+        if (self.x < self.x1 and x >= self.x1 or
+            self.x < self.x2 and x >= self.x2) :
+            # horizontal move to the right
+            if self.h == 'l':
+                change = 'r'
+            else:
+                self.h = 'r'
+        if (self.x > self.x1 and x <= self.x1 or
+            self.x > self.x2 and x <= self.x2) :
+            # horizontal move to the left
+            if self.h == 'r':
+                change = 'l'
+            else:
+                self.h = 'l'
+
+        if (self.y < self.y1 and y >= self.y1 or
+            self.y < self.y2 and y >= self.y2) :
+            # vertical move down
+            if self.v == 'u':
+                change = 'd'
+            else:
+                self.v = 'd'
+        if (self.y > self.y1 and y <= self.y1 or
+            self.y > self.y2 and y <= self.y2) :
+            # vertical move up
+            if self.v == 'd':
+                change = 'u'
+            else:
+                self.v = 'u'
+
+        if (self.x < self.x1 and x >= self.x1 or
+            self.x >= self.x1 and x < self.x1) :
+            # cross v1
+            self.crossv1 += self.crossv
+            self.crossv = 2
+        if (self.x < self.x2 and x >= self.x2 or
+            self.x >= self.x2 and x < self.x2) :
+            # cross v2
+            self.crossv2 += self.crossv
+            self.crossv = 2
+        if (self.y < self.y1 and y >= self.y1 or
+            self.y >= self.y1 and y < self.y1) :
+            # cross h1
+            self.crossh1 += self.crossh
+            self.crossh = 2
+        if (self.y < self.y2 and y >= self.y2 or
+            self.y >= self.y2 and y < self.y2) :
+            # cross h2
+            self.crossh2 += self.crossh
+            self.crossh = 2
+
+        self.prevx = self.x; self.x = x
+        self.prevy = self.y; self.y = y
+
+        if change == '.':
+            return
+
+        print 'change',x,y,change,'(',self.h,self.v,')'
+
+
+        if self.sh == self.h:
+            # Only have vertical info, no curvature
+            d = self.v
+        elif self.sv == self.v:
+            # Only have horizontal info
+            d = self.h
+        else:
+            # Both dimensions changed recently - use curvature
+            print "sums", self.sumx, self.sumy, self.pcnt
+            if self.pcnt == 0:
+                curve = 0
+                slope = 0
+            else:
+                midx = int(self.sumx/self.pcnt)
+                midy = int(self.sumy/self.pcnt)
+                self.show(midx,midy,None,None)
+                self.show(self.startx,self.starty,self.endx,self.endy)
+
+                curve = (self.endy-self.starty)*(midx-self.startx) - (midy-self.starty)*(self.endx-self.startx)
+                curve = curve * 100 / ((self.endy-self.starty)*(self.endy-self.starty)
+                                       + (self.endx-self.startx)*(self.endx-self.startx))
+                if abs(self.starty - self.endy) >= abs(self.startx - self.endx):
+                    slope = 2 # steep
+                else:
+                    slope = 0 # shallow
+            
+            d = self.h + self.v
+            print 'd=',d,'curve=', curve, "slope=", slope
+            if curve >= 4:
+                # clockwise
+                if d == 'ru': d = 'ur'
+                if d == 'ld': d = 'dl'
+            elif curve <= -4:
+                # counterclockwise
+                if d == 'rd': d = 'dr'
+                if d == 'lu': d = 'ul'
+            elif slope > 1:
+                # steep slope, v first
+                d = self.v + self.h
+            else:
+                #shallow slow, no change
+                pass
+            if curve < 4 and curve > -4:
+                self.straight += 1
+        print "d = ",d
+        self.path = self.path + d
+        self.startx = self.nextstartx
+        self.starty = self.nextstarty
+        self.sumx = self.nextsumx
+        self.sumy = self.nextsumy
+        self.pcnt = self.nextpcnt
+        self.nextpcnt = 0
+
+        if self.h != '.':
+            self.sh = self.h
+            #self.h = '.'
+        if self.v != '.':
+            self.sv = self.v
+            #self.v = '.'
+
+        if change == 'l' or change == 'r':
+            self.h = change
+        else:
+            self.v = change
+
+    def close(self):
+        if self.pcnt == 0:
+            curve = 0
+        else:
+            midx = int(self.sumx/self.pcnt)
+            midy = int(self.sumy/self.pcnt)
+            self.show(midx,midy,None,None)
+            self.show(self.startx,self.starty,self.endx,self.endy)
+                
+            curve = (self.endy-self.starty)*(midx-self.startx) - (midy-self.starty)*(self.endx-self.startx)
+            curve = curve * 100 / ((self.endy-self.starty)*(self.endy-self.starty)
+                                   + (self.endx-self.startx)*(self.endx-self.startx))
+            if abs(self.starty - self.endy) >= abs(self.startx - self.endx):
+                slope = 2 # steep
+            else:
+                slope = 0 # shallow
+            if curve < 4 and curve > -4:
+                self.straight += 1
+            
+        # Path is finished - report final status
+        if self.sh == self.h:
+            # Only have vertical info, no curvature
+            d = self.v
+        elif self.sv == self.v:
+            # Only have horizontal info
+            d = self.h
+        else:
+            # Have full direction and curvature
+            d = self.h + self.v
+            print 'final d=',d,'curve=', curve, 'slope =', slope
+            if curve >= 4 or (curve > -4 and slope > 1):
+                # clockwise or steep slope
+                if d == 'ru': d = 'ur'
+                if d == 'ld': d = 'dl'
+            elif curve <= -4:
+                # counterclockwise or shallow slope
+                if d == 'rd': d = 'dr'
+                if d == 'lu': d = 'ul'
+        print "final d = ",d
+        self.path = self.path + d
+
+        earlytail = ""
+        latetail = ""
+        if (self.crossh1 + self.crossh2 > 3 and
+            (min(self.crossh1,self.crossh2) == 1)):
+            # early tail at top or bottom
+            earlytail = "t"
+        if (self.crossh1 + self.crossh2 > 3 and
+            (min(self.crossh1,self.crossh2) == 2)):
+            # late tail at top or bottom
+            latetail = "t"
+        if (self.crossv1 + self.crossv2 > 3 and
+            (min(self.crossv1,self.crossv2) == 1)):
+            # early tail at left or right
+            earlytail = "t"
+        if (self.crossv1 + self.crossv2 > 3 and
+            (min(self.crossv1,self.crossv2) == 2)):
+            # late tail at left or right
+            latetail = "t"
+
+        self.path = earlytail + self.path + latetail
+        if self.straight:
+            self.path += "%d" % self.straight
+        return self.path
+
+class GestureLearn:
+
+    def click(self, widget, event):
+        self.erase()
+        self.learning =  self.learningbutton.get_active()
+        print self.learning
+        self.down = True
+        self.points = []
+        x = int(event.x)
+        y = int(event.y)
+        self.minx = x
+        self.maxx = x
+        self.miny = y
+        self.maxy = y
+        self.addpoint(x,y)
+        self.bbox1 = BBox(Point(x,y))
+        return True
+
+    def release(self, widget, event):
+        self.down = False
+
+        if False:
+            self.minx=60; self.maxx= self.minx+360
+            self.miny=80; self.maxy = self.miny + 480
+        else:
+
+            print "position: ", self.classify_bbox()
+            print "aspect: ", self.classify_aspect()
+            if self.classify_aspect() == 5 :
+                mid = (self.maxx+self.minx) / 2
+                w = (self.maxy-self.miny) / 2 / 2
+                self.minx = int(mid - w)
+                self.maxx = int(mid + w)
+            if self.classify_aspect() == 1 :
+                mid = (self.maxy+self.miny) / 2
+                w = (self.maxx-self.minx) / 2 / 2
+                self.miny = int(mid - w)
+                self.maxy = int(mid + w)
+            
+        w = self.maxx - self.minx
+        h = self.maxy - self.miny
+        x = self.minx
+        y = self.miny
+
+        self.bbox1.finish()
+        self.canvas.window.draw_rectangle(self.box,
+                                          False, x,y,w,h)
+        #self.drawhash(self.box, x,y,w,h, 33, 66)
+        #self.drawhash(self.box1, x,y,w,h, 25, 75)
+        #self.drawhash(self.box2, x,y,w,h, 40, 60)
+        #self.canvas.window.draw_line(self.box, x,self.bbox1.y1,x+w,self.bbox1.y1)
+        #self.canvas.window.draw_line(self.box, x,self.bbox1.y2,x+w,self.bbox1.y2)
+        #self.canvas.window.draw_line(self.box, self.bbox1.x1,y,self.bbox1.x1,y+h)
+        #self.canvas.window.draw_line(self.box, self.bbox1.x2,y,self.bbox1.x2,y+h)
+
+
+        #pth =  self.classify_path(33,66)
+        #print "path is ", path2str(pth)
+        #self.draw_path(pth)
+        #self.find_inflect()
+        ###result =  ("%d:" % self.classify_bbox())  + self.classify(33,66)
+        result = self.classify_ppath()
+        self.resultw.set_text(result)
+        pos = 'mid'
+        if self.classify_bbox() in (4,7,10):
+            pos = 'top'
+        if self.classify_bbox() in (6,9,12):
+            pos = 'bot'
+        sym = self.dict.match(result, pos)
+        print "result is ", sym
+        if sym == "<BS>":
+            self.text = "." + self.text[0:-1]
+            self.textw.set_text(self.text)
+        elif sym:
+            self.text = self.text[1:] + sym
+            self.textw.set_text(self.text)
+            self.storepath(sym, True)
+        else:
+            self.dict.closest(result)
+            self.storepath('??', False)
+        return
+
+        snum = len(self.kb)
+        copynum = 1
+        if snum > 0 and len(self.kb[snum-1]) < 3:
+            snum -= 1
+            copynum = len(self.kb[snum])+1
+
+        symnum = self.find_match(result)
+        #snum is what we expect, symnum is what we found
+        if not self.learning or ( symnum >= 0 and (symnum != snum or  self.dups <= 2)):
+            self.text = self.text[1:] + self.chars[symnum]
+            self.textw.set_text(self.text)
+            self.dups += 1
+            self.storepath(symnum, True)
+        else:
+            self.dups = 0
+            self.storepath(snum, False)
+            if symnum < 0:
+                self.storeresult(snum, result)
+            if copynum == 1:
+                self.kb.append([ result ])
+            else:
+                self.kb[snum].append(result)
+        self.present()
+
+    def parse_points(self, l):
+        # l is a line like
+        # s: x,y x,y x,y
+        # return s, and add all points to 'points'
+        self.points = []
+        words = l.strip().split(' ')
+        # remove leading "'" and trailing "':"
+        s = words[0][1:-2]
+        start = True
+        for w in words[1:]:
+            c = w.split(',')
+            x = int(c[0])
+            y = int(c[1])
+            if start:
+                self.minx = x; self.maxx = x;
+                self.miny = y; self.maxy = y
+                self.bbox1 = BBox(Point(x,y))
+            self.addpoint(x,y)
+            self.bbox1.add(Point(x,y))
+            start = False
+        self.bbox1.finish()
+        return s
+
+    def replay(self):
+        # read paths from ppfname, draw them, classify them and add them
+        try:
+            f = open(self.ppfname, "r")
+        except:
+            f = None
+        if not f:
+            return
+        open(self.rfname, "w").close()
+        l = f.readline()
+        linenum = 1
+        while len(l) > 0:
+            sym = self.parse_points(l)
+            self.display.sync()
+            self.display.flush()
+            self.erase()
+            self.redraw(None, None)
+            res = self.classify_ppath()
+            self.resultw.set_text(res)
+            #match = self.find_match(res)
+            match = self.dict.match(res,'mid')
+            self.display.sync()
+            if match == None:
+                self.dict.closest(res)
+            print "line %d sym '%s' result=%s match=%s ?" % (linenum, sym,res, match),
+            if  match == sym or (sym == '??' and match != None):
+                l = f.readline()
+                linenum += 1
+                continue
+            ln = sys.stdin.readline()
+            ln = 'n'
+            #os.exit(0)
+            #print "" ; ln = 'y'
+            if ln[0] == 'n':
+                l = f.readline()
+                linenum += 1
+                continue
+            if ln[0] == 'q':
+                break
+            if match >= 0 and match != sym:
+                print "Sym '%s' clashes with '%s' on result %s\n" % (sym, match, res)
+            elif sym < len(self.kb):
+                self.kb[sym].append(res)
+            elif sym == len(self.kb):
+                self.kb.append([ res ])
+            if match < 0:
+                self.storeresult(sym, res)
+            self.storepath(sym, True)
+            l = f.readline()
+            linenum += 1
+
+    def redraw(self, w, e):
+        if self.points == None:
+            return
+        w = self.maxx - self.minx
+        h = self.maxy - self.miny
+        x = self.minx
+        y = self.miny
+
+        self.canvas.window.draw_rectangle(self.box,
+                                          False, x,y,w,h)
+        #self.drawhash(self.box, x,y,w,h, 33, 66)
+        self.canvas.window.draw_line(self.box, x,self.bbox1.y1,x+w,self.bbox1.y1)
+        self.canvas.window.draw_line(self.box, x,self.bbox1.y2,x+w,self.bbox1.y2)
+        self.canvas.window.draw_line(self.box, self.bbox1.x1,y,self.bbox1.x1,y+h)
+        self.canvas.window.draw_line(self.box, self.bbox1.x2,y,self.bbox1.x2,y+h)
+
+        prev = self.points[0]
+        for p in self.points[1:]:
+            self.canvas.window.draw_line(self.path,prev[0], prev[1], p[0], p[1])
+            print "DrawLine", prev[0]-x, prev[1]-y, p[0]-x, p[1]-y
+            #self.canvas.window.draw_rectangle(self.path, True, p[0], p[1], 2,2)
+            prev = p
+
+        self.classify_ppath()
+
+    def find_match(self, pattern):
+        pattern = pattern[:7]
+        for i in range(0, len(self.kb)):
+            for p in self.kb[i]:
+                if pattern == p:
+                    print "match ", p, "at", i
+                    return i
+        return -1
+    
+    def motion(self, widget, event):
+        if self.down:
+            if event.is_hint:
+                x, y, state = event.window.get_pointer()
+            else:
+                x = event.x
+                y = event.y
+                state = event.state
+
+            widget.window.draw_line(self.path, self.x, self.y, x, y)
+            #widget.window.draw_rectangle(self.path, True, self.x, self.y, 2,2)
+            self.addpoint(x,y)
+            self.bbox1.add(Point(x,y))
+
+        return True
+
+    def drawhash(self, gc, x,y,w,h, p1, p2):
+        x1 = x+int(w*p1/100)
+        x2 = x+int(w*p2/100)
+        y1 = y+int(h*p1/100)
+        y2 = y+int(h*p2/100)
+        self.canvas.window.draw_line(gc, x,y1,x+w,y1)
+        self.canvas.window.draw_line(gc, x,y2,x+w,y2)
+        self.canvas.window.draw_line(gc, x1,y,x1,y+h)
+        self.canvas.window.draw_line(gc, x2,y,x2,y+h)
+
+    def addpoint(self, x, y):
+        self.points.append([x,y])
+        self.x = x
+        self.y = y
+        if x < self.minx:
+            self.minx = x
+        if x > self.maxx:
+            self.maxx = x
+        if y < self.miny:
+            self.miny = y
+        if y > self.maxy:
+            self.maxy = y
+
+    def classify_bbox(self):
+        if self.maxx < self.width*60/100 and self.minx < self.width * 40/100:
+            xpos = 1
+        elif self.maxx > self.width*40/100 and self.minx > self.width * 60/100:
+            xpos = 3
+        else:
+            xpos = 2
+
+        if self.maxy < self.width*60/100 and self.miny < self.width * 40/100:
+            ypos = 1
+        elif self.maxy > self.width*40/100 and self.miny > self.width * 60/100:
+            ypos = 3
+        else:
+            ypos = 2
+        #return [xpos, ypos]
+        return xpos*3+ypos
+
+    def classify_aspect(self):
+        w = self.maxx - self.minx
+        h = self.maxy - self.miny
+
+        if w > h * 5:
+            return 1
+        elif w > h * 2:
+            return 2
+        elif h > w * 5:
+            return 5
+        elif h > w * 2:
+            return 4
+        else:
+            return 3
+
+    def classify_path(self, p1, p2):
+        p = Path(self.maxx-self.minx, self.maxy-self.miny, p1, p2)
+        for x,y in self.points :
+            p.add(x-self.minx,y-self.miny)
+        #return filter_lines(p.list)
+        return p.list
+
+    def draw_path(self, path):
+        w = (self.maxx - self.minx) / 3
+        h = (self.maxy - self.miny) / 3
+        xl = [ w/2, w*3/2, w*5/2, w/2, w*3/2, w*5/2, w/2, w*3/2, w*5/2]
+        yl = [ h/2, h/2, h/2, h*3/2, h*3/2, h*3/2, h*5/2, h*5/2, h*5/2]
+        st = path.pop(0)
+        x = xl[st] + self.minx
+        y = yl[st] + self.miny
+        o = -10
+        for p in path :
+            x2 = int(xl[p]) + self.minx
+            y2 = int(yl[p]) + self.miny
+            self.canvas.window.draw_line(self.final, x+o,y+o,
+                                         x2+o+3, y2+o+3)
+            o = o + 3
+            x = x2
+            y = y2
+            
+
+    def find_inflect(self):
+        # find points that seem to be highly curved and draw a box around them
+        step = len(self.points)/4
+        step = 4
+        print "step is ", step
+        if step < 4:
+            return
+        maxdist = 0
+        prevdist = 0
+        maxp = [0,0]
+        for end in range(step, len(self.points)-1):
+            p1 = self.points[end - step]
+            p2 = self.points[end - step / 2]
+            p3 = self.points[end]
+            dist = (p3[1]-p1[1])*(p2[0]-p1[0]) - (p2[1]-p1[1])*(p3[0]-p1[0])
+            dist = dist*100 / ((p3[1]-p1[1])*(p3[1]-p1[1]) + (p3[0]-p1[0])*(p3[0]-p1[0]))
+            sdist = dist
+            dist = abs(dist)
+            if dist > maxdist:
+                maxdist = dist
+                maxp = p2
+            p2 = maxp
+            if dist < maxdist / 2:
+                if maxdist > 30:
+                    self.canvas.window.draw_rectangle(self.box2,False,p2[0]-10,p2[1]-10,21,21)
+                print "max was ", maxdist
+                maxdist = dist
+            prevdist = dist
+            # now plot this dist along the base of the window. 0-200 fits in bottom
+            # third.
+            gx = (end - step / 2) * self.width / len(self.points)
+            gy = sdist * (self.height/3) / 200
+            gy = (self.height/2) - gy
+            if gy <= 3:
+                gy = 3
+            if gy > self.height - 3:
+                gy = self.height - 3
+            self.canvas.window.draw_rectangle(self.path, False, gx-3,gy-3,7,7)
+            
+        p2 = self.points[0]
+        self.canvas.window.draw_rectangle(self.box1,False,p2[0]-10,p2[1]-10,21,21)
+        p2 = self.points[-1]
+        self.canvas.window.draw_rectangle(self.box1,False,p2[0]-10,p2[1]-10,21,21)
+        self.canvas.window.draw_line(self.path,0,self.height/2,self.width-1,self.height/2)
+        return
+        print "max dist is ", maxdist
+        for end in range(step, len(self.points)-1):
+            p1 = self.points[end - step]
+            p2 = self.points[end - step / 2]
+            p3 = self.points[end]
+            dist = (p3[1]-p1[1])*(p2[0]-p1[0]) - (p2[1]-p1[1])*(p3[0]-p1[0])
+            dist = dist*100 / ((p3[1]-p1[1])*(p3[1]-p1[1]) + (p3[0]-p1[0])*(p3[0]-p1[0]))
+            dist = abs(dist)
+            if dist > maxdist/2 :
+                self.canvas.window.draw_rectangle(self.box1,False,p2[0]-10,p2[1]-10,21,21)
+
+    def nocurve(self, x1,y1,x2,y2):
+        if x2 == None and y2 == None:
+            self.canvas.window.draw_rectangle(self.box1,False, x1+self.minx-5, y1+self.miny-5,10,10)
+        elif x2 == None:
+            l = self.canvas.create_pango_layout("")
+            # 10000 on notebook 2000 on freerunner
+            l.set_markup('<span size="10000">'+y2+'</span>')
+            self.canvas.window.draw_layout(self.box1, x1+self.minx-10,y1+self.miny-10,
+                                           l)
+        else:
+            self.canvas.window.draw_line(self.box1, x1+self.minx, y1+self.miny,
+                                         x2+self.minx, y2+self.miny)
+    def classify(self, p1, p2):
+        p = Path2(self.maxx-self.minx, self.maxy-self.miny, p1, p2, self.nocurve)
+        for x,y in self.points:
+            p.add(x - self.minx, y-self.miny)
+        return p.close()
+
+    def classify_ppath(self):
+        p = PPath(self.maxx-self.minx, self.maxy-self.miny,
+                  self.points[0][0]-self.minx, self.points[0][1]-self.miny,
+                  self.nocurve)
+        for i in range(1, len(self.points)-1):
+            p.add(self.points[i][0] - self.minx, self.points[i][1] - self.miny)
+        p.close()
+        return p.text2()
+    
+    def erase(self):
+        self.canvas.window.draw_rectangle(self.bg,
+                                          True, 0, 0, 480, 640)
+        x=60; w=360
+        y=80; h=480
+        self.canvas.window.draw_rectangle(self.box2,
+                                          False, x,y,w,h)
+        self.drawhash(self.box2, x,y,w,h, 33, 66)
+
+    def storepath(self, sym, isgood):
+        # write out the pixel path self.points to file self.log
+        if isgood:
+            f = open(self.ppfnewname, "a")
+        else:
+            f = open(self.ppfnewname+'.bad', "a")
+        f.write("'%s':" % sym)
+        for x,y in self.points:
+            f.write(" %d,%d" % (x,y))
+        f.write("\n")
+        f.close()
+
+    def storeresult(self, symnum, result):
+        f = open(self.rfname, "a")
+        f.write("%d: %s\n"% (symnum, result))
+        f.close()
+
+    def close_application(self, widget):
+        gtk.main_quit()
+
+
+    def present(self):
+        symnum = len(self.kb)
+        copynum = 1
+        if symnum > 0 and len(self.kb[symnum-1]) < 3:
+            symnum -= 1
+            copynum = len(self.kb[symnum])+1
+        if symnum >= len(self.chars):
+            self.sym.set_text("-done-")
+            self.learning = False
+            self.learningbutton.set_active(False)
+        else:
+            self.sym.set_text("%s %d" % (self.chars[symnum], copynum))
+
+    def __init__(self):
+        window = gtk.Window(gtk.WINDOW_TOPLEVEL)
+        window.set_resizable(False)
+        window.connect("destroy", self.close_application)
+        window.set_title("Experiment Gesture Learning")
+        window.set_size_request(480,640)
+        self.display =window.get_screen().get_display()
+
+        canvas = gtk.DrawingArea()
+        canvas.set_size_request(480,640)
+        self.width = 480
+        self.height = 640
+
+        canvas.connect("button_press_event", self.click)
+        canvas.connect("button_release_event", self.release)
+        canvas.connect("motion_notify_event", self.motion)
+        canvas.connect("expose-event", self.redraw)
+
+        canvas.set_events(gtk.gdk.EXPOSURE_MASK
+                          | gtk.gdk.LEAVE_NOTIFY_MASK
+                          | gtk.gdk.BUTTON_PRESS_MASK
+                          | gtk.gdk.BUTTON_RELEASE_MASK
+                          | gtk.gdk.POINTER_MOTION_MASK
+                          | gtk.gdk.POINTER_MOTION_HINT_MASK)
+
+        self.canvas = canvas
+        self.down = False
+        self.lastx = 0
+        self.lasty = 0
+
+        fix = gtk.Fixed()
+        window.add(fix)
+        fix.put(canvas,0,0)
+
+        eb = gtk.EventBox()
+        eb.show()
+        fix.put(eb,0,0)
+        vb = gtk.VBox()
+        vb.show()
+        eb.add(vb)
+        #thing.set_size_request(20,20)
+
+        b1 = gtk.RadioButton(None, "Learn")
+        vb.add(b1); b1.show()
+        b2 = gtk.RadioButton(b1, "Match")
+        vb.add(b2); b2.show()
+        self.learningbutton = b1
+        b2.set_active(True)
+
+        sym = gtk.Label("  ")
+        vb.add(sym)
+        sym.show()
+        self.sym = sym
+        self.text = ".........."
+        self.textw = gtk.Label(self.text)
+        self.textw.show()
+        vb.add(self.textw)
+
+        self.resultw = gtk.Label("")
+        self.resultw.show()
+        vb.add(self.resultw)
+        
+        
+        canvas.show()
+        fix.show()
+        window.show()
+        colormap = canvas.get_colormap()
+        red = gtk.gdk.color_parse("red");
+        blue = gtk.gdk.color_parse("blue"); 
+        orange = gtk.gdk.color_parse("orange");
+        purple = gtk.gdk.color_parse("purple");
+        self.bg = canvas.get_style().bg_gc[gtk.STATE_NORMAL]
+
+        self.path = canvas.window.new_gc()
+        self.path.line_width = 2
+        self.path.set_foreground(colormap.alloc_color(red))
+
+        self.box = canvas.window.new_gc()
+
+        self.box1 = canvas.window.new_gc()
+        self.box1.set_foreground(colormap.alloc_color(blue))
+        self.box2 = canvas.window.new_gc()
+        self.box2.set_foreground(colormap.alloc_color(orange))
+
+        self.final = canvas.window.new_gc()
+        self.final.set_foreground(colormap.alloc_color(purple))
+
+        self.points = None
+
+        self.chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
+        self.kb = [];
+        self.dups = 0;
+        self.present()
+
+        nowstr = time.strftime("%Y-%m-%d-%H-%M-%S")
+
+        self.ppfname = "pixelpath"
+        self.ppfnewname = "pixelpath." + nowstr
+        if len(sys.argv) >= 2:
+            self.ppfname = sys.argv[1]
+            self.ppfnewname = sys.argv[1] + ".new"
+            open(self.ppfnewname, "w").close()
+        self.rfname = "result"
+
+        self.dict = Dictionary()
+        LoadDict(self.dict)
+        self.replay()
+        self.present()
+
+
+def main():
+    gtk.main()
+    return 0       
+
+if __name__ == "__main__":
+    GestureLearn()
+    main()