commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] [gnuradio] 24/39: fec: LDPC: Adding capability to prov


From: git
Subject: [Commit-gnuradio] [gnuradio] 24/39: fec: LDPC: Adding capability to provide H matrix for encoding/decoding.
Date: Thu, 15 Oct 2015 21:21:31 +0000 (UTC)

This is an automated email from the git hooks/post-receive script.

jcorgan pushed a commit to branch master
in repository gnuradio.

commit 48f02cf40f9fc830e8ff2e3cb411bcfe3c9d69c0
Author: tracierenea <address@hidden>
Date:   Wed Mar 18 10:30:48 2015 -0500

    fec: LDPC: Adding capability to provide H matrix for encoding/decoding.
    
    - Adding new LDPC classes and example to doc
    
    - Editing the ldpc_gen_mtrx class to accept either a generator
      matrix (G) or a parity check matrix (H).
        - Renamed class from ldpc_gen_mtrx to ldpc_HorG_mtrx
        - Updated XML blocks and their documentation accordingly.
    
    - Deleting a matrix from examples dir that isn't use in any example.
    
    - Adding a simple matrix to example dir that is used in example.
---
 gr-fec/doc/fec.dox                                 |    5 +-
 gr-fec/examples/CMakeLists.txt                     |    2 +-
 gr-fec/examples/PNB2_512_23C1.alist                | 5924 --------------------
 gr-fec/examples/ber_curve_gen_ldpc.grc             |  524 +-
 gr-fec/examples/simple_g_matrix.alist              |   17 +
 gr-fec/grc/fec_block_tree.xml                      |    2 +-
 ...ject.xml => variable_ldpc_HorG_mtrx_object.xml} |   22 +-
 gr-fec/grc/variable_ldpc_R_U_encoder.xml           |    2 +-
 gr-fec/grc/variable_ldpc_R_U_mtrx_object.xml       |    2 +
 gr-fec/grc/variable_ldpc_bit_flip_decoder.xml      |    2 +-
 gr-fec/grc/variable_ldpc_gen_mtrx_encoder.xml      |   17 +-
 gr-fec/include/gnuradio/fec/CMakeLists.txt         |    2 +-
 .../fec/{ldpc_gen_mtrx.h => ldpc_HorG_mtrx.h}      |   14 +-
 .../include/gnuradio/fec/ldpc_gen_mtrx_encoder.h   |    4 +-
 gr-fec/lib/CMakeLists.txt                          |    2 +-
 gr-fec/lib/ldpc_HorG_mtrx.cc                       |  252 +
 gr-fec/lib/ldpc_gen_mtrx.cc                        |  150 -
 gr-fec/lib/ldpc_gen_mtrx_encoder_impl.cc           |   18 +-
 gr-fec/lib/ldpc_gen_mtrx_encoder_impl.h            |    8 +-
 .../fec/LDPC/Generate_LDPC_matrix_functions.py     |   49 +-
 gr-fec/swig/fec_swig.i                             |    4 +-
 21 files changed, 795 insertions(+), 6227 deletions(-)

diff --git a/gr-fec/doc/fec.dox b/gr-fec/doc/fec.dox
index 33a825a..2b6cf18 100644
--- a/gr-fec/doc/fec.dox
+++ b/gr-fec/doc/fec.dox
@@ -234,6 +234,8 @@ Coders:
 \li gr::fec::code::cc_encoder
 \li gr::fec::code::ccsds_encoder
 \li gr::fec::code::polar_encoder
+\li gr::fec::code::ldpc_R_U_encoder
+\li gr::fec::code::ldpc_gen_mtrx_encoder
 
 Decoders:
 \li gr::fec::code::dummy_decoder
@@ -241,7 +243,7 @@ Decoders:
 \li gr::fec::code::cc_decoder
 \li gr::fec::code::polar_decoder_sc
 \li gr::fec::code::polar_decoder_sc_list
-
+\li gr::fec::code::ldpc_bit_flip_decoder
 
 When building a new FECAPI encoder or decoder variable, the dummy
 encoder/decoder block would be a good place to start. This coding set
@@ -363,6 +365,7 @@ going into an encoder and the number of bits coming out of 
a decoder.
 \section fec_examples FEC Examples
 
 \li ber_curve_gen.grc
+\li ber_curve_gen_ldpc
 \li ber_test.grc
 \li fecapi_decoders.grc
 \li fecapi_encoders.grc
diff --git a/gr-fec/examples/CMakeLists.txt b/gr-fec/examples/CMakeLists.txt
index 4031154..d778381 100644
--- a/gr-fec/examples/CMakeLists.txt
+++ b/gr-fec/examples/CMakeLists.txt
@@ -41,7 +41,7 @@ install(
     polar_code_example.grc
     tpc_ber_curve_gen.grc
     n_1800_k_0902_gap_28.alist
-    PNB2_512_23C1.alist
+    simple_g_matrix.alist
     DESTINATION ${GR_PKG_FEC_EXAMPLES_DIR}
     COMPONENT "fec_python"
 )
diff --git a/gr-fec/examples/PNB2_512_23C1.alist 
b/gr-fec/examples/PNB2_512_23C1.alist
deleted file mode 100644
index 2d97492..0000000
--- a/gr-fec/examples/PNB2_512_23C1.alist
+++ /dev/null
@@ -1,5924 +0,0 @@
-4440 1480
-8 10
-8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 
8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 
8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 
8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 
8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 
8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 
8 8 8 8 8 8 8  [...]
-10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 
10 10 10 10 10 10 10 10  [...]
-94 105 837 839 1026 1248 1278 1430 
-114 125 857 859 1046 1268 1298 1450 
-134 145 877 879 1066 1288 1318 1470 
-10 154 165 897 899 1086 1308 1338 
-30 174 185 917 919 1106 1328 1358 
-50 194 205 937 939 1126 1348 1378 
-70 214 225 957 959 1146 1368 1398 
-90 234 245 977 979 1166 1388 1418 
-110 254 265 997 999 1186 1408 1438 
-130 274 285 1017 1019 1206 1428 1458 
-150 294 305 1037 1039 1226 1448 1478 
-18 170 314 325 1057 1059 1246 1468 
-8 38 190 334 345 1077 1079 1266 
-28 58 210 354 365 1097 1099 1286 
-48 78 230 374 385 1117 1119 1306 
-68 98 250 394 405 1137 1139 1326 
-88 118 270 414 425 1157 1159 1346 
-108 138 290 434 445 1177 1179 1366 
-128 158 310 454 465 1197 1199 1386 
-148 178 330 474 485 1217 1219 1406 
-168 198 350 494 505 1237 1239 1426 
-188 218 370 514 525 1257 1259 1446 
-208 238 390 534 545 1277 1279 1466 
-6 228 258 410 554 565 1297 1299 
-26 248 278 430 574 585 1317 1319 
-46 268 298 450 594 605 1337 1339 
-66 288 318 470 614 625 1357 1359 
-86 308 338 490 634 645 1377 1379 
-106 328 358 510 654 665 1397 1399 
-126 348 378 530 674 685 1417 1419 
-146 368 398 550 694 705 1437 1439 
-166 388 418 570 714 725 1457 1459 
-186 408 438 590 734 745 1477 1479 
-17 19 206 428 458 610 754 765 
-37 39 226 448 478 630 774 785 
-57 59 246 468 498 650 794 805 
-77 79 266 488 518 670 814 825 
-97 99 286 508 538 690 834 845 
-117 119 306 528 558 710 854 865 
-137 139 326 548 578 730 874 885 
-157 159 346 568 598 750 894 905 
-177 179 366 588 618 770 914 925 
-197 199 386 608 638 790 934 945 
-217 219 406 628 658 810 954 965 
-237 239 426 648 678 830 974 985 
-257 259 446 668 698 850 994 1005 
-277 279 466 688 718 870 1014 1025 
-297 299 486 708 738 890 1034 1045 
-317 319 506 728 758 910 1054 1065 
-337 339 526 748 778 930 1074 1085 
-357 359 546 768 798 950 1094 1105 
-377 379 566 788 818 970 1114 1125 
-397 399 586 808 838 990 1134 1145 
-417 419 606 828 858 1010 1154 1165 
-437 439 626 848 878 1030 1174 1185 
-457 459 646 868 898 1050 1194 1205 
-477 479 666 888 918 1070 1214 1225 
-497 499 686 908 938 1090 1234 1245 
-517 519 706 928 958 1110 1254 1265 
-537 539 726 948 978 1130 1274 1285 
-557 559 746 968 998 1150 1294 1305 
-577 579 766 988 1018 1170 1314 1325 
-597 599 786 1008 1038 1190 1334 1345 
-617 619 806 1028 1058 1210 1354 1365 
-637 639 826 1048 1078 1230 1374 1385 
-657 659 846 1068 1098 1250 1394 1405 
-677 679 866 1088 1118 1270 1414 1425 
-697 699 886 1108 1138 1290 1434 1445 
-717 719 906 1128 1158 1310 1454 1465 
-5 737 739 926 1148 1178 1330 1474 
-14 25 757 759 946 1168 1198 1350 
-34 45 777 779 966 1188 1218 1370 
-54 65 797 799 986 1208 1238 1390 
-74 85 817 819 1006 1228 1258 1410 
-254 558 673 682 701 715 863 1465 
-5 274 578 693 702 721 735 883 
-25 294 598 713 722 741 755 903 
-45 314 618 733 742 761 775 923 
-65 334 638 753 762 781 795 943 
-85 354 658 773 782 801 815 963 
-105 374 678 793 802 821 835 983 
-125 394 698 813 822 841 855 1003 
-145 414 718 833 842 861 875 1023 
-165 434 738 853 862 881 895 1043 
-185 454 758 873 882 901 915 1063 
-205 474 778 893 902 921 935 1083 
-225 494 798 913 922 941 955 1103 
-245 514 818 933 942 961 975 1123 
-265 534 838 953 962 981 995 1143 
-285 554 858 973 982 1001 1015 1163 
-305 574 878 993 1002 1021 1035 1183 
-325 594 898 1013 1022 1041 1055 1203 
-345 614 918 1033 1042 1061 1075 1223 
-365 634 938 1053 1062 1081 1095 1243 
-385 654 958 1073 1082 1101 1115 1263 
-405 674 978 1093 1102 1121 1135 1283 
-425 694 998 1113 1122 1141 1155 1303 
-445 714 1018 1133 1142 1161 1175 1323 
-465 734 1038 1153 1162 1181 1195 1343 
-485 754 1058 1173 1182 1201 1215 1363 
-505 774 1078 1193 1202 1221 1235 1383 
-525 794 1098 1213 1222 1241 1255 1403 
-545 814 1118 1233 1242 1261 1275 1423 
-565 834 1138 1253 1262 1281 1295 1443 
-585 854 1158 1273 1282 1301 1315 1463 
-3 605 874 1178 1293 1302 1321 1335 
-23 625 894 1198 1313 1322 1341 1355 
-43 645 914 1218 1333 1342 1361 1375 
-63 665 934 1238 1353 1362 1381 1395 
-83 685 954 1258 1373 1382 1401 1415 
-103 705 974 1278 1393 1402 1421 1435 
-123 725 994 1298 1413 1422 1441 1455 
-143 745 1014 1318 1433 1442 1461 1475 
-1 15 163 765 1034 1338 1453 1462 
-2 21 35 183 785 1054 1358 1473 
-13 22 41 55 203 805 1074 1378 
-33 42 61 75 223 825 1094 1398 
-53 62 81 95 243 845 1114 1418 
-73 82 101 115 263 865 1134 1438 
-93 102 121 135 283 885 1154 1458 
-113 122 141 155 303 905 1174 1478 
-18 133 142 161 175 323 925 1194 
-38 153 162 181 195 343 945 1214 
-58 173 182 201 215 363 965 1234 
-78 193 202 221 235 383 985 1254 
-98 213 222 241 255 403 1005 1274 
-118 233 242 261 275 423 1025 1294 
-138 253 262 281 295 443 1045 1314 
-158 273 282 301 315 463 1065 1334 
-178 293 302 321 335 483 1085 1354 
-198 313 322 341 355 503 1105 1374 
-218 333 342 361 375 523 1125 1394 
-238 353 362 381 395 543 1145 1414 
-258 373 382 401 415 563 1165 1434 
-278 393 402 421 435 583 1185 1454 
-298 413 422 441 455 603 1205 1474 
-14 318 433 442 461 475 623 1225 
-34 338 453 462 481 495 643 1245 
-54 358 473 482 501 515 663 1265 
-74 378 493 502 521 535 683 1285 
-94 398 513 522 541 555 703 1305 
-114 418 533 542 561 575 723 1325 
-134 438 553 562 581 595 743 1345 
-154 458 573 582 601 615 763 1365 
-174 478 593 602 621 635 783 1385 
-194 498 613 622 641 655 803 1405 
-214 518 633 642 661 675 823 1425 
-234 538 653 662 681 695 843 1445 
-109 144 246 320 412 517 811 1239 
-129 164 266 340 432 537 831 1259 
-149 184 286 360 452 557 851 1279 
-169 204 306 380 472 577 871 1299 
-189 224 326 400 492 597 891 1319 
-209 244 346 420 512 617 911 1339 
-229 264 366 440 532 637 931 1359 
-249 284 386 460 552 657 951 1379 
-269 304 406 480 572 677 971 1399 
-289 324 426 500 592 697 991 1419 
-309 344 446 520 612 717 1011 1439 
-329 364 466 540 632 737 1031 1459 
-349 384 486 560 652 757 1051 1479 
-19 369 404 506 580 672 777 1071 
-39 389 424 526 600 692 797 1091 
-59 409 444 546 620 712 817 1111 
-79 429 464 566 640 732 837 1131 
-99 449 484 586 660 752 857 1151 
-119 469 504 606 680 772 877 1171 
-139 489 524 626 700 792 897 1191 
-159 509 544 646 720 812 917 1211 
-179 529 564 666 740 832 937 1231 
-199 549 584 686 760 852 957 1251 
-219 569 604 706 780 872 977 1271 
-239 589 624 726 800 892 997 1291 
-259 609 644 746 820 912 1017 1311 
-279 629 664 766 840 932 1037 1331 
-299 649 684 786 860 952 1057 1351 
-319 669 704 806 880 972 1077 1371 
-339 689 724 826 900 992 1097 1391 
-359 709 744 846 920 1012 1117 1411 
-379 729 764 866 940 1032 1137 1431 
-399 749 784 886 960 1052 1157 1451 
-419 769 804 906 980 1072 1177 1471 
-11 439 789 824 926 1000 1092 1197 
-31 459 809 844 946 1020 1112 1217 
-51 479 829 864 966 1040 1132 1237 
-71 499 849 884 986 1060 1152 1257 
-91 519 869 904 1006 1080 1172 1277 
-111 539 889 924 1026 1100 1192 1297 
-131 559 909 944 1046 1120 1212 1317 
-151 579 929 964 1066 1140 1232 1337 
-171 599 949 984 1086 1160 1252 1357 
-191 619 969 1004 1106 1180 1272 1377 
-211 639 989 1024 1126 1200 1292 1397 
-231 659 1009 1044 1146 1220 1312 1417 
-251 679 1029 1064 1166 1240 1332 1437 
-271 699 1049 1084 1186 1260 1352 1457 
-291 719 1069 1104 1206 1280 1372 1477 
-17 311 739 1089 1124 1226 1300 1392 
-37 331 759 1109 1144 1246 1320 1412 
-57 351 779 1129 1164 1266 1340 1432 
-77 371 799 1149 1184 1286 1360 1452 
-97 391 819 1169 1204 1306 1380 1472 
-12 117 411 839 1189 1224 1326 1400 
-32 137 431 859 1209 1244 1346 1420 
-52 157 451 879 1229 1264 1366 1440 
-72 177 471 899 1249 1284 1386 1460 
-92 197 491 919 1269 1304 1406 1480 
-20 112 217 511 939 1289 1324 1426 
-40 132 237 531 959 1309 1344 1446 
-60 152 257 551 979 1329 1364 1466 
-6 80 172 277 571 999 1349 1384 
-26 100 192 297 591 1019 1369 1404 
-46 120 212 317 611 1039 1389 1424 
-66 140 232 337 631 1059 1409 1444 
-86 160 252 357 651 1079 1429 1464 
-4 106 180 272 377 671 1099 1449 
-24 126 200 292 397 691 1119 1469 
-9 44 146 220 312 417 711 1139 
-29 64 166 240 332 437 731 1159 
-49 84 186 260 352 457 751 1179 
-69 104 206 280 372 477 771 1199 
-89 124 226 300 392 497 791 1219 
-10 55 229 400 733 1099 1183 1422 
-30 75 249 420 753 1119 1203 1442 
-50 95 269 440 773 1139 1223 1462 
-2 70 115 289 460 793 1159 1243 
-22 90 135 309 480 813 1179 1263 
-42 110 155 329 500 833 1199 1283 
-62 130 175 349 520 853 1219 1303 
-82 150 195 369 540 873 1239 1323 
-102 170 215 389 560 893 1259 1343 
-122 190 235 409 580 913 1279 1363 
-142 210 255 429 600 933 1299 1383 
-162 230 275 449 620 953 1319 1403 
-182 250 295 469 640 973 1339 1423 
-202 270 315 489 660 993 1359 1443 
-222 290 335 509 680 1013 1379 1463 
-3 242 310 355 529 700 1033 1399 
-23 262 330 375 549 720 1053 1419 
-43 282 350 395 569 740 1073 1439 
-63 302 370 415 589 760 1093 1459 
-83 322 390 435 609 780 1113 1479 
-19 103 342 410 455 629 800 1133 
-39 123 362 430 475 649 820 1153 
-59 143 382 450 495 669 840 1173 
-79 163 402 470 515 689 860 1193 
-99 183 422 490 535 709 880 1213 
-119 203 442 510 555 729 900 1233 
-139 223 462 530 575 749 920 1253 
-159 243 482 550 595 769 940 1273 
-179 263 502 570 615 789 960 1293 
-199 283 522 590 635 809 980 1313 
-219 303 542 610 655 829 1000 1333 
-239 323 562 630 675 849 1020 1353 
-259 343 582 650 695 869 1040 1373 
-279 363 602 670 715 889 1060 1393 
-299 383 622 690 735 909 1080 1413 
-319 403 642 710 755 929 1100 1433 
-339 423 662 730 775 949 1120 1453 
-359 443 682 750 795 969 1140 1473 
-13 379 463 702 770 815 989 1160 
-33 399 483 722 790 835 1009 1180 
-53 419 503 742 810 855 1029 1200 
-73 439 523 762 830 875 1049 1220 
-93 459 543 782 850 895 1069 1240 
-113 479 563 802 870 915 1089 1260 
-133 499 583 822 890 935 1109 1280 
-153 519 603 842 910 955 1129 1300 
-173 539 623 862 930 975 1149 1320 
-193 559 643 882 950 995 1169 1340 
-213 579 663 902 970 1015 1189 1360 
-233 599 683 922 990 1035 1209 1380 
-253 619 703 942 1010 1055 1229 1400 
-273 639 723 962 1030 1075 1249 1420 
-293 659 743 982 1050 1095 1269 1440 
-313 679 763 1002 1070 1115 1289 1460 
-333 699 783 1022 1090 1135 1309 1480 
-20 353 719 803 1042 1110 1155 1329 
-40 373 739 823 1062 1130 1175 1349 
-60 393 759 843 1082 1150 1195 1369 
-80 413 779 863 1102 1170 1215 1389 
-100 433 799 883 1122 1190 1235 1409 
-120 453 819 903 1142 1210 1255 1429 
-140 473 839 923 1162 1230 1275 1449 
-160 493 859 943 1182 1250 1295 1469 
-9 180 513 879 963 1202 1270 1315 
-29 200 533 899 983 1222 1290 1335 
-49 220 553 919 1003 1242 1310 1355 
-69 240 573 939 1023 1262 1330 1375 
-89 260 593 959 1043 1282 1350 1395 
-109 280 613 979 1063 1302 1370 1415 
-129 300 633 999 1083 1322 1390 1435 
-149 320 653 1019 1103 1342 1410 1455 
-169 340 673 1039 1123 1362 1430 1475 
-15 189 360 693 1059 1143 1382 1450 
-35 209 380 713 1079 1163 1402 1470 
-48 333 367 526 565 1219 1335 1461 
-1 68 353 387 546 585 1239 1355 
-21 88 373 407 566 605 1259 1375 
-41 108 393 427 586 625 1279 1395 
-61 128 413 447 606 645 1299 1415 
-81 148 433 467 626 665 1319 1435 
-101 168 453 487 646 685 1339 1455 
-121 188 473 507 666 705 1359 1475 
-15 141 208 493 527 686 725 1379 
-35 161 228 513 547 706 745 1399 
-55 181 248 533 567 726 765 1419 
-75 201 268 553 587 746 785 1439 
-95 221 288 573 607 766 805 1459 
-115 241 308 593 627 786 825 1479 
-19 135 261 328 613 647 806 845 
-39 155 281 348 633 667 826 865 
-59 175 301 368 653 687 846 885 
-79 195 321 388 673 707 866 905 
-99 215 341 408 693 727 886 925 
-119 235 361 428 713 747 906 945 
-139 255 381 448 733 767 926 965 
-159 275 401 468 753 787 946 985 
-179 295 421 488 773 807 966 1005 
-199 315 441 508 793 827 986 1025 
-219 335 461 528 813 847 1006 1045 
-239 355 481 548 833 867 1026 1065 
-259 375 501 568 853 887 1046 1085 
-279 395 521 588 873 907 1066 1105 
-299 415 541 608 893 927 1086 1125 
-319 435 561 628 913 947 1106 1145 
-339 455 581 648 933 967 1126 1165 
-359 475 601 668 953 987 1146 1185 
-379 495 621 688 973 1007 1166 1205 
-399 515 641 708 993 1027 1186 1225 
-419 535 661 728 1013 1047 1206 1245 
-439 555 681 748 1033 1067 1226 1265 
-459 575 701 768 1053 1087 1246 1285 
-479 595 721 788 1073 1107 1266 1305 
-499 615 741 808 1093 1127 1286 1325 
-519 635 761 828 1113 1147 1306 1345 
-539 655 781 848 1133 1167 1326 1365 
-559 675 801 868 1153 1187 1346 1385 
-579 695 821 888 1173 1207 1366 1405 
-599 715 841 908 1193 1227 1386 1425 
-619 735 861 928 1213 1247 1406 1445 
-639 755 881 948 1233 1267 1426 1465 
-5 659 775 901 968 1253 1287 1446 
-25 679 795 921 988 1273 1307 1466 
-6 45 699 815 941 1008 1293 1327 
-26 65 719 835 961 1028 1313 1347 
-46 85 739 855 981 1048 1333 1367 
-66 105 759 875 1001 1068 1353 1387 
-86 125 779 895 1021 1088 1373 1407 
-106 145 799 915 1041 1108 1393 1427 
-126 165 819 935 1061 1128 1413 1447 
-146 185 839 955 1081 1148 1433 1467 
-7 166 205 859 975 1101 1168 1453 
-27 186 225 879 995 1121 1188 1473 
-13 47 206 245 899 1015 1141 1208 
-33 67 226 265 919 1035 1161 1228 
-53 87 246 285 939 1055 1181 1248 
-73 107 266 305 959 1075 1201 1268 
-93 127 286 325 979 1095 1221 1288 
-113 147 306 345 999 1115 1241 1308 
-133 167 326 365 1019 1135 1261 1328 
-153 187 346 385 1039 1155 1281 1348 
-173 207 366 405 1059 1175 1301 1368 
-193 227 386 425 1079 1195 1321 1388 
-213 247 406 445 1099 1215 1341 1408 
-233 267 426 465 1119 1235 1361 1428 
-253 287 446 485 1139 1255 1381 1448 
-273 307 466 505 1159 1275 1401 1468 
-8 293 327 486 525 1179 1295 1421 
-28 313 347 506 545 1199 1315 1441 
-15 64 287 712 894 1111 1357 1376 
-35 84 307 732 914 1131 1377 1396 
-55 104 327 752 934 1151 1397 1416 
-75 124 347 772 954 1171 1417 1436 
-95 144 367 792 974 1191 1437 1456 
-115 164 387 812 994 1211 1457 1476 
-16 135 184 407 832 1014 1231 1477 
-17 36 155 204 427 852 1034 1251 
-37 56 175 224 447 872 1054 1271 
-57 76 195 244 467 892 1074 1291 
-77 96 215 264 487 912 1094 1311 
-97 116 235 284 507 932 1114 1331 
-117 136 255 304 527 952 1134 1351 
-137 156 275 324 547 972 1154 1371 
-157 176 295 344 567 992 1174 1391 
-177 196 315 364 587 1012 1194 1411 
-197 216 335 384 607 1032 1214 1431 
-217 236 355 404 627 1052 1234 1451 
-237 256 375 424 647 1072 1254 1471 
-11 257 276 395 444 667 1092 1274 
-31 277 296 415 464 687 1112 1294 
-51 297 316 435 484 707 1132 1314 
-71 317 336 455 504 727 1152 1334 
-91 337 356 475 524 747 1172 1354 
-111 357 376 495 544 767 1192 1374 
-131 377 396 515 564 787 1212 1394 
-151 397 416 535 584 807 1232 1414 
-171 417 436 555 604 827 1252 1434 
-191 437 456 575 624 847 1272 1454 
-211 457 476 595 644 867 1292 1474 
-14 231 477 496 615 664 887 1312 
-34 251 497 516 635 684 907 1332 
-54 271 517 536 655 704 927 1352 
-74 291 537 556 675 724 947 1372 
-94 311 557 576 695 744 967 1392 
-114 331 577 596 715 764 987 1412 
-134 351 597 616 735 784 1007 1432 
-154 371 617 636 755 804 1027 1452 
-174 391 637 656 775 824 1047 1472 
-12 194 411 657 676 795 844 1067 
-32 214 431 677 696 815 864 1087 
-52 234 451 697 716 835 884 1107 
-72 254 471 717 736 855 904 1127 
-92 274 491 737 756 875 924 1147 
-112 294 511 757 776 895 944 1167 
-132 314 531 777 796 915 964 1187 
-152 334 551 797 816 935 984 1207 
-172 354 571 817 836 955 1004 1227 
-192 374 591 837 856 975 1024 1247 
-212 394 611 857 876 995 1044 1267 
-232 414 631 877 896 1015 1064 1287 
-252 434 651 897 916 1035 1084 1307 
-272 454 671 917 936 1055 1104 1327 
-292 474 691 937 956 1075 1124 1347 
-312 494 711 957 976 1095 1144 1367 
-332 514 731 977 996 1115 1164 1387 
-352 534 751 997 1016 1135 1184 1407 
-372 554 771 1017 1036 1155 1204 1427 
-392 574 791 1037 1056 1175 1224 1447 
-412 594 811 1057 1076 1195 1244 1467 
-7 432 614 831 1077 1096 1215 1264 
-27 452 634 851 1097 1116 1235 1284 
-47 472 654 871 1117 1136 1255 1304 
-67 492 674 891 1137 1156 1275 1324 
-87 512 694 911 1157 1176 1295 1344 
-107 532 714 931 1177 1196 1315 1364 
-127 552 734 951 1197 1216 1335 1384 
-147 572 754 971 1217 1236 1355 1404 
-167 592 774 991 1237 1256 1375 1424 
-187 612 794 1011 1257 1276 1395 1444 
-207 632 814 1031 1277 1296 1415 1464 
-4 227 652 834 1051 1297 1316 1435 
-24 247 672 854 1071 1317 1336 1455 
-44 267 692 874 1091 1337 1356 1475 
-10 229 346 843 985 1056 1173 1461 
-1 30 249 366 863 1005 1076 1193 
-21 50 269 386 883 1025 1096 1213 
-41 70 289 406 903 1045 1116 1233 
-61 90 309 426 923 1065 1136 1253 
-81 110 329 446 943 1085 1156 1273 
-101 130 349 466 963 1105 1176 1293 
-121 150 369 486 983 1125 1196 1313 
-141 170 389 506 1003 1145 1216 1333 
-161 190 409 526 1023 1165 1236 1353 
-181 210 429 546 1043 1185 1256 1373 
-201 230 449 566 1063 1205 1276 1393 
-221 250 469 586 1083 1225 1296 1413 
-241 270 489 606 1103 1245 1316 1433 
-261 290 509 626 1123 1265 1336 1453 
-281 310 529 646 1143 1285 1356 1473 
-13 301 330 549 666 1163 1305 1376 
-33 321 350 569 686 1183 1325 1396 
-53 341 370 589 706 1203 1345 1416 
-73 361 390 609 726 1223 1365 1436 
-93 381 410 629 746 1243 1385 1456 
-113 401 430 649 766 1263 1405 1476 
-16 133 421 450 669 786 1283 1425 
-36 153 441 470 689 806 1303 1445 
-56 173 461 490 709 826 1323 1465 
-5 76 193 481 510 729 846 1343 
-25 96 213 501 530 749 866 1363 
-45 116 233 521 550 769 886 1383 
-65 136 253 541 570 789 906 1403 
-85 156 273 561 590 809 926 1423 
-105 176 293 581 610 829 946 1443 
-125 196 313 601 630 849 966 1463 
-3 145 216 333 621 650 869 986 
-23 165 236 353 641 670 889 1006 
-43 185 256 373 661 690 909 1026 
-63 205 276 393 681 710 929 1046 
-83 225 296 413 701 730 949 1066 
-103 245 316 433 721 750 969 1086 
-123 265 336 453 741 770 989 1106 
-143 285 356 473 761 790 1009 1126 
-163 305 376 493 781 810 1029 1146 
-183 325 396 513 801 830 1049 1166 
-203 345 416 533 821 850 1069 1186 
-223 365 436 553 841 870 1089 1206 
-243 385 456 573 861 890 1109 1226 
-263 405 476 593 881 910 1129 1246 
-283 425 496 613 901 930 1149 1266 
-303 445 516 633 921 950 1169 1286 
-323 465 536 653 941 970 1189 1306 
-343 485 556 673 961 990 1209 1326 
-363 505 576 693 981 1010 1229 1346 
-383 525 596 713 1001 1030 1249 1366 
-403 545 616 733 1021 1050 1269 1386 
-423 565 636 753 1041 1070 1289 1406 
-443 585 656 773 1061 1090 1309 1426 
-463 605 676 793 1081 1110 1329 1446 
-483 625 696 813 1101 1130 1349 1466 
-6 503 645 716 833 1121 1150 1369 
-26 523 665 736 853 1141 1170 1389 
-46 543 685 756 873 1161 1190 1409 
-66 563 705 776 893 1181 1210 1429 
-86 583 725 796 913 1201 1230 1449 
-106 603 745 816 933 1221 1250 1469 
-9 126 623 765 836 953 1241 1270 
-29 146 643 785 856 973 1261 1290 
-49 166 663 805 876 993 1281 1310 
-69 186 683 825 896 1013 1301 1330 
-89 206 703 845 916 1033 1321 1350 
-109 226 723 865 936 1053 1341 1370 
-129 246 743 885 956 1073 1361 1390 
-149 266 763 905 976 1093 1381 1410 
-169 286 783 925 996 1113 1401 1430 
-189 306 803 945 1016 1133 1421 1450 
-209 326 823 965 1036 1153 1441 1470 
-227 498 576 588 642 692 884 1211 
-247 518 596 608 662 712 904 1231 
-267 538 616 628 682 732 924 1251 
-287 558 636 648 702 752 944 1271 
-307 578 656 668 722 772 964 1291 
-327 598 676 688 742 792 984 1311 
-347 618 696 708 762 812 1004 1331 
-367 638 716 728 782 832 1024 1351 
-387 658 736 748 802 852 1044 1371 
-407 678 756 768 822 872 1064 1391 
-427 698 776 788 842 892 1084 1411 
-447 718 796 808 862 912 1104 1431 
-467 738 816 828 882 932 1124 1451 
-487 758 836 848 902 952 1144 1471 
-11 507 778 856 868 922 972 1164 
-31 527 798 876 888 942 992 1184 
-51 547 818 896 908 962 1012 1204 
-71 567 838 916 928 982 1032 1224 
-91 587 858 936 948 1002 1052 1244 
-111 607 878 956 968 1022 1072 1264 
-131 627 898 976 988 1042 1092 1284 
-151 647 918 996 1008 1062 1112 1304 
-171 667 938 1016 1028 1082 1132 1324 
-191 687 958 1036 1048 1102 1152 1344 
-211 707 978 1056 1068 1122 1172 1364 
-231 727 998 1076 1088 1142 1192 1384 
-251 747 1018 1096 1108 1162 1212 1404 
-271 767 1038 1116 1128 1182 1232 1424 
-291 787 1058 1136 1148 1202 1252 1444 
-311 807 1078 1156 1168 1222 1272 1464 
-4 331 827 1098 1176 1188 1242 1292 
-24 351 847 1118 1196 1208 1262 1312 
-44 371 867 1138 1216 1228 1282 1332 
-64 391 887 1158 1236 1248 1302 1352 
-84 411 907 1178 1256 1268 1322 1372 
-104 431 927 1198 1276 1288 1342 1392 
-124 451 947 1218 1296 1308 1362 1412 
-144 471 967 1238 1316 1328 1382 1432 
-164 491 987 1258 1336 1348 1402 1452 
-184 511 1007 1278 1356 1368 1422 1472 
-12 204 531 1027 1298 1376 1388 1442 
-32 224 551 1047 1318 1396 1408 1462 
-2 52 244 571 1067 1338 1416 1428 
-22 72 264 591 1087 1358 1436 1448 
-42 92 284 611 1107 1378 1456 1468 
-8 62 112 304 631 1127 1398 1476 
-16 28 82 132 324 651 1147 1418 
-36 48 102 152 344 671 1167 1438 
-56 68 122 172 364 691 1187 1458 
-76 88 142 192 384 711 1207 1478 
-18 96 108 162 212 404 731 1227 
-38 116 128 182 232 424 751 1247 
-58 136 148 202 252 444 771 1267 
-78 156 168 222 272 464 791 1287 
-98 176 188 242 292 484 811 1307 
-118 196 208 262 312 504 831 1327 
-138 216 228 282 332 524 851 1347 
-158 236 248 302 352 544 871 1367 
-178 256 268 322 372 564 891 1387 
-198 276 288 342 392 584 911 1407 
-218 296 308 362 412 604 931 1427 
-238 316 328 382 432 624 951 1447 
-258 336 348 402 452 644 971 1467 
-7 278 356 368 422 472 664 991 
-27 298 376 388 442 492 684 1011 
-47 318 396 408 462 512 704 1031 
-67 338 416 428 482 532 724 1051 
-87 358 436 448 502 552 744 1071 
-107 378 456 468 522 572 764 1091 
-127 398 476 488 542 592 784 1111 
-147 418 496 508 562 612 804 1131 
-167 438 516 528 582 632 824 1151 
-187 458 536 548 602 652 844 1171 
-207 478 556 568 622 672 864 1191 
-208 701 749 777 1172 1199 1280 1424 
-228 721 769 797 1192 1219 1300 1444 
-248 741 789 817 1212 1239 1320 1464 
-4 268 761 809 837 1232 1259 1340 
-24 288 781 829 857 1252 1279 1360 
-44 308 801 849 877 1272 1299 1380 
-64 328 821 869 897 1292 1319 1400 
-84 348 841 889 917 1312 1339 1420 
-104 368 861 909 937 1332 1359 1440 
-124 388 881 929 957 1352 1379 1460 
-144 408 901 949 977 1372 1399 1480 
-20 164 428 921 969 997 1392 1419 
-40 184 448 941 989 1017 1412 1439 
-60 204 468 961 1009 1037 1432 1459 
-80 224 488 981 1029 1057 1452 1479 
-19 100 244 508 1001 1049 1077 1472 
-12 39 120 264 528 1021 1069 1097 
-32 59 140 284 548 1041 1089 1117 
-52 79 160 304 568 1061 1109 1137 
-72 99 180 324 588 1081 1129 1157 
-92 119 200 344 608 1101 1149 1177 
-112 139 220 364 628 1121 1169 1197 
-132 159 240 384 648 1141 1189 1217 
-152 179 260 404 668 1161 1209 1237 
-172 199 280 424 688 1181 1229 1257 
-192 219 300 444 708 1201 1249 1277 
-212 239 320 464 728 1221 1269 1297 
-232 259 340 484 748 1241 1289 1317 
-252 279 360 504 768 1261 1309 1337 
-272 299 380 524 788 1281 1329 1357 
-292 319 400 544 808 1301 1349 1377 
-312 339 420 564 828 1321 1369 1397 
-332 359 440 584 848 1341 1389 1417 
-352 379 460 604 868 1361 1409 1437 
-372 399 480 624 888 1381 1429 1457 
-392 419 500 644 908 1401 1449 1477 
-17 412 439 520 664 928 1421 1469 
-9 37 432 459 540 684 948 1441 
-29 57 452 479 560 704 968 1461 
-1 49 77 472 499 580 724 988 
-21 69 97 492 519 600 744 1008 
-41 89 117 512 539 620 764 1028 
-61 109 137 532 559 640 784 1048 
-81 129 157 552 579 660 804 1068 
-101 149 177 572 599 680 824 1088 
-121 169 197 592 619 700 844 1108 
-141 189 217 612 639 720 864 1128 
-161 209 237 632 659 740 884 1148 
-181 229 257 652 679 760 904 1168 
-201 249 277 672 699 780 924 1188 
-221 269 297 692 719 800 944 1208 
-241 289 317 712 739 820 964 1228 
-261 309 337 732 759 840 984 1248 
-281 329 357 752 779 860 1004 1268 
-301 349 377 772 799 880 1024 1288 
-321 369 397 792 819 900 1044 1308 
-341 389 417 812 839 920 1064 1328 
-361 409 437 832 859 940 1084 1348 
-381 429 457 852 879 960 1104 1368 
-401 449 477 872 899 980 1124 1388 
-421 469 497 892 919 1000 1144 1408 
-441 489 517 912 939 1020 1164 1428 
-461 509 537 932 959 1040 1184 1448 
-481 529 557 952 979 1060 1204 1468 
-8 501 549 577 972 999 1080 1224 
-28 521 569 597 992 1019 1100 1244 
-48 541 589 617 1012 1039 1120 1264 
-68 561 609 637 1032 1059 1140 1284 
-88 581 629 657 1052 1079 1160 1304 
-108 601 649 677 1072 1099 1180 1324 
-128 621 669 697 1092 1119 1200 1344 
-148 641 689 717 1112 1139 1220 1364 
-168 661 709 737 1132 1159 1240 1384 
-188 681 729 757 1152 1179 1260 1404 
-78 687 774 890 1116 1142 1431 1443 
-98 707 794 910 1136 1162 1451 1463 
-3 118 727 814 930 1156 1182 1471 
-11 23 138 747 834 950 1176 1202 
-31 43 158 767 854 970 1196 1222 
-51 63 178 787 874 990 1216 1242 
-71 83 198 807 894 1010 1236 1262 
-91 103 218 827 914 1030 1256 1282 
-111 123 238 847 934 1050 1276 1302 
-131 143 258 867 954 1070 1296 1322 
-151 163 278 887 974 1090 1316 1342 
-171 183 298 907 994 1110 1336 1362 
-191 203 318 927 1014 1130 1356 1382 
-211 223 338 947 1034 1150 1376 1402 
-231 243 358 967 1054 1170 1396 1422 
-251 263 378 987 1074 1190 1416 1442 
-271 283 398 1007 1094 1210 1436 1462 
-2 291 303 418 1027 1114 1230 1456 
-22 311 323 438 1047 1134 1250 1476 
-16 42 331 343 458 1067 1154 1270 
-36 62 351 363 478 1087 1174 1290 
-56 82 371 383 498 1107 1194 1310 
-76 102 391 403 518 1127 1214 1330 
-96 122 411 423 538 1147 1234 1350 
-116 142 431 443 558 1167 1254 1370 
-136 162 451 463 578 1187 1274 1390 
-156 182 471 483 598 1207 1294 1410 
-176 202 491 503 618 1227 1314 1430 
-196 222 511 523 638 1247 1334 1450 
-216 242 531 543 658 1267 1354 1470 
-10 236 262 551 563 678 1287 1374 
-30 256 282 571 583 698 1307 1394 
-50 276 302 591 603 718 1327 1414 
-70 296 322 611 623 738 1347 1434 
-90 316 342 631 643 758 1367 1454 
-110 336 362 651 663 778 1387 1474 
-14 130 356 382 671 683 798 1407 
-34 150 376 402 691 703 818 1427 
-54 170 396 422 711 723 838 1447 
-74 190 416 442 731 743 858 1467 
-7 94 210 436 462 751 763 878 
-27 114 230 456 482 771 783 898 
-47 134 250 476 502 791 803 918 
-67 154 270 496 522 811 823 938 
-87 174 290 516 542 831 843 958 
-107 194 310 536 562 851 863 978 
-127 214 330 556 582 871 883 998 
-147 234 350 576 602 891 903 1018 
-167 254 370 596 622 911 923 1038 
-187 274 390 616 642 931 943 1058 
-207 294 410 636 662 951 963 1078 
-227 314 430 656 682 971 983 1098 
-247 334 450 676 702 991 1003 1118 
-267 354 470 696 722 1011 1023 1138 
-287 374 490 716 742 1031 1043 1158 
-307 394 510 736 762 1051 1063 1178 
-327 414 530 756 782 1071 1083 1198 
-347 434 550 776 802 1091 1103 1218 
-367 454 570 796 822 1111 1123 1238 
-387 474 590 816 842 1131 1143 1258 
-407 494 610 836 862 1151 1163 1278 
-427 514 630 856 882 1171 1183 1298 
-447 534 650 876 902 1191 1203 1318 
-467 554 670 896 922 1211 1223 1338 
-487 574 690 916 942 1231 1243 1358 
-507 594 710 936 962 1251 1263 1378 
-527 614 730 956 982 1271 1283 1398 
-547 634 750 976 1002 1291 1303 1418 
-567 654 770 996 1022 1311 1323 1438 
-587 674 790 1016 1042 1331 1343 1458 
-607 694 810 1036 1062 1351 1363 1478 
-18 627 714 830 1056 1082 1371 1383 
-38 647 734 850 1076 1102 1391 1403 
-58 667 754 870 1096 1122 1411 1423 
-917 984 1038 1250 
-937 1004 1058 1270 
-957 1024 1078 1290 
-977 1044 1098 1310 
-997 1064 1118 1330 
-1017 1084 1138 1350 
-1037 1104 1158 1370 
-1057 1124 1178 1390 
-1077 1144 1198 1410 
-1097 1164 1218 1430 
-1117 1184 1238 1450 
-1137 1204 1258 1470 
-10 1157 1224 1278 
-30 1177 1244 1298 
-50 1197 1264 1318 
-70 1217 1284 1338 
-90 1237 1304 1358 
-110 1257 1324 1378 
-130 1277 1344 1398 
-150 1297 1364 1418 
-170 1317 1384 1438 
-190 1337 1404 1458 
-210 1357 1424 1478 
-18 230 1377 1444 
-38 250 1397 1464 
-4 58 270 1417 
-24 78 290 1437 
-44 98 310 1457 
-64 118 330 1477 
-17 84 138 350 
-37 104 158 370 
-57 124 178 390 
-77 144 198 410 
-97 164 218 430 
-117 184 238 450 
-137 204 258 470 
-157 224 278 490 
-177 244 298 510 
-197 264 318 530 
-217 284 338 550 
-237 304 358 570 
-257 324 378 590 
-277 344 398 610 
-297 364 418 630 
-317 384 438 650 
-337 404 458 670 
-357 424 478 690 
-377 444 498 710 
-397 464 518 730 
-417 484 538 750 
-437 504 558 770 
-457 524 578 790 
-477 544 598 810 
-497 564 618 830 
-517 584 638 850 
-537 604 658 870 
-557 624 678 890 
-577 644 698 910 
-597 664 718 930 
-617 684 738 950 
-637 704 758 970 
-657 724 778 990 
-677 744 798 1010 
-697 764 818 1030 
-717 784 838 1050 
-737 804 858 1070 
-757 824 878 1090 
-777 844 898 1110 
-797 864 918 1130 
-817 884 938 1150 
-837 904 958 1170 
-857 924 978 1190 
-877 944 998 1210 
-897 964 1018 1230 
-68 102 427 731 
-88 122 447 751 
-108 142 467 771 
-128 162 487 791 
-148 182 507 811 
-168 202 527 831 
-188 222 547 851 
-208 242 567 871 
-228 262 587 891 
-248 282 607 911 
-268 302 627 931 
-288 322 647 951 
-308 342 667 971 
-328 362 687 991 
-348 382 707 1011 
-368 402 727 1031 
-388 422 747 1051 
-408 442 767 1071 
-428 462 787 1091 
-448 482 807 1111 
-468 502 827 1131 
-488 522 847 1151 
-508 542 867 1171 
-528 562 887 1191 
-548 582 907 1211 
-568 602 927 1231 
-588 622 947 1251 
-608 642 967 1271 
-628 662 987 1291 
-648 682 1007 1311 
-668 702 1027 1331 
-688 722 1047 1351 
-708 742 1067 1371 
-728 762 1087 1391 
-748 782 1107 1411 
-768 802 1127 1431 
-788 822 1147 1451 
-808 842 1167 1471 
-11 828 862 1187 
-31 848 882 1207 
-51 868 902 1227 
-71 888 922 1247 
-91 908 942 1267 
-111 928 962 1287 
-131 948 982 1307 
-151 968 1002 1327 
-171 988 1022 1347 
-191 1008 1042 1367 
-211 1028 1062 1387 
-231 1048 1082 1407 
-251 1068 1102 1427 
-271 1088 1122 1447 
-291 1108 1142 1467 
-7 311 1128 1162 
-27 331 1148 1182 
-47 351 1168 1202 
-67 371 1188 1222 
-87 391 1208 1242 
-107 411 1228 1262 
-127 431 1248 1282 
-147 451 1268 1302 
-167 471 1288 1322 
-187 491 1308 1342 
-207 511 1328 1362 
-227 531 1348 1382 
-247 551 1368 1402 
-267 571 1388 1422 
-287 591 1408 1442 
-307 611 1428 1462 
-2 327 631 1448 
-22 347 651 1468 
-8 42 367 671 
-28 62 387 691 
-48 82 407 711 
-77 176 1058 1228 
-97 196 1078 1248 
-117 216 1098 1268 
-137 236 1118 1288 
-157 256 1138 1308 
-177 276 1158 1328 
-197 296 1178 1348 
-217 316 1198 1368 
-237 336 1218 1388 
-257 356 1238 1408 
-277 376 1258 1428 
-297 396 1278 1448 
-317 416 1298 1468 
-8 337 436 1318 
-28 357 456 1338 
-48 377 476 1358 
-68 397 496 1378 
-88 417 516 1398 
-108 437 536 1418 
-128 457 556 1438 
-148 477 576 1458 
-168 497 596 1478 
-18 188 517 616 
-38 208 537 636 
-58 228 557 656 
-78 248 577 676 
-98 268 597 696 
-118 288 617 716 
-138 308 637 736 
-158 328 657 756 
-178 348 677 776 
-198 368 697 796 
-218 388 717 816 
-238 408 737 836 
-258 428 757 856 
-278 448 777 876 
-298 468 797 896 
-318 488 817 916 
-338 508 837 936 
-358 528 857 956 
-378 548 877 976 
-398 568 897 996 
-418 588 917 1016 
-438 608 937 1036 
-458 628 957 1056 
-478 648 977 1076 
-498 668 997 1096 
-518 688 1017 1116 
-538 708 1037 1136 
-558 728 1057 1156 
-578 748 1077 1176 
-598 768 1097 1196 
-618 788 1117 1216 
-638 808 1137 1236 
-658 828 1157 1256 
-678 848 1177 1276 
-698 868 1197 1296 
-718 888 1217 1316 
-738 908 1237 1336 
-758 928 1257 1356 
-778 948 1277 1376 
-798 968 1297 1396 
-818 988 1317 1416 
-838 1008 1337 1436 
-858 1028 1357 1456 
-878 1048 1377 1476 
-16 898 1068 1397 
-36 918 1088 1417 
-56 938 1108 1437 
-76 958 1128 1457 
-96 978 1148 1477 
-17 116 998 1168 
-37 136 1018 1188 
-57 156 1038 1208 
-411 1129 1219 1240 
-431 1149 1239 1260 
-451 1169 1259 1280 
-471 1189 1279 1300 
-491 1209 1299 1320 
-511 1229 1319 1340 
-531 1249 1339 1360 
-551 1269 1359 1380 
-571 1289 1379 1400 
-591 1309 1399 1420 
-611 1329 1419 1440 
-631 1349 1439 1460 
-651 1369 1459 1480 
-20 671 1389 1479 
-19 40 691 1409 
-39 60 711 1429 
-59 80 731 1449 
-79 100 751 1469 
-9 99 120 771 
-29 119 140 791 
-49 139 160 811 
-69 159 180 831 
-89 179 200 851 
-109 199 220 871 
-129 219 240 891 
-149 239 260 911 
-169 259 280 931 
-189 279 300 951 
-209 299 320 971 
-229 319 340 991 
-249 339 360 1011 
-269 359 380 1031 
-289 379 400 1051 
-309 399 420 1071 
-329 419 440 1091 
-349 439 460 1111 
-369 459 480 1131 
-389 479 500 1151 
-409 499 520 1171 
-429 519 540 1191 
-449 539 560 1211 
-469 559 580 1231 
-489 579 600 1251 
-509 599 620 1271 
-529 619 640 1291 
-549 639 660 1311 
-569 659 680 1331 
-589 679 700 1351 
-609 699 720 1371 
-629 719 740 1391 
-649 739 760 1411 
-669 759 780 1431 
-689 779 800 1451 
-709 799 820 1471 
-11 729 819 840 
-31 749 839 860 
-51 769 859 880 
-71 789 879 900 
-91 809 899 920 
-111 829 919 940 
-131 849 939 960 
-151 869 959 980 
-171 889 979 1000 
-191 909 999 1020 
-211 929 1019 1040 
-231 949 1039 1060 
-251 969 1059 1080 
-271 989 1079 1100 
-291 1009 1099 1120 
-311 1029 1119 1140 
-331 1049 1139 1160 
-351 1069 1159 1180 
-371 1089 1179 1200 
-391 1109 1199 1220 
-185 204 643 1201 
-205 224 663 1221 
-225 244 683 1241 
-245 264 703 1261 
-265 284 723 1281 
-285 304 743 1301 
-305 324 763 1321 
-325 344 783 1341 
-345 364 803 1361 
-365 384 823 1381 
-385 404 843 1401 
-405 424 863 1421 
-425 444 883 1441 
-445 464 903 1461 
-1 465 484 923 
-21 485 504 943 
-41 505 524 963 
-61 525 544 983 
-81 545 564 1003 
-101 565 584 1023 
-121 585 604 1043 
-141 605 624 1063 
-161 625 644 1083 
-181 645 664 1103 
-201 665 684 1123 
-221 685 704 1143 
-241 705 724 1163 
-261 725 744 1183 
-281 745 764 1203 
-301 765 784 1223 
-321 785 804 1243 
-341 805 824 1263 
-361 825 844 1283 
-381 845 864 1303 
-401 865 884 1323 
-421 885 904 1343 
-441 905 924 1363 
-461 925 944 1383 
-481 945 964 1403 
-501 965 984 1423 
-521 985 1004 1443 
-541 1005 1024 1463 
-3 561 1025 1044 
-23 581 1045 1064 
-43 601 1065 1084 
-63 621 1085 1104 
-83 641 1105 1124 
-103 661 1125 1144 
-123 681 1145 1164 
-143 701 1165 1184 
-163 721 1185 1204 
-183 741 1205 1224 
-203 761 1225 1244 
-223 781 1245 1264 
-243 801 1265 1284 
-263 821 1285 1304 
-283 841 1305 1324 
-303 861 1325 1344 
-323 881 1345 1364 
-343 901 1365 1384 
-363 921 1385 1404 
-383 941 1405 1424 
-403 961 1425 1444 
-423 981 1445 1464 
-4 443 1001 1465 
-5 24 463 1021 
-25 44 483 1041 
-45 64 503 1061 
-65 84 523 1081 
-85 104 543 1101 
-105 124 563 1121 
-125 144 583 1141 
-145 164 603 1161 
-165 184 623 1181 
-115 154 409 1283 
-135 174 429 1303 
-155 194 449 1323 
-175 214 469 1343 
-195 234 489 1363 
-215 254 509 1383 
-235 274 529 1403 
-255 294 549 1423 
-275 314 569 1443 
-295 334 589 1463 
-3 315 354 609 
-23 335 374 629 
-43 355 394 649 
-63 375 414 669 
-83 395 434 689 
-103 415 454 709 
-123 435 474 729 
-143 455 494 749 
-163 475 514 769 
-183 495 534 789 
-203 515 554 809 
-223 535 574 829 
-243 555 594 849 
-263 575 614 869 
-283 595 634 889 
-303 615 654 909 
-323 635 674 929 
-343 655 694 949 
-363 675 714 969 
-383 695 734 989 
-403 715 754 1009 
-423 735 774 1029 
-443 755 794 1049 
-463 775 814 1069 
-483 795 834 1089 
-503 815 854 1109 
-523 835 874 1129 
-543 855 894 1149 
-563 875 914 1169 
-583 895 934 1189 
-603 915 954 1209 
-623 935 974 1229 
-643 955 994 1249 
-663 975 1014 1269 
-683 995 1034 1289 
-703 1015 1054 1309 
-723 1035 1074 1329 
-743 1055 1094 1349 
-763 1075 1114 1369 
-783 1095 1134 1389 
-803 1115 1154 1409 
-823 1135 1174 1429 
-843 1155 1194 1449 
-863 1175 1214 1469 
-9 883 1195 1234 
-29 903 1215 1254 
-49 923 1235 1274 
-69 943 1255 1294 
-89 963 1275 1314 
-109 983 1295 1334 
-129 1003 1315 1354 
-149 1023 1335 1374 
-169 1043 1355 1394 
-189 1063 1375 1414 
-209 1083 1395 1434 
-229 1103 1415 1454 
-249 1123 1435 1474 
-14 269 1143 1455 
-34 289 1163 1475 
-15 54 309 1183 
-35 74 329 1203 
-55 94 349 1223 
-75 114 369 1243 
-95 134 389 1263 
-25 130 400 447 
-45 150 420 467 
-65 170 440 487 
-85 190 460 507 
-105 210 480 527 
-125 230 500 547 
-145 250 520 567 
-165 270 540 587 
-185 290 560 607 
-205 310 580 627 
-225 330 600 647 
-245 350 620 667 
-265 370 640 687 
-285 390 660 707 
-305 410 680 727 
-325 430 700 747 
-345 450 720 767 
-365 470 740 787 
-385 490 760 807 
-405 510 780 827 
-425 530 800 847 
-445 550 820 867 
-465 570 840 887 
-485 590 860 907 
-505 610 880 927 
-525 630 900 947 
-545 650 920 967 
-565 670 940 987 
-585 690 960 1007 
-605 710 980 1027 
-625 730 1000 1047 
-645 750 1020 1067 
-665 770 1040 1087 
-685 790 1060 1107 
-705 810 1080 1127 
-725 830 1100 1147 
-745 850 1120 1167 
-765 870 1140 1187 
-785 890 1160 1207 
-805 910 1180 1227 
-825 930 1200 1247 
-845 950 1220 1267 
-865 970 1240 1287 
-885 990 1260 1307 
-905 1010 1280 1327 
-925 1030 1300 1347 
-945 1050 1320 1367 
-965 1070 1340 1387 
-985 1090 1360 1407 
-1005 1110 1380 1427 
-1025 1130 1400 1447 
-1045 1150 1420 1467 
-7 1065 1170 1440 
-27 1085 1190 1460 
-47 1105 1210 1480 
-20 67 1125 1230 
-40 87 1145 1250 
-60 107 1165 1270 
-80 127 1185 1290 
-100 147 1205 1310 
-120 167 1225 1330 
-140 187 1245 1350 
-160 207 1265 1370 
-180 227 1285 1390 
-200 247 1305 1410 
-220 267 1325 1430 
-240 287 1345 1450 
-260 307 1365 1470 
-10 280 327 1385 
-30 300 347 1405 
-50 320 367 1425 
-70 340 387 1445 
-90 360 407 1465 
-5 110 380 427 
-75 320 492 1046 
-95 340 512 1066 
-115 360 532 1086 
-135 380 552 1106 
-155 400 572 1126 
-175 420 592 1146 
-195 440 612 1166 
-215 460 632 1186 
-235 480 652 1206 
-255 500 672 1226 
-275 520 692 1246 
-295 540 712 1266 
-315 560 732 1286 
-335 580 752 1306 
-355 600 772 1326 
-375 620 792 1346 
-395 640 812 1366 
-415 660 832 1386 
-435 680 852 1406 
-455 700 872 1426 
-475 720 892 1446 
-495 740 912 1466 
-6 515 760 932 
-26 535 780 952 
-46 555 800 972 
-66 575 820 992 
-86 595 840 1012 
-106 615 860 1032 
-126 635 880 1052 
-146 655 900 1072 
-166 675 920 1092 
-186 695 940 1112 
-206 715 960 1132 
-226 735 980 1152 
-246 755 1000 1172 
-266 775 1020 1192 
-286 795 1040 1212 
-306 815 1060 1232 
-326 835 1080 1252 
-346 855 1100 1272 
-366 875 1120 1292 
-386 895 1140 1312 
-406 915 1160 1332 
-426 935 1180 1352 
-446 955 1200 1372 
-466 975 1220 1392 
-486 995 1240 1412 
-506 1015 1260 1432 
-526 1035 1280 1452 
-546 1055 1300 1472 
-12 566 1075 1320 
-32 586 1095 1340 
-52 606 1115 1360 
-72 626 1135 1380 
-92 646 1155 1400 
-112 666 1175 1420 
-132 686 1195 1440 
-152 706 1215 1460 
-172 726 1235 1480 
-20 192 746 1255 
-40 212 766 1275 
-60 232 786 1295 
-80 252 806 1315 
-100 272 826 1335 
-120 292 846 1355 
-140 312 866 1375 
-160 332 886 1395 
-180 352 906 1415 
-200 372 926 1435 
-220 392 946 1455 
-240 412 966 1475 
-15 260 432 986 
-35 280 452 1006 
-55 300 472 1026 
-256 732 953 1081 
-276 752 973 1101 
-296 772 993 1121 
-316 792 1013 1141 
-336 812 1033 1161 
-356 832 1053 1181 
-376 852 1073 1201 
-396 872 1093 1221 
-416 892 1113 1241 
-436 912 1133 1261 
-456 932 1153 1281 
-476 952 1173 1301 
-496 972 1193 1321 
-516 992 1213 1341 
-536 1012 1233 1361 
-556 1032 1253 1381 
-576 1052 1273 1401 
-596 1072 1293 1421 
-616 1092 1313 1441 
-636 1112 1333 1461 
-1 656 1132 1353 
-21 676 1152 1373 
-41 696 1172 1393 
-61 716 1192 1413 
-81 736 1212 1433 
-101 756 1232 1453 
-121 776 1252 1473 
-13 141 796 1272 
-33 161 816 1292 
-53 181 836 1312 
-73 201 856 1332 
-93 221 876 1352 
-113 241 896 1372 
-133 261 916 1392 
-153 281 936 1412 
-173 301 956 1432 
-193 321 976 1452 
-213 341 996 1472 
-12 233 361 1016 
-32 253 381 1036 
-52 273 401 1056 
-72 293 421 1076 
-92 313 441 1096 
-112 333 461 1116 
-132 353 481 1136 
-152 373 501 1156 
-172 393 521 1176 
-192 413 541 1196 
-212 433 561 1216 
-232 453 581 1236 
-252 473 601 1256 
-272 493 621 1276 
-292 513 641 1296 
-312 533 661 1316 
-332 553 681 1336 
-352 573 701 1356 
-372 593 721 1376 
-392 613 741 1396 
-412 633 761 1416 
-432 653 781 1436 
-452 673 801 1456 
-472 693 821 1476 
-16 492 713 841 
-36 512 733 861 
-56 532 753 881 
-76 552 773 901 
-96 572 793 921 
-116 592 813 941 
-136 612 833 961 
-156 632 853 981 
-176 652 873 1001 
-196 672 893 1021 
-216 692 913 1041 
-236 712 933 1061 
-202 293 354 1346 
-222 313 374 1366 
-242 333 394 1386 
-262 353 414 1406 
-282 373 434 1426 
-302 393 454 1446 
-322 413 474 1466 
-6 342 433 494 
-26 362 453 514 
-46 382 473 534 
-66 402 493 554 
-86 422 513 574 
-106 442 533 594 
-126 462 553 614 
-146 482 573 634 
-166 502 593 654 
-186 522 613 674 
-206 542 633 694 
-226 562 653 714 
-246 582 673 734 
-266 602 693 754 
-286 622 713 774 
-306 642 733 794 
-326 662 753 814 
-346 682 773 834 
-366 702 793 854 
-386 722 813 874 
-406 742 833 894 
-426 762 853 914 
-446 782 873 934 
-466 802 893 954 
-486 822 913 974 
-506 842 933 994 
-526 862 953 1014 
-546 882 973 1034 
-566 902 993 1054 
-586 922 1013 1074 
-606 942 1033 1094 
-626 962 1053 1114 
-646 982 1073 1134 
-666 1002 1093 1154 
-686 1022 1113 1174 
-706 1042 1133 1194 
-726 1062 1153 1214 
-746 1082 1173 1234 
-766 1102 1193 1254 
-786 1122 1213 1274 
-806 1142 1233 1294 
-826 1162 1253 1314 
-846 1182 1273 1334 
-866 1202 1293 1354 
-886 1222 1313 1374 
-906 1242 1333 1394 
-926 1262 1353 1414 
-946 1282 1373 1434 
-966 1302 1393 1454 
-986 1322 1413 1474 
-14 1006 1342 1433 
-34 1026 1362 1453 
-54 1046 1382 1473 
-13 74 1066 1402 
-33 94 1086 1422 
-53 114 1106 1442 
-73 134 1126 1462 
-2 93 154 1146 
-22 113 174 1166 
-42 133 194 1186 
-62 153 214 1206 
-82 173 234 1226 
-102 193 254 1246 
-122 213 274 1266 
-142 233 294 1286 
-162 253 314 1306 
-182 273 334 1326 
-11 241 794 
-31 261 814 
-51 281 834 
-71 301 854 
-91 321 874 
-111 341 894 
-131 361 914 
-151 381 934 
-171 401 954 
-191 421 974 
-211 441 994 
-231 461 1014 
-251 481 1034 
-271 501 1054 
-291 521 1074 
-311 541 1094 
-331 561 1114 
-351 581 1134 
-371 601 1154 
-391 621 1174 
-411 641 1194 
-431 661 1214 
-451 681 1234 
-471 701 1254 
-491 721 1274 
-511 741 1294 
-531 761 1314 
-551 781 1334 
-571 801 1354 
-591 821 1374 
-611 841 1394 
-631 861 1414 
-651 881 1434 
-671 901 1454 
-691 921 1474 
-14 711 941 
-34 731 961 
-54 751 981 
-74 771 1001 
-94 791 1021 
-114 811 1041 
-134 831 1061 
-154 851 1081 
-174 871 1101 
-194 891 1121 
-214 911 1141 
-234 931 1161 
-254 951 1181 
-274 971 1201 
-294 991 1221 
-314 1011 1241 
-334 1031 1261 
-354 1051 1281 
-374 1071 1301 
-394 1091 1321 
-414 1111 1341 
-434 1131 1361 
-454 1151 1381 
-474 1171 1401 
-494 1191 1421 
-514 1211 1441 
-534 1231 1461 
-1 554 1251 
-21 574 1271 
-41 594 1291 
-61 614 1311 
-81 634 1331 
-101 654 1351 
-121 674 1371 
-141 694 1391 
-161 714 1411 
-181 734 1431 
-201 754 1451 
-221 774 1471 
-408 684 1379 
-428 704 1399 
-448 724 1419 
-468 744 1439 
-488 764 1459 
-508 784 1479 
-19 528 804 
-39 548 824 
-59 568 844 
-79 588 864 
-99 608 884 
-119 628 904 
-139 648 924 
-159 668 944 
-179 688 964 
-199 708 984 
-219 728 1004 
-239 748 1024 
-259 768 1044 
-279 788 1064 
-299 808 1084 
-319 828 1104 
-339 848 1124 
-359 868 1144 
-379 888 1164 
-399 908 1184 
-419 928 1204 
-439 948 1224 
-459 968 1244 
-479 988 1264 
-499 1008 1284 
-519 1028 1304 
-539 1048 1324 
-559 1068 1344 
-579 1088 1364 
-599 1108 1384 
-619 1128 1404 
-639 1148 1424 
-659 1168 1444 
-679 1188 1464 
-4 699 1208 
-24 719 1228 
-44 739 1248 
-64 759 1268 
-84 779 1288 
-104 799 1308 
-124 819 1328 
-144 839 1348 
-164 859 1368 
-184 879 1388 
-204 899 1408 
-224 919 1428 
-244 939 1448 
-264 959 1468 
-8 284 979 
-28 304 999 
-48 324 1019 
-68 344 1039 
-88 364 1059 
-108 384 1079 
-128 404 1099 
-148 424 1119 
-168 444 1139 
-188 464 1159 
-208 484 1179 
-228 504 1199 
-248 524 1219 
-268 544 1239 
-288 564 1259 
-308 584 1279 
-328 604 1299 
-348 624 1319 
-368 644 1339 
-388 664 1359 
-407 443 642 
-427 463 662 
-447 483 682 
-467 503 702 
-487 523 722 
-507 543 742 
-527 563 762 
-547 583 782 
-567 603 802 
-587 623 822 
-607 643 842 
-627 663 862 
-647 683 882 
-667 703 902 
-687 723 922 
-707 743 942 
-727 763 962 
-747 783 982 
-767 803 1002 
-787 823 1022 
-807 843 1042 
-827 863 1062 
-847 883 1082 
-867 903 1102 
-887 923 1122 
-907 943 1142 
-927 963 1162 
-947 983 1182 
-967 1003 1202 
-987 1023 1222 
-1007 1043 1242 
-1027 1063 1262 
-1047 1083 1282 
-1067 1103 1302 
-1087 1123 1322 
-1107 1143 1342 
-1127 1163 1362 
-1147 1183 1382 
-1167 1203 1402 
-1187 1223 1422 
-1207 1243 1442 
-1227 1263 1462 
-2 1247 1283 
-22 1267 1303 
-42 1287 1323 
-62 1307 1343 
-82 1327 1363 
-102 1347 1383 
-122 1367 1403 
-142 1387 1423 
-162 1407 1443 
-182 1427 1463 
-3 202 1447 
-23 222 1467 
-7 43 242 
-27 63 262 
-47 83 282 
-67 103 302 
-87 123 322 
-107 143 342 
-127 163 362 
-147 183 382 
-167 203 402 
-187 223 422 
-207 243 442 
-227 263 462 
-247 283 482 
-267 303 502 
-287 323 522 
-307 343 542 
-327 363 562 
-347 383 582 
-367 403 602 
-387 423 622 
-434 675 693 
-454 695 713 
-474 715 733 
-494 735 753 
-514 755 773 
-534 775 793 
-554 795 813 
-574 815 833 
-594 835 853 
-614 855 873 
-634 875 893 
-654 895 913 
-674 915 933 
-694 935 953 
-714 955 973 
-734 975 993 
-754 995 1013 
-774 1015 1033 
-794 1035 1053 
-814 1055 1073 
-834 1075 1093 
-854 1095 1113 
-874 1115 1133 
-894 1135 1153 
-914 1155 1173 
-934 1175 1193 
-954 1195 1213 
-974 1215 1233 
-994 1235 1253 
-1014 1255 1273 
-1034 1275 1293 
-1054 1295 1313 
-1074 1315 1333 
-1094 1335 1353 
-1114 1355 1373 
-1134 1375 1393 
-1154 1395 1413 
-1174 1415 1433 
-1194 1435 1453 
-1214 1455 1473 
-13 1234 1475 
-15 33 1254 
-35 53 1274 
-55 73 1294 
-75 93 1314 
-95 113 1334 
-115 133 1354 
-135 153 1374 
-155 173 1394 
-175 193 1414 
-195 213 1434 
-215 233 1454 
-235 253 1474 
-14 255 273 
-34 275 293 
-54 295 313 
-74 315 333 
-94 335 353 
-114 355 373 
-134 375 393 
-154 395 413 
-174 415 433 
-194 435 453 
-214 455 473 
-234 475 493 
-254 495 513 
-274 515 533 
-294 535 553 
-314 555 573 
-334 575 593 
-354 595 613 
-374 615 633 
-394 635 653 
-414 655 673 
-103 242 805 
-123 262 825 
-143 282 845 
-163 302 865 
-183 322 885 
-203 342 905 
-223 362 925 
-243 382 945 
-263 402 965 
-283 422 985 
-303 442 1005 
-323 462 1025 
-343 482 1045 
-363 502 1065 
-383 522 1085 
-403 542 1105 
-423 562 1125 
-443 582 1145 
-463 602 1165 
-483 622 1185 
-503 642 1205 
-523 662 1225 
-543 682 1245 
-563 702 1265 
-583 722 1285 
-603 742 1305 
-623 762 1325 
-643 782 1345 
-663 802 1365 
-683 822 1385 
-703 842 1405 
-723 862 1425 
-743 882 1445 
-763 902 1465 
-5 783 922 
-25 803 942 
-45 823 962 
-65 843 982 
-85 863 1002 
-105 883 1022 
-125 903 1042 
-145 923 1062 
-165 943 1082 
-185 963 1102 
-205 983 1122 
-225 1003 1142 
-245 1023 1162 
-265 1043 1182 
-285 1063 1202 
-305 1083 1222 
-325 1103 1242 
-345 1123 1262 
-365 1143 1282 
-385 1163 1302 
-405 1183 1322 
-425 1203 1342 
-445 1223 1362 
-465 1243 1382 
-485 1263 1402 
-505 1283 1422 
-525 1303 1442 
-545 1323 1462 
-2 565 1343 
-22 585 1363 
-42 605 1383 
-62 625 1403 
-82 645 1423 
-102 665 1443 
-122 685 1463 
-3 142 705 
-23 162 725 
-43 182 745 
-63 202 765 
-83 222 785 
-1111 1310 1415 
-1131 1330 1435 
-1151 1350 1455 
-1171 1370 1475 
-15 1191 1390 
-35 1211 1410 
-55 1231 1430 
-75 1251 1450 
-95 1271 1470 
-10 115 1291 
-30 135 1311 
-50 155 1331 
-70 175 1351 
-90 195 1371 
-110 215 1391 
-130 235 1411 
-150 255 1431 
-170 275 1451 
-190 295 1471 
-11 210 315 
-31 230 335 
-51 250 355 
-71 270 375 
-91 290 395 
-111 310 415 
-131 330 435 
-151 350 455 
-171 370 475 
-191 390 495 
-211 410 515 
-231 430 535 
-251 450 555 
-271 470 575 
-291 490 595 
-311 510 615 
-331 530 635 
-351 550 655 
-371 570 675 
-391 590 695 
-411 610 715 
-431 630 735 
-451 650 755 
-471 670 775 
-491 690 795 
-511 710 815 
-531 730 835 
-551 750 855 
-571 770 875 
-591 790 895 
-611 810 915 
-631 830 935 
-651 850 955 
-671 870 975 
-691 890 995 
-711 910 1015 
-731 930 1035 
-751 950 1055 
-771 970 1075 
-791 990 1095 
-811 1010 1115 
-831 1030 1135 
-851 1050 1155 
-871 1070 1175 
-891 1090 1195 
-911 1110 1215 
-931 1130 1235 
-951 1150 1255 
-971 1170 1275 
-991 1190 1295 
-1011 1210 1315 
-1031 1230 1335 
-1051 1250 1355 
-1071 1270 1375 
-1091 1290 1395 
-193 757 1000 
-213 777 1020 
-233 797 1040 
-253 817 1060 
-273 837 1080 
-293 857 1100 
-313 877 1120 
-333 897 1140 
-353 917 1160 
-373 937 1180 
-393 957 1200 
-413 977 1220 
-433 997 1240 
-453 1017 1260 
-473 1037 1280 
-493 1057 1300 
-513 1077 1320 
-533 1097 1340 
-553 1117 1360 
-573 1137 1380 
-593 1157 1400 
-613 1177 1420 
-633 1197 1440 
-653 1217 1460 
-673 1237 1480 
-20 693 1257 
-40 713 1277 
-60 733 1297 
-80 753 1317 
-100 773 1337 
-120 793 1357 
-140 813 1377 
-160 833 1397 
-180 853 1417 
-200 873 1437 
-220 893 1457 
-240 913 1477 
-17 260 933 
-37 280 953 
-57 300 973 
-77 320 993 
-97 340 1013 
-117 360 1033 
-137 380 1053 
-157 400 1073 
-177 420 1093 
-197 440 1113 
-217 460 1133 
-237 480 1153 
-257 500 1173 
-277 520 1193 
-297 540 1213 
-317 560 1233 
-337 580 1253 
-357 600 1273 
-377 620 1293 
-397 640 1313 
-417 660 1333 
-437 680 1353 
-457 700 1373 
-477 720 1393 
-497 740 1413 
-517 760 1433 
-537 780 1453 
-557 800 1473 
-13 577 820 
-33 597 840 
-53 617 860 
-73 637 880 
-93 657 900 
-113 677 920 
-133 697 940 
-153 717 960 
-173 737 980 
-94 110 1265 
-114 130 1285 
-134 150 1305 
-154 170 1325 
-174 190 1345 
-194 210 1365 
-214 230 1385 
-234 250 1405 
-254 270 1425 
-274 290 1445 
-294 310 1465 
-5 314 330 
-25 334 350 
-45 354 370 
-65 374 390 
-85 394 410 
-105 414 430 
-125 434 450 
-145 454 470 
-165 474 490 
-185 494 510 
-205 514 530 
-225 534 550 
-245 554 570 
-265 574 590 
-285 594 610 
-305 614 630 
-325 634 650 
-345 654 670 
-365 674 690 
-385 694 710 
-405 714 730 
-425 734 750 
-445 754 770 
-465 774 790 
-485 794 810 
-505 814 830 
-525 834 850 
-545 854 870 
-565 874 890 
-585 894 910 
-605 914 930 
-625 934 950 
-645 954 970 
-665 974 990 
-685 994 1010 
-705 1014 1030 
-725 1034 1050 
-745 1054 1070 
-765 1074 1090 
-785 1094 1110 
-805 1114 1130 
-825 1134 1150 
-845 1154 1170 
-865 1174 1190 
-885 1194 1210 
-905 1214 1230 
-925 1234 1250 
-945 1254 1270 
-965 1274 1290 
-985 1294 1310 
-1005 1314 1330 
-1025 1334 1350 
-1045 1354 1370 
-1065 1374 1390 
-1085 1394 1410 
-1105 1414 1430 
-1125 1434 1450 
-1145 1454 1470 
-10 1165 1474 
-14 30 1185 
-34 50 1205 
-54 70 1225 
-74 90 1245 
-379 476 549 
-399 496 569 
-419 516 589 
-439 536 609 
-459 556 629 
-479 576 649 
-499 596 669 
-519 616 689 
-539 636 709 
-559 656 729 
-579 676 749 
-599 696 769 
-619 716 789 
-639 736 809 
-659 756 829 
-679 776 849 
-699 796 869 
-719 816 889 
-739 836 909 
-759 856 929 
-779 876 949 
-799 896 969 
-819 916 989 
-839 936 1009 
-859 956 1029 
-879 976 1049 
-899 996 1069 
-919 1016 1089 
-939 1036 1109 
-959 1056 1129 
-979 1076 1149 
-999 1096 1169 
-1019 1116 1189 
-1039 1136 1209 
-1059 1156 1229 
-1079 1176 1249 
-1099 1196 1269 
-1119 1216 1289 
-1139 1236 1309 
-1159 1256 1329 
-1179 1276 1349 
-1199 1296 1369 
-1219 1316 1389 
-1239 1336 1409 
-1259 1356 1429 
-1279 1376 1449 
-1299 1396 1469 
-9 1319 1416 
-29 1339 1436 
-49 1359 1456 
-69 1379 1476 
-16 89 1399 
-36 109 1419 
-56 129 1439 
-76 149 1459 
-96 169 1479 
-19 116 189 
-39 136 209 
-59 156 229 
-79 176 249 
-99 196 269 
-119 216 289 
-139 236 309 
-159 256 329 
-179 276 349 
-199 296 369 
-219 316 389 
-239 336 409 
-259 356 429 
-279 376 449 
-299 396 469 
-319 416 489 
-339 436 509 
-359 456 529 
-669 996 1030 
-689 1016 1050 
-709 1036 1070 
-729 1056 1090 
-749 1076 1110 
-769 1096 1130 
-789 1116 1150 
-809 1136 1170 
-829 1156 1190 
-849 1176 1210 
-869 1196 1230 
-889 1216 1250 
-909 1236 1270 
-929 1256 1290 
-949 1276 1310 
-969 1296 1330 
-989 1316 1350 
-1009 1336 1370 
-1029 1356 1390 
-1049 1376 1410 
-1069 1396 1430 
-1089 1416 1450 
-1109 1436 1470 
-10 1129 1456 
-30 1149 1476 
-16 50 1169 
-36 70 1189 
-56 90 1209 
-76 110 1229 
-96 130 1249 
-116 150 1269 
-136 170 1289 
-156 190 1309 
-176 210 1329 
-196 230 1349 
-216 250 1369 
-236 270 1389 
-256 290 1409 
-276 310 1429 
-296 330 1449 
-316 350 1469 
-9 336 370 
-29 356 390 
-49 376 410 
-69 396 430 
-89 416 450 
-109 436 470 
-129 456 490 
-149 476 510 
-169 496 530 
-189 516 550 
-209 536 570 
-229 556 590 
-249 576 610 
-269 596 630 
-289 616 650 
-309 636 670 
-329 656 690 
-349 676 710 
-369 696 730 
-389 716 750 
-409 736 770 
-429 756 790 
-449 776 810 
-469 796 830 
-489 816 850 
-509 836 870 
-529 856 890 
-549 876 910 
-569 896 930 
-589 916 950 
-609 936 970 
-629 956 990 
-649 976 1010 
-232 315 964 
-252 335 984 
-272 355 1004 
-292 375 1024 
-312 395 1044 
-332 415 1064 
-352 435 1084 
-372 455 1104 
-392 475 1124 
-412 495 1144 
-432 515 1164 
-452 535 1184 
-472 555 1204 
-492 575 1224 
-512 595 1244 
-532 615 1264 
-552 635 1284 
-572 655 1304 
-592 675 1324 
-612 695 1344 
-632 715 1364 
-652 735 1384 
-672 755 1404 
-692 775 1424 
-712 795 1444 
-732 815 1464 
-4 752 835 
-24 772 855 
-44 792 875 
-64 812 895 
-84 832 915 
-104 852 935 
-124 872 955 
-144 892 975 
-164 912 995 
-184 932 1015 
-204 952 1035 
-224 972 1055 
-244 992 1075 
-264 1012 1095 
-284 1032 1115 
-304 1052 1135 
-324 1072 1155 
-344 1092 1175 
-364 1112 1195 
-384 1132 1215 
-404 1152 1235 
-424 1172 1255 
-444 1192 1275 
-464 1212 1295 
-484 1232 1315 
-504 1252 1335 
-524 1272 1355 
-544 1292 1375 
-564 1312 1395 
-584 1332 1415 
-604 1352 1435 
-624 1372 1455 
-644 1392 1475 
-15 664 1412 
-35 684 1432 
-55 704 1452 
-75 724 1472 
-12 95 744 
-32 115 764 
-52 135 784 
-72 155 804 
-92 175 824 
-112 195 844 
-132 215 864 
-152 235 884 
-172 255 904 
-192 275 924 
-212 295 944 
-39 398 1246 
-59 418 1266 
-79 438 1286 
-99 458 1306 
-119 478 1326 
-139 498 1346 
-159 518 1366 
-179 538 1386 
-199 558 1406 
-219 578 1426 
-239 598 1446 
-259 618 1466 
-6 279 638 
-26 299 658 
-46 319 678 
-66 339 698 
-86 359 718 
-106 379 738 
-126 399 758 
-146 419 778 
-166 439 798 
-186 459 818 
-206 479 838 
-226 499 858 
-246 519 878 
-266 539 898 
-286 559 918 
-306 579 938 
-326 599 958 
-346 619 978 
-366 639 998 
-386 659 1018 
-406 679 1038 
-426 699 1058 
-446 719 1078 
-466 739 1098 
-486 759 1118 
-506 779 1138 
-526 799 1158 
-546 819 1178 
-566 839 1198 
-586 859 1218 
-606 879 1238 
-626 899 1258 
-646 919 1278 
-666 939 1298 
-686 959 1318 
-706 979 1338 
-726 999 1358 
-746 1019 1378 
-766 1039 1398 
-786 1059 1418 
-806 1079 1438 
-826 1099 1458 
-846 1119 1478 
-18 866 1139 
-38 886 1159 
-58 906 1179 
-78 926 1199 
-98 946 1219 
-118 966 1239 
-138 986 1259 
-158 1006 1279 
-178 1026 1299 
-198 1046 1319 
-218 1066 1339 
-238 1086 1359 
-258 1106 1379 
-278 1126 1399 
-298 1146 1419 
-318 1166 1439 
-338 1186 1459 
-358 1206 1479 
-19 378 1226 
-225 693 824 
-245 713 844 
-265 733 864 
-285 753 884 
-305 773 904 
-325 793 924 
-345 813 944 
-365 833 964 
-385 853 984 
-405 873 1004 
-425 893 1024 
-445 913 1044 
-465 933 1064 
-485 953 1084 
-505 973 1104 
-525 993 1124 
-545 1013 1144 
-565 1033 1164 
-585 1053 1184 
-605 1073 1204 
-625 1093 1224 
-645 1113 1244 
-665 1133 1264 
-685 1153 1284 
-705 1173 1304 
-725 1193 1324 
-745 1213 1344 
-765 1233 1364 
-785 1253 1384 
-805 1273 1404 
-825 1293 1424 
-845 1313 1444 
-865 1333 1464 
-4 885 1353 
-24 905 1373 
-44 925 1393 
-64 945 1413 
-84 965 1433 
-104 985 1453 
-124 1005 1473 
-13 144 1025 
-33 164 1045 
-53 184 1065 
-73 204 1085 
-93 224 1105 
-113 244 1125 
-133 264 1145 
-153 284 1165 
-173 304 1185 
-193 324 1205 
-213 344 1225 
-233 364 1245 
-253 384 1265 
-273 404 1285 
-293 424 1305 
-313 444 1325 
-333 464 1345 
-353 484 1365 
-373 504 1385 
-393 524 1405 
-413 544 1425 
-433 564 1445 
-453 584 1465 
-5 473 604 
-25 493 624 
-45 513 644 
-65 533 664 
-85 553 684 
-105 573 704 
-125 593 724 
-145 613 744 
-165 633 764 
-185 653 784 
-205 673 804 
-221 648 997 
-241 668 1017 
-261 688 1037 
-281 708 1057 
-301 728 1077 
-321 748 1097 
-341 768 1117 
-361 788 1137 
-381 808 1157 
-401 828 1177 
-421 848 1197 
-441 868 1217 
-461 888 1237 
-481 908 1257 
-501 928 1277 
-521 948 1297 
-541 968 1317 
-561 988 1337 
-581 1008 1357 
-601 1028 1377 
-621 1048 1397 
-641 1068 1417 
-661 1088 1437 
-681 1108 1457 
-701 1128 1477 
-17 721 1148 
-37 741 1168 
-57 761 1188 
-77 781 1208 
-97 801 1228 
-117 821 1248 
-137 841 1268 
-157 861 1288 
-177 881 1308 
-197 901 1328 
-217 921 1348 
-237 941 1368 
-257 961 1388 
-277 981 1408 
-297 1001 1428 
-317 1021 1448 
-337 1041 1468 
-8 357 1061 
-28 377 1081 
-48 397 1101 
-68 417 1121 
-88 437 1141 
-108 457 1161 
-128 477 1181 
-148 497 1201 
-168 517 1221 
-188 537 1241 
-208 557 1261 
-228 577 1281 
-248 597 1301 
-268 617 1321 
-288 637 1341 
-308 657 1361 
-328 677 1381 
-348 697 1401 
-368 717 1421 
-388 737 1441 
-408 757 1461 
-1 428 777 
-21 448 797 
-41 468 817 
-61 488 837 
-81 508 857 
-101 528 877 
-121 548 897 
-141 568 917 
-161 588 937 
-181 608 957 
-201 628 977 
-703 1171 1457 
-723 1191 1477 
-17 743 1211 
-37 763 1231 
-57 783 1251 
-77 803 1271 
-97 823 1291 
-117 843 1311 
-137 863 1331 
-157 883 1351 
-177 903 1371 
-197 923 1391 
-217 943 1411 
-237 963 1431 
-257 983 1451 
-277 1003 1471 
-11 297 1023 
-31 317 1043 
-51 337 1063 
-71 357 1083 
-91 377 1103 
-111 397 1123 
-131 417 1143 
-151 437 1163 
-171 457 1183 
-191 477 1203 
-211 497 1223 
-231 517 1243 
-251 537 1263 
-271 557 1283 
-291 577 1303 
-311 597 1323 
-331 617 1343 
-351 637 1363 
-371 657 1383 
-391 677 1403 
-411 697 1423 
-431 717 1443 
-451 737 1463 
-3 471 757 
-23 491 777 
-43 511 797 
-63 531 817 
-83 551 837 
-103 571 857 
-123 591 877 
-143 611 897 
-163 631 917 
-183 651 937 
-203 671 957 
-223 691 977 
-243 711 997 
-263 731 1017 
-283 751 1037 
-303 771 1057 
-323 791 1077 
-343 811 1097 
-363 831 1117 
-383 851 1137 
-403 871 1157 
-423 891 1177 
-443 911 1197 
-463 931 1217 
-483 951 1237 
-503 971 1257 
-523 991 1277 
-543 1011 1297 
-563 1031 1317 
-583 1051 1337 
-603 1071 1357 
-623 1091 1377 
-643 1111 1397 
-663 1131 1417 
-683 1151 1437 
-88 187 980 
-108 207 1000 
-128 227 1020 
-148 247 1040 
-168 267 1060 
-188 287 1080 
-208 307 1100 
-228 327 1120 
-248 347 1140 
-268 367 1160 
-288 387 1180 
-308 407 1200 
-328 427 1220 
-348 447 1240 
-368 467 1260 
-388 487 1280 
-408 507 1300 
-428 527 1320 
-448 547 1340 
-468 567 1360 
-488 587 1380 
-508 607 1400 
-528 627 1420 
-548 647 1440 
-568 667 1460 
-588 687 1480 
-20 608 707 
-40 628 727 
-60 648 747 
-80 668 767 
-100 688 787 
-120 708 807 
-140 728 827 
-160 748 847 
-180 768 867 
-200 788 887 
-220 808 907 
-240 828 927 
-260 848 947 
-280 868 967 
-300 888 987 
-320 908 1007 
-340 928 1027 
-360 948 1047 
-380 968 1067 
-400 988 1087 
-420 1008 1107 
-440 1028 1127 
-460 1048 1147 
-480 1068 1167 
-500 1088 1187 
-520 1108 1207 
-540 1128 1227 
-560 1148 1247 
-580 1168 1267 
-600 1188 1287 
-620 1208 1307 
-640 1228 1327 
-660 1248 1347 
-680 1268 1367 
-700 1288 1387 
-720 1308 1407 
-740 1328 1427 
-760 1348 1447 
-780 1368 1467 
-7 800 1388 
-27 820 1408 
-47 840 1428 
-67 860 1448 
-87 880 1468 
-8 107 900 
-28 127 920 
-48 147 940 
-68 167 960 
-6 402 440 
-26 422 460 
-46 442 480 
-66 462 500 
-86 482 520 
-106 502 540 
-126 522 560 
-146 542 580 
-166 562 600 
-186 582 620 
-206 602 640 
-226 622 660 
-246 642 680 
-266 662 700 
-286 682 720 
-306 702 740 
-326 722 760 
-346 742 780 
-366 762 800 
-386 782 820 
-406 802 840 
-426 822 860 
-446 842 880 
-466 862 900 
-486 882 920 
-506 902 940 
-526 922 960 
-546 942 980 
-566 962 1000 
-586 982 1020 
-606 1002 1040 
-626 1022 1060 
-646 1042 1080 
-666 1062 1100 
-686 1082 1120 
-706 1102 1140 
-726 1122 1160 
-746 1142 1180 
-766 1162 1200 
-786 1182 1220 
-806 1202 1240 
-826 1222 1260 
-846 1242 1280 
-866 1262 1300 
-886 1282 1320 
-906 1302 1340 
-926 1322 1360 
-946 1342 1380 
-966 1362 1400 
-986 1382 1420 
-1006 1402 1440 
-1026 1422 1460 
-1046 1442 1480 
-20 1066 1462 
-2 40 1086 
-22 60 1106 
-42 80 1126 
-62 100 1146 
-82 120 1166 
-102 140 1186 
-122 160 1206 
-142 180 1226 
-162 200 1246 
-182 220 1266 
-202 240 1286 
-222 260 1306 
-242 280 1326 
-262 300 1346 
-282 320 1366 
-302 340 1386 
-322 360 1406 
-342 380 1426 
-362 400 1446 
-382 420 1466 
-66 76 289 
-86 96 309 
-106 116 329 
-126 136 349 
-146 156 369 
-166 176 389 
-186 196 409 
-206 216 429 
-226 236 449 
-246 256 469 
-266 276 489 
-286 296 509 
-306 316 529 
-326 336 549 
-346 356 569 
-366 376 589 
-386 396 609 
-406 416 629 
-426 436 649 
-446 456 669 
-466 476 689 
-486 496 709 
-506 516 729 
-526 536 749 
-546 556 769 
-566 576 789 
-586 596 809 
-606 616 829 
-626 636 849 
-646 656 869 
-666 676 889 
-686 696 909 
-706 716 929 
-726 736 949 
-746 756 969 
-766 776 989 
-786 796 1009 
-806 816 1029 
-826 836 1049 
-846 856 1069 
-866 876 1089 
-886 896 1109 
-906 916 1129 
-926 936 1149 
-946 956 1169 
-966 976 1189 
-986 996 1209 
-1006 1016 1229 
-1026 1036 1249 
-1046 1056 1269 
-1066 1076 1289 
-1086 1096 1309 
-1106 1116 1329 
-1126 1136 1349 
-1146 1156 1369 
-1166 1176 1389 
-1186 1196 1409 
-1206 1216 1429 
-1226 1236 1449 
-1246 1256 1469 
-9 1266 1276 
-29 1286 1296 
-49 1306 1316 
-69 1326 1336 
-89 1346 1356 
-109 1366 1376 
-129 1386 1396 
-149 1406 1416 
-169 1426 1436 
-189 1446 1456 
-209 1466 1476 
-6 16 229 
-26 36 249 
-46 56 269 
-641 672 1198 
-661 692 1218 
-681 712 1238 
-701 732 1258 
-721 752 1278 
-741 772 1298 
-761 792 1318 
-781 812 1338 
-801 832 1358 
-821 852 1378 
-841 872 1398 
-861 892 1418 
-881 912 1438 
-901 932 1458 
-921 952 1478 
-18 941 972 
-38 961 992 
-58 981 1012 
-78 1001 1032 
-98 1021 1052 
-118 1041 1072 
-138 1061 1092 
-158 1081 1112 
-178 1101 1132 
-198 1121 1152 
-218 1141 1172 
-238 1161 1192 
-258 1181 1212 
-278 1201 1232 
-298 1221 1252 
-318 1241 1272 
-338 1261 1292 
-358 1281 1312 
-378 1301 1332 
-398 1321 1352 
-418 1341 1372 
-438 1361 1392 
-458 1381 1412 
-478 1401 1432 
-498 1421 1452 
-518 1441 1472 
-12 538 1461 
-1 32 558 
-21 52 578 
-41 72 598 
-61 92 618 
-81 112 638 
-101 132 658 
-121 152 678 
-141 172 698 
-161 192 718 
-181 212 738 
-201 232 758 
-221 252 778 
-241 272 798 
-261 292 818 
-281 312 838 
-301 332 858 
-321 352 878 
-341 372 898 
-361 392 918 
-381 412 938 
-401 432 958 
-421 452 978 
-441 472 998 
-461 492 1018 
-481 512 1038 
-501 532 1058 
-521 552 1078 
-541 572 1098 
-561 592 1118 
-581 612 1138 
-601 632 1158 
-621 652 1178 
-307 992 1158 
-327 1012 1178 
-347 1032 1198 
-367 1052 1218 
-387 1072 1238 
-407 1092 1258 
-427 1112 1278 
-447 1132 1298 
-467 1152 1318 
-487 1172 1338 
-507 1192 1358 
-527 1212 1378 
-547 1232 1398 
-567 1252 1418 
-587 1272 1438 
-607 1292 1458 
-627 1312 1478 
-18 647 1332 
-38 667 1352 
-58 687 1372 
-78 707 1392 
-98 727 1412 
-118 747 1432 
-138 767 1452 
-158 787 1472 
-12 178 807 
-32 198 827 
-52 218 847 
-72 238 867 
-92 258 887 
-112 278 907 
-132 298 927 
-152 318 947 
-172 338 967 
-192 358 987 
-212 378 1007 
-232 398 1027 
-252 418 1047 
-272 438 1067 
-292 458 1087 
-312 478 1107 
-332 498 1127 
-352 518 1147 
-372 538 1167 
-392 558 1187 
-412 578 1207 
-432 598 1227 
-452 618 1247 
-472 638 1267 
-492 658 1287 
-512 678 1307 
-532 698 1327 
-552 718 1347 
-572 738 1367 
-592 758 1387 
-612 778 1407 
-632 798 1427 
-652 818 1447 
-672 838 1467 
-7 692 858 
-27 712 878 
-47 732 898 
-67 752 918 
-87 772 938 
-107 792 958 
-127 812 978 
-147 832 998 
-167 852 1018 
-187 872 1038 
-207 892 1058 
-227 912 1078 
-247 932 1098 
-267 952 1118 
-287 972 1138 
-1 
-2 
-3 
-4 
-5 
-6 
-7 
-8 
-9 
-10 
-11 
-12 
-13 
-14 
-15 
-16 
-17 
-18 
-19 
-20 
-21 
-22 
-23 
-24 
-25 
-26 
-27 
-28 
-29 
-30 
-31 
-32 
-33 
-34 
-35 
-36 
-37 
-38 
-39 
-40 
-41 
-42 
-43 
-44 
-45 
-46 
-47 
-48 
-49 
-50 
-51 
-52 
-53 
-54 
-55 
-56 
-57 
-58 
-59 
-60 
-61 
-62 
-63 
-64 
-65 
-66 
-67 
-68 
-69 
-70 
-71 
-72 
-73 
-74 
-75 
-76 
-77 
-78 
-79 
-80 
-81 
-82 
-83 
-84 
-85 
-86 
-87 
-88 
-89 
-90 
-91 
-92 
-93 
-94 
-95 
-96 
-97 
-98 
-99 
-100 
-101 
-102 
-103 
-104 
-105 
-106 
-107 
-108 
-109 
-110 
-111 
-112 
-113 
-114 
-115 
-116 
-117 
-118 
-119 
-120 
-121 
-122 
-123 
-124 
-125 
-126 
-127 
-128 
-129 
-130 
-131 
-132 
-133 
-134 
-135 
-136 
-137 
-138 
-139 
-140 
-141 
-142 
-143 
-144 
-145 
-146 
-147 
-148 
-149 
-150 
-151 
-152 
-153 
-154 
-155 
-156 
-157 
-158 
-159 
-160 
-161 
-162 
-163 
-164 
-165 
-166 
-167 
-168 
-169 
-170 
-171 
-172 
-173 
-174 
-175 
-176 
-177 
-178 
-179 
-180 
-181 
-182 
-183 
-184 
-185 
-186 
-187 
-188 
-189 
-190 
-191 
-192 
-193 
-194 
-195 
-196 
-197 
-198 
-199 
-200 
-201 
-202 
-203 
-204 
-205 
-206 
-207 
-208 
-209 
-210 
-211 
-212 
-213 
-214 
-215 
-216 
-217 
-218 
-219 
-220 
-221 
-222 
-223 
-224 
-225 
-226 
-227 
-228 
-229 
-230 
-231 
-232 
-233 
-234 
-235 
-236 
-237 
-238 
-239 
-240 
-241 
-242 
-243 
-244 
-245 
-246 
-247 
-248 
-249 
-250 
-251 
-252 
-253 
-254 
-255 
-256 
-257 
-258 
-259 
-260 
-261 
-262 
-263 
-264 
-265 
-266 
-267 
-268 
-269 
-270 
-271 
-272 
-273 
-274 
-275 
-276 
-277 
-278 
-279 
-280 
-281 
-282 
-283 
-284 
-285 
-286 
-287 
-288 
-289 
-290 
-291 
-292 
-293 
-294 
-295 
-296 
-297 
-298 
-299 
-300 
-301 
-302 
-303 
-304 
-305 
-306 
-307 
-308 
-309 
-310 
-311 
-312 
-313 
-314 
-315 
-316 
-317 
-318 
-319 
-320 
-321 
-322 
-323 
-324 
-325 
-326 
-327 
-328 
-329 
-330 
-331 
-332 
-333 
-334 
-335 
-336 
-337 
-338 
-339 
-340 
-341 
-342 
-343 
-344 
-345 
-346 
-347 
-348 
-349 
-350 
-351 
-352 
-353 
-354 
-355 
-356 
-357 
-358 
-359 
-360 
-361 
-362 
-363 
-364 
-365 
-366 
-367 
-368 
-369 
-370 
-371 
-372 
-373 
-374 
-375 
-376 
-377 
-378 
-379 
-380 
-381 
-382 
-383 
-384 
-385 
-386 
-387 
-388 
-389 
-390 
-391 
-392 
-393 
-394 
-395 
-396 
-397 
-398 
-399 
-400 
-401 
-402 
-403 
-404 
-405 
-406 
-407 
-408 
-409 
-410 
-411 
-412 
-413 
-414 
-415 
-416 
-417 
-418 
-419 
-420 
-421 
-422 
-423 
-424 
-425 
-426 
-427 
-428 
-429 
-430 
-431 
-432 
-433 
-434 
-435 
-436 
-437 
-438 
-439 
-440 
-441 
-442 
-443 
-444 
-445 
-446 
-447 
-448 
-449 
-450 
-451 
-452 
-453 
-454 
-455 
-456 
-457 
-458 
-459 
-460 
-461 
-462 
-463 
-464 
-465 
-466 
-467 
-468 
-469 
-470 
-471 
-472 
-473 
-474 
-475 
-476 
-477 
-478 
-479 
-480 
-481 
-482 
-483 
-484 
-485 
-486 
-487 
-488 
-489 
-490 
-491 
-492 
-493 
-494 
-495 
-496 
-497 
-498 
-499 
-500 
-501 
-502 
-503 
-504 
-505 
-506 
-507 
-508 
-509 
-510 
-511 
-512 
-513 
-514 
-515 
-516 
-517 
-518 
-519 
-520 
-521 
-522 
-523 
-524 
-525 
-526 
-527 
-528 
-529 
-530 
-531 
-532 
-533 
-534 
-535 
-536 
-537 
-538 
-539 
-540 
-541 
-542 
-543 
-544 
-545 
-546 
-547 
-548 
-549 
-550 
-551 
-552 
-553 
-554 
-555 
-556 
-557 
-558 
-559 
-560 
-561 
-562 
-563 
-564 
-565 
-566 
-567 
-568 
-569 
-570 
-571 
-572 
-573 
-574 
-575 
-576 
-577 
-578 
-579 
-580 
-581 
-582 
-583 
-584 
-585 
-586 
-587 
-588 
-589 
-590 
-591 
-592 
-593 
-594 
-595 
-596 
-597 
-598 
-599 
-600 
-601 
-602 
-603 
-604 
-605 
-606 
-607 
-608 
-609 
-610 
-611 
-612 
-613 
-614 
-615 
-616 
-617 
-618 
-619 
-620 
-621 
-622 
-623 
-624 
-625 
-626 
-627 
-628 
-629 
-630 
-631 
-632 
-633 
-634 
-635 
-636 
-637 
-638 
-639 
-640 
-641 
-642 
-643 
-644 
-645 
-646 
-647 
-648 
-649 
-650 
-651 
-652 
-653 
-654 
-655 
-656 
-657 
-658 
-659 
-660 
-661 
-662 
-663 
-664 
-665 
-666 
-667 
-668 
-669 
-670 
-671 
-672 
-673 
-674 
-675 
-676 
-677 
-678 
-679 
-680 
-681 
-682 
-683 
-684 
-685 
-686 
-687 
-688 
-689 
-690 
-691 
-692 
-693 
-694 
-695 
-696 
-697 
-698 
-699 
-700 
-701 
-702 
-703 
-704 
-705 
-706 
-707 
-708 
-709 
-710 
-711 
-712 
-713 
-714 
-715 
-716 
-717 
-718 
-719 
-720 
-721 
-722 
-723 
-724 
-725 
-726 
-727 
-728 
-729 
-730 
-731 
-732 
-733 
-734 
-735 
-736 
-737 
-738 
-739 
-740 
-741 
-742 
-743 
-744 
-745 
-746 
-747 
-748 
-749 
-750 
-751 
-752 
-753 
-754 
-755 
-756 
-757 
-758 
-759 
-760 
-761 
-762 
-763 
-764 
-765 
-766 
-767 
-768 
-769 
-770 
-771 
-772 
-773 
-774 
-775 
-776 
-777 
-778 
-779 
-780 
-781 
-782 
-783 
-784 
-785 
-786 
-787 
-788 
-789 
-790 
-791 
-792 
-793 
-794 
-795 
-796 
-797 
-798 
-799 
-800 
-801 
-802 
-803 
-804 
-805 
-806 
-807 
-808 
-809 
-810 
-811 
-812 
-813 
-814 
-815 
-816 
-817 
-818 
-819 
-820 
-821 
-822 
-823 
-824 
-825 
-826 
-827 
-828 
-829 
-830 
-831 
-832 
-833 
-834 
-835 
-836 
-837 
-838 
-839 
-840 
-841 
-842 
-843 
-844 
-845 
-846 
-847 
-848 
-849 
-850 
-851 
-852 
-853 
-854 
-855 
-856 
-857 
-858 
-859 
-860 
-861 
-862 
-863 
-864 
-865 
-866 
-867 
-868 
-869 
-870 
-871 
-872 
-873 
-874 
-875 
-876 
-877 
-878 
-879 
-880 
-881 
-882 
-883 
-884 
-885 
-886 
-887 
-888 
-889 
-890 
-891 
-892 
-893 
-894 
-895 
-896 
-897 
-898 
-899 
-900 
-901 
-902 
-903 
-904 
-905 
-906 
-907 
-908 
-909 
-910 
-911 
-912 
-913 
-914 
-915 
-916 
-917 
-918 
-919 
-920 
-921 
-922 
-923 
-924 
-925 
-926 
-927 
-928 
-929 
-930 
-931 
-932 
-933 
-934 
-935 
-936 
-937 
-938 
-939 
-940 
-941 
-942 
-943 
-944 
-945 
-946 
-947 
-948 
-949 
-950 
-951 
-952 
-953 
-954 
-955 
-956 
-957 
-958 
-959 
-960 
-961 
-962 
-963 
-964 
-965 
-966 
-967 
-968 
-969 
-970 
-971 
-972 
-973 
-974 
-975 
-976 
-977 
-978 
-979 
-980 
-981 
-982 
-983 
-984 
-985 
-986 
-987 
-988 
-989 
-990 
-991 
-992 
-993 
-994 
-995 
-996 
-997 
-998 
-999 
-1000 
-1001 
-1002 
-1003 
-1004 
-1005 
-1006 
-1007 
-1008 
-1009 
-1010 
-1011 
-1012 
-1013 
-1014 
-1015 
-1016 
-1017 
-1018 
-1019 
-1020 
-1021 
-1022 
-1023 
-1024 
-1025 
-1026 
-1027 
-1028 
-1029 
-1030 
-1031 
-1032 
-1033 
-1034 
-1035 
-1036 
-1037 
-1038 
-1039 
-1040 
-1041 
-1042 
-1043 
-1044 
-1045 
-1046 
-1047 
-1048 
-1049 
-1050 
-1051 
-1052 
-1053 
-1054 
-1055 
-1056 
-1057 
-1058 
-1059 
-1060 
-1061 
-1062 
-1063 
-1064 
-1065 
-1066 
-1067 
-1068 
-1069 
-1070 
-1071 
-1072 
-1073 
-1074 
-1075 
-1076 
-1077 
-1078 
-1079 
-1080 
-1081 
-1082 
-1083 
-1084 
-1085 
-1086 
-1087 
-1088 
-1089 
-1090 
-1091 
-1092 
-1093 
-1094 
-1095 
-1096 
-1097 
-1098 
-1099 
-1100 
-1101 
-1102 
-1103 
-1104 
-1105 
-1106 
-1107 
-1108 
-1109 
-1110 
-1111 
-1112 
-1113 
-1114 
-1115 
-1116 
-1117 
-1118 
-1119 
-1120 
-1121 
-1122 
-1123 
-1124 
-1125 
-1126 
-1127 
-1128 
-1129 
-1130 
-1131 
-1132 
-1133 
-1134 
-1135 
-1136 
-1137 
-1138 
-1139 
-1140 
-1141 
-1142 
-1143 
-1144 
-1145 
-1146 
-1147 
-1148 
-1149 
-1150 
-1151 
-1152 
-1153 
-1154 
-1155 
-1156 
-1157 
-1158 
-1159 
-1160 
-1161 
-1162 
-1163 
-1164 
-1165 
-1166 
-1167 
-1168 
-1169 
-1170 
-1171 
-1172 
-1173 
-1174 
-1175 
-1176 
-1177 
-1178 
-1179 
-1180 
-1181 
-1182 
-1183 
-1184 
-1185 
-1186 
-1187 
-1188 
-1189 
-1190 
-1191 
-1192 
-1193 
-1194 
-1195 
-1196 
-1197 
-1198 
-1199 
-1200 
-1201 
-1202 
-1203 
-1204 
-1205 
-1206 
-1207 
-1208 
-1209 
-1210 
-1211 
-1212 
-1213 
-1214 
-1215 
-1216 
-1217 
-1218 
-1219 
-1220 
-1221 
-1222 
-1223 
-1224 
-1225 
-1226 
-1227 
-1228 
-1229 
-1230 
-1231 
-1232 
-1233 
-1234 
-1235 
-1236 
-1237 
-1238 
-1239 
-1240 
-1241 
-1242 
-1243 
-1244 
-1245 
-1246 
-1247 
-1248 
-1249 
-1250 
-1251 
-1252 
-1253 
-1254 
-1255 
-1256 
-1257 
-1258 
-1259 
-1260 
-1261 
-1262 
-1263 
-1264 
-1265 
-1266 
-1267 
-1268 
-1269 
-1270 
-1271 
-1272 
-1273 
-1274 
-1275 
-1276 
-1277 
-1278 
-1279 
-1280 
-1281 
-1282 
-1283 
-1284 
-1285 
-1286 
-1287 
-1288 
-1289 
-1290 
-1291 
-1292 
-1293 
-1294 
-1295 
-1296 
-1297 
-1298 
-1299 
-1300 
-1301 
-1302 
-1303 
-1304 
-1305 
-1306 
-1307 
-1308 
-1309 
-1310 
-1311 
-1312 
-1313 
-1314 
-1315 
-1316 
-1317 
-1318 
-1319 
-1320 
-1321 
-1322 
-1323 
-1324 
-1325 
-1326 
-1327 
-1328 
-1329 
-1330 
-1331 
-1332 
-1333 
-1334 
-1335 
-1336 
-1337 
-1338 
-1339 
-1340 
-1341 
-1342 
-1343 
-1344 
-1345 
-1346 
-1347 
-1348 
-1349 
-1350 
-1351 
-1352 
-1353 
-1354 
-1355 
-1356 
-1357 
-1358 
-1359 
-1360 
-1361 
-1362 
-1363 
-1364 
-1365 
-1366 
-1367 
-1368 
-1369 
-1370 
-1371 
-1372 
-1373 
-1374 
-1375 
-1376 
-1377 
-1378 
-1379 
-1380 
-1381 
-1382 
-1383 
-1384 
-1385 
-1386 
-1387 
-1388 
-1389 
-1390 
-1391 
-1392 
-1393 
-1394 
-1395 
-1396 
-1397 
-1398 
-1399 
-1400 
-1401 
-1402 
-1403 
-1404 
-1405 
-1406 
-1407 
-1408 
-1409 
-1410 
-1411 
-1412 
-1413 
-1414 
-1415 
-1416 
-1417 
-1418 
-1419 
-1420 
-1421 
-1422 
-1423 
-1424 
-1425 
-1426 
-1427 
-1428 
-1429 
-1430 
-1431 
-1432 
-1433 
-1434 
-1435 
-1436 
-1437 
-1438 
-1439 
-1440 
-1441 
-1442 
-1443 
-1444 
-1445 
-1446 
-1447 
-1448 
-1449 
-1450 
-1451 
-1452 
-1453 
-1454 
-1455 
-1456 
-1457 
-1458 
-1459 
-1460 
-1461 
-1462 
-1463 
-1464 
-1465 
-1466 
-1467 
-1468 
-1469 
-1470 
-1471 
-1472 
-1473 
-1474 
-1475 
-1476 
-1477 
-1478 
-1479 
-1480 
-114 298 446 632 1051 1353 1543 2506 2855 2961 
-115 226 561 684 884 1471 1671 1839 2719 2962 
-106 238 477 669 1079 1121 1681 1846 2556 2963 
-216 442 549 596 766 1101 1595 2247 2402 2964 
-70 76 343 470 1102 1258 1811 2010 2432 2965 
-24 211 345 502 1281 1414 2307 2665 2810 2966 
-353 431 582 707 868 1237 1683 2656 2946 2967 
-13 369 564 657 886 902 1609 2485 2661 2968 
-218 286 508 630 981 1165 2120 2188 2799 2969 
-4 223 445 697 753 1253 1860 2068 2170 2970 
-183 390 533 670 853 1017 1481 1870 2533 2971 
-203 410 559 609 1309 1371 2284 2854 2912 2972 
-116 261 355 461 1360 1467 1743 1990 2409 2973 
-71 137 401 703 1178 1464 1516 1756 2069 2974 
-114 295 305 371 1180 1330 1744 1855 2280 2975 
-377 467 565 686 955 1395 2124 2172 2810 2976 
-34 198 378 629 770 960 1962 2468 2519 2977 
-12 122 569 738 764 911 2350 2828 2904 2978 
-34 162 243 311 608 977 1561 2129 2368 2979 
-208 278 604 976 1240 1318 1950 2617 2718 2980 
-115 299 447 633 1052 1354 1544 2507 2856 2981 
-116 227 562 685 885 1472 1672 1840 2720 2982 
-107 239 478 670 1080 1122 1682 1847 2557 2983 
-217 443 550 597 767 1102 1596 2248 2403 2984 
-71 77 344 471 1103 1185 1812 2011 2433 2985 
-25 212 346 503 1282 1415 2308 2666 2811 2986 
-354 432 583 708 869 1238 1684 2657 2947 2987 
-14 370 565 658 887 903 1610 2486 2662 2988 
-219 287 509 631 982 1166 2121 2189 2800 2989 
-5 224 446 698 754 1254 1861 2069 2171 2990 
-184 391 534 671 854 1018 1482 1871 2534 2991 
-204 411 560 610 1310 1372 2285 2855 2913 2992 
-117 262 356 462 1361 1468 1744 1991 2410 2993 
-72 138 402 704 1179 1465 1517 1757 2070 2994 
-115 296 306 372 1181 1331 1745 1856 2281 2995 
-378 468 566 687 956 1396 2125 2173 2811 2996 
-35 199 379 630 771 961 1963 2469 2520 2997 
-13 123 570 739 765 912 2351 2829 2905 2998 
-35 163 244 312 609 978 1562 2130 2295 2999 
-209 279 605 977 1241 1319 1951 2618 2719 3000 
-116 300 448 634 1053 1355 1545 2508 2857 3001 
-117 228 563 686 886 1473 1673 1841 2721 3002 
-108 240 479 671 1081 1123 1683 1848 2558 3003 
-218 444 551 598 768 1103 1597 2249 2404 3004 
-72 78 345 472 1104 1186 1813 2012 2434 3005 
-26 213 347 504 1283 1416 2309 2667 2812 3006 
-355 433 584 709 870 1239 1685 2658 2948 3007 
-15 297 566 659 888 904 1611 2487 2663 3008 
-220 288 510 632 983 1167 2122 2190 2801 3009 
-6 225 447 699 755 1255 1862 2070 2172 3010 
-185 392 535 672 855 1019 1483 1872 2535 3011 
-205 412 561 611 1311 1373 2286 2856 2914 3012 
-118 263 357 463 1362 1469 1745 1992 2411 3013 
-73 139 403 705 1180 1466 1518 1758 2071 3014 
-116 223 307 373 1182 1332 1746 1857 2282 3015 
-379 469 567 688 957 1397 2126 2174 2812 3016 
-36 200 380 631 772 962 1964 2470 2521 3017 
-14 124 571 740 766 913 2352 2830 2906 3018 
-36 164 245 313 610 979 1563 2131 2296 3019 
-210 280 606 978 1242 1320 1952 2619 2720 3020 
-117 301 449 635 1054 1356 1546 2509 2858 3021 
-118 229 564 687 887 1474 1674 1842 2722 3022 
-109 241 480 672 1082 1124 1684 1849 2559 3023 
-219 371 552 599 769 1104 1598 2250 2405 3024 
-73 79 346 473 1105 1187 1814 2013 2435 3025 
-27 214 348 505 1284 1417 2310 2668 2739 3026 
-356 434 585 710 871 1240 1686 2659 2949 3027 
-16 298 567 660 815 905 1612 2488 2664 3028 
-221 289 511 633 984 1168 2123 2191 2802 3029 
-7 226 448 700 756 1256 1863 2071 2173 3030 
-186 393 536 673 856 1020 1484 1873 2536 3031 
-206 413 562 612 1312 1374 2287 2857 2915 3032 
-119 264 358 464 1363 1470 1746 1993 2412 3033 
-74 140 404 706 1181 1467 1519 1759 2072 3034 
-117 224 308 374 1183 1259 1747 1858 2283 3035 
-380 470 568 689 958 1398 2127 2175 2739 3036 
-37 201 381 632 773 889 1965 2471 2522 3037 
-15 125 572 667 767 914 2353 2831 2907 3038 
-37 165 246 314 611 980 1564 2132 2297 3039 
-211 281 607 979 1243 1321 1953 2620 2721 3040 
-118 302 450 636 1055 1357 1547 2510 2859 3041 
-119 230 565 688 888 1475 1675 1843 2723 3042 
-110 242 481 673 1083 1125 1685 1850 2560 3043 
-220 372 553 600 770 1105 1599 2251 2406 3044 
-74 80 347 474 1106 1188 1815 2014 2436 3045 
-28 215 349 506 1285 1418 2311 2669 2740 3046 
-357 435 586 711 872 1241 1687 2660 2950 3047 
-17 299 568 661 816 906 1613 2489 2591 3048 
-222 290 512 634 985 1169 2124 2192 2803 3049 
-8 227 449 701 757 1257 1864 2072 2174 3050 
-187 394 537 674 857 1021 1485 1874 2537 3051 
-207 414 563 613 1313 1375 2288 2858 2916 3052 
-120 265 359 465 1364 1471 1747 1994 2413 3053 
-1 141 405 707 1182 1468 1520 1760 1999 3054 
-118 225 309 375 1184 1260 1748 1859 2284 3055 
-381 471 569 690 959 1399 2128 2176 2740 3056 
-38 202 382 633 774 890 1966 2472 2523 3057 
-16 126 573 668 768 915 2354 2832 2908 3058 
-38 166 247 315 612 981 1565 2133 2298 3059 
-212 282 608 980 1244 1322 1954 2621 2722 3060 
-119 303 451 637 1056 1358 1548 2511 2860 3061 
-120 231 566 689 815 1476 1676 1844 2724 3062 
-111 243 482 674 1084 1126 1686 1777 2561 3063 
-221 373 554 601 771 1106 1600 2252 2407 3064 
-1 81 348 475 1107 1189 1816 2015 2437 3065 
-29 216 350 507 1286 1419 2312 2670 2741 3066 
-358 436 587 712 873 1242 1688 2661 2951 3067 
-18 300 569 662 817 907 1614 2490 2592 3068 
-149 291 513 635 986 1170 2125 2193 2804 3069 
-9 228 450 702 758 1258 1865 1999 2175 3070 
-188 395 538 675 858 1022 1486 1875 2538 3071 
-208 415 564 614 1314 1376 2289 2859 2917 3072 
-121 266 360 466 1365 1472 1748 1995 2414 3073 
-2 142 406 708 1183 1469 1521 1761 2000 3074 
-119 226 310 376 1111 1261 1749 1860 2285 3075 
-382 472 570 691 960 1400 2129 2177 2741 3076 
-39 203 383 634 775 891 1967 2473 2524 3077 
-17 127 574 669 769 916 2355 2833 2909 3078 
-39 167 248 316 613 982 1566 2134 2299 3079 
-213 283 609 981 1245 1323 1955 2622 2723 3080 
-120 304 452 638 1057 1359 1549 2512 2861 3081 
-121 232 567 690 816 1477 1677 1845 2725 3082 
-112 244 483 675 1085 1127 1687 1778 2562 3083 
-222 374 555 602 772 1107 1601 2253 2408 3084 
-2 82 349 476 1108 1190 1817 2016 2438 3085 
-30 217 351 508 1287 1420 2313 2671 2742 3086 
-359 437 588 713 874 1243 1689 2662 2952 3087 
-19 301 570 663 818 908 1615 2491 2593 3088 
-150 292 514 636 987 1171 2126 2194 2805 3089 
-10 229 451 703 759 1185 1866 2000 2176 3090 
-189 396 539 676 859 1023 1487 1876 2539 3091 
-209 416 565 615 1315 1377 2290 2860 2918 3092 
-122 267 361 467 1366 1473 1749 1996 2415 3093 
-3 143 407 709 1184 1470 1522 1762 2001 3094 
-120 227 311 377 1112 1262 1750 1861 2286 3095 
-383 473 571 692 961 1401 2130 2178 2742 3096 
-40 204 384 635 776 892 1968 2474 2525 3097 
-18 128 575 670 770 917 2356 2834 2910 3098 
-40 168 249 317 614 983 1567 2135 2300 3099 
-214 284 610 982 1246 1324 1956 2623 2724 3100 
-121 305 453 639 1058 1360 1550 2513 2862 3101 
-122 233 568 691 817 1478 1678 1846 2726 3102 
-113 245 484 676 1086 1128 1688 1779 2563 3103 
-149 375 556 603 773 1108 1602 2254 2409 3104 
-3 83 350 477 1109 1191 1818 2017 2439 3105 
-31 218 352 509 1288 1421 2314 2672 2743 3106 
-360 438 589 714 875 1244 1690 2663 2953 3107 
-20 302 571 664 819 909 1616 2492 2594 3108 
-151 293 515 637 988 1172 2127 2195 2806 3109 
-11 230 452 704 760 1186 1867 2001 2177 3110 
-190 397 540 677 860 1024 1488 1877 2540 3111 
-210 417 566 616 1316 1378 2291 2861 2919 3112 
-123 268 362 468 1367 1474 1750 1997 2416 3113 
-4 144 408 710 1111 1471 1523 1763 2002 3114 
-121 228 312 378 1113 1263 1751 1862 2287 3115 
-384 474 572 693 962 1402 2131 2179 2743 3116 
-41 205 385 636 777 893 1969 2475 2526 3117 
-19 129 576 671 771 918 2357 2835 2911 3118 
-41 169 250 318 615 984 1568 2136 2301 3119 
-215 285 611 983 1247 1325 1957 2624 2725 3120 
-122 306 454 640 1059 1361 1551 2514 2863 3121 
-123 234 569 692 818 1479 1679 1847 2727 3122 
-114 246 485 677 1087 1129 1689 1780 2564 3123 
-150 376 557 604 774 1109 1603 2255 2410 3124 
-4 84 351 478 1110 1192 1819 2018 2440 3125 
-32 219 353 510 1289 1422 2315 2673 2744 3126 
-361 439 590 715 876 1245 1691 2664 2954 3127 
-21 303 572 665 820 910 1617 2493 2595 3128 
-152 294 516 638 989 1173 2128 2196 2807 3129 
-12 231 453 705 761 1187 1868 2002 2178 3130 
-191 398 541 678 861 1025 1489 1878 2541 3131 
-211 418 567 617 1317 1379 2292 2862 2920 3132 
-124 269 363 469 1368 1475 1751 1998 2417 3133 
-5 145 409 711 1112 1472 1524 1764 2003 3134 
-122 229 313 379 1114 1264 1752 1863 2288 3135 
-385 475 573 694 889 1403 2132 2180 2744 3136 
-42 206 386 637 778 894 1970 2476 2527 3137 
-20 130 577 672 772 919 2358 2836 2912 3138 
-42 170 251 319 616 985 1569 2137 2302 3139 
-216 286 612 984 1248 1326 1958 2625 2726 3140 
-123 307 455 641 1060 1362 1552 2515 2864 3141 
-124 235 570 693 819 1480 1680 1848 2728 3142 
-115 247 486 678 1088 1130 1690 1781 2565 3143 
-151 377 558 605 775 1110 1604 2256 2411 3144 
-5 85 352 479 1037 1193 1820 2019 2441 3145 
-33 220 354 511 1290 1423 2316 2674 2745 3146 
-362 440 591 716 877 1246 1692 2591 2955 3147 
-22 304 573 666 821 911 1618 2494 2596 3148 
-153 295 517 639 990 1174 2129 2197 2808 3149 
-13 232 454 706 762 1188 1869 2003 2179 3150 
-192 399 542 679 862 1026 1490 1879 2542 3151 
-212 419 568 618 1318 1380 2293 2863 2921 3152 
-125 270 364 470 1369 1476 1752 1925 2418 3153 
-6 146 410 712 1113 1473 1525 1765 2004 3154 
-123 230 314 380 1115 1265 1753 1864 2289 3155 
-386 476 574 695 890 1404 2133 2181 2745 3156 
-43 207 387 638 779 895 1971 2477 2528 3157 
-21 131 578 673 773 920 2359 2837 2913 3158 
-43 171 252 320 617 986 1570 2138 2303 3159 
-217 287 613 985 1249 1327 1959 2626 2727 3160 
-124 308 456 642 1061 1363 1553 2516 2865 3161 
-125 236 571 694 820 1407 1681 1849 2729 3162 
-116 248 487 679 1089 1131 1691 1782 2566 3163 
-152 378 559 606 776 1037 1605 2257 2412 3164 
-6 86 353 480 1038 1194 1821 2020 2442 3165 
-34 221 355 512 1291 1424 2317 2675 2746 3166 
-363 441 592 717 878 1247 1693 2592 2956 3167 
-23 305 574 593 822 912 1619 2495 2597 3168 
-154 296 518 640 991 1175 2130 2198 2809 3169 
-14 233 455 707 763 1189 1870 2004 2180 3170 
-193 400 543 680 863 1027 1491 1880 2543 3171 
-213 420 569 619 1319 1381 2294 2864 2922 3172 
-126 271 365 471 1370 1477 1753 1926 2419 3173 
-7 147 411 713 1114 1474 1526 1766 2005 3174 
-124 231 315 381 1116 1266 1754 1865 2290 3175 
-387 477 575 696 891 1405 2134 2182 2746 3176 
-44 208 388 639 780 896 1972 2478 2529 3177 
-22 132 579 674 774 921 2360 2838 2914 3178 
-44 172 253 321 618 987 1571 2139 2304 3179 
-218 288 614 986 1250 1328 1960 2627 2728 3180 
-125 309 457 643 1062 1364 1554 2443 2866 3181 
-126 237 572 695 821 1408 1682 1850 2730 3182 
-117 249 488 680 1090 1132 1692 1783 2567 3183 
-153 379 560 607 777 1038 1606 2258 2413 3184 
-7 87 354 481 1039 1195 1822 2021 2369 3185 
-35 222 356 513 1292 1425 2318 2676 2747 3186 
-364 442 519 718 879 1248 1694 2593 2957 3187 
-24 306 575 594 823 913 1620 2496 2598 3188 
-155 223 445 641 992 1176 2131 2199 2810 3189 
-15 234 456 708 764 1190 1871 2005 2181 3190 
-194 401 544 681 864 1028 1492 1881 2544 3191 
-214 421 570 620 1320 1382 2221 2865 2923 3192 
-127 272 366 472 1371 1478 1754 1927 2420 3193 
-8 148 412 714 1115 1475 1527 1767 2006 3194 
-125 232 316 382 1117 1267 1755 1866 2291 3195 
-388 478 576 697 892 1406 2135 2183 2747 3196 
-45 209 389 640 781 897 1973 2479 2530 3197 
-23 133 580 675 775 922 2361 2839 2915 3198 
-45 173 254 322 619 988 1572 2140 2305 3199 
-219 289 615 987 1251 1329 1961 2628 2729 3200 
-126 310 458 644 1063 1365 1481 2444 2867 3201 
-127 238 573 696 822 1409 1683 1777 2731 3202 
-118 250 489 681 1091 1133 1693 1784 2568 3203 
-154 380 561 608 778 1039 1607 2259 2414 3204 
-8 88 355 482 1040 1196 1823 2022 2370 3205 
-36 149 357 514 1293 1426 2319 2677 2748 3206 
-365 443 520 719 880 1249 1695 2594 2958 3207 
-25 307 576 595 824 914 1621 2497 2599 3208 
-156 224 446 642 993 1177 2132 2200 2811 3209 
-16 235 457 709 765 1191 1872 2006 2182 3210 
-195 402 545 682 865 1029 1493 1882 2545 3211 
-215 422 571 621 1321 1383 2222 2866 2924 3212 
-128 273 367 473 1372 1479 1755 1928 2421 3213 
-9 75 413 715 1116 1476 1528 1768 2007 3214 
-126 233 317 383 1118 1268 1756 1867 2292 3215 
-389 479 577 698 893 1333 2136 2184 2748 3216 
-46 210 390 641 782 898 1974 2480 2531 3217 
-24 134 581 676 776 923 2362 2840 2916 3218 
-46 174 255 323 620 989 1573 2141 2306 3219 
-220 290 616 988 1252 1330 1962 2629 2730 3220 
-127 311 459 645 1064 1366 1482 2445 2868 3221 
-128 239 574 697 823 1410 1684 1778 2732 3222 
-119 251 490 682 1092 1134 1694 1785 2569 3223 
-155 381 562 609 779 1040 1608 2260 2415 3224 
-9 89 356 483 1041 1197 1824 2023 2371 3225 
-37 150 358 515 1294 1427 2320 2678 2749 3226 
-366 444 521 720 881 1250 1696 2595 2959 3227 
-26 308 577 596 825 915 1622 2498 2600 3228 
-157 225 447 643 994 1178 2133 2201 2812 3229 
-17 236 458 710 766 1192 1873 2007 2183 3230 
-196 403 546 683 866 1030 1494 1883 2546 3231 
-216 423 572 622 1322 1384 2223 2867 2925 3232 
-129 274 368 474 1373 1480 1756 1929 2422 3233 
-10 76 414 716 1117 1477 1529 1769 2008 3234 
-127 234 318 384 1119 1269 1757 1868 2293 3235 
-390 480 578 699 894 1334 2137 2185 2749 3236 
-47 211 391 642 783 899 1975 2481 2532 3237 
-25 135 582 677 777 924 2363 2841 2917 3238 
-47 175 256 324 621 990 1574 2142 2307 3239 
-221 291 617 989 1253 1331 1963 2630 2731 3240 
-128 312 460 646 1065 1367 1483 2446 2869 3241 
-129 240 575 698 824 1411 1685 1779 2733 3242 
-120 252 491 683 1093 1135 1695 1786 2570 3243 
-156 382 563 610 780 1041 1609 2261 2416 3244 
-10 90 357 484 1042 1198 1825 2024 2372 3245 
-38 151 359 516 1295 1428 2321 2679 2750 3246 
-367 371 522 721 882 1251 1697 2596 2960 3247 
-27 309 578 597 826 916 1623 2499 2601 3248 
-158 226 448 644 995 1179 2134 2202 2739 3249 
-18 237 459 711 767 1193 1874 2008 2184 3250 
-197 404 547 684 867 1031 1495 1884 2547 3251 
-217 424 573 623 1323 1385 2224 2868 2926 3252 
-130 275 369 475 1374 1407 1757 1930 2423 3253 
-11 77 415 717 1118 1478 1530 1770 2009 3254 
-128 235 319 385 1120 1270 1758 1869 2294 3255 
-391 481 579 700 895 1335 2138 2186 2750 3256 
-48 212 392 643 784 900 1976 2482 2533 3257 
-26 136 583 678 778 925 2364 2842 2918 3258 
-48 176 257 325 622 991 1575 2143 2308 3259 
-222 292 618 990 1254 1332 1964 2631 2732 3260 
-129 313 461 647 1066 1368 1484 2447 2870 3261 
-130 241 576 699 825 1412 1686 1780 2734 3262 
-121 253 492 684 1094 1136 1696 1787 2571 3263 
-157 383 564 611 781 1042 1610 2262 2417 3264 
-11 91 358 485 1043 1199 1826 2025 2373 3265 
-39 152 360 517 1296 1429 2322 2680 2751 3266 
-368 372 523 722 883 1252 1698 2597 2887 3267 
-28 310 579 598 827 917 1624 2500 2602 3268 
-159 227 449 645 996 1180 2135 2203 2740 3269 
-19 238 460 712 768 1194 1875 2009 2185 3270 
-198 405 548 685 868 1032 1496 1885 2548 3271 
-218 425 574 624 1324 1386 2225 2869 2927 3272 
-131 276 370 476 1375 1408 1758 1931 2424 3273 
-12 78 416 718 1119 1479 1531 1771 2010 3274 
-129 236 320 386 1121 1271 1759 1870 2221 3275 
-392 482 580 701 896 1336 2139 2187 2751 3276 
-49 213 393 644 785 901 1977 2483 2534 3277 
-27 137 584 679 779 926 2365 2843 2919 3278 
-49 177 258 326 623 992 1576 2144 2309 3279 
-149 293 619 991 1255 1259 1965 2632 2733 3280 
-130 314 462 648 1067 1369 1485 2448 2871 3281 
-131 242 577 700 826 1413 1687 1781 2735 3282 
-122 254 493 685 1095 1137 1697 1788 2572 3283 
-158 384 565 612 782 1043 1611 2263 2418 3284 
-12 92 359 486 1044 1200 1827 2026 2374 3285 
-40 153 361 518 1297 1430 2323 2681 2752 3286 
-369 373 524 723 884 1253 1699 2598 2888 3287 
-29 311 580 599 828 918 1625 2501 2603 3288 
-160 228 450 646 997 1181 2136 2204 2741 3289 
-20 239 461 713 769 1195 1876 2010 2186 3290 
-199 406 549 686 869 1033 1497 1886 2549 3291 
-219 426 575 625 1325 1387 2226 2870 2928 3292 
-132 277 297 477 1376 1409 1759 1932 2425 3293 
-13 79 417 719 1120 1480 1532 1772 2011 3294 
-130 237 321 387 1122 1272 1760 1871 2222 3295 
-393 483 581 702 897 1337 2140 2188 2752 3296 
-50 214 394 645 786 902 1978 2484 2535 3297 
-28 138 585 680 780 927 2366 2844 2920 3298 
-50 178 259 327 624 993 1577 2145 2310 3299 
-150 294 620 992 1256 1260 1966 2633 2734 3300 
-131 315 463 649 1068 1370 1486 2449 2872 3301 
-132 243 578 701 827 1414 1688 1782 2736 3302 
-123 255 494 686 1096 1138 1698 1789 2573 3303 
-159 385 566 613 783 1044 1612 2264 2419 3304 
-13 93 360 487 1045 1201 1828 2027 2375 3305 
-41 154 362 445 1298 1431 2324 2682 2753 3306 
-370 374 525 724 885 1254 1700 2599 2889 3307 
-30 312 581 600 829 919 1626 2502 2604 3308 
-161 229 451 647 998 1182 2137 2205 2742 3309 
-21 240 462 714 770 1196 1877 2011 2187 3310 
-200 407 550 687 870 1034 1498 1887 2550 3311 
-220 427 576 626 1326 1388 2227 2871 2929 3312 
-133 278 298 478 1377 1410 1760 1933 2426 3313 
-14 80 418 720 1121 1407 1533 1773 2012 3314 
-131 238 322 388 1123 1273 1761 1872 2223 3315 
-394 484 582 703 898 1338 2141 2189 2753 3316 
-51 215 395 646 787 903 1979 2485 2536 3317 
-29 139 586 681 781 928 2367 2845 2921 3318 
-51 179 260 328 625 994 1578 2146 2311 3319 
-151 295 621 993 1257 1261 1967 2634 2735 3320 
-132 316 464 650 1069 1371 1487 2450 2873 3321 
-133 244 579 702 828 1415 1689 1783 2737 3322 
-124 256 495 687 1097 1139 1699 1790 2574 3323 
-160 386 567 614 784 1045 1613 2265 2420 3324 
-14 94 361 488 1046 1202 1829 2028 2376 3325 
-42 155 363 446 1299 1432 2325 2683 2754 3326 
-297 375 526 725 886 1255 1701 2600 2890 3327 
-31 313 582 601 830 920 1627 2503 2605 3328 
-162 230 452 648 999 1183 2138 2206 2743 3329 
-22 241 463 715 771 1197 1878 2012 2188 3330 
-201 408 551 688 871 1035 1499 1888 2551 3331 
-221 428 577 627 1327 1389 2228 2872 2930 3332 
-134 279 299 479 1378 1411 1761 1934 2427 3333 
-15 81 419 721 1122 1408 1534 1774 2013 3334 
-132 239 323 389 1124 1274 1762 1873 2224 3335 
-395 485 583 704 899 1339 2142 2190 2754 3336 
-52 216 396 647 788 904 1980 2486 2537 3337 
-30 140 587 682 782 929 2368 2846 2922 3338 
-52 180 261 329 626 995 1579 2073 2312 3339 
-152 296 622 994 1258 1262 1968 2635 2736 3340 
-133 317 465 651 1070 1372 1488 2451 2874 3341 
-134 245 580 703 829 1416 1690 1784 2738 3342 
-125 257 496 688 1098 1140 1700 1791 2575 3343 
-161 387 568 615 785 1046 1614 2266 2421 3344 
-15 95 362 489 1047 1203 1830 2029 2377 3345 
-43 156 364 447 1300 1433 2326 2684 2755 3346 
-298 376 527 726 887 1256 1702 2601 2891 3347 
-32 314 583 602 831 921 1628 2504 2606 3348 
-163 231 453 649 1000 1184 2139 2207 2744 3349 
-23 242 464 716 772 1198 1879 2013 2189 3350 
-202 409 552 689 872 1036 1500 1889 2552 3351 
-222 429 578 628 1328 1390 2229 2873 2931 3352 
-135 280 300 480 1379 1412 1762 1935 2428 3353 
-16 82 420 722 1123 1409 1535 1775 2014 3354 
-133 240 324 390 1125 1275 1763 1874 2225 3355 
-396 486 584 705 900 1340 2143 2191 2755 3356 
-53 217 397 648 789 905 1981 2487 2538 3357 
-31 141 588 683 783 930 2295 2847 2923 3358 
-53 181 262 330 627 996 1580 2074 2313 3359 
-153 223 623 995 1185 1263 1969 2636 2737 3360 
-134 318 466 652 1071 1373 1489 2452 2875 3361 
-135 246 581 704 830 1417 1691 1785 2665 3362 
-126 258 497 689 1099 1141 1701 1792 2576 3363 
-162 388 569 616 786 1047 1615 2267 2422 3364 
-16 96 363 490 1048 1204 1831 2030 2378 3365 
-44 157 365 448 1301 1434 2327 2685 2756 3366 
-299 377 528 727 888 1257 1629 2602 2892 3367 
-33 315 584 603 832 922 1555 2505 2607 3368 
-164 232 454 650 1001 1111 2140 2208 2745 3369 
-24 243 465 717 773 1199 1880 2014 2190 3370 
-203 410 553 690 873 963 1501 1890 2553 3371 
-149 430 579 629 1329 1391 2230 2874 2932 3372 
-136 281 301 481 1380 1413 1763 1936 2429 3373 
-17 83 421 723 1124 1410 1536 1776 2015 3374 
-134 241 325 391 1126 1276 1764 1875 2226 3375 
-397 487 585 706 901 1341 2144 2192 2756 3376 
-54 218 398 649 790 906 1982 2488 2539 3377 
-32 142 589 684 784 931 2296 2848 2924 3378 
-54 182 263 331 628 997 1581 2075 2314 3379 
-154 224 624 996 1186 1264 1970 2637 2738 3380 
-135 319 467 653 1072 1374 1490 2453 2876 3381 
-136 247 582 705 831 1418 1692 1786 2666 3382 
-127 259 498 690 1100 1142 1702 1793 2577 3383 
-163 389 570 617 787 1048 1616 2268 2423 3384 
-17 97 364 491 1049 1205 1832 2031 2379 3385 
-45 158 366 449 1302 1435 2328 2686 2757 3386 
-300 378 529 728 815 1258 1630 2603 2893 3387 
-34 316 585 604 833 923 1556 2506 2608 3388 
-165 233 455 651 1002 1112 2141 2209 2746 3389 
-25 244 466 718 774 1200 1881 2015 2191 3390 
-204 411 554 691 874 964 1502 1891 2554 3391 
-150 431 580 630 1330 1392 2231 2875 2933 3392 
-137 282 302 482 1381 1414 1764 1937 2430 3393 
-18 84 422 724 1125 1411 1537 1703 2016 3394 
-135 242 326 392 1127 1277 1765 1876 2227 3395 
-398 488 586 707 902 1342 2145 2193 2757 3396 
-55 219 399 650 791 907 1983 2489 2540 3397 
-33 143 590 685 785 932 2297 2849 2925 3398 
-55 183 264 332 629 998 1582 2076 2315 3399 
-155 225 625 997 1187 1265 1971 2638 2665 3400 
-136 320 468 654 1073 1375 1491 2454 2877 3401 
-137 248 583 706 832 1419 1693 1787 2667 3402 
-128 260 499 691 1101 1143 1629 1794 2578 3403 
-164 390 571 618 788 1049 1617 2269 2424 3404 
-18 98 365 492 1050 1206 1833 2032 2380 3405 
-46 159 367 450 1303 1436 2329 2687 2758 3406 
-301 379 530 729 816 1185 1631 2604 2894 3407 
-35 317 586 605 834 924 1557 2507 2609 3408 
-166 234 456 652 1003 1113 2142 2210 2747 3409 
-26 245 467 719 775 1201 1882 2016 2192 3410 
-205 412 555 692 875 965 1503 1892 2555 3411 
-151 432 581 631 1331 1393 2232 2876 2934 3412 
-138 283 303 483 1382 1415 1765 1938 2431 3413 
-19 85 423 725 1126 1412 1538 1704 2017 3414 
-136 243 327 393 1128 1278 1766 1877 2228 3415 
-399 489 587 708 903 1343 2146 2194 2758 3416 
-56 220 400 651 792 908 1984 2490 2541 3417 
-34 144 591 686 786 933 2298 2850 2926 3418 
-56 184 265 333 630 999 1583 2077 2316 3419 
-156 226 626 998 1188 1266 1972 2639 2666 3420 
-137 321 469 655 1074 1376 1492 2455 2878 3421 
-138 249 584 707 833 1420 1694 1788 2668 3422 
-129 261 500 692 1102 1144 1630 1795 2579 3423 
-165 391 572 619 789 1050 1618 2270 2425 3424 
-19 99 366 493 1051 1207 1834 2033 2381 3425 
-47 160 368 451 1304 1437 2330 2688 2759 3426 
-302 380 531 730 817 1186 1632 2605 2895 3427 
-36 318 587 606 835 925 1558 2508 2610 3428 
-167 235 457 653 1004 1114 2143 2211 2748 3429 
-27 246 468 720 776 1202 1883 2017 2193 3430 
-206 413 556 693 876 966 1504 1893 2556 3431 
-152 433 582 632 1332 1394 2233 2877 2935 3432 
-139 284 304 484 1383 1416 1766 1939 2432 3433 
-20 86 424 726 1127 1413 1539 1705 2018 3434 
-137 244 328 394 1129 1279 1767 1878 2229 3435 
-400 490 588 709 904 1344 2073 2195 2759 3436 
-57 221 401 652 793 909 1985 2491 2542 3437 
-35 145 592 687 787 934 2299 2851 2927 3438 
-57 185 266 334 631 1000 1584 2078 2317 3439 
-157 227 627 999 1189 1267 1973 2640 2667 3440 
-138 322 470 656 1075 1377 1493 2456 2879 3441 
-139 250 585 708 834 1421 1695 1789 2669 3442 
-130 262 501 693 1103 1145 1631 1796 2580 3443 
-166 392 573 620 790 1051 1619 2271 2426 3444 
-20 100 367 494 1052 1208 1835 2034 2382 3445 
-48 161 369 452 1305 1438 2331 2689 2760 3446 
-303 381 532 731 818 1187 1633 2606 2896 3447 
-37 319 588 607 836 926 1559 2509 2611 3448 
-168 236 458 654 1005 1115 2144 2212 2749 3449 
-28 247 469 721 777 1203 1884 2018 2194 3450 
-207 414 557 694 877 967 1505 1894 2557 3451 
-153 434 583 633 1259 1395 2234 2878 2936 3452 
-140 285 305 485 1384 1417 1767 1940 2433 3453 
-21 87 425 727 1128 1414 1540 1706 2019 3454 
-138 245 329 395 1130 1280 1768 1879 2230 3455 
-401 491 589 710 905 1345 2074 2196 2760 3456 
-58 222 402 653 794 910 1986 2492 2543 3457 
-36 146 519 688 788 935 2300 2852 2928 3458 
-58 186 267 335 632 1001 1585 2079 2318 3459 
-158 228 628 1000 1190 1268 1974 2641 2668 3460 
-139 323 471 657 1076 1378 1494 2457 2880 3461 
-140 251 586 709 835 1422 1696 1790 2670 3462 
-131 263 502 694 1104 1146 1632 1797 2581 3463 
-167 393 574 621 791 1052 1620 2272 2427 3464 
-21 101 368 495 1053 1209 1836 2035 2383 3465 
-49 162 370 453 1306 1439 2332 2690 2761 3466 
-304 382 533 732 819 1188 1634 2607 2897 3467 
-38 320 589 608 837 927 1560 2510 2612 3468 
-169 237 459 655 1006 1116 2145 2213 2750 3469 
-29 248 470 722 778 1204 1885 2019 2195 3470 
-208 415 558 695 878 968 1506 1895 2558 3471 
-154 435 584 634 1260 1396 2235 2879 2937 3472 
-141 286 306 486 1385 1418 1768 1941 2434 3473 
-22 88 426 728 1129 1415 1541 1707 2020 3474 
-139 246 330 396 1131 1281 1769 1880 2231 3475 
-402 492 590 711 906 1346 2075 2197 2761 3476 
-59 149 403 654 795 911 1987 2493 2544 3477 
-37 147 520 689 789 936 2301 2853 2929 3478 
-59 187 268 336 633 1002 1586 2080 2319 3479 
-159 229 629 1001 1191 1269 1975 2642 2669 3480 
-140 324 472 658 1077 1379 1495 2458 2881 3481 
-141 252 587 710 836 1423 1697 1791 2671 3482 
-132 264 503 695 1105 1147 1633 1798 2582 3483 
-168 394 575 622 792 1053 1621 2273 2428 3484 
-22 102 369 496 1054 1210 1837 2036 2384 3485 
-50 163 297 454 1307 1440 2333 2691 2762 3486 
-305 383 534 733 820 1189 1635 2608 2898 3487 
-39 321 590 609 838 928 1561 2511 2613 3488 
-170 238 460 656 1007 1117 2146 2214 2751 3489 
-30 249 471 723 779 1205 1886 2020 2196 3490 
-209 416 559 696 879 969 1507 1896 2559 3491 
-155 436 585 635 1261 1397 2236 2880 2938 3492 
-142 287 307 487 1386 1419 1769 1942 2435 3493 
-23 89 427 729 1130 1416 1542 1708 2021 3494 
-140 247 331 397 1132 1282 1770 1881 2232 3495 
-403 493 591 712 907 1347 2076 2198 2762 3496 
-60 150 404 655 796 912 1988 2494 2545 3497 
-38 148 521 690 790 937 2302 2854 2930 3498 
-60 188 269 337 634 1003 1587 2081 2320 3499 
-160 230 630 1002 1192 1270 1976 2643 2670 3500 
-141 325 473 659 1078 1380 1496 2459 2882 3501 
-142 253 588 711 837 1424 1698 1792 2672 3502 
-133 265 504 696 1106 1148 1634 1799 2583 3503 
-169 395 576 623 793 1054 1622 2274 2429 3504 
-23 103 370 497 1055 1211 1838 2037 2385 3505 
-51 164 298 455 1308 1441 2334 2692 2763 3506 
-306 384 535 734 821 1190 1636 2609 2899 3507 
-40 322 591 610 839 929 1562 2512 2614 3508 
-171 239 461 657 1008 1118 2073 2215 2752 3509 
-31 250 472 724 780 1206 1887 2021 2197 3510 
-210 417 560 697 880 970 1508 1897 2560 3511 
-156 437 586 636 1262 1398 2237 2881 2939 3512 
-143 288 308 488 1387 1420 1770 1943 2436 3513 
-24 90 428 730 1131 1417 1543 1709 2022 3514 
-141 248 332 398 1133 1283 1771 1882 2233 3515 
-404 494 592 713 908 1348 2077 2199 2763 3516 
-61 151 405 656 797 913 1989 2495 2546 3517 
-39 75 522 691 791 938 2303 2855 2931 3518 
-61 189 270 338 635 1004 1588 2082 2321 3519 
-161 231 631 1003 1193 1271 1977 2644 2671 3520 
-142 326 474 660 1079 1381 1497 2460 2883 3521 
-143 254 589 712 838 1425 1699 1793 2673 3522 
-134 266 505 697 1107 1149 1635 1800 2584 3523 
-170 396 577 624 794 1055 1623 2275 2430 3524 
-24 104 297 498 1056 1212 1839 2038 2386 3525 
-52 165 299 456 1309 1442 2335 2693 2764 3526 
-307 385 536 735 822 1191 1637 2610 2900 3527 
-41 323 592 611 840 930 1563 2513 2615 3528 
-172 240 462 658 1009 1119 2074 2216 2753 3529 
-32 251 473 725 781 1207 1888 2022 2198 3530 
-211 418 561 698 881 971 1509 1898 2561 3531 
-157 438 587 637 1263 1399 2238 2882 2940 3532 
-144 289 309 489 1388 1421 1771 1944 2437 3533 
-25 91 429 731 1132 1418 1544 1710 2023 3534 
-142 249 333 399 1134 1284 1772 1883 2234 3535 
-405 495 519 714 909 1349 2078 2200 2764 3536 
-62 152 406 657 798 914 1990 2496 2547 3537 
-40 76 523 692 792 939 2304 2856 2932 3538 
-62 190 271 339 636 1005 1589 2083 2322 3539 
-162 232 632 1004 1194 1272 1978 2645 2672 3540 
-143 327 475 661 1080 1382 1498 2461 2884 3541 
-144 255 590 713 839 1426 1700 1794 2674 3542 
-135 267 506 698 1108 1150 1636 1801 2585 3543 
-171 397 578 625 795 1056 1624 2276 2431 3544 
-25 105 298 499 1057 1213 1840 2039 2387 3545 
-53 166 300 457 1310 1443 2336 2694 2765 3546 
-308 386 537 736 823 1192 1638 2611 2901 3547 
-42 324 519 612 841 931 1564 2514 2616 3548 
-173 241 463 659 1010 1120 2075 2217 2754 3549 
-33 252 474 726 782 1208 1889 2023 2199 3550 
-212 419 562 699 882 972 1510 1899 2562 3551 
-158 439 588 638 1264 1400 2239 2883 2941 3552 
-145 290 310 490 1389 1422 1772 1945 2438 3553 
-26 92 430 732 1133 1419 1545 1711 2024 3554 
-143 250 334 400 1135 1285 1773 1884 2235 3555 
-406 496 520 715 910 1350 2079 2201 2765 3556 
-63 153 407 658 799 915 1991 2497 2548 3557 
-41 77 524 693 793 940 2305 2857 2933 3558 
-63 191 272 340 637 1006 1590 2084 2323 3559 
-163 233 633 1005 1195 1273 1979 2646 2673 3560 
-144 328 476 662 1081 1383 1499 2462 2885 3561 
-145 256 591 714 840 1427 1701 1795 2675 3562 
-136 268 507 699 1109 1151 1637 1802 2586 3563 
-172 398 579 626 796 1057 1625 2277 2432 3564 
-26 106 299 500 1058 1214 1841 2040 2388 3565 
-54 167 301 458 1311 1444 2337 2695 2766 3566 
-309 387 538 737 824 1193 1639 2612 2902 3567 
-43 325 520 613 842 932 1565 2515 2617 3568 
-174 242 464 660 1011 1121 2076 2218 2755 3569 
-34 253 475 727 783 1209 1890 2024 2200 3570 
-213 420 563 700 883 973 1511 1900 2563 3571 
-159 440 589 639 1265 1401 2240 2884 2942 3572 
-146 291 311 491 1390 1423 1773 1946 2439 3573 
-27 93 431 733 1134 1420 1546 1712 2025 3574 
-144 251 335 401 1136 1286 1774 1885 2236 3575 
-407 497 521 716 911 1351 2080 2202 2766 3576 
-64 154 408 659 800 916 1992 2498 2549 3577 
-42 78 525 694 794 941 2306 2858 2934 3578 
-64 192 273 341 638 1007 1591 2085 2324 3579 
-164 234 634 1006 1196 1274 1980 2647 2674 3580 
-145 329 477 663 1082 1384 1500 2463 2886 3581 
-146 257 592 715 841 1428 1702 1796 2676 3582 
-137 269 508 700 1110 1152 1638 1803 2587 3583 
-173 399 580 627 797 1058 1626 2278 2433 3584 
-27 107 300 501 1059 1215 1842 2041 2389 3585 
-55 168 302 459 1312 1445 2338 2696 2767 3586 
-310 388 539 738 825 1194 1640 2613 2903 3587 
-44 326 521 614 843 933 1566 2516 2618 3588 
-175 243 465 661 1012 1122 2077 2219 2756 3589 
-35 254 476 728 784 1210 1891 2025 2201 3590 
-214 421 564 701 884 974 1512 1901 2564 3591 
-160 441 590 640 1266 1402 2241 2885 2943 3592 
-147 292 312 492 1391 1424 1774 1947 2440 3593 
-28 94 432 734 1135 1421 1547 1713 2026 3594 
-145 252 336 402 1137 1287 1775 1886 2237 3595 
-408 498 522 717 912 1352 2081 2203 2767 3596 
-65 155 409 660 801 917 1993 2499 2550 3597 
-43 79 526 695 795 942 2307 2859 2935 3598 
-65 193 274 342 639 1008 1592 2086 2325 3599 
-165 235 635 1007 1197 1275 1981 2648 2675 3600 
-146 330 478 664 1083 1385 1501 2464 2813 3601 
-147 258 519 716 842 1429 1629 1797 2677 3602 
-138 270 509 701 1037 1153 1639 1804 2588 3603 
-174 400 581 628 798 1059 1627 2279 2434 3604 
-28 108 301 502 1060 1216 1843 2042 2390 3605 
-56 169 303 460 1313 1446 2339 2697 2768 3606 
-311 389 540 739 826 1195 1641 2614 2904 3607 
-45 327 522 615 844 934 1567 2443 2619 3608 
-176 244 466 662 1013 1123 2078 2220 2757 3609 
-36 255 477 729 785 1211 1892 2026 2202 3610 
-215 422 565 702 885 975 1513 1902 2565 3611 
-161 442 591 641 1267 1403 2242 2886 2944 3612 
-148 293 313 493 1392 1425 1775 1948 2441 3613 
-29 95 433 735 1136 1422 1548 1714 2027 3614 
-146 253 337 403 1138 1288 1776 1887 2238 3615 
-409 499 523 718 913 1353 2082 2204 2768 3616 
-66 156 410 661 802 918 1994 2500 2551 3617 
-44 80 527 696 796 943 2308 2860 2936 3618 
-66 194 275 343 640 1009 1593 2087 2326 3619 
-166 236 636 1008 1198 1276 1982 2649 2676 3620 
-147 331 479 665 1084 1386 1502 2465 2814 3621 
-148 259 520 717 843 1430 1630 1798 2678 3622 
-139 271 510 702 1038 1154 1640 1805 2589 3623 
-175 401 582 629 799 1060 1628 2280 2435 3624 
-29 109 302 503 1061 1217 1844 2043 2391 3625 
-57 170 304 461 1314 1447 2340 2698 2769 3626 
-312 390 541 740 827 1196 1642 2615 2905 3627 
-46 328 523 616 845 935 1568 2444 2620 3628 
-177 245 467 663 1014 1124 2079 2147 2758 3629 
-37 256 478 730 786 1212 1893 2027 2203 3630 
-216 423 566 703 886 976 1514 1903 2566 3631 
-162 443 592 642 1268 1404 2243 2813 2945 3632 
-75 294 314 494 1393 1426 1776 1949 2442 3633 
-30 96 434 736 1137 1423 1549 1715 2028 3634 
-147 254 338 404 1139 1289 1703 1888 2239 3635 
-410 500 524 719 914 1354 2083 2205 2769 3636 
-67 157 411 662 803 919 1995 2501 2552 3637 
-45 81 528 697 797 944 2309 2861 2937 3638 
-67 195 276 344 641 1010 1594 2088 2327 3639 
-167 237 637 1009 1199 1277 1983 2650 2677 3640 
-148 332 480 666 1085 1387 1503 2466 2815 3641 
-75 260 521 718 844 1431 1631 1799 2679 3642 
-140 272 511 703 1039 1155 1641 1806 2590 3643 
-176 402 583 630 800 1061 1555 2281 2436 3644 
-30 110 303 504 1062 1218 1845 2044 2392 3645 
-58 171 305 462 1315 1448 2341 2699 2770 3646 
-313 391 542 667 828 1197 1643 2616 2906 3647 
-47 329 524 617 846 936 1569 2445 2621 3648 
-178 246 468 664 1015 1125 2080 2148 2759 3649 
-38 257 479 731 787 1213 1894 2028 2204 3650 
-217 424 567 704 887 977 1515 1904 2567 3651 
-163 444 519 643 1269 1405 2244 2814 2946 3652 
-76 295 315 495 1394 1427 1703 1950 2369 3653 
-31 97 435 737 1138 1424 1550 1716 2029 3654 
-148 255 339 405 1140 1290 1704 1889 2240 3655 
-411 501 525 720 915 1355 2084 2206 2770 3656 
-68 158 412 663 804 920 1996 2502 2553 3657 
-46 82 529 698 798 945 2310 2862 2938 3658 
-68 196 277 345 642 1011 1595 2089 2328 3659 
-168 238 638 1010 1200 1278 1984 2651 2678 3660 
-75 333 481 593 1086 1388 1504 2467 2816 3661 
-76 261 522 719 845 1432 1632 1800 2680 3662 
-141 273 512 704 1040 1156 1642 1807 2517 3663 
-177 403 584 631 801 1062 1556 2282 2437 3664 
-31 111 304 505 1063 1219 1846 2045 2393 3665 
-59 172 306 463 1316 1449 2342 2700 2771 3666 
-314 392 543 668 829 1198 1644 2617 2907 3667 
-48 330 525 618 847 937 1570 2446 2622 3668 
-179 247 469 665 1016 1126 2081 2149 2760 3669 
-39 258 480 732 788 1214 1895 2029 2205 3670 
-218 425 568 705 888 978 1516 1905 2568 3671 
-164 371 520 644 1270 1406 2245 2815 2947 3672 
-77 296 316 496 1395 1428 1704 1951 2370 3673 
-32 98 436 738 1139 1425 1551 1717 2030 3674 
-75 256 340 406 1141 1291 1705 1890 2241 3675 
-412 502 526 721 916 1356 2085 2207 2771 3676 
-69 159 413 664 805 921 1997 2503 2554 3677 
-47 83 530 699 799 946 2311 2863 2939 3678 
-69 197 278 346 643 1012 1596 2090 2329 3679 
-169 239 639 1011 1201 1279 1985 2652 2679 3680 
-76 334 482 594 1087 1389 1505 2468 2817 3681 
-77 262 523 720 846 1433 1633 1801 2681 3682 
-142 274 513 705 1041 1157 1643 1808 2518 3683 
-178 404 585 632 802 1063 1557 2283 2438 3684 
-32 112 305 506 1064 1220 1847 2046 2394 3685 
-60 173 307 464 1317 1450 2343 2701 2772 3686 
-315 393 544 669 830 1199 1645 2618 2908 3687 
-49 331 526 619 848 938 1571 2447 2623 3688 
-180 248 470 666 1017 1127 2082 2150 2761 3689 
-40 259 481 733 789 1215 1896 2030 2206 3690 
-219 426 569 706 815 979 1517 1906 2569 3691 
-165 372 521 645 1271 1333 2246 2816 2948 3692 
-78 223 317 497 1396 1429 1705 1952 2371 3693 
-33 99 437 739 1140 1426 1552 1718 2031 3694 
-76 257 341 407 1142 1292 1706 1891 2242 3695 
-413 503 527 722 917 1357 2086 2208 2772 3696 
-70 160 414 665 806 922 1998 2504 2555 3697 
-48 84 531 700 800 947 2312 2864 2940 3698 
-70 198 279 347 644 1013 1597 2091 2330 3699 
-170 240 640 1012 1202 1280 1986 2653 2680 3700 
-77 335 483 595 1088 1390 1506 2469 2818 3701 
-78 263 524 721 847 1434 1634 1802 2682 3702 
-143 275 514 706 1042 1158 1644 1809 2519 3703 
-179 405 586 633 803 1064 1558 2284 2439 3704 
-33 113 306 507 1065 1221 1848 2047 2395 3705 
-61 174 308 465 1318 1451 2344 2702 2773 3706 
-316 394 545 670 831 1200 1646 2619 2909 3707 
-50 332 527 620 849 939 1572 2448 2624 3708 
-181 249 471 593 1018 1128 2083 2151 2762 3709 
-41 260 482 734 790 1216 1897 2031 2207 3710 
-220 427 570 707 816 980 1518 1907 2570 3711 
-166 373 522 646 1272 1334 2247 2817 2949 3712 
-79 224 318 498 1397 1430 1706 1953 2372 3713 
-34 100 438 740 1141 1427 1553 1719 2032 3714 
-77 258 342 408 1143 1293 1707 1892 2243 3715 
-414 504 528 723 918 1358 2087 2209 2773 3716 
-71 161 415 666 807 923 1925 2505 2556 3717 
-49 85 532 701 801 948 2313 2865 2941 3718 
-71 199 280 348 645 1014 1598 2092 2331 3719 
-171 241 641 1013 1203 1281 1987 2654 2681 3720 
-78 336 484 596 1089 1391 1507 2470 2819 3721 
-79 264 525 722 848 1435 1635 1803 2683 3722 
-144 276 515 707 1043 1159 1645 1810 2520 3723 
-180 406 587 634 804 1065 1559 2285 2440 3724 
-34 114 307 508 1066 1222 1849 2048 2396 3725 
-62 175 309 466 1319 1452 2345 2703 2774 3726 
-317 395 546 671 832 1201 1647 2620 2910 3727 
-51 333 528 621 850 940 1573 2449 2625 3728 
-182 250 472 594 1019 1129 2084 2152 2763 3729 
-42 261 483 735 791 1217 1898 2032 2208 3730 
-221 428 571 708 817 981 1519 1908 2571 3731 
-167 374 523 647 1273 1335 2248 2818 2950 3732 
-80 225 319 499 1398 1431 1707 1954 2373 3733 
-35 101 439 667 1142 1428 1554 1720 2033 3734 
-78 259 343 409 1144 1294 1708 1893 2244 3735 
-415 505 529 724 919 1359 2088 2210 2774 3736 
-72 162 416 593 808 924 1926 2506 2557 3737 
-50 86 533 702 802 949 2314 2866 2942 3738 
-72 200 281 349 646 1015 1599 2093 2332 3739 
-172 242 642 1014 1204 1282 1988 2655 2682 3740 
-79 337 485 597 1090 1392 1508 2471 2820 3741 
-80 265 526 723 849 1436 1636 1804 2684 3742 
-145 277 516 708 1044 1160 1646 1811 2521 3743 
-181 407 588 635 805 1066 1560 2286 2441 3744 
-35 115 308 509 1067 1223 1850 2049 2397 3745 
-63 176 310 467 1320 1453 2346 2704 2775 3746 
-318 396 547 672 833 1202 1648 2621 2911 3747 
-52 334 529 622 851 941 1574 2450 2626 3748 
-183 251 473 595 1020 1130 2085 2153 2764 3749 
-43 262 484 736 792 1218 1899 2033 2209 3750 
-222 429 572 709 818 982 1520 1909 2572 3751 
-168 375 524 648 1274 1336 2249 2819 2951 3752 
-81 226 320 500 1399 1432 1708 1955 2374 3753 
-36 102 440 668 1143 1429 1481 1721 2034 3754 
-79 260 344 410 1145 1295 1709 1894 2245 3755 
-416 506 530 725 920 1360 2089 2211 2775 3756 
-73 163 417 594 809 925 1927 2507 2558 3757 
-51 87 534 703 803 950 2315 2867 2943 3758 
-73 201 282 350 647 1016 1600 2094 2333 3759 
-173 243 643 1015 1205 1283 1989 2656 2683 3760 
-80 338 486 598 1091 1393 1509 2472 2821 3761 
-81 266 527 724 850 1437 1637 1805 2685 3762 
-146 278 517 709 1045 1161 1647 1812 2522 3763 
-182 408 589 636 806 1067 1561 2287 2442 3764 
-36 116 309 510 1068 1224 1777 2050 2398 3765 
-64 177 311 468 1321 1454 2347 2705 2776 3766 
-319 397 548 673 834 1203 1649 2622 2912 3767 
-53 335 530 623 852 942 1575 2451 2627 3768 
-184 252 474 596 1021 1131 2086 2154 2765 3769 
-44 263 485 737 793 1219 1900 2034 2210 3770 
-149 430 573 710 819 983 1521 1910 2573 3771 
-169 376 525 649 1275 1337 2250 2820 2952 3772 
-82 227 321 501 1400 1433 1709 1956 2375 3773 
-37 103 441 669 1144 1430 1482 1722 2035 3774 
-80 261 345 411 1146 1296 1710 1895 2246 3775 
-417 507 531 726 921 1361 2090 2212 2776 3776 
-74 164 418 595 810 926 1928 2508 2559 3777 
-52 88 535 704 804 951 2316 2868 2944 3778 
-74 202 283 351 648 1017 1601 2095 2334 3779 
-174 244 644 1016 1206 1284 1990 2657 2684 3780 
-81 339 487 599 1092 1394 1510 2473 2822 3781 
-82 267 528 725 851 1438 1638 1806 2686 3782 
-147 279 518 710 1046 1162 1648 1813 2523 3783 
-183 409 590 637 807 1068 1562 2288 2369 3784 
-37 117 310 511 1069 1225 1778 2051 2399 3785 
-65 178 312 469 1322 1455 2348 2706 2777 3786 
-320 398 549 674 835 1204 1650 2623 2913 3787 
-54 336 531 624 853 943 1576 2452 2628 3788 
-185 253 475 597 1022 1132 2087 2155 2766 3789 
-45 264 486 738 794 1220 1901 2035 2211 3790 
-150 431 574 711 820 984 1522 1911 2574 3791 
-170 377 526 650 1276 1338 2251 2821 2953 3792 
-83 228 322 502 1401 1434 1710 1957 2376 3793 
-38 104 442 670 1145 1431 1483 1723 2036 3794 
-81 262 346 412 1147 1297 1711 1896 2247 3795 
-418 508 532 727 922 1362 2091 2213 2777 3796 
-1 165 419 596 811 927 1929 2509 2560 3797 
-53 89 536 705 805 952 2317 2869 2945 3798 
-1 203 284 352 649 1018 1602 2096 2335 3799 
-175 245 645 1017 1207 1285 1991 2658 2685 3800 
-82 340 488 600 1093 1395 1511 2474 2823 3801 
-83 268 529 726 852 1439 1639 1807 2687 3802 
-148 280 445 711 1047 1163 1649 1814 2524 3803 
-184 410 591 638 808 1069 1563 2289 2370 3804 
-38 118 311 512 1070 1226 1779 2052 2400 3805 
-66 179 313 470 1323 1456 2349 2707 2778 3806 
-321 399 550 675 836 1205 1651 2624 2914 3807 
-55 337 532 625 854 944 1577 2453 2629 3808 
-186 254 476 598 1023 1133 2088 2156 2767 3809 
-46 265 487 739 795 1221 1902 2036 2212 3810 
-151 432 575 712 821 985 1523 1912 2575 3811 
-171 378 527 651 1277 1339 2252 2822 2954 3812 
-84 229 323 503 1402 1435 1711 1958 2377 3813 
-39 105 443 671 1146 1432 1484 1724 2037 3814 
-82 263 347 413 1148 1298 1712 1897 2248 3815 
-419 509 533 728 923 1363 2092 2214 2778 3816 
-2 166 420 597 812 928 1930 2510 2561 3817 
-54 90 537 706 806 953 2318 2870 2946 3818 
-2 204 285 353 650 1019 1603 2097 2336 3819 
-176 246 646 1018 1208 1286 1992 2659 2686 3820 
-83 341 489 601 1094 1396 1512 2475 2824 3821 
-84 269 530 727 853 1440 1640 1808 2688 3822 
-75 281 446 712 1048 1164 1650 1815 2525 3823 
-185 411 592 639 809 1070 1564 2290 2371 3824 
-39 119 312 513 1071 1227 1780 2053 2401 3825 
-67 180 314 471 1324 1457 2350 2708 2779 3826 
-322 400 551 676 837 1206 1652 2625 2915 3827 
-56 338 533 626 855 945 1578 2454 2630 3828 
-187 255 477 599 1024 1134 2089 2157 2768 3829 
-47 266 488 740 796 1222 1903 2037 2213 3830 
-152 433 576 713 822 986 1524 1913 2576 3831 
-172 379 528 652 1278 1340 2253 2823 2955 3832 
-85 230 324 504 1403 1436 1712 1959 2378 3833 
-40 106 444 672 1147 1433 1485 1725 2038 3834 
-83 264 348 414 1149 1299 1713 1898 2249 3835 
-420 510 534 729 924 1364 2093 2215 2779 3836 
-3 167 421 598 813 929 1931 2511 2562 3837 
-55 91 538 707 807 954 2319 2871 2947 3838 
-3 205 286 354 651 1020 1604 2098 2337 3839 
-177 247 647 1019 1209 1287 1993 2660 2687 3840 
-84 342 490 602 1095 1397 1513 2476 2825 3841 
-85 270 531 728 854 1441 1641 1809 2689 3842 
-76 282 447 713 1049 1165 1651 1816 2526 3843 
-186 412 519 640 810 1071 1565 2291 2372 3844 
-40 120 313 514 1072 1228 1781 2054 2402 3845 
-68 181 315 472 1325 1458 2351 2709 2780 3846 
-323 401 552 677 838 1207 1653 2626 2916 3847 
-57 339 534 627 856 946 1579 2455 2631 3848 
-188 256 478 600 1025 1135 2090 2158 2769 3849 
-48 267 489 667 797 1223 1904 2038 2214 3850 
-153 434 577 714 823 987 1525 1914 2577 3851 
-173 380 529 653 1279 1341 2254 2824 2956 3852 
-86 231 325 505 1404 1437 1713 1960 2379 3853 
-41 107 371 673 1148 1434 1486 1726 2039 3854 
-84 265 349 415 1150 1300 1714 1899 2250 3855 
-421 511 535 730 925 1365 2094 2216 2780 3856 
-4 168 422 599 814 930 1932 2512 2563 3857 
-56 92 539 708 808 955 2320 2872 2948 3858 
-4 206 287 355 652 1021 1605 2099 2338 3859 
-178 248 648 1020 1210 1288 1994 2661 2688 3860 
-85 343 491 603 1096 1398 1514 2477 2826 3861 
-86 271 532 729 855 1442 1642 1810 2690 3862 
-77 283 448 714 1050 1166 1652 1817 2527 3863 
-187 413 520 641 811 1072 1566 2292 2373 3864 
-41 121 314 515 1073 1229 1782 2055 2403 3865 
-69 182 316 473 1326 1459 2352 2710 2781 3866 
-324 402 553 678 839 1208 1654 2627 2917 3867 
-58 340 535 628 857 947 1580 2456 2632 3868 
-189 257 479 601 1026 1136 2091 2159 2770 3869 
-49 268 490 668 798 1224 1905 2039 2215 3870 
-154 435 578 715 824 988 1526 1915 2578 3871 
-174 381 530 654 1280 1342 2255 2825 2957 3872 
-87 232 326 506 1405 1438 1714 1961 2380 3873 
-42 108 372 674 1149 1435 1487 1727 2040 3874 
-85 266 350 416 1151 1301 1715 1900 2251 3875 
-422 512 536 731 926 1366 2095 2217 2781 3876 
-5 169 423 600 741 931 1933 2513 2564 3877 
-57 93 540 709 809 956 2321 2873 2949 3878 
-5 207 288 356 653 1022 1606 2100 2339 3879 
-179 249 649 1021 1211 1289 1995 2662 2689 3880 
-86 344 492 604 1097 1399 1515 2478 2827 3881 
-87 272 533 730 856 1443 1643 1811 2691 3882 
-78 284 449 715 1051 1167 1653 1818 2528 3883 
-188 414 521 642 812 1073 1567 2293 2374 3884 
-42 122 315 516 1074 1230 1783 2056 2404 3885 
-70 183 317 474 1327 1460 2353 2711 2782 3886 
-325 403 554 679 840 1209 1655 2628 2918 3887 
-59 341 536 629 858 948 1581 2457 2633 3888 
-190 258 480 602 1027 1137 2092 2160 2771 3889 
-50 269 491 669 799 1225 1906 2040 2216 3890 
-155 436 579 716 825 989 1527 1916 2579 3891 
-175 382 531 655 1281 1343 2256 2826 2958 3892 
-88 233 327 507 1406 1439 1715 1962 2381 3893 
-43 109 373 675 1150 1436 1488 1728 2041 3894 
-86 267 351 417 1152 1302 1716 1901 2252 3895 
-423 513 537 732 927 1367 2096 2218 2782 3896 
-6 170 424 601 742 932 1934 2514 2565 3897 
-58 94 541 710 810 957 2322 2874 2950 3898 
-6 208 289 357 654 1023 1607 2101 2340 3899 
-180 250 650 1022 1212 1290 1996 2663 2690 3900 
-87 345 493 605 1098 1400 1516 2479 2828 3901 
-88 273 534 731 857 1444 1644 1812 2692 3902 
-79 285 450 716 1052 1168 1654 1819 2529 3903 
-189 415 522 643 813 1074 1568 2294 2375 3904 
-43 123 316 517 1075 1231 1784 2057 2405 3905 
-71 184 318 475 1328 1461 2354 2712 2783 3906 
-326 404 555 680 841 1210 1656 2629 2919 3907 
-60 342 537 630 859 949 1582 2458 2634 3908 
-191 259 481 603 1028 1138 2093 2161 2772 3909 
-51 270 492 670 800 1226 1907 2041 2217 3910 
-156 437 580 717 826 990 1528 1917 2580 3911 
-176 383 532 656 1282 1344 2257 2827 2959 3912 
-89 234 328 508 1333 1440 1716 1963 2382 3913 
-44 110 374 676 1151 1437 1489 1729 2042 3914 
-87 268 352 418 1153 1303 1717 1902 2253 3915 
-424 514 538 733 928 1368 2097 2219 2783 3916 
-7 171 425 602 743 933 1935 2515 2566 3917 
-59 95 542 711 811 958 2323 2875 2951 3918 
-7 209 290 358 655 1024 1608 2102 2341 3919 
-181 251 651 1023 1213 1291 1997 2664 2691 3920 
-88 346 494 606 1099 1401 1517 2480 2829 3921 
-89 274 535 732 858 1445 1645 1813 2693 3922 
-80 286 451 717 1053 1169 1655 1820 2530 3923 
-190 416 523 644 814 1075 1569 2221 2376 3924 
-44 124 317 518 1076 1232 1785 2058 2406 3925 
-72 185 319 476 1329 1462 2355 2713 2784 3926 
-327 405 556 681 842 1211 1657 2630 2920 3927 
-61 343 538 631 860 950 1583 2459 2635 3928 
-192 260 482 604 1029 1139 2094 2162 2773 3929 
-52 271 493 671 801 1227 1908 2042 2218 3930 
-157 438 581 718 827 991 1529 1918 2581 3931 
-177 384 533 657 1283 1345 2258 2828 2960 3932 
-90 235 329 509 1334 1441 1717 1964 2383 3933 
-45 111 375 677 1152 1438 1490 1730 2043 3934 
-88 269 353 419 1154 1304 1718 1903 2254 3935 
-425 515 539 734 929 1369 2098 2220 2784 3936 
-8 172 426 603 744 934 1936 2516 2567 3937 
-60 96 543 712 812 959 2324 2876 2952 3938 
-8 210 291 359 656 1025 1609 2103 2342 3939 
-182 252 652 1024 1214 1292 1998 2591 2692 3940 
-89 347 495 607 1100 1402 1518 2481 2830 3941 
-90 275 536 733 859 1446 1646 1814 2694 3942 
-81 287 452 718 1054 1170 1656 1821 2531 3943 
-191 417 524 645 741 1076 1570 2222 2377 3944 
-45 125 318 445 1077 1233 1786 2059 2407 3945 
-73 186 320 477 1330 1463 2356 2714 2785 3946 
-328 406 557 682 843 1212 1658 2631 2921 3947 
-62 344 539 632 861 951 1584 2460 2636 3948 
-193 261 483 605 1030 1140 2095 2163 2774 3949 
-53 272 494 672 802 1228 1909 2043 2219 3950 
-158 439 582 719 828 992 1530 1919 2582 3951 
-178 385 534 658 1284 1346 2259 2829 2887 3952 
-91 236 330 510 1335 1442 1718 1965 2384 3953 
-46 112 376 678 1153 1439 1491 1731 2044 3954 
-89 270 354 420 1155 1305 1719 1904 2255 3955 
-426 516 540 735 930 1370 2099 2147 2785 3956 
-9 173 427 604 745 935 1937 2443 2568 3957 
-61 97 544 713 813 960 2325 2877 2953 3958 
-9 211 292 360 657 1026 1610 2104 2343 3959 
-183 253 653 1025 1215 1293 1925 2592 2693 3960 
-90 348 496 608 1101 1403 1519 2482 2831 3961 
-91 276 537 734 860 1447 1647 1815 2695 3962 
-82 288 453 719 1055 1171 1657 1822 2532 3963 
-192 418 525 646 742 1077 1571 2223 2378 3964 
-46 126 319 446 1078 1234 1787 2060 2408 3965 
-74 187 321 478 1331 1464 2357 2715 2786 3966 
-329 407 558 683 844 1213 1659 2632 2922 3967 
-63 345 540 633 862 952 1585 2461 2637 3968 
-194 262 484 606 1031 1141 2096 2164 2775 3969 
-54 273 495 673 803 1229 1910 2044 2220 3970 
-159 440 583 720 829 993 1531 1920 2583 3971 
-179 386 535 659 1285 1347 2260 2830 2888 3972 
-92 237 331 511 1336 1443 1719 1966 2385 3973 
-47 113 377 679 1154 1440 1492 1732 2045 3974 
-90 271 355 421 1156 1306 1720 1905 2256 3975 
-427 517 541 736 931 1371 2100 2148 2786 3976 
-10 174 428 605 746 936 1938 2444 2569 3977 
-62 98 545 714 814 961 2326 2878 2954 3978 
-10 212 293 361 658 1027 1611 2105 2344 3979 
-184 254 654 1026 1216 1294 1926 2593 2694 3980 
-91 349 497 609 1102 1404 1520 2483 2832 3981 
-92 277 538 735 861 1448 1648 1816 2696 3982 
-83 289 454 720 1056 1172 1658 1823 2533 3983 
-193 419 526 647 743 1078 1572 2224 2379 3984 
-47 127 320 447 1079 1235 1788 2061 2409 3985 
-1 188 322 479 1332 1465 2358 2716 2787 3986 
-330 408 559 684 845 1214 1660 2633 2923 3987 
-64 346 541 634 863 953 1586 2462 2638 3988 
-195 263 485 607 1032 1142 2097 2165 2776 3989 
-55 274 496 674 804 1230 1911 2045 2147 3990 
-160 441 584 721 830 994 1532 1921 2584 3991 
-180 387 536 660 1286 1348 2261 2831 2889 3992 
-93 238 332 512 1337 1444 1720 1967 2386 3993 
-48 114 378 680 1155 1441 1493 1733 2046 3994 
-91 272 356 422 1157 1307 1721 1906 2257 3995 
-428 518 542 737 932 1372 2101 2149 2787 3996 
-11 175 429 606 747 937 1939 2445 2570 3997 
-63 99 546 715 741 962 2327 2879 2955 3998 
-11 213 294 362 659 1028 1612 2106 2345 3999 
-185 255 655 1027 1217 1295 1927 2594 2695 4000 
-92 350 498 610 1103 1405 1521 2484 2833 4001 
-93 278 539 736 862 1449 1649 1817 2697 4002 
-84 290 455 721 1057 1173 1659 1824 2534 4003 
-194 420 527 648 744 1079 1573 2225 2380 4004 
-48 128 321 448 1080 1236 1789 2062 2410 4005 
-2 189 323 480 1259 1466 2359 2717 2788 4006 
-331 409 560 685 846 1215 1661 2634 2924 4007 
-65 347 542 635 864 954 1587 2463 2639 4008 
-196 264 486 608 1033 1143 2098 2166 2777 4009 
-56 275 497 675 805 1231 1912 2046 2148 4010 
-161 442 585 722 831 995 1533 1922 2585 4011 
-181 388 537 661 1287 1349 2262 2832 2890 4012 
-94 239 333 513 1338 1445 1721 1968 2387 4013 
-49 115 379 681 1156 1442 1494 1734 2047 4014 
-92 273 357 423 1158 1308 1722 1907 2258 4015 
-429 445 543 738 933 1373 2102 2150 2788 4016 
-12 176 430 607 748 938 1940 2446 2571 4017 
-64 100 547 716 742 889 2328 2880 2956 4018 
-12 214 295 363 660 1029 1613 2107 2346 4019 
-186 256 656 1028 1218 1296 1928 2595 2696 4020 
-93 351 499 611 1104 1406 1522 2485 2834 4021 
-94 279 540 737 863 1450 1650 1818 2698 4022 
-85 291 456 722 1058 1174 1660 1825 2535 4023 
-195 421 528 649 745 1080 1574 2226 2381 4024 
-49 129 322 449 1081 1237 1790 2063 2411 4025 
-3 190 324 481 1260 1467 2360 2718 2789 4026 
-332 410 561 686 847 1216 1662 2635 2925 4027 
-66 348 543 636 865 955 1588 2464 2640 4028 
-197 265 487 609 1034 1144 2099 2167 2778 4029 
-57 276 498 676 806 1232 1913 2047 2149 4030 
-162 443 586 723 832 996 1534 1923 2586 4031 
-182 389 538 662 1288 1350 2263 2833 2891 4032 
-95 240 334 514 1339 1446 1722 1969 2388 4033 
-50 116 380 682 1157 1443 1495 1735 2048 4034 
-93 274 358 424 1159 1309 1723 1908 2259 4035 
-430 446 544 739 934 1374 2103 2151 2789 4036 
-13 177 431 608 749 939 1941 2447 2572 4037 
-65 101 548 717 743 890 2329 2881 2957 4038 
-13 215 296 364 661 1030 1614 2108 2347 4039 
-187 257 657 1029 1219 1297 1929 2596 2697 4040 
-94 352 500 612 1105 1333 1523 2486 2835 4041 
-95 280 541 738 864 1451 1651 1819 2699 4042 
-86 292 457 723 1059 1175 1661 1826 2536 4043 
-196 422 529 650 746 1081 1575 2227 2382 4044 
-50 130 323 450 1082 1238 1791 2064 2412 4045 
-4 191 325 482 1261 1468 2361 2719 2790 4046 
-333 411 562 687 848 1217 1663 2636 2926 4047 
-67 349 544 637 866 956 1589 2465 2641 4048 
-198 266 488 610 1035 1145 2100 2168 2779 4049 
-58 277 499 677 807 1233 1914 2048 2150 4050 
-163 444 587 724 833 997 1535 1924 2587 4051 
-183 390 539 663 1289 1351 2264 2834 2892 4052 
-96 241 335 515 1340 1447 1723 1970 2389 4053 
-51 117 381 683 1158 1444 1496 1736 2049 4054 
-94 275 359 425 1160 1310 1724 1909 2260 4055 
-431 447 545 740 935 1375 2104 2152 2790 4056 
-14 178 432 609 750 940 1942 2448 2573 4057 
-66 102 549 718 744 891 2330 2882 2958 4058 
-14 216 223 365 662 1031 1615 2109 2348 4059 
-188 258 658 1030 1220 1298 1930 2597 2698 4060 
-95 353 501 613 1106 1334 1524 2487 2836 4061 
-96 281 542 739 865 1452 1652 1820 2700 4062 
-87 293 458 724 1060 1176 1662 1827 2537 4063 
-197 423 530 651 747 1082 1576 2228 2383 4064 
-51 131 324 451 1083 1239 1792 2065 2413 4065 
-5 192 326 483 1262 1469 2362 2720 2791 4066 
-334 412 563 688 849 1218 1664 2637 2927 4067 
-68 350 545 638 867 957 1590 2466 2642 4068 
-199 267 489 611 1036 1146 2101 2169 2780 4069 
-59 278 500 678 808 1234 1915 2049 2151 4070 
-164 371 588 725 834 998 1536 1851 2588 4071 
-184 391 540 664 1290 1352 2265 2835 2893 4072 
-97 242 336 516 1341 1448 1724 1971 2390 4073 
-52 118 382 684 1159 1445 1497 1737 2050 4074 
-95 276 360 426 1161 1311 1725 1910 2261 4075 
-432 448 546 667 936 1376 2105 2153 2791 4076 
-15 179 433 610 751 941 1943 2449 2574 4077 
-67 103 550 719 745 892 2331 2883 2959 4078 
-15 217 224 366 663 1032 1616 2110 2349 4079 
-189 259 659 1031 1221 1299 1931 2598 2699 4080 
-96 354 502 614 1107 1335 1525 2488 2837 4081 
-97 282 543 740 866 1453 1653 1821 2701 4082 
-88 294 459 725 1061 1177 1663 1828 2538 4083 
-198 424 531 652 748 1083 1577 2229 2384 4084 
-52 132 325 452 1084 1240 1793 2066 2414 4085 
-6 193 327 484 1263 1470 2363 2721 2792 4086 
-335 413 564 689 850 1219 1665 2638 2928 4087 
-69 351 546 639 868 958 1591 2467 2643 4088 
-200 268 490 612 963 1147 2102 2170 2781 4089 
-60 279 501 679 809 1235 1916 2050 2152 4090 
-165 372 589 726 835 999 1537 1852 2589 4091 
-185 392 541 665 1291 1353 2266 2836 2894 4092 
-98 243 337 517 1342 1449 1725 1972 2391 4093 
-53 119 383 685 1160 1446 1498 1738 2051 4094 
-96 277 361 427 1162 1312 1726 1911 2262 4095 
-433 449 547 668 937 1377 2106 2154 2792 4096 
-16 180 434 611 752 942 1944 2450 2575 4097 
-68 104 551 720 746 893 2332 2884 2960 4098 
-16 218 225 367 664 1033 1617 2111 2350 4099 
-190 260 660 1032 1222 1300 1932 2599 2700 4100 
-97 355 503 615 1108 1336 1526 2489 2838 4101 
-98 283 544 667 867 1454 1654 1822 2702 4102 
-89 295 460 726 1062 1178 1664 1829 2539 4103 
-199 425 532 653 749 1084 1578 2230 2385 4104 
-53 133 326 453 1085 1241 1794 2067 2415 4105 
-7 194 328 485 1264 1471 2364 2722 2793 4106 
-336 414 565 690 851 1220 1666 2639 2929 4107 
-70 352 547 640 869 959 1592 2468 2644 4108 
-201 269 491 613 964 1148 2103 2171 2782 4109 
-61 280 502 680 810 1236 1917 2051 2153 4110 
-166 373 590 727 836 1000 1538 1853 2590 4111 
-186 393 542 666 1292 1354 2267 2837 2895 4112 
-99 244 338 518 1343 1450 1726 1973 2392 4113 
-54 120 384 686 1161 1447 1499 1739 2052 4114 
-97 278 362 428 1163 1313 1727 1912 2263 4115 
-434 450 548 669 938 1378 2107 2155 2793 4116 
-17 181 435 612 753 943 1945 2451 2576 4117 
-69 105 552 721 747 894 2333 2885 2887 4118 
-17 219 226 368 665 1034 1618 2112 2351 4119 
-191 261 661 1033 1223 1301 1933 2600 2701 4120 
-98 356 504 616 1109 1337 1527 2490 2839 4121 
-99 284 545 668 868 1455 1655 1823 2703 4122 
-90 296 461 727 1063 1179 1665 1830 2540 4123 
-200 426 533 654 750 1085 1579 2231 2386 4124 
-54 134 327 454 1086 1242 1795 2068 2416 4125 
-8 195 329 486 1265 1472 2365 2723 2794 4126 
-337 415 566 691 852 1221 1667 2640 2930 4127 
-71 353 548 641 870 960 1593 2469 2645 4128 
-202 270 492 614 965 1149 2104 2172 2783 4129 
-62 281 503 681 811 1237 1918 2052 2154 4130 
-167 374 591 728 837 1001 1539 1854 2517 4131 
-187 394 543 593 1293 1355 2268 2838 2896 4132 
-100 245 339 445 1344 1451 1727 1974 2393 4133 
-55 121 385 687 1162 1448 1500 1740 2053 4134 
-98 279 363 429 1164 1314 1728 1913 2264 4135 
-435 451 549 670 939 1379 2108 2156 2794 4136 
-18 182 436 613 754 944 1946 2452 2577 4137 
-70 106 553 722 748 895 2334 2886 2888 4138 
-18 220 227 369 666 1035 1619 2113 2352 4139 
-192 262 662 1034 1224 1302 1934 2601 2702 4140 
-99 357 505 617 1110 1338 1528 2491 2840 4141 
-100 285 546 669 869 1456 1656 1824 2704 4142 
-91 223 462 728 1064 1180 1666 1831 2541 4143 
-201 427 534 655 751 1086 1580 2232 2387 4144 
-55 135 328 455 1087 1243 1796 2069 2417 4145 
-9 196 330 487 1266 1473 2366 2724 2795 4146 
-338 416 567 692 853 1222 1668 2641 2931 4147 
-72 354 549 642 871 961 1594 2470 2646 4148 
-203 271 493 615 966 1150 2105 2173 2784 4149 
-63 282 504 682 812 1238 1919 2053 2155 4150 
-168 375 592 729 838 1002 1540 1855 2518 4151 
-188 395 544 594 1294 1356 2269 2839 2897 4152 
-101 246 340 446 1345 1452 1728 1975 2394 4153 
-56 122 386 688 1163 1449 1501 1741 2054 4154 
-99 280 364 430 1165 1315 1729 1914 2265 4155 
-436 452 550 671 940 1380 2109 2157 2795 4156 
-19 183 437 614 755 945 1947 2453 2578 4157 
-71 107 554 723 749 896 2335 2813 2889 4158 
-19 221 228 370 593 1036 1620 2114 2353 4159 
-193 263 663 1035 1225 1303 1935 2602 2703 4160 
-100 358 506 618 1037 1339 1529 2492 2841 4161 
-101 286 547 670 870 1457 1657 1825 2705 4162 
-92 224 463 729 1065 1181 1667 1832 2542 4163 
-202 428 535 656 752 1087 1581 2233 2388 4164 
-56 136 329 456 1088 1244 1797 2070 2418 4165 
-10 197 331 488 1267 1474 2367 2725 2796 4166 
-339 417 568 693 854 1223 1669 2642 2932 4167 
-73 355 550 643 872 962 1595 2471 2647 4168 
-204 272 494 616 967 1151 2106 2174 2785 4169 
-64 283 505 683 813 1239 1920 2054 2156 4170 
-169 376 519 730 839 1003 1541 1856 2519 4171 
-189 396 545 595 1295 1357 2270 2840 2898 4172 
-102 247 341 447 1346 1453 1729 1976 2395 4173 
-57 123 387 689 1164 1450 1502 1742 2055 4174 
-100 281 365 431 1166 1316 1730 1915 2266 4175 
-437 453 551 672 941 1381 2110 2158 2796 4176 
-20 184 438 615 756 946 1948 2454 2579 4177 
-72 108 555 724 750 897 2336 2814 2890 4178 
-20 222 229 297 594 963 1621 2115 2354 4179 
-194 264 664 1036 1226 1304 1936 2603 2704 4180 
-101 359 507 619 1038 1340 1530 2493 2842 4181 
-102 287 548 671 871 1458 1658 1826 2706 4182 
-93 225 464 730 1066 1182 1668 1833 2543 4183 
-203 429 536 657 753 1088 1582 2234 2389 4184 
-57 137 330 457 1089 1245 1798 2071 2419 4185 
-11 198 332 489 1268 1475 2368 2726 2797 4186 
-340 418 569 694 855 1224 1670 2643 2933 4187 
-74 356 551 644 873 889 1596 2472 2648 4188 
-205 273 495 617 968 1152 2107 2175 2786 4189 
-65 284 506 684 814 1240 1921 2055 2157 4190 
-170 377 520 731 840 1004 1542 1857 2520 4191 
-190 397 546 596 1296 1358 2271 2841 2899 4192 
-103 248 342 448 1347 1454 1730 1977 2396 4193 
-58 124 388 690 1165 1451 1503 1743 2056 4194 
-101 282 366 432 1167 1317 1731 1916 2267 4195 
-438 454 552 673 942 1382 2111 2159 2797 4196 
-21 185 439 616 757 947 1949 2455 2580 4197 
-73 109 556 725 751 898 2337 2815 2891 4198 
-21 149 230 298 595 964 1622 2116 2355 4199 
-195 265 665 963 1227 1305 1937 2604 2705 4200 
-102 360 508 620 1039 1341 1531 2494 2843 4201 
-103 288 549 672 872 1459 1659 1827 2707 4202 
-94 226 465 731 1067 1183 1669 1834 2544 4203 
-204 430 537 658 754 1089 1583 2235 2390 4204 
-58 138 331 458 1090 1246 1799 2072 2420 4205 
-12 199 333 490 1269 1476 2295 2727 2798 4206 
-341 419 570 695 856 1225 1671 2644 2934 4207 
-1 357 552 645 874 890 1597 2473 2649 4208 
-206 274 496 618 969 1153 2108 2176 2787 4209 
-66 285 507 685 741 1241 1922 2056 2158 4210 
-171 378 521 732 841 1005 1543 1858 2521 4211 
-191 398 547 597 1297 1359 2272 2842 2900 4212 
-104 249 343 449 1348 1455 1731 1978 2397 4213 
-59 125 389 691 1166 1452 1504 1744 2057 4214 
-102 283 367 433 1168 1318 1732 1917 2268 4215 
-439 455 553 674 943 1383 2112 2160 2798 4216 
-22 186 440 617 758 948 1950 2456 2581 4217 
-74 110 557 726 752 899 2338 2816 2892 4218 
-22 150 231 299 596 965 1623 2117 2356 4219 
-196 266 666 964 1228 1306 1938 2605 2706 4220 
-103 361 509 621 1040 1342 1532 2495 2844 4221 
-104 289 550 673 873 1460 1660 1828 2708 4222 
-95 227 466 732 1068 1184 1670 1835 2545 4223 
-205 431 538 659 755 1090 1584 2236 2391 4224 
-59 139 332 459 1091 1247 1800 1999 2421 4225 
-13 200 334 491 1270 1477 2296 2728 2799 4226 
-342 420 571 696 857 1226 1672 2645 2935 4227 
-2 358 553 646 875 891 1598 2474 2650 4228 
-207 275 497 619 970 1154 2109 2177 2788 4229 
-67 286 508 686 742 1242 1923 2057 2159 4230 
-172 379 522 733 842 1006 1544 1859 2522 4231 
-192 399 548 598 1298 1360 2273 2843 2901 4232 
-105 250 344 450 1349 1456 1732 1979 2398 4233 
-60 126 390 692 1167 1453 1505 1745 2058 4234 
-103 284 368 434 1169 1319 1733 1918 2269 4235 
-440 456 554 675 944 1384 2113 2161 2799 4236 
-23 187 441 618 759 949 1951 2457 2582 4237 
-1 111 558 727 753 900 2339 2817 2893 4238 
-23 151 232 300 597 966 1624 2118 2357 4239 
-197 267 593 965 1229 1307 1939 2606 2707 4240 
-104 362 510 622 1041 1343 1533 2496 2845 4241 
-105 290 551 674 874 1461 1661 1829 2709 4242 
-96 228 467 733 1069 1111 1671 1836 2546 4243 
-206 432 539 660 756 1091 1585 2237 2392 4244 
-60 140 333 460 1092 1248 1801 2000 2422 4245 
-14 201 335 492 1271 1478 2297 2729 2800 4246 
-343 421 572 697 858 1227 1673 2646 2936 4247 
-3 359 554 647 876 892 1599 2475 2651 4248 
-208 276 498 620 971 1155 2110 2178 2789 4249 
-68 287 509 687 743 1243 1924 2058 2160 4250 
-173 380 523 734 843 1007 1545 1860 2523 4251 
-193 400 549 599 1299 1361 2274 2844 2902 4252 
-106 251 345 451 1350 1457 1733 1980 2399 4253 
-61 127 391 693 1168 1454 1506 1746 2059 4254 
-104 285 369 435 1170 1320 1734 1919 2270 4255 
-441 457 555 676 945 1385 2114 2162 2800 4256 
-24 188 442 619 760 950 1952 2458 2583 4257 
-2 112 559 728 754 901 2340 2818 2894 4258 
-24 152 233 301 598 967 1625 2119 2358 4259 
-198 268 594 966 1230 1308 1940 2607 2708 4260 
-105 363 511 623 1042 1344 1534 2497 2846 4261 
-106 291 552 675 875 1462 1662 1830 2710 4262 
-97 229 468 734 1070 1112 1672 1837 2547 4263 
-207 433 540 661 757 1092 1586 2238 2393 4264 
-61 141 334 461 1093 1249 1802 2001 2423 4265 
-15 202 336 493 1272 1479 2298 2730 2801 4266 
-344 422 573 698 859 1228 1674 2647 2937 4267 
-4 360 555 648 877 893 1600 2476 2652 4268 
-209 277 499 621 972 1156 2111 2179 2790 4269 
-69 288 510 688 744 1244 1851 2059 2161 4270 
-174 381 524 735 844 1008 1546 1861 2524 4271 
-194 401 550 600 1300 1362 2275 2845 2903 4272 
-107 252 346 452 1351 1458 1734 1981 2400 4273 
-62 128 392 694 1169 1455 1507 1747 2060 4274 
-105 286 370 436 1171 1321 1735 1920 2271 4275 
-442 458 556 677 946 1386 2115 2163 2801 4276 
-25 189 443 620 761 951 1953 2459 2584 4277 
-3 113 560 729 755 902 2341 2819 2895 4278 
-25 153 234 302 599 968 1626 2120 2359 4279 
-199 269 595 967 1231 1309 1941 2608 2709 4280 
-106 364 512 624 1043 1345 1535 2498 2847 4281 
-107 292 553 676 876 1463 1663 1831 2711 4282 
-98 230 469 735 1071 1113 1673 1838 2548 4283 
-208 434 541 662 758 1093 1587 2239 2394 4284 
-62 142 335 462 1094 1250 1803 2002 2424 4285 
-16 203 337 494 1273 1480 2299 2731 2802 4286 
-345 423 574 699 860 1229 1675 2648 2938 4287 
-5 361 556 649 878 894 1601 2477 2653 4288 
-210 278 500 622 973 1157 2112 2180 2791 4289 
-70 289 511 689 745 1245 1852 2060 2162 4290 
-175 382 525 736 845 1009 1547 1862 2525 4291 
-195 402 551 601 1301 1363 2276 2846 2904 4292 
-108 253 347 453 1352 1459 1735 1982 2401 4293 
-63 129 393 695 1170 1456 1508 1748 2061 4294 
-106 287 297 437 1172 1322 1736 1921 2272 4295 
-443 459 557 678 947 1387 2116 2164 2802 4296 
-26 190 444 621 762 952 1954 2460 2585 4297 
-4 114 561 730 756 903 2342 2820 2896 4298 
-26 154 235 303 600 969 1627 2121 2360 4299 
-200 270 596 968 1232 1310 1942 2609 2710 4300 
-107 365 513 625 1044 1346 1536 2499 2848 4301 
-108 293 554 677 877 1464 1664 1832 2712 4302 
-99 231 470 736 1072 1114 1674 1839 2549 4303 
-209 435 542 663 759 1094 1588 2240 2395 4304 
-63 143 336 463 1095 1251 1804 2003 2425 4305 
-17 204 338 495 1274 1407 2300 2732 2803 4306 
-346 424 575 700 861 1230 1676 2649 2939 4307 
-6 362 557 650 879 895 1602 2478 2654 4308 
-211 279 501 623 974 1158 2113 2181 2792 4309 
-71 290 512 690 746 1246 1853 2061 2163 4310 
-176 383 526 737 846 1010 1548 1863 2526 4311 
-196 403 552 602 1302 1364 2277 2847 2905 4312 
-109 254 348 454 1353 1460 1736 1983 2402 4313 
-64 130 394 696 1171 1457 1509 1749 2062 4314 
-107 288 298 438 1173 1323 1737 1922 2273 4315 
-444 460 558 679 948 1388 2117 2165 2803 4316 
-27 191 371 622 763 953 1955 2461 2586 4317 
-5 115 562 731 757 904 2343 2821 2897 4318 
-27 155 236 304 601 970 1628 2122 2361 4319 
-201 271 597 969 1233 1311 1943 2610 2711 4320 
-108 366 514 626 1045 1347 1537 2500 2849 4321 
-109 294 555 678 878 1465 1665 1833 2713 4322 
-100 232 471 737 1073 1115 1675 1840 2550 4323 
-210 436 543 664 760 1095 1589 2241 2396 4324 
-64 144 337 464 1096 1252 1805 2004 2426 4325 
-18 205 339 496 1275 1408 2301 2733 2804 4326 
-347 425 576 701 862 1231 1677 2650 2940 4327 
-7 363 558 651 880 896 1603 2479 2655 4328 
-212 280 502 624 975 1159 2114 2182 2793 4329 
-72 291 513 691 747 1247 1854 2062 2164 4330 
-177 384 527 738 847 1011 1549 1864 2527 4331 
-197 404 553 603 1303 1365 2278 2848 2906 4332 
-110 255 349 455 1354 1461 1737 1984 2403 4333 
-65 131 395 697 1172 1458 1510 1750 2063 4334 
-108 289 299 439 1174 1324 1738 1923 2274 4335 
-371 461 559 680 949 1389 2118 2166 2804 4336 
-28 192 372 623 764 954 1956 2462 2587 4337 
-6 116 563 732 758 905 2344 2822 2898 4338 
-28 156 237 305 602 971 1555 2123 2362 4339 
-202 272 598 970 1234 1312 1944 2611 2712 4340 
-109 367 515 627 1046 1348 1538 2501 2850 4341 
-110 295 556 679 879 1466 1666 1834 2714 4342 
-101 233 472 738 1074 1116 1676 1841 2551 4343 
-211 437 544 665 761 1096 1590 2242 2397 4344 
-65 145 338 465 1097 1253 1806 2005 2427 4345 
-19 206 340 497 1276 1409 2302 2734 2805 4346 
-348 426 577 702 863 1232 1678 2651 2941 4347 
-8 364 559 652 881 897 1604 2480 2656 4348 
-213 281 503 625 976 1160 2115 2183 2794 4349 
-73 292 514 692 748 1248 1855 2063 2165 4350 
-178 385 528 739 848 1012 1550 1865 2528 4351 
-198 405 554 604 1304 1366 2279 2849 2907 4352 
-111 256 350 456 1355 1462 1738 1985 2404 4353 
-66 132 396 698 1173 1459 1511 1751 2064 4354 
-109 290 300 440 1175 1325 1739 1924 2275 4355 
-372 462 560 681 950 1390 2119 2167 2805 4356 
-29 193 373 624 765 955 1957 2463 2588 4357 
-7 117 564 733 759 906 2345 2823 2899 4358 
-29 157 238 306 603 972 1556 2124 2363 4359 
-203 273 599 971 1235 1313 1945 2612 2713 4360 
-110 368 516 628 1047 1349 1539 2502 2851 4361 
-111 296 557 680 880 1467 1667 1835 2715 4362 
-102 234 473 739 1075 1117 1677 1842 2552 4363 
-212 438 545 666 762 1097 1591 2243 2398 4364 
-66 146 339 466 1098 1254 1807 2006 2428 4365 
-20 207 341 498 1277 1410 2303 2735 2806 4366 
-349 427 578 703 864 1233 1679 2652 2942 4367 
-9 365 560 653 882 898 1605 2481 2657 4368 
-214 282 504 626 977 1161 2116 2184 2795 4369 
-74 293 515 693 749 1249 1856 2064 2166 4370 
-179 386 529 740 849 1013 1551 1866 2529 4371 
-199 406 555 605 1305 1367 2280 2850 2908 4372 
-112 257 351 457 1356 1463 1739 1986 2405 4373 
-67 133 397 699 1174 1460 1512 1752 2065 4374 
-110 291 301 441 1176 1326 1740 1851 2276 4375 
-373 463 561 682 951 1391 2120 2168 2806 4376 
-30 194 374 625 766 956 1958 2464 2589 4377 
-8 118 565 734 760 907 2346 2824 2900 4378 
-30 158 239 307 604 973 1557 2125 2364 4379 
-204 274 600 972 1236 1314 1946 2613 2714 4380 
-111 369 517 629 1048 1350 1540 2503 2852 4381 
-112 223 558 681 881 1468 1668 1836 2716 4382 
-103 235 474 740 1076 1118 1678 1843 2553 4383 
-213 439 546 593 763 1098 1592 2244 2399 4384 
-67 147 340 467 1099 1255 1808 2007 2429 4385 
-21 208 342 499 1278 1411 2304 2736 2807 4386 
-350 428 579 704 865 1234 1680 2653 2943 4387 
-10 366 561 654 883 899 1606 2482 2658 4388 
-215 283 505 627 978 1162 2117 2185 2796 4389 
-1 294 516 694 750 1250 1857 2065 2167 4390 
-180 387 530 667 850 1014 1552 1867 2530 4391 
-200 407 556 606 1306 1368 2281 2851 2909 4392 
-113 258 352 458 1357 1464 1740 1987 2406 4393 
-68 134 398 700 1175 1461 1513 1753 2066 4394 
-111 292 302 442 1177 1327 1741 1852 2277 4395 
-374 464 562 683 952 1392 2121 2169 2807 4396 
-31 195 375 626 767 957 1959 2465 2590 4397 
-9 119 566 735 761 908 2347 2825 2901 4398 
-31 159 240 308 605 974 1558 2126 2365 4399 
-205 275 601 973 1237 1315 1947 2614 2715 4400 
-112 370 518 630 1049 1351 1541 2504 2853 4401 
-113 224 559 682 882 1469 1669 1837 2717 4402 
-104 236 475 667 1077 1119 1679 1844 2554 4403 
-214 440 547 594 764 1099 1593 2245 2400 4404 
-68 148 341 468 1100 1256 1809 2008 2430 4405 
-22 209 343 500 1279 1412 2305 2737 2808 4406 
-351 429 580 705 866 1235 1681 2654 2944 4407 
-11 367 562 655 884 900 1607 2483 2659 4408 
-216 284 506 628 979 1163 2118 2186 2797 4409 
-2 295 517 695 751 1251 1858 2066 2168 4410 
-181 388 531 668 851 1015 1553 1868 2531 4411 
-201 408 557 607 1307 1369 2282 2852 2910 4412 
-114 259 353 459 1358 1465 1741 1988 2407 4413 
-69 135 399 701 1176 1462 1514 1754 2067 4414 
-112 293 303 443 1178 1328 1742 1853 2278 4415 
-375 465 563 684 953 1393 2122 2170 2808 4416 
-32 196 376 627 768 958 1960 2466 2517 4417 
-10 120 567 736 762 909 2348 2826 2902 4418 
-32 160 241 309 606 975 1559 2127 2366 4419 
-206 276 602 974 1238 1316 1948 2615 2716 4420 
-113 297 445 631 1050 1352 1542 2505 2854 4421 
-114 225 560 683 883 1470 1670 1838 2718 4422 
-105 237 476 668 1078 1120 1680 1845 2555 4423 
-215 441 548 595 765 1100 1594 2246 2401 4424 
-69 75 342 469 1101 1257 1810 2009 2431 4425 
-23 210 344 501 1280 1413 2306 2738 2809 4426 
-352 430 581 706 867 1236 1682 2655 2945 4427 
-12 368 563 656 885 901 1608 2484 2660 4428 
-217 285 507 629 980 1164 2119 2187 2798 4429 
-3 296 518 696 752 1252 1859 2067 2169 4430 
-182 389 532 669 852 1016 1554 1869 2532 4431 
-202 409 558 608 1308 1370 2283 2853 2911 4432 
-115 260 354 460 1359 1466 1742 1989 2408 4433 
-70 136 400 702 1177 1463 1515 1755 2068 4434 
-113 294 304 444 1179 1329 1743 1854 2279 4435 
-376 466 564 685 954 1394 2123 2171 2809 4436 
-33 197 377 628 769 959 1961 2467 2518 4437 
-11 121 568 737 763 910 2349 2827 2903 4438 
-33 161 242 310 607 976 1560 2128 2367 4439 
-207 277 603 975 1239 1317 1949 2616 2717 4440
diff --git a/gr-fec/examples/ber_curve_gen_ldpc.grc 
b/gr-fec/examples/ber_curve_gen_ldpc.grc
index 2379b8b..606eca7 100644
--- a/gr-fec/examples/ber_curve_gen_ldpc.grc
+++ b/gr-fec/examples/ber_curve_gen_ldpc.grc
@@ -69,34 +69,7 @@
     <key>variable</key>
     <param>
       <key>id</key>
-      <value>esno_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>numpy.arange(0, 8.1, .5) </value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(8, 141)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable</key>
-    <param>
-      <key>id</key>
-      <value>samp_rate_0</value>
+      <value>k</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -104,7 +77,7 @@
     </param>
     <param>
       <key>value</key>
-      <value>35000000</value>
+      <value>7</value>
     </param>
     <param>
       <key>alias</key>
@@ -112,7 +85,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(8, 75)</value>
+      <value>(7, 209)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -150,34 +123,7 @@
     <key>variable</key>
     <param>
       <key>id</key>
-      <value>k</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>7</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(7, 209)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable</key>
-    <param>
-      <key>id</key>
-      <value>polys</value>
+      <value>samp_rate_0</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -185,7 +131,7 @@
     </param>
     <param>
       <key>value</key>
-      <value>[79, 109]</value>
+      <value>35000000</value>
     </param>
     <param>
       <key>alias</key>
@@ -193,7 +139,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(75, 208)</value>
+      <value>(8, 75)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -204,7 +150,7 @@
     <key>variable</key>
     <param>
       <key>id</key>
-      <value>rate</value>
+      <value>esno_0</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -212,7 +158,7 @@
     </param>
     <param>
       <key>value</key>
-      <value>2</value>
+      <value>numpy.arange(0, 8.1, .5) </value>
     </param>
     <param>
       <key>alias</key>
@@ -220,7 +166,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(171, 208)</value>
+      <value>(8, 141)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -420,37 +366,6 @@
     <bus_source>1</bus_source>
   </block>
   <block>
-    <key>variable_ldpc_gen_mtrx_def</key>
-    <param>
-      <key>id</key>
-      <value>variable_ldpc_gen_mtrx_def_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>False</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>"ok"</value>
-    </param>
-    <param>
-      <key>filename</key>
-      <value></value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(8, 355)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
     <key>variable_dummy_encoder_def</key>
     <param>
       <key>id</key>
@@ -717,6 +632,105 @@
     </param>
   </block>
   <block>
+    <key>variable_ldpc_R_U_mtrx_def</key>
+    <param>
+      <key>id</key>
+      <value>H</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>value</key>
+      <value>"ok"</value>
+    </param>
+    <param>
+      <key>filename</key>
+      <value>n_1800_k_0902_gap_28.alist</value>
+    </param>
+    <param>
+      <key>gap</key>
+      <value>28</value>
+    </param>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(8, 275)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>fec_bercurve_generator</key>
+    <param>
+      <key>id</key>
+      <value>fec_bercurve_generator_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>esno</key>
+      <value>esno_0</value>
+    </param>
+    <param>
+      <key>samp_rate</key>
+      <value>samp_rate_0</value>
+    </param>
+    <param>
+      <key>encoder_list</key>
+      <value>enc_ldpc_G</value>
+    </param>
+    <param>
+      <key>decoder_list</key>
+      <value>dec_ldpc_G</value>
+    </param>
+    <param>
+      <key>puncpat</key>
+      <value>'11'</value>
+    </param>
+    <param>
+      <key>threadtype</key>
+      <value>"capillary"</value>
+    </param>
+    <param>
+      <key>seed</key>
+      <value>-100</value>
+    </param>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>affinity</key>
+      <value></value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(264, 323)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <bus_source>1</bus_source>
+  </block>
+  <block>
     <key>qtgui_bercurve_sink</key>
     <param>
       <key>id</key>
@@ -740,7 +754,7 @@
     </param>
     <param>
       <key>num_curves</key>
-      <value>3</value>
+      <value>4</value>
     </param>
     <param>
       <key>curvenames</key>
@@ -812,7 +826,7 @@
     </param>
     <param>
       <key>label3</key>
-      <value>LDPC</value>
+      <value>LDPC (R.U. matrix)</value>
     </param>
     <param>
       <key>width3</key>
@@ -836,11 +850,11 @@
     </param>
     <param>
       <key>label4</key>
-      <value>LDPC</value>
+      <value>LDPC (Gen. matrix)</value>
     </param>
     <param>
       <key>width4</key>
-      <value>1</value>
+      <value>2</value>
     </param>
     <param>
       <key>color4</key>
@@ -856,7 +870,7 @@
     </param>
     <param>
       <key>alpha4</key>
-      <value>1.0</value>
+      <value>1</value>
     </param>
     <param>
       <key>label5</key>
@@ -1021,10 +1035,57 @@
     <bus_sink>1</bus_sink>
   </block>
   <block>
-    <key>variable_ldpc_R_U_mtrx_def</key>
+    <key>variable_ldpc_bit_flip_decoder_def</key>
     <param>
       <key>id</key>
-      <value>H</value>
+      <value>dec_ldpc_G</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>value</key>
+      <value>"ok"</value>
+    </param>
+    <param>
+      <key>ndim</key>
+      <value>2</value>
+    </param>
+    <param>
+      <key>dim1</key>
+      <value>len(esno_0)</value>
+    </param>
+    <param>
+      <key>dim2</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>max_iterations</key>
+      <value>100</value>
+    </param>
+    <param>
+      <key>matrix_object</key>
+      <value>G</value>
+    </param>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(632, 547)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>variable_ldpc_HorG_mtrx_def</key>
+    <param>
+      <key>id</key>
+      <value>G</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -1036,11 +1097,50 @@
     </param>
     <param>
       <key>filename</key>
-      <value>n_1800_k_0902_gap_28.alist</value>
+      <value>simple_g_matrix.alist</value>
     </param>
     <param>
-      <key>gap</key>
-      <value>28</value>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(8, 355)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>variable_ldpc_gen_mtrx_encoder_def</key>
+    <param>
+      <key>id</key>
+      <value>enc_ldpc_G</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>value</key>
+      <value>"ok"</value>
+    </param>
+    <param>
+      <key>ndim</key>
+      <value>2</value>
+    </param>
+    <param>
+      <key>dim1</key>
+      <value>len(esno_0)</value>
+    </param>
+    <param>
+      <key>dim2</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>LDPC_matrix_object</key>
+      <value>G</value>
     </param>
     <param>
       <key>alias</key>
@@ -1048,7 +1148,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(8, 275)</value>
+      <value>(624, 427)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -1263,7 +1363,7 @@
     <source_block_id>fec_bercurve_generator_0_0_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
     <source_key>34</source_key>
-    <sink_key>102</sink_key>
+    <sink_key>136</sink_key>
   </connection>
   <connection>
     <source_block_id>fec_bercurve_generator_0_0</source_block_id>
@@ -1473,7 +1573,7 @@
     <source_block_id>fec_bercurve_generator_0_0</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
     <source_key>34</source_key>
-    <sink_key>103</sink_key>
+    <sink_key>137</sink_key>
   </connection>
   <connection>
     <source_block_id>fec_bercurve_generator_1</source_block_id>
@@ -1683,6 +1783,216 @@
     <source_block_id>fec_bercurve_generator_1</source_block_id>
     <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
     <source_key>34</source_key>
+    <sink_key>138</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>0</source_key>
+    <sink_key>102</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>1</source_key>
+    <sink_key>103</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>2</source_key>
     <sink_key>104</sink_key>
   </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>3</source_key>
+    <sink_key>105</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>4</source_key>
+    <sink_key>106</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>5</source_key>
+    <sink_key>107</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>6</source_key>
+    <sink_key>108</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>7</source_key>
+    <sink_key>109</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>8</source_key>
+    <sink_key>110</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>9</source_key>
+    <sink_key>111</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>10</source_key>
+    <sink_key>112</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>11</source_key>
+    <sink_key>113</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>12</source_key>
+    <sink_key>114</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>13</source_key>
+    <sink_key>115</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>14</source_key>
+    <sink_key>116</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>15</source_key>
+    <sink_key>117</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>16</source_key>
+    <sink_key>118</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>17</source_key>
+    <sink_key>119</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>18</source_key>
+    <sink_key>120</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>19</source_key>
+    <sink_key>121</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>20</source_key>
+    <sink_key>122</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>21</source_key>
+    <sink_key>123</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>22</source_key>
+    <sink_key>124</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>23</source_key>
+    <sink_key>125</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>24</source_key>
+    <sink_key>126</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>25</source_key>
+    <sink_key>127</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>26</source_key>
+    <sink_key>128</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>27</source_key>
+    <sink_key>129</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>28</source_key>
+    <sink_key>130</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>29</source_key>
+    <sink_key>131</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>30</source_key>
+    <sink_key>132</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>31</source_key>
+    <sink_key>133</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>32</source_key>
+    <sink_key>134</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>33</source_key>
+    <sink_key>135</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_bercurve_generator_0</source_block_id>
+    <sink_block_id>qtgui_bercurve_sink_0</sink_block_id>
+    <source_key>34</source_key>
+    <sink_key>139</sink_key>
+  </connection>
 </flow_graph>
diff --git a/gr-fec/examples/simple_g_matrix.alist 
b/gr-fec/examples/simple_g_matrix.alist
new file mode 100644
index 0000000..38c4b7f
--- /dev/null
+++ b/gr-fec/examples/simple_g_matrix.alist
@@ -0,0 +1,17 @@
+8 4
+3 4
+1 1 1 1 3 3 3 3
+4 4 4 4
+1
+2
+3
+4
+2 3 4
+1 3 4
+1 2 4
+1 2 3
+1 6 7 8
+2 5 7 8
+3 5 6 8
+4 5 6 7
+
diff --git a/gr-fec/grc/fec_block_tree.xml b/gr-fec/grc/fec_block_tree.xml
index 15f8412..9d8b333 100644
--- a/gr-fec/grc/fec_block_tree.xml
+++ b/gr-fec/grc/fec_block_tree.xml
@@ -51,6 +51,6 @@
     <block>variable_polar_code_configurator</block>
     <block>variable_ldpc_par_chk_mtrx_def</block>
     <block>variable_ldpc_R_U_mtrx_def</block>
-    <block>variable_ldpc_gen_mtrx_def</block>
+    <block>variable_ldpc_HorG_mtrx_def</block>
   </cat>
 </cat>
diff --git a/gr-fec/grc/variable_ldpc_gen_mtrx_object.xml 
b/gr-fec/grc/variable_ldpc_HorG_mtrx_object.xml
similarity index 58%
rename from gr-fec/grc/variable_ldpc_gen_mtrx_object.xml
rename to gr-fec/grc/variable_ldpc_HorG_mtrx_object.xml
index 23d0567..2c13b5b 100644
--- a/gr-fec/grc/variable_ldpc_gen_mtrx_object.xml
+++ b/gr-fec/grc/variable_ldpc_HorG_mtrx_object.xml
@@ -1,14 +1,14 @@
 <?xml version="1.0"?>
 <!--
 ###################################################
-# FEC LDPC GENERATOR MATRIX OBJECT
+# FEC LDPC MATRIX OBJECT
 ###################################################
  -->
 <block>
-    <name>LDPC Generator Matrix</name>
-    <key>variable_ldpc_gen_mtrx_def</key>
+    <name>LDPC Matrix</name>
+    <key>variable_ldpc_HorG_mtrx_def</key>
     <import>from gnuradio import fec</import>
-    <var_make>self.$(id) = $(id) = fec.ldpc_gen_mtrx($filename)</var_make>
+    <var_make>self.$(id) = $(id) = fec.ldpc_HorG_mtrx($filename)</var_make>
     
     <make></make>
 
@@ -28,15 +28,21 @@
     </param>
 
     <doc>
-This block creates a LDPC Generator Matrix variable.
+This block creates a LDPC Matrix variable.
 
 This variable can be used by:
   1) LDPC Generator Matrix Encoder Definition block
   2) LDPC Bit Flip Decoder Definition block
 
-A filename must be provided for a generator matrix in alist format. It must be 
in the standard generator matrix format G = [I P], where I is an identity 
matrix and P is the parity submatrix.
-
-The format of alist files is described at: 
+A filename must be provided for a generator matrix in alist format. The format 
of alist files is described at: 
 http://www.inference.phy.cam.ac.uk/mackay/codes/alist.html
+
+The provided alist file can contain either:
+
+1) Generator matrix, G, in the standard format G = [I P], where I is an 
identity matrix and P is the parity submatrix.
+
+or
+
+2) Parity matrix, H, in the standard format H = [P' I], where P' is the 
transpose of the parity submatrix and I is an identity matrix.
     </doc>
 </block>
diff --git a/gr-fec/grc/variable_ldpc_R_U_encoder.xml 
b/gr-fec/grc/variable_ldpc_R_U_encoder.xml
index 56bb99c..184e8cc 100644
--- a/gr-fec/grc/variable_ldpc_R_U_encoder.xml
+++ b/gr-fec/grc/variable_ldpc_R_U_encoder.xml
@@ -72,7 +72,7 @@ self.$(id) = $(id) = map((lambda b: map((lambda a: 
fec.ldpc_R_U_encoder_make($pa
 This block creates a LDPC R. U. Encoder Definition variable.
 
 R.U. Matrix ID: Provide the ID of a LDPC R. U. Parity Check Matrix
-                   variable block.
+                                 variable block.
 
 Richardson and Urbanke describe their encoding method in Appendix A of their 
book: Modern Coding Theory (ISBN 978-0-521-85229-6).
     </doc>
diff --git a/gr-fec/grc/variable_ldpc_R_U_mtrx_object.xml 
b/gr-fec/grc/variable_ldpc_R_U_mtrx_object.xml
index 460ecdd..e72108c 100644
--- a/gr-fec/grc/variable_ldpc_R_U_mtrx_object.xml
+++ b/gr-fec/grc/variable_ldpc_R_U_mtrx_object.xml
@@ -44,5 +44,7 @@ The format of alist files is described at:
 http://www.inference.phy.cam.ac.uk/mackay/codes/alist.html
 
 The specific format of this parity check matrix is described by Richardson and 
Urbanke in Appendix A of their book: Modern Coding Theory (ISBN 
978-0-521-85229-6). There is one file in examples/fec called 
n_1800_k_0902_gap_28.alist which is used by the example flowgraph 
ber_curve_gen_ldpc.grc. There are more at 
target/lib/python2.7/dist-packages/gnuradio/fec/LDPC/.
+
+To convert a parity matrix file to the appropriate format required for this 
encoder, use the python functions in 
target/lib/python2.7/dist-packages/gnuradio/fec/LDPC/Generate_LDPC_matrix.py.
     </doc>
 </block>
diff --git a/gr-fec/grc/variable_ldpc_bit_flip_decoder.xml 
b/gr-fec/grc/variable_ldpc_bit_flip_decoder.xml
index 7980529..136efa8 100644
--- a/gr-fec/grc/variable_ldpc_bit_flip_decoder.xml
+++ b/gr-fec/grc/variable_ldpc_bit_flip_decoder.xml
@@ -78,7 +78,7 @@ self.$(id) = $(id) = map((lambda b: map((lambda a: 
fec.ldpc_bit_flip_decoder.mak
 This block creates a LDPC Bit Flip Decoder Definition variable.
 
 The decoder requires knowledge of the matrix used to create (encode) the 
codewords. In the LDPC FEC Matrix ID field, input the ID of either a:
-  1) LDPC Parity Check Matrix variable, or
+  1) LDPC Matrix variable, or
   2) LDPC Generator Matrix variable
 
 Be sure to specify the same matrix ID as the matrix that was used for encoding.
diff --git a/gr-fec/grc/variable_ldpc_gen_mtrx_encoder.xml 
b/gr-fec/grc/variable_ldpc_gen_mtrx_encoder.xml
index 6162165..3f2712b 100644
--- a/gr-fec/grc/variable_ldpc_gen_mtrx_encoder.xml
+++ b/gr-fec/grc/variable_ldpc_gen_mtrx_encoder.xml
@@ -10,11 +10,11 @@
     <import>from gnuradio import fec</import>
     <var_make>
 #if int($ndim())==0 #
-self.$(id) = $(id) = fec.ldpc_gen_mtrx_encoder_make($generator_matrix_object)
+self.$(id) = $(id) = fec.ldpc_gen_mtrx_encoder_make($LDPC_matrix_object)
 #else if int($ndim())==1 #
-self.$(id) = $(id) = map((lambda a: 
fec.ldpc_gen_mtrx_encoder_make($generator_matrix_object)), range(0,$dim1)) 
#slurp
+self.$(id) = $(id) = map((lambda a: 
fec.ldpc_gen_mtrx_encoder_make($LDPC_matrix_object)), range(0,$dim1)) #slurp
 #else
-self.$(id) = $(id) = map((lambda b: map((lambda a: 
fec.ldpc_gen_mtrx_encoder_make($generator_matrix_object)), range(0,$dim2))), 
range(0,$dim1)) #slurp
+self.$(id) = $(id) = map((lambda b: map((lambda a: 
fec.ldpc_gen_mtrx_encoder_make($LDPC_matrix_object)), range(0,$dim2))), 
range(0,$dim1)) #slurp
 #end if</var_make>
     <make></make>
 
@@ -62,12 +62,19 @@ self.$(id) = $(id) = map((lambda b: map((lambda a: 
fec.ldpc_gen_mtrx_encoder_mak
     </param>
 
     <param>
-        <name>LDPC Generator Matrix ID</name>
-        <key>generator_matrix_object</key>
+        <name>LDPC Matrix ID</name>
+        <key>LDPC_matrix_object</key>
         <value></value>
         <type>raw</type>
     </param>
 
     <doc>
+This block creates a LDPC Generator Matrix Encoder Definition variable.
+
+LDPC Matrix ID: Provide the ID of a LDPC Matrix variable block.
+
+This encoder generates a codeword from the simple matrix multiplication 
equation:
+codeword = G_transpose*info_word
+
     </doc>
 </block>
diff --git a/gr-fec/include/gnuradio/fec/CMakeLists.txt 
b/gr-fec/include/gnuradio/fec/CMakeLists.txt
index 1f5dea9..a188dee 100644
--- a/gr-fec/include/gnuradio/fec/CMakeLists.txt
+++ b/gr-fec/include/gnuradio/fec/CMakeLists.txt
@@ -56,7 +56,7 @@ install(FILES
     ldpc_R_U_mtrx.h
     ldpc_bit_flip_decoder.h
     ldpc_R_U_encoder.h
-    ldpc_gen_mtrx.h
+    ldpc_HorG_mtrx.h
     ldpc_gen_mtrx_encoder.h
     fec_mtrx.h
     DESTINATION ${GR_INCLUDE_DIR}/gnuradio/fec
diff --git a/gr-fec/include/gnuradio/fec/ldpc_gen_mtrx.h 
b/gr-fec/include/gnuradio/fec/ldpc_HorG_mtrx.h
similarity index 85%
rename from gr-fec/include/gnuradio/fec/ldpc_gen_mtrx.h
rename to gr-fec/include/gnuradio/fec/ldpc_HorG_mtrx.h
index 56b171d..a9e4eee 100644
--- a/gr-fec/include/gnuradio/fec/ldpc_gen_mtrx.h
+++ b/gr-fec/include/gnuradio/fec/ldpc_HorG_mtrx.h
@@ -18,8 +18,8 @@
  * Boston, MA 02110-1301, USA.
  */
 
-#ifndef INCLUDED_ldpc_gen_mtrx_H
-#define INCLUDED_ldpc_gen_mtrx_H
+#ifndef INCLUDED_ldpc_HorG_mtrx_H
+#define INCLUDED_ldpc_HorG_mtrx_H
  
 #include <gsl/gsl_randist.h>
 #include <gsl/gsl_permutation.h>
@@ -31,7 +31,7 @@
 namespace gr {
   namespace fec {
     namespace code {
-      class FEC_API ldpc_gen_mtrx : public fec_mtrx
+      class FEC_API ldpc_HorG_mtrx : public fec_mtrx
       {
       private:
         // GSL matrix structure for transpose of G
@@ -40,9 +40,9 @@ namespace gr {
         gr::fec::code::fec_mtrx *d_base_ptr;
         
       public:
-        ldpc_gen_mtrx(const std::string filename);
+        ldpc_HorG_mtrx(const std::string filename);
         // Default constructor, should not be used
-        ldpc_gen_mtrx();
+        ldpc_HorG_mtrx();
         // Get the generator matrix (used during encoding)
         const gsl_matrix *G_transpose() const;
         // A pointer to make swig work for the ldpc_bit_flip_decoder
@@ -50,10 +50,10 @@ namespace gr {
         gr::fec::code::fec_mtrx *get_base_ptr();
 
         // Destructor
-        virtual ~ldpc_gen_mtrx();
+        virtual ~ldpc_HorG_mtrx();
       };
     }
   }
 }
 
-#endif /* INCLUDED_ldpc_gen_mtrx_H */
\ No newline at end of file
+#endif /* INCLUDED_ldpc_HorG_mtrx_H */
\ No newline at end of file
diff --git a/gr-fec/include/gnuradio/fec/ldpc_gen_mtrx_encoder.h 
b/gr-fec/include/gnuradio/fec/ldpc_gen_mtrx_encoder.h
index d3921ee..5230729 100644
--- a/gr-fec/include/gnuradio/fec/ldpc_gen_mtrx_encoder.h
+++ b/gr-fec/include/gnuradio/fec/ldpc_gen_mtrx_encoder.h
@@ -23,7 +23,7 @@
 
 #include <gnuradio/fec/api.h>
 #include <gnuradio/fec/generic_encoder.h>
-#include <gnuradio/fec/ldpc_gen_mtrx.h>
+#include <gnuradio/fec/ldpc_HorG_mtrx.h>
 
 namespace gr {
   namespace fec {
@@ -50,7 +50,7 @@ namespace gr {
          * \param G_obj The generator matrix object to use
          *        for encoding.
         */
-        static generic_encoder::sptr make(const ldpc_gen_mtrx *G_obj);
+        static generic_encoder::sptr make(const ldpc_HorG_mtrx *M_obj);
 
         /*!
          * Sets the uncoded frame size to \p frame_size. If \p
diff --git a/gr-fec/lib/CMakeLists.txt b/gr-fec/lib/CMakeLists.txt
index 5684212..b5cbe74 100644
--- a/gr-fec/lib/CMakeLists.txt
+++ b/gr-fec/lib/CMakeLists.txt
@@ -93,7 +93,7 @@ list(APPEND gnuradio_fec_sources
   ldpc_R_U_mtrx.cc
   ldpc_bit_flip_decoder_impl.cc
   ldpc_R_U_encoder_impl.cc
-  ldpc_gen_mtrx.cc
+  ldpc_HorG_mtrx.cc
   ldpc_gen_mtrx_encoder_impl.cc
   fec_mtrx.cc
 )
diff --git a/gr-fec/lib/ldpc_HorG_mtrx.cc b/gr-fec/lib/ldpc_HorG_mtrx.cc
new file mode 100644
index 0000000..6103d1b
--- /dev/null
+++ b/gr-fec/lib/ldpc_HorG_mtrx.cc
@@ -0,0 +1,252 @@
+/* -*- c++ -*- */
+/* 
+ * Copyright 2013-2014 Free Software Foundation, Inc.
+ * 
+ * This is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published 
+ * by the Free Software Foundation; either version 3, or (at your 
+ * option) any later version.
+ * 
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this software; see the file COPYING.  If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street,
+ * Boston, MA 02110-1301, USA.
+ */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <gnuradio/fec/ldpc_HorG_mtrx.h>
+#include <math.h>
+#include <fstream>
+#include <vector>
+#include <sstream>
+#include <iostream>
+
+namespace gr {
+  namespace fec {
+    namespace code {
+
+      ldpc_HorG_mtrx::ldpc_HorG_mtrx(const std::string filename) 
+      {
+        // Read the matrix from a file in alist format
+        gsl_matrix *temp_mtrx = read_matrix_from_file(filename);
+
+        // Next, figure out if the format is [I P] or [P' I]
+        bool have_G_matrix = false;
+        bool have_H_matrix = false;
+
+        unsigned int row_index, col_index;
+        // First, check if we have a generator matrix G in systematic
+        // form, G = [I P], where I is a k x k identity matrix and P
+        // is the parity submatrix.
+        try {
+          // Length of codeword = # of columns of generator matrix
+          d_n = d_num_cols;
+          // Length of information word = # of rows of generator matrix
+          d_k = d_num_rows;
+
+          gsl_matrix *I_test   = gsl_matrix_alloc(d_k,d_k);
+          gsl_matrix *identity = gsl_matrix_alloc(d_k,d_k);
+          gsl_matrix_set_identity(identity);
+
+          for (row_index = 0; row_index < d_k; row_index++) {
+            for (col_index = 0; col_index < d_k; col_index++) {
+              int value = gsl_matrix_get(temp_mtrx,
+                                         row_index,
+                                         col_index);
+              gsl_matrix_set(I_test, row_index, col_index, value);
+            }
+          }
+
+          int test_if_equal = gsl_matrix_equal(identity,I_test);
+          if (test_if_equal) {
+            have_G_matrix = true;
+          }
+
+          // Free memory
+          gsl_matrix_free(identity);
+          gsl_matrix_free(I_test);
+        }
+        catch (...) {
+          // Must not have been a G matrix.
+          // No need to output anything.
+        }
+
+        // Second, check if we have a parity check matrix H in the standard 
form, H = [P' I]
+        try {
+          // Length of codeword = # of columns of generator matrix
+          d_n = d_num_cols;
+          // Length of information word
+          d_k = d_n - d_num_rows;
+
+          gsl_matrix *I_test   = gsl_matrix_alloc(d_n-d_k, d_n-d_k);
+          gsl_matrix *identity = gsl_matrix_alloc(d_n-d_k, d_n-d_k);
+          gsl_matrix_set_identity(identity);
+
+          for (row_index = 0; row_index < d_n-d_k; row_index++) {
+            for (col_index = d_k; col_index < d_n; col_index++) {
+              int value = gsl_matrix_get(temp_mtrx,
+                                         row_index,
+                                         col_index);
+              gsl_matrix_set(I_test,
+                             row_index,
+                             col_index - d_k,
+                             value);
+            }
+          }
+
+          int test_if_equal = gsl_matrix_equal(identity,I_test);
+          if (test_if_equal) {
+            have_H_matrix = true;
+          }
+
+          // Free memory
+          gsl_matrix_free(identity);
+          gsl_matrix_free(I_test);
+        }
+        catch (...) {
+          // Must not have been an H matrix.
+          // No need to output anything.
+        }
+
+        // If neither, exit
+        if (!have_G_matrix && !have_H_matrix) {
+          std::cout << " ***Error in ldpc_HorG_mtrx constructor. It "
+                    << "appears that the given alist file did not "
+                    << "contain either a valid parity check matrix "
+                    << "of the form H = [P' I] or a generator matrix"
+                    << " of the form G = [I P].\n";
+          exit(1);
+        }
+
+        if (have_G_matrix) {
+          gsl_matrix *d_G_ptr = temp_mtrx;
+
+          // Grab P matrix
+          gsl_matrix *P = gsl_matrix_alloc(d_k,d_n-d_k);
+          for (row_index = 0; row_index < d_k; row_index++) {
+            for (col_index = 0; col_index < d_n-d_k; col_index++) {
+              int value = gsl_matrix_get(d_G_ptr,
+                                         row_index,
+                                         col_index + d_k);
+              gsl_matrix_set(P, row_index, col_index, value);
+            }
+          }
+
+          // Calculate P transpose
+          gsl_matrix *P_transpose = gsl_matrix_alloc(d_n-d_k, d_k);
+          gsl_matrix_transpose_memcpy(P_transpose, P);
+
+          // Set H matrix. H = [-P' I] but since we are doing mod 2,
+          // -P = P, so H = [P' I]
+          d_H_ptr = gsl_matrix_alloc(d_n-d_k, d_n);
+          gsl_matrix_set_zero(d_H_ptr);
+          for (row_index = 0; row_index < d_k; row_index++) {
+            for (col_index = 0; col_index < d_n-d_k; col_index++) {
+              int value = gsl_matrix_get(P_transpose,
+                                         row_index,
+                                         col_index);
+              gsl_matrix_set(d_H_ptr, row_index, col_index, value);
+            }
+          }
+
+          for (row_index = 0; row_index < d_k; row_index++) {
+            col_index = row_index + d_k;
+            gsl_matrix_set(d_H_ptr, row_index, col_index, 1);
+          }
+
+          // Calculate G transpose (used for encoding)
+          d_G_transp_ptr = gsl_matrix_alloc(d_n, d_k);
+          gsl_matrix_transpose_memcpy(d_G_transp_ptr, d_G_ptr);
+
+          // Free memory
+          gsl_matrix_free(P);
+          gsl_matrix_free(d_G_ptr);
+          gsl_matrix_free(P_transpose);
+        }
+
+        if (have_H_matrix) {
+          // Set H matrix (used for decoding)
+          d_H_ptr = temp_mtrx;
+
+          // Grab P' matrix (P' denotes P transposed)
+          gsl_matrix *P_transpose = gsl_matrix_alloc(d_n-d_k,d_k);
+          for (row_index = 0; row_index < d_n-d_k; row_index++) {
+            for (col_index = 0; col_index < d_k; col_index++) {
+              int value = gsl_matrix_get(d_H_ptr,
+                                         row_index,
+                                         col_index);
+              gsl_matrix_set(P_transpose, row_index, col_index, value);
+            }
+          }
+
+          // Set G transpose matrix (used for encoding)
+          d_G_transp_ptr = gsl_matrix_alloc(d_n, d_k);
+          gsl_matrix_set_zero(d_G_transp_ptr);
+          for (row_index = 0; row_index < d_k; row_index++) {
+            col_index = row_index;
+            gsl_matrix_set(d_G_transp_ptr, row_index, col_index, 1);
+          }
+          for (row_index = d_k; row_index < d_n; row_index++) {
+            for (col_index = 0; col_index < d_k; col_index++) {
+              int value = gsl_matrix_get(P_transpose,
+                                         row_index - d_k,
+                                         col_index);
+              gsl_matrix_set(d_G_transp_ptr,
+                             row_index,
+                             col_index,
+                             value);
+            }
+          }
+
+          // Free memory
+          gsl_matrix_free(P_transpose);
+        }
+
+        // For info about this see get_base_ptr() function
+        d_base_ptr = this;
+
+      } // Constructor
+
+      // Default constructor, should not be used
+      ldpc_HorG_mtrx::ldpc_HorG_mtrx()
+      {
+        std::cout << "Error in ldpc_HorG_mtrx(): Default "
+                  << "constructor called.\nMust provide filename for"
+                  << " generator matrix. \n\n";
+        exit(1);
+      } // Default constructor
+
+      const gsl_matrix*
+      ldpc_HorG_mtrx::G_transpose() const
+      {
+        const gsl_matrix *G_trans_ptr = d_G_transp_ptr;
+        return G_trans_ptr;
+      }
+
+      gr::fec::code::fec_mtrx*
+      ldpc_HorG_mtrx::get_base_ptr()
+      {
+        /* For some reason, swig isn't accepting a pointer to this
+           child class for the make function of the
+           ldpc_bit_flip_decoder; it's expecting a pointer to the
+           base class. So this is just a workaround for swig/GRC.
+        */
+        return d_base_ptr;
+      }
+
+      ldpc_HorG_mtrx::~ldpc_HorG_mtrx()
+      {
+        // Call the gsl_matrix_free function to free memory.
+        gsl_matrix_free(d_H_ptr);
+        gsl_matrix_free(d_G_transp_ptr);
+      }
+    } /* namespace code */
+  } /* namespace fec */
+} /* namespace gr */
\ No newline at end of file
diff --git a/gr-fec/lib/ldpc_gen_mtrx.cc b/gr-fec/lib/ldpc_gen_mtrx.cc
deleted file mode 100644
index f2af63c..0000000
--- a/gr-fec/lib/ldpc_gen_mtrx.cc
+++ /dev/null
@@ -1,150 +0,0 @@
-/* -*- c++ -*- */
-/* 
- * Copyright 2013-2014 Free Software Foundation, Inc.
- * 
- * This is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published 
- * by the Free Software Foundation; either version 3, or (at your 
- * option) any later version.
- * 
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this software; see the file COPYING.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street,
- * Boston, MA 02110-1301, USA.
- */
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <gnuradio/fec/ldpc_gen_mtrx.h>
-#include <math.h>
-#include <fstream>
-#include <vector>
-#include <sstream>
-#include <iostream>
-
-namespace gr {
-  namespace fec {
-    namespace code {
-
-      ldpc_gen_mtrx::ldpc_gen_mtrx(const std::string filename) 
-      {
-        // Read the matrix from a file in alist format
-        gsl_matrix *d_G_ptr = read_matrix_from_file(filename);
-        // Length of codeword = # of columns of generator matrix
-        d_n = d_num_cols;
-        // Length of information word = # of rows of generator matrix
-        d_k = d_num_rows;
-
-        // The alist file should have provided a generator matrix G
-        // in systematic form, G = [I P], where I is a k x k identity
-        // matrix and P is the parity submatrix. So start by checking
-        // that the left side k x k submatrix is I.
-
-        gsl_matrix *I_test   = gsl_matrix_alloc(d_k,d_k);
-        gsl_matrix *identity = gsl_matrix_alloc(d_k,d_k);
-        gsl_matrix_set_identity(identity);
-
-        unsigned int row_index, col_index;
-        for (row_index = 0; row_index < d_k; row_index++) {
-          for (col_index = 0; col_index < d_k; col_index++) {
-            int value = gsl_matrix_get(d_G_ptr, row_index,col_index);
-            gsl_matrix_set(I_test, row_index, col_index, value);
-          }
-        }
-
-        int test_if_equal = gsl_matrix_equal(identity,I_test);
-        if (!test_if_equal) {
-          throw "Error in ldpc_gen_mtrx constructor. It appears that the given 
alist file did not contain a valid generator matrix of the form G = [I P].\n";
-        }
-
-        // Grab P matrix
-        gsl_matrix *P = gsl_matrix_alloc(d_k,d_n-d_k);
-        for (row_index = 0; row_index < d_k; row_index++) {
-          for (col_index = 0; col_index < d_n-d_k; col_index++) {
-            int value = gsl_matrix_get(d_G_ptr,
-                                       row_index,
-                                       col_index + d_k);
-            gsl_matrix_set(P, row_index, col_index, value);
-          }
-        }
-
-        // Calculate P transpose
-        gsl_matrix *P_transpose = gsl_matrix_alloc(d_n-d_k, d_k);
-        gsl_matrix_transpose_memcpy(P_transpose, P);
-
-        // Set H matrix. H = [-P' I] but since we are doing mod 2,
-        // -P = P, so H = [P' I]
-        d_H_ptr = gsl_matrix_alloc(d_n-d_k, d_n);
-        gsl_matrix_set_zero(d_H_ptr);
-        for (row_index = 0; row_index < d_k; row_index++) {
-          for (col_index = 0; col_index < d_n-d_k; col_index++) {
-            int value = gsl_matrix_get(P_transpose,
-                                       row_index,
-                                       col_index);
-            gsl_matrix_set(d_H_ptr, row_index, col_index, value);
-          }
-        }
-
-        for (row_index = 0; row_index < d_k; row_index++) {
-          col_index = row_index + d_k;
-          gsl_matrix_set(d_H_ptr, row_index, col_index, 1);
-        }
-
-        // Calculate G transpose (used for encoding)
-        d_G_transp_ptr = gsl_matrix_alloc(d_n, d_k);
-        gsl_matrix_transpose_memcpy(d_G_transp_ptr, d_G_ptr);
-
-        // Free memory
-        gsl_matrix_free(P);
-        gsl_matrix_free(P_transpose);
-        gsl_matrix_free(identity);
-        gsl_matrix_free(I_test);
-        gsl_matrix_free(d_G_ptr);
-
-        // For info about this see get_base_ptr() function
-        d_base_ptr = this;
-
-      } // Constructor
-
-      // Default constructor, should not be used
-      ldpc_gen_mtrx::ldpc_gen_mtrx()
-      {
-        std::cout << "Error in ldpc_gen_mtrx(): Default "
-                  << "constructor called.\nMust provide filename for"
-                  << " generator matrix. \n\n";
-        exit(1);
-      } // Default constructor
-
-      const gsl_matrix*
-      ldpc_gen_mtrx::G_transpose() const
-      {
-        const gsl_matrix *G_trans_ptr = d_G_transp_ptr;
-        return G_trans_ptr;
-      }
-
-      gr::fec::code::fec_mtrx*
-      ldpc_gen_mtrx::get_base_ptr()
-      {
-        /* For some reason, swig isn't accepting a pointer to this
-           child class for the make function of the
-           ldpc_bit_flip_decoder; it's expecting a pointer to the
-           base class. So this is just a workaround for swig/GRC.
-        */
-        return d_base_ptr;
-      }
-
-      ldpc_gen_mtrx::~ldpc_gen_mtrx()
-      {
-        // Call the gsl_matrix_free function to free memory.
-        gsl_matrix_free(d_H_ptr);
-        gsl_matrix_free(d_G_transp_ptr);
-      }
-    } /* namespace code */
-  } /* namespace fec */
-} /* namespace gr */
\ No newline at end of file
diff --git a/gr-fec/lib/ldpc_gen_mtrx_encoder_impl.cc 
b/gr-fec/lib/ldpc_gen_mtrx_encoder_impl.cc
index 1a6a55c..87f1c37 100644
--- a/gr-fec/lib/ldpc_gen_mtrx_encoder_impl.cc
+++ b/gr-fec/lib/ldpc_gen_mtrx_encoder_impl.cc
@@ -29,20 +29,20 @@ namespace gr {
   namespace fec {
     namespace code {
       generic_encoder::sptr
-      ldpc_gen_mtrx_encoder::make(const ldpc_gen_mtrx *G_obj)
+      ldpc_gen_mtrx_encoder::make(const ldpc_HorG_mtrx *M_obj)
       {
         return generic_encoder::sptr
-          (new ldpc_gen_mtrx_encoder_impl(G_obj));
+          (new ldpc_gen_mtrx_encoder_impl(M_obj));
       }
 
-      ldpc_gen_mtrx_encoder_impl::ldpc_gen_mtrx_encoder_impl(const 
ldpc_gen_mtrx *G_obj) 
+      ldpc_gen_mtrx_encoder_impl::ldpc_gen_mtrx_encoder_impl(const 
ldpc_HorG_mtrx *M_obj) 
         : generic_encoder("ldpc_gen_mtrx_encoder")
       {
         // Generator matrix to use for encoding
-        d_G = G_obj;
+        d_M = M_obj;
         // Set frame size to k, the # of bits in the information word
         // All buffers and settings will be based on this value.
-        set_frame_size(d_G->k());
+        set_frame_size(d_M->k());
       }
 
       ldpc_gen_mtrx_encoder_impl::~ldpc_gen_mtrx_encoder_impl()
@@ -52,7 +52,7 @@ namespace gr {
       int
       ldpc_gen_mtrx_encoder_impl::get_output_size()
       {
-        return d_G->n();
+        return d_M->n();
       }
 
       int
@@ -76,7 +76,7 @@ namespace gr {
       double
       ldpc_gen_mtrx_encoder_impl::rate()
       {
-        return (d_G->n())/static_cast<double>(d_frame_size);
+        return (d_M->n())/static_cast<double>(d_frame_size);
       }
 
       void
@@ -85,7 +85,7 @@ namespace gr {
       {
         // Populate the information word
         const unsigned char *in = (const unsigned char *)inbuffer;
-        unsigned int index, k = d_G->k(), n = d_G->n();
+        unsigned int index, k = d_M->k(), n = d_M->n();
         gsl_matrix *s = gsl_matrix_alloc(k, 1);
         for (index = 0; index < k; index++) {
           double value = static_cast<double>(in[index]);
@@ -94,7 +94,7 @@ namespace gr {
 
         // Simple matrix multiplication to get codeword
         gsl_matrix *codeword;
-        codeword = d_G->mult_matrices_mod2(d_G->G_transpose(), s);
+        codeword = d_M->mult_matrices_mod2(d_M->G_transpose(), s);
 
         // Output
         unsigned char *out = (unsigned char*)outbuffer;
diff --git a/gr-fec/lib/ldpc_gen_mtrx_encoder_impl.h 
b/gr-fec/lib/ldpc_gen_mtrx_encoder_impl.h
index cba201a..1bd9d8e 100644
--- a/gr-fec/lib/ldpc_gen_mtrx_encoder_impl.h
+++ b/gr-fec/lib/ldpc_gen_mtrx_encoder_impl.h
@@ -24,7 +24,7 @@
 #include <map>
 #include <string>
 #include <gnuradio/fec/ldpc_gen_mtrx_encoder.h>
-#include <gnuradio/fec/ldpc_gen_mtrx.h>
+#include <gnuradio/fec/ldpc_HorG_mtrx.h>
 
 namespace gr {
   namespace fec {
@@ -38,11 +38,11 @@ namespace gr {
 
         // Number of bits in the information word
         unsigned int d_frame_size;
-        // Generator matrix object to use for encoding
-        const ldpc_gen_mtrx *d_G;
+        // Matrix object to use for encoding
+        const ldpc_HorG_mtrx *d_M;
 
       public:
-        ldpc_gen_mtrx_encoder_impl(const ldpc_gen_mtrx *G_obj);
+        ldpc_gen_mtrx_encoder_impl(const ldpc_HorG_mtrx *M_obj);
         ~ldpc_gen_mtrx_encoder_impl();
 
         bool set_frame_size(unsigned int frame_size);
diff --git a/gr-fec/python/fec/LDPC/Generate_LDPC_matrix_functions.py 
b/gr-fec/python/fec/LDPC/Generate_LDPC_matrix_functions.py
index 85f8ce9..5e92bd0 100644
--- a/gr-fec/python/fec/LDPC/Generate_LDPC_matrix_functions.py
+++ b/gr-fec/python/fec/LDPC/Generate_LDPC_matrix_functions.py
@@ -26,7 +26,7 @@ from numpy.random import shuffle, randint
 from numpy.linalg import inv, det
 
 # 0 gives no debug output, 1 gives a little, 2 gives a lot
-verbose = 0
+verbose = 1 #######################################################
 
 class LDPC_matrix:
   """ Class for a LDPC parity check matrix """
@@ -420,7 +420,6 @@ def greedy_upper_triangulation(H):
   # version of H that has a nonsingular phi.
   if verbose: print '--- Error: nonsingular phi matrix not found.'
 
-
 def inv_mod2(squareMatrix):
   """
   Calculates the mod 2 inverse of a matrix.
@@ -617,3 +616,49 @@ def get_best_matrix(H,numIterations=100):
       print 'Error: Could not find appropriate H form',
       print 'for encoding.'
     return
+
+def getSystematicGmatrix(H):
+  """
+  This function finds the systematic form of the generator
+  matrix G. The form is G = [I P] where I is an identity matrix
+  and P is the parity submatrix. If the H matrix provided
+  is not full rank, then dependent rows will be deleted.
+  """
+  tempArray = H.copy()
+  numRows = tempArray.shape[0]
+  numColumns = tempArray.shape[1]
+  limit = numRows
+  rank = 0
+  i = 0
+  while i < limit:
+    # Flag indicating that the row contains a non-zero entry
+    found = False
+    for j in arange(i, numColumns):
+      if tempArray[i, j] == 1:
+        # Encountered a non-zero entry at (i, j)
+        found = True
+        # Increment rank by 1
+        rank = rank + 1
+        # make the entry at (i,i) be 1
+        tempArray = swap_columns(j,i,tempArray)
+        break
+    if found == True:
+      for k in arange(0,numRows):
+        if k == i: continue
+        # Checking for 1's
+        if tempArray[k, i] == 1:
+          # add row i to row k
+          tempArray[k,:] = tempArray[k,:] + tempArray[i,:]
+          # Addition is mod2
+          tempArray = tempArray.copy() % 2
+          # All the entries above & below (i, i) are now 0
+      i = i + 1
+    if found == False:
+      # push the row of 0s to the bottom, and move the bottom
+      # rows up (sort of a rotation thing)
+      tempArray = moveRowToBottom(i,tempArray)
+      # decrease limit since we just found a row of 0s
+      limit -= 1
+  # the rows below i are the dependent rows, which we discard
+  G = tempArray[0:i,:]
+  return G
\ No newline at end of file
diff --git a/gr-fec/swig/fec_swig.i b/gr-fec/swig/fec_swig.i
index b1103ab..bba997f 100644
--- a/gr-fec/swig/fec_swig.i
+++ b/gr-fec/swig/fec_swig.i
@@ -70,7 +70,7 @@
 #include "gnuradio/fec/ldpc_par_chk_mtrx.h"
 #include "gnuradio/fec/ldpc_R_U_mtrx.h"
 #include "gnuradio/fec/fec_mtrx.h"
-#include "gnuradio/fec/ldpc_gen_mtrx.h"
+#include "gnuradio/fec/ldpc_HorG_mtrx.h"
 #include "gnuradio/fec/ldpc_bit_flip_decoder.h"
 #include "gnuradio/fec/ldpc_R_U_encoder.h"
 #include "gnuradio/fec/ldpc_gen_mtrx_encoder.h"
@@ -104,7 +104,7 @@
 %include "gnuradio/fec/tpc_decoder.h"
 %include "gnuradio/fec/ldpc_par_chk_mtrx.h"
 %include "gnuradio/fec/ldpc_R_U_mtrx.h"
-%include "gnuradio/fec/ldpc_gen_mtrx.h"
+%include "gnuradio/fec/ldpc_HorG_mtrx.h"
 %include "gnuradio/fec/fec_mtrx.h"
 %include "gnuradio/fec/ldpc_bit_flip_decoder.h"
 %include "gnuradio/fec/ldpc_R_U_encoder.h"



reply via email to

[Prev in Thread] Current Thread [Next in Thread]