--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/topology-read/Inet_small_toposample.txt Fri Mar 12 14:36:38 2010 -0500
@@ -0,0 +1,20 @@
+10 9
+0 5625 2473
+1 4505 4098
+2 9866 2148
+3 8315 7088
+4 8564 5989
+5 2064 510
+6 2942 2145
+7 2646 9895
+8 5051 3220
+9 6715 6729
+0 1 1973
+0 2 4253
+0 3 5341
+0 5 4066
+0 6 2702
+0 9 4393
+1 8 1033
+2 7 10589
+3 4 1126
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/topology-read/Inet_toposample.txt Fri Mar 12 14:36:38 2010 -0500
@@ -0,0 +1,7826 @@
+3037 4788
+0 5625 2473
+1 4505 4098
+2 9866 2148
+3 8315 7088
+4 8564 5989
+5 2064 510
+6 2942 2145
+7 2646 9895
+8 5051 3220
+9 6715 6729
+10 5375 17
+11 1500 3826
+12 718 3640
+13 7870 9475
+14 2834 1667
+15 345 2908
+16 708 1805
+17 8662 2137
+18 989 2807
+19 6537 6490
+20 1659 4642
+21 4255 2709
+22 2260 9074
+23 5081 8712
+24 2482 2591
+25 3725 856
+26 1446 2942
+27 8953 2328
+28 1151 5422
+29 3447 9832
+30 8641 6823
+31 5392 8310
+32 4834 6363
+33 7805 6943
+34 4078 4017
+35 9968 486
+36 9167 7765
+37 1801 4676
+38 6234 3856
+39 6717 8096
+40 6770 7733
+41 984 9648
+42 152 4546
+43 2371 5729
+44 2993 5588
+45 8299 6581
+46 6439 762
+47 3192 6168
+48 830 9908
+49 540 7056
+50 4979 3144
+51 6609 6272
+52 8085 2379
+53 5304 1552
+54 3535 785
+55 8172 2898
+56 1778 6795
+57 6908 2048
+58 4673 2268
+59 2138 8447
+60 5736 9544
+61 3128 948
+62 6245 94
+63 1192 3651
+64 7660 9475
+65 8095 544
+66 7759 3110
+67 8921 416
+68 4208 566
+69 7950 8667
+70 3163 1187
+71 4259 4660
+72 3077 8599
+73 3790 6360
+74 4055 3036
+75 5402 1227
+76 6463 4776
+77 6622 7451
+78 6738 152
+79 4501 1290
+80 1223 4101
+81 3487 8042
+82 7956 120
+83 1980 6096
+84 6371 4963
+85 5095 3134
+86 1789 391
+87 881 2652
+88 6969 6415
+89 8535 3832
+90 8496 743
+91 9173 9409
+92 7779 7901
+93 1438 3109
+94 4116 2522
+95 3662 1116
+96 5419 1518
+97 7178 4024
+98 2125 160
+99 9502 829
+100 7261 5998
+101 9304 3058
+102 3910 6081
+103 5936 7011
+104 3731 6360
+105 2875 8232
+106 7264 2407
+107 3173 8642
+108 3082 7255
+109 3030 2964
+110 8333 2377
+111 9311 4795
+112 1542 8378
+113 3042 5515
+114 8414 3286
+115 8015 6604
+116 6433 9238
+117 1105 7508
+118 9796 87
+119 3284 6144
+120 5491 5291
+121 7272 402
+122 9292 9688
+123 3486 7134
+124 1109 7872
+125 2118 7742
+126 8574 7941
+127 7762 4147
+128 1606 5876
+129 9896 9631
+130 3127 5865
+131 4781 9513
+132 9380 6682
+133 9810 856
+134 8914 9375
+135 3487 3391
+136 2940 9215
+137 3725 4492
+138 2064 9171
+139 6526 8038
+140 9884 8117
+141 2896 9805
+142 2838 7373
+143 9492 22
+144 3925 9827
+145 8842 2543
+146 9963 4421
+147 8856 6897
+148 1959 3305
+149 8858 7658
+150 9921 2468
+151 8615 3957
+152 6813 861
+153 9596 1687
+154 7894 1942
+155 451 2670
+156 3228 2364
+157 1764 8613
+158 871 3745
+159 4511 3061
+160 4150 550
+161 5849 3562
+162 2441 7634
+163 7791 4874
+164 5061 4555
+165 9565 3741
+166 3857 7041
+167 907 3306
+168 7708 9575
+169 899 7176
+170 1782 9054
+171 8476 4419
+172 2918 2996
+173 997 8216
+174 3584 3056
+175 922 8250
+176 2171 464
+177 5808 9959
+178 1229 3816
+179 3292 9892
+180 3421 4216
+181 9077 6846
+182 3842 2540
+183 3813 4753
+184 3845 6769
+185 684 1998
+186 4162 3603
+187 354 4297
+188 8760 7795
+189 1624 1917
+190 6115 5636
+191 8301 8587
+192 223 8728
+193 2906 7785
+194 4423 8866
+195 7801 9708
+196 1577 4890
+197 9863 9056
+198 730 3735
+199 4245 6958
+200 5268 9090
+201 9503 1791
+202 8786 6776
+203 6953 1547
+204 9909 2689
+205 3734 7817
+206 4672 6580
+207 2011 2466
+208 2373 6961
+209 5060 9075
+210 8343 6863
+211 588 6067
+212 7154 2819
+213 7608 5628
+214 3127 746
+215 7752 6076
+216 7607 1581
+217 8313 3206
+218 4601 2732
+219 4986 9198
+220 9439 9569
+221 3219 48
+222 2840 761
+223 1835 368
+224 4391 8115
+225 6675 3191
+226 8066 5765
+227 2801 4064
+228 4385 2087
+229 3181 3616
+230 4822 7539
+231 6589 1983
+232 3493 1355
+233 8836 9298
+234 4776 6567
+235 901 6829
+236 4563 1198
+237 2301 6265
+238 584 6897
+239 3028 7421
+240 1876 5507
+241 9943 5724
+242 3498 6512
+243 8323 1870
+244 4474 8382
+245 2830 3455
+246 1707 3826
+247 2099 3705
+248 4840 7258
+249 6932 6295
+250 1051 2773
+251 5162 3213
+252 5494 9275
+253 5473 9233
+254 306 8261
+255 8266 6783
+256 6267 689
+257 3306 21
+258 6883 7609
+259 5809 6467
+260 4630 2982
+261 9675 5764
+262 828 8872
+263 6919 3702
+264 1189 2043
+265 6439 7083
+266 5740 8138
+267 5850 3383
+268 6359 1228
+269 9702 6508
+270 3285 220
+271 9135 6612
+272 6432 8238
+273 5 4451
+274 5381 7046
+275 4906 6817
+276 8286 1364
+277 3794 3572
+278 357 1132
+279 3768 8945
+280 8676 4258
+281 2625 2381
+282 4482 8103
+283 6186 1034
+284 330 2157
+285 2575 6655
+286 6182 5409
+287 9448 9999
+288 522 9498
+289 334 7211
+290 8839 1172
+291 8806 9988
+292 4052 5942
+293 8601 4205
+294 572 5874
+295 9425 706
+296 9403 5167
+297 4122 2054
+298 9952 4918
+299 8924 7465
+300 4715 9106
+301 8838 6925
+302 9223 685
+303 2108 9194
+304 3922 7283
+305 4386 2199
+306 8466 7725
+307 7239 163
+308 389 3474
+309 5734 2915
+310 7864 2256
+311 9416 4836
+312 1545 8262
+313 5744 7194
+314 4484 7132
+315 6419 8955
+316 6603 2479
+317 3145 7489
+318 9361 9744
+319 2133 8379
+320 1817 1514
+321 20 9088
+322 3341 7796
+323 1763 7807
+324 5253 2295
+325 2929 8023
+326 6053 1179
+327 4607 3085
+328 7530 7581
+329 5097 7531
+330 590 6194
+331 7178 1978
+332 1871 7186
+333 3150 4139
+334 8619 264
+335 247 2753
+336 8382 2252
+337 9960 6950
+338 1441 2627
+339 8964 7620
+340 1392 737
+341 8950 4687
+342 1395 9556
+343 1465 3145
+344 7665 1813
+345 6387 9902
+346 3615 2057
+347 642 2239
+348 9447 7471
+349 2153 5138
+350 1794 9995
+351 6717 7950
+352 4604 3212
+353 4020 3562
+354 514 3553
+355 8210 1904
+356 388 4320
+357 943 1557
+358 5426 425
+359 3376 4549
+360 517 686
+361 2922 7364
+362 8496 4376
+363 2215 3207
+364 1270 4496
+365 2065 9186
+366 4989 5345
+367 6523 5715
+368 6410 3435
+369 7646 7777
+370 6298 1849
+371 8819 4884
+372 8417 6467
+373 4956 9693
+374 2631 7264
+375 2635 8815
+376 2093 7320
+377 2747 7880
+378 4785 4027
+379 660 4955
+380 7716 7724
+381 9328 1165
+382 4456 4471
+383 4003 2494
+384 7004 5553
+385 3128 7398
+386 2066 1323
+387 4314 8528
+388 7840 3768
+389 5832 3990
+390 5358 4987
+391 2816 7552
+392 1281 2419
+393 5612 9048
+394 6392 1849
+395 1594 8929
+396 6925 9463
+397 4157 9416
+398 8099 1187
+399 8088 537
+400 500 37
+401 184 6093
+402 7023 4264
+403 6221 9145
+404 5899 8997
+405 8899 5613
+406 9566 5065
+407 9655 885
+408 8812 5655
+409 4922 3419
+410 423 4423
+411 7079 6408
+412 7456 7166
+413 8803 9291
+414 8299 9127
+415 3573 4510
+416 9599 7316
+417 1391 6344
+418 5965 2934
+419 6660 9381
+420 3920 9158
+421 6466 6657
+422 8560 6716
+423 8218 8902
+424 5962 6135
+425 147 6235
+426 3726 907
+427 6220 3965
+428 1211 7998
+429 5107 1529
+430 1882 2655
+431 9299 1696
+432 5480 8936
+433 3375 3398
+434 4684 7116
+435 319 7898
+436 774 8500
+437 3287 9239
+438 6261 7582
+439 3978 7928
+440 9067 6950
+441 6767 9053
+442 8573 9656
+443 5504 2984
+444 611 9158
+445 8032 5530
+446 7180 1328
+447 6993 2929
+448 5356 5867
+449 6222 4161
+450 7977 9377
+451 7599 8733
+452 4073 3333
+453 1695 1243
+454 8847 1770
+455 668 3106
+456 6698 5539
+457 5215 4423
+458 8582 7448
+459 4351 3029
+460 4044 5730
+461 6511 2616
+462 9999 7709
+463 8018 7590
+464 6454 8338
+465 7014 8936
+466 7880 8356
+467 5735 888
+468 3871 9431
+469 2752 2175
+470 3800 2458
+471 4257 7046
+472 1944 8973
+473 4564 4395
+474 8689 2847
+475 7264 8357
+476 7629 3112
+477 9985 1520
+478 409 9257
+479 2996 3659
+480 3124 7810
+481 4346 7050
+482 3358 1257
+483 9752 326
+484 4511 4341
+485 8249 6945
+486 3697 5654
+487 6127 2568
+488 8719 7992
+489 8585 2264
+490 9187 5785
+491 2294 761
+492 2499 4202
+493 3027 2718
+494 9948 5536
+495 425 5199
+496 7291 6296
+497 96 1073
+498 7859 3929
+499 2576 9366
+500 9335 9125
+501 2300 7924
+502 6516 5600
+503 8098 6089
+504 2265 4567
+505 3323 7425
+506 3308 4053
+507 5278 1343
+508 3350 8901
+509 9240 8028
+510 700 3912
+511 4642 8625
+512 5518 6936
+513 1788 339
+514 2383 9373
+515 9918 2080
+516 7289 5996
+517 3879 144
+518 5320 921
+519 8228 2994
+520 8037 4935
+521 7518 4511
+522 985 4053
+523 6275 6627
+524 2356 1754
+525 3130 9049
+526 3243 7700
+527 3418 9806
+528 6012 193
+529 154 4135
+530 2326 2583
+531 926 2675
+532 6774 360
+533 3243 1252
+534 9166 9922
+535 2966 3181
+536 2524 1132
+537 7516 2169
+538 7653 2839
+539 7538 2656
+540 4467 2230
+541 8631 616
+542 1585 4539
+543 1231 7061
+544 8495 2659
+545 590 2863
+546 9957 6578
+547 8722 2760
+548 2879 3832
+549 950 8886
+550 2338 9609
+551 5551 6640
+552 7453 5817
+553 2227 8296
+554 2923 1255
+555 6010 5406
+556 5954 9787
+557 4841 4774
+558 1655 6566
+559 5911 9127
+560 7718 3769
+561 2617 2561
+562 1643 5233
+563 6089 1802
+564 4106 9269
+565 8270 126
+566 2617 2589
+567 6495 2968
+568 1816 5092
+569 4549 9100
+570 8972 2386
+571 6858 7032
+572 1588 2753
+573 6622 8088
+574 6767 1949
+575 6762 6517
+576 8159 4156
+577 837 8959
+578 5497 2750
+579 8980 3942
+580 7410 8275
+581 9457 414
+582 2372 6414
+583 6844 6
+584 3905 7768
+585 8051 5920
+586 8330 2224
+587 9380 5218
+588 6459 1988
+589 6302 7969
+590 1844 402
+591 3774 9271
+592 3991 3583
+593 8873 8935
+594 7393 4296
+595 2383 2643
+596 2412 5068
+597 5318 7398
+598 581 712
+599 648 5078
+600 9929 4073
+601 8646 2621
+602 2071 7663
+603 9463 3101
+604 7298 2016
+605 732 3139
+606 9085 1041
+607 4641 4945
+608 4786 7473
+609 9950 9787
+610 9470 1182
+611 6830 2875
+612 462 2110
+613 7704 1393
+614 3943 7398
+615 7323 3417
+616 6405 2542
+617 9645 8947
+618 1467 6322
+619 7617 4083
+620 6647 2781
+621 5918 1394
+622 980 994
+623 7030 2028
+624 7380 843
+625 4680 2884
+626 6760 9870
+627 2244 1823
+628 2628 9052
+629 9829 6653
+630 757 5919
+631 3078 1906
+632 6176 4533
+633 2288 1842
+634 9517 717
+635 3352 5662
+636 5606 2198
+637 5202 2220
+638 7115 1574
+639 5165 2687
+640 2636 5839
+641 9144 7349
+642 4755 7192
+643 8239 4065
+644 6827 118
+645 3662 9938
+646 8237 2057
+647 4674 2615
+648 1972 6500
+649 1867 9774
+650 6358 364
+651 9468 5648
+652 1864 5363
+653 7509 3039
+654 741 3311
+655 4103 7548
+656 3126 7430
+657 4668 5653
+658 853 5482
+659 7789 6639
+660 5311 501
+661 830 8687
+662 1168 3074
+663 2250 4077
+664 6493 1075
+665 9498 6484
+666 7988 5908
+667 6135 6669
+668 7689 7160
+669 924 1182
+670 6607 9880
+671 2631 7855
+672 537 5209
+673 2077 5202
+674 4393 1783
+675 7200 7475
+676 1554 6428
+677 5742 7804
+678 7428 656
+679 9478 2104
+680 9398 7867
+681 602 2264
+682 8709 1457
+683 9922 6411
+684 1076 174
+685 9542 7661
+686 8524 4494
+687 6118 9247
+688 1927 4632
+689 4660 6986
+690 4054 3724
+691 3548 6642
+692 9292 1047
+693 7607 6863
+694 2642 790
+695 882 4719
+696 3024 5845
+697 927 2369
+698 2679 4920
+699 5397 2796
+700 1786 7349
+701 6676 3141
+702 1564 9741
+703 4545 3650
+704 763 7282
+705 1540 2428
+706 5259 3364
+707 2416 2224
+708 4026 4686
+709 9975 9885
+710 8839 2075
+711 3797 3725
+712 1826 8677
+713 2405 7980
+714 6886 1957
+715 168 4661
+716 2916 7162
+717 9941 5646
+718 9087 1730
+719 6448 1454
+720 956 1063
+721 6863 41
+722 9246 5266
+723 1726 1825
+724 4239 7848
+725 4649 3087
+726 2278 5931
+727 9423 3044
+728 2513 375
+729 2298 9616
+730 7760 3369
+731 7639 353
+732 5940 1837
+733 5699 8361
+734 2369 7864
+735 289 8138
+736 4298 5494
+737 7155 7148
+738 5976 332
+739 2927 980
+740 4278 8970
+741 6465 2388
+742 4648 7765
+743 2335 1606
+744 5849 36
+745 5460 4544
+746 3801 5940
+747 8620 7662
+748 3488 3160
+749 9279 2510
+750 7473 5250
+751 552 1365
+752 3883 7398
+753 3211 3463
+754 1368 7763
+755 3737 7791
+756 4226 800
+757 5285 6435
+758 4655 1419
+759 6725 7208
+760 2237 6513
+761 5143 7401
+762 796 1931
+763 7549 2501
+764 8432 8536
+765 6160 3443
+766 4274 28
+767 3766 1114
+768 8194 7069
+769 275 4051
+770 8754 270
+771 3984 3773
+772 8475 1780
+773 9122 3742
+774 9832 9043
+775 7343 3057
+776 6234 6449
+777 3348 2134
+778 6280 5569
+779 2456 1294
+780 6935 4308
+781 2005 5452
+782 8890 9621
+783 8928 3608
+784 8440 2150
+785 2908 7266
+786 9649 5437
+787 6531 2009
+788 4850 2080
+789 689 5964
+790 2584 5526
+791 6641 8915
+792 1148 7842
+793 8894 579
+794 6236 3014
+795 7625 3541
+796 8494 4017
+797 2618 798
+798 4722 9011
+799 7419 4684
+800 92 4362
+801 5014 4387
+802 7198 2744
+803 9989 2698
+804 6608 2532
+805 1658 9232
+806 3719 717
+807 977 9729
+808 63 6921
+809 4277 4382
+810 4719 7597
+811 221 5556
+812 5776 5300
+813 877 8862
+814 5564 6747
+815 4938 8590
+816 6186 1520
+817 6767 6832
+818 4503 6234
+819 4563 2963
+820 1663 565
+821 5983 2571
+822 3224 4723
+823 6478 5864
+824 9343 5663
+825 7620 3226
+826 9820 6865
+827 7446 1441
+828 2414 4337
+829 6963 4209
+830 5513 3033
+831 3038 8147
+832 6125 6238
+833 4823 7450
+834 7360 8120
+835 2607 3112
+836 938 7070
+837 5843 4328
+838 5332 7695
+839 8651 4022
+840 4768 614
+841 8206 7188
+842 2088 8835
+843 1554 3919
+844 5773 1634
+845 7579 723
+846 6196 7128
+847 3987 4127
+848 7612 2858
+849 6927 6922
+850 1634 5165
+851 3946 7066
+852 2735 5950
+853 9597 5288
+854 6670 7572
+855 2857 8914
+856 5602 7757
+857 2261 889
+858 4034 3435
+859 551 610
+860 8078 6784
+861 3267 8088
+862 6707 6699
+863 3900 4705
+864 2513 3070
+865 7336 2308
+866 3932 1767
+867 6234 166
+868 3005 7555
+869 7198 7301
+870 3397 780
+871 5196 7652
+872 6560 5784
+873 8026 6327
+874 3100 1627
+875 3110 5088
+876 85 6539
+877 4390 498
+878 1643 7144
+879 7316 584
+880 8744 5724
+881 9866 4340
+882 1257 5031
+883 8571 1385
+884 7860 1000
+885 470 619
+886 5555 5672
+887 9937 4781
+888 2783 5075
+889 1478 5940
+890 8302 5389
+891 7908 686
+892 980 3061
+893 3227 2245
+894 9982 8712
+895 9184 2345
+896 1230 6725
+897 6015 4262
+898 4669 4551
+899 3043 989
+900 7781 1653
+901 9196 1958
+902 6194 6476
+903 186 8551
+904 8129 5956
+905 9843 8094
+906 8337 1170
+907 7260 2685
+908 4096 5101
+909 8964 4398
+910 1754 1143
+911 3142 3019
+912 9985 6462
+913 7537 1537
+914 7416 6193
+915 9803 2874
+916 4080 7783
+917 1339 3864
+918 950 7423
+919 556 2086
+920 3014 3098
+921 8360 4119
+922 5989 1383
+923 7515 2387
+924 7478 4603
+925 5118 8877
+926 4469 376
+927 3018 3849
+928 4434 9349
+929 3633 5814
+930 2645 892
+931 9194 8834
+932 1713 9843
+933 5608 8512
+934 8700 2911
+935 2448 3606
+936 6083 5472
+937 3824 24
+938 58 2473
+939 9974 1610
+940 9720 1240
+941 8051 2856
+942 2553 4049
+943 203 9405
+944 8250 1230
+945 3568 4717
+946 3972 8590
+947 1490 9941
+948 718 2372
+949 2170 3632
+950 8581 6737
+951 8010 9329
+952 680 1823
+953 1678 5626
+954 9567 4873
+955 4126 3032
+956 3743 4884
+957 6764 202
+958 475 5472
+959 3562 5046
+960 5248 1246
+961 4917 7947
+962 3878 246
+963 1017 4838
+964 6959 4914
+965 1822 7762
+966 8285 7743
+967 9073 701
+968 1702 3711
+969 5531 9825
+970 2764 5432
+971 1220 4080
+972 2376 5115
+973 1333 4197
+974 9802 2509
+975 8064 9206
+976 4278 7591
+977 5783 2474
+978 5703 5512
+979 4436 616
+980 3705 233
+981 9377 7863
+982 3173 5566
+983 2154 6583
+984 595 8802
+985 6424 1490
+986 1533 7343
+987 499 2886
+988 6438 4586
+989 9846 190
+990 9354 1338
+991 660 7716
+992 8764 4645
+993 3781 2818
+994 5220 247
+995 6135 8491
+996 4424 1855
+997 6329 8085
+998 1547 9985
+999 5182 886
+1000 9656 9153
+1001 1432 696
+1002 1397 5513
+1003 216 4205
+1004 3384 254
+1005 3941 1839
+1006 643 860
+1007 7877 5910
+1008 7340 3615
+1009 6781 274
+1010 7832 7734
+1011 9137 4970
+1012 8917 594
+1013 9341 614
+1014 628 8356
+1015 2347 17
+1016 332 1066
+1017 5764 4449
+1018 2420 3020
+1019 7980 2613
+1020 8411 372
+1021 4452 1240
+1022 9959 3307
+1023 7099 6505
+1024 1501 3123
+1025 7880 9423
+1026 5429 7038
+1027 3504 3614
+1028 9800 5144
+1029 5665 4748
+1030 7400 4324
+1031 7471 7210
+1032 911 1285
+1033 5950 4923
+1034 2807 3424
+1035 5227 4979
+1036 4071 8053
+1037 4830 3087
+1038 1364 5693
+1039 693 7541
+1040 5894 7117
+1041 1874 288
+1042 6472 9555
+1043 836 581
+1044 2932 3449
+1045 7192 8520
+1046 1533 3281
+1047 4004 1316
+1048 9331 9021
+1049 455 8587
+1050 5478 5037
+1051 4324 6762
+1052 2295 7770
+1053 7790 576
+1054 2320 1823
+1055 7673 1955
+1056 5651 8562
+1057 3198 5341
+1058 5368 8345
+1059 9278 5685
+1060 6443 7784
+1061 8879 348
+1062 2514 93
+1063 7239 7861
+1064 4080 9053
+1065 3346 828
+1066 6934 8908
+1067 6685 5075
+1068 8815 8940
+1069 2282 7331
+1070 1295 5511
+1071 6840 6537
+1072 1334 8590
+1073 4149 8066
+1074 9622 7476
+1075 1890 5310
+1076 7755 9927
+1077 7827 7118
+1078 996 6788
+1079 7368 8389
+1080 8346 2840
+1081 6726 7798
+1082 4703 8519
+1083 49 9423
+1084 2282 7532
+1085 2608 1675
+1086 2042 1361
+1087 3258 4344
+1088 3451 8433
+1089 5801 6635
+1090 4532 2951
+1091 3838 147
+1092 4043 8676
+1093 8301 3731
+1094 534 8555
+1095 330 8312
+1096 3813 5055
+1097 9888 5579
+1098 9993 1486
+1099 3797 9055
+1100 7745 8346
+1101 8559 7140
+1102 5902 8871
+1103 252 8721
+1104 9432 8241
+1105 7296 4737
+1106 2348 8569
+1107 6982 7474
+1108 3344 3287
+1109 5759 3815
+1110 4595 2470
+1111 9676 3016
+1112 7468 5019
+1113 6924 4490
+1114 6061 5313
+1115 8666 908
+1116 5372 4778
+1117 6524 153
+1118 5736 9919
+1119 9620 1364
+1120 2859 6344
+1121 3489 5995
+1122 728 4790
+1123 6997 898
+1124 6101 772
+1125 7710 9160
+1126 4785 6191
+1127 2665 4453
+1128 9234 595
+1129 166 2098
+1130 9695 7429
+1131 577 5019
+1132 9032 1784
+1133 3654 2520
+1134 6184 2465
+1135 5582 7597
+1136 4028 5838
+1137 2241 448
+1138 4165 8848
+1139 2146 6669
+1140 6451 3143
+1141 4386 1077
+1142 4140 9295
+1143 2054 8612
+1144 3017 4180
+1145 7389 4309
+1146 8914 3858
+1147 1707 91
+1148 2568 8883
+1149 4722 6036
+1150 7846 684
+1151 6932 4268
+1152 9642 8812
+1153 5436 8441
+1154 4251 1152
+1155 3579 7169
+1156 1511 3187
+1157 830 4136
+1158 407 611
+1159 3645 7283
+1160 257 4478
+1161 8691 6227
+1162 9877 7725
+1163 4201 1362
+1164 7483 8220
+1165 8793 8807
+1166 6238 1524
+1167 9534 9941
+1168 5435 2527
+1169 573 3515
+1170 2746 9580
+1171 8660 4547
+1172 4470 9997
+1173 3261 2827
+1174 3171 5587
+1175 2710 7728
+1176 7506 7916
+1177 6692 5677
+1178 9870 2081
+1179 1320 6673
+1180 6442 6899
+1181 338 3794
+1182 6873 3488
+1183 2527 2563
+1184 7568 2095
+1185 302 118
+1186 313 2588
+1187 9645 4218
+1188 8222 3838
+1189 4721 6834
+1190 9090 5919
+1191 938 7145
+1192 8606 8139
+1193 8374 2260
+1194 659 5651
+1195 1869 1860
+1196 1257 8809
+1197 8486 6103
+1198 3446 7151
+1199 894 4668
+1200 1481 1513
+1201 7882 4993
+1202 7006 8303
+1203 9802 6060
+1204 5443 9785
+1205 9257 8759
+1206 5376 6146
+1207 9837 5499
+1208 5256 1674
+1209 7719 901
+1210 4398 2872
+1211 2853 9330
+1212 4744 8430
+1213 6250 8014
+1214 8336 4304
+1215 1266 4799
+1216 2816 6438
+1217 2931 9334
+1218 3006 3648
+1219 982 3637
+1220 4836 706
+1221 5350 6437
+1222 9655 6570
+1223 5721 9320
+1224 9375 2288
+1225 4433 9318
+1226 3187 4440
+1227 4324 5770
+1228 673 1902
+1229 1780 5035
+1230 3916 5625
+1231 4049 3585
+1232 7898 2828
+1233 814 2315
+1234 932 8340
+1235 2699 520
+1236 158 3011
+1237 1946 4778
+1238 5999 6076
+1239 9283 6976
+1240 8973 6065
+1241 3343 3789
+1242 1942 2019
+1243 4729 786
+1244 9365 9036
+1245 5618 6108
+1246 3317 2149
+1247 4590 7066
+1248 4307 798
+1249 3562 2480
+1250 1598 3561
+1251 3332 231
+1252 2060 3058
+1253 1884 2563
+1254 7311 4803
+1255 924 8254
+1256 7575 7069
+1257 5958 9693
+1258 1109 2371
+1259 292 3470
+1260 6159 5085
+1261 5863 6213
+1262 9185 1687
+1263 6351 4830
+1264 3123 5868
+1265 4781 1556
+1266 2881 7713
+1267 6498 6358
+1268 5206 6334
+1269 8400 2630
+1270 1838 561
+1271 3580 7064
+1272 5085 1280
+1273 2153 9825
+1274 6622 6462
+1275 6416 8972
+1276 7365 3529
+1277 8213 6250
+1278 4621 4597
+1279 4733 3953
+1280 2168 7147
+1281 5419 5809
+1282 5100 9718
+1283 8508 5150
+1284 17 9901
+1285 8295 2098
+1286 3448 2952
+1287 8890 3622
+1288 4198 4610
+1289 6252 6038
+1290 6740 1177
+1291 3178 9690
+1292 5008 6622
+1293 2441 4662
+1294 7410 897
+1295 8293 4206
+1296 2724 9337
+1297 7585 8421
+1298 5781 4337
+1299 8416 8146
+1300 6309 5189
+1301 7259 4489
+1302 1369 7839
+1303 6580 1226
+1304 6025 3351
+1305 6252 2462
+1306 7695 1802
+1307 4860 3727
+1308 7950 8961
+1309 7447 3980
+1310 5951 4063
+1311 4474 7324
+1312 8130 8508
+1313 4315 989
+1314 4144 6566
+1315 9851 3934
+1316 1880 3659
+1317 2316 4426
+1318 3433 8943
+1319 7107 6859
+1320 5217 8277
+1321 7916 3381
+1322 4669 8370
+1323 6384 8158
+1324 9421 2805
+1325 2814 3615
+1326 3924 4813
+1327 8810 7709
+1328 5795 9020
+1329 6538 421
+1330 3170 4820
+1331 2974 9679
+1332 4419 3983
+1333 4766 8433
+1334 3807 584
+1335 5885 9931
+1336 7429 68
+1337 7392 9761
+1338 973 9136
+1339 6314 5144
+1340 9712 3160
+1341 1323 1273
+1342 8728 284
+1343 7365 6416
+1344 2725 9466
+1345 9622 9749
+1346 8056 8395
+1347 9548 2194
+1348 8475 7616
+1349 3918 3482
+1350 8337 7613
+1351 2590 9206
+1352 1952 2452
+1353 5217 9175
+1354 9246 3980
+1355 5599 2754
+1356 7571 5587
+1357 5570 8483
+1358 129 2809
+1359 6564 1467
+1360 5268 1362
+1361 8298 9989
+1362 9751 9700
+1363 1979 2986
+1364 6408 2968
+1365 3398 4710
+1366 9305 9565
+1367 7930 8191
+1368 3481 1039
+1369 4409 1300
+1370 2996 435
+1371 9287 1758
+1372 9290 6863
+1373 5017 5932
+1374 9318 2101
+1375 1242 9011
+1376 6616 3867
+1377 5174 7480
+1378 9103 9695
+1379 8221 8256
+1380 9610 665
+1381 1845 5755
+1382 2024 6927
+1383 6882 8462
+1384 6502 3383
+1385 4602 9902
+1386 9163 3933
+1387 9031 972
+1388 6831 8880
+1389 199 5182
+1390 7845 6401
+1391 5999 1438
+1392 2699 9999
+1393 835 6841
+1394 1467 489
+1395 6228 3692
+1396 9496 24
+1397 2926 771
+1398 9288 9159
+1399 3609 1544
+1400 5821 6652
+1401 2946 9067
+1402 925 70
+1403 1220 5321
+1404 3446 3633
+1405 8827 3156
+1406 973 5941
+1407 1575 9532
+1408 1866 7551
+1409 8232 1272
+1410 9486 6439
+1411 6307 9823
+1412 7202 6930
+1413 3529 9987
+1414 5344 9900
+1415 3890 444
+1416 4484 3419
+1417 1469 7571
+1418 5913 4340
+1419 9856 1874
+1420 9882 5493
+1421 558 4168
+1422 6661 3103
+1423 740 9562
+1424 54 8086
+1425 128 4593
+1426 8638 7824
+1427 2293 6952
+1428 3501 1915
+1429 5942 9539
+1430 1069 8286
+1431 5338 6845
+1432 1950 1616
+1433 2386 1536
+1434 3966 5081
+1435 9837 5555
+1436 220 7369
+1437 7519 8792
+1438 4041 4416
+1439 1411 1021
+1440 614 2654
+1441 7213 821
+1442 9330 2435
+1443 6890 7344
+1444 8706 35
+1445 8206 281
+1446 8976 9619
+1447 5952 6809
+1448 339 8371
+1449 2801 6593
+1450 297 5499
+1451 9280 4728
+1452 3966 6243
+1453 7413 2273
+1454 4727 9372
+1455 6683 9272
+1456 3988 8417
+1457 1143 5060
+1458 1616 1292
+1459 7023 3459
+1460 6244 7581
+1461 9147 8559
+1462 6757 6604
+1463 1541 2636
+1464 7143 3862
+1465 1643 2559
+1466 8835 4356
+1467 5462 9998
+1468 5243 8274
+1469 2063 4558
+1470 7361 7153
+1471 3601 2400
+1472 3679 5001
+1473 7495 7622
+1474 6927 742
+1475 6275 7020
+1476 4460 5998
+1477 1747 5954
+1478 2083 8552
+1479 9824 6296
+1480 3095 6053
+1481 5781 934
+1482 3678 6288
+1483 2750 9961
+1484 6943 2312
+1485 1722 519
+1486 8190 7534
+1487 4951 9477
+1488 6373 550
+1489 5833 6319
+1490 8151 7607
+1491 8956 1108
+1492 9878 2274
+1493 7989 1469
+1494 7458 6507
+1495 3399 6948
+1496 8716 8112
+1497 6169 7752
+1498 5128 9696
+1499 5333 367
+1500 421 832
+1501 6099 1257
+1502 3195 7476
+1503 1301 7091
+1504 8455 6504
+1505 7093 438
+1506 889 2218
+1507 313 2748
+1508 9815 6758
+1509 6584 6246
+1510 1715 8579
+1511 6059 133
+1512 254 7653
+1513 6789 2028
+1514 1550 6015
+1515 9200 2953
+1516 3093 1030
+1517 1849 2042
+1518 2890 7549
+1519 4250 8443
+1520 3881 9051
+1521 2248 3842
+1522 4971 6819
+1523 654 1402
+1524 3618 5028
+1525 3115 5966
+1526 9481 7275
+1527 2372 9097
+1528 9013 9030
+1529 6032 400
+1530 1212 9204
+1531 9820 85
+1532 1521 775
+1533 2151 9390
+1534 1378 1340
+1535 2163 5728
+1536 5971 5637
+1537 6499 4197
+1538 6387 5774
+1539 9270 8254
+1540 3976 5471
+1541 8182 5670
+1542 2112 7421
+1543 5414 7164
+1544 1328 8517
+1545 927 7012
+1546 4842 2665
+1547 414 6305
+1548 4945 5626
+1549 9592 2148
+1550 9432 4678
+1551 7919 7223
+1552 9977 2328
+1553 5586 8378
+1554 2053 7031
+1555 5237 7429
+1556 8202 3300
+1557 2816 1469
+1558 8798 8407
+1559 8143 7023
+1560 9123 8303
+1561 1148 2968
+1562 4259 7814
+1563 8559 4839
+1564 8309 269
+1565 9801 6525
+1566 7393 5560
+1567 9730 1819
+1568 403 5728
+1569 1673 9776
+1570 1584 2963
+1571 6542 6753
+1572 7224 4612
+1573 1716 9795
+1574 8917 5453
+1575 7999 398
+1576 630 256
+1577 2210 5316
+1578 9549 8276
+1579 3114 2539
+1580 6104 6308
+1581 345 1596
+1582 6290 9910
+1583 3486 5676
+1584 5620 8600
+1585 5599 3205
+1586 6477 3528
+1587 5265 1226
+1588 8321 9439
+1589 2625 786
+1590 2343 5963
+1591 1634 4382
+1592 5207 6347
+1593 7101 3219
+1594 3158 3026
+1595 3168 2499
+1596 6109 6155
+1597 8623 3812
+1598 256 6400
+1599 9031 3045
+1600 7245 6061
+1601 2860 9240
+1602 3564 7108
+1603 6897 6678
+1604 4807 8194
+1605 8650 4632
+1606 8583 872
+1607 7918 1029
+1608 8515 5328
+1609 7430 281
+1610 4776 1402
+1611 8323 5769
+1612 3446 5392
+1613 6461 4816
+1614 5278 6749
+1615 4615 1245
+1616 5372 9643
+1617 8227 133
+1618 1419 2013
+1619 8829 2721
+1620 9961 8611
+1621 9592 8997
+1622 1795 7527
+1623 8684 2511
+1624 9492 8402
+1625 341 9301
+1626 9919 8414
+1627 6652 4303
+1628 6705 5369
+1629 3142 3035
+1630 8892 4593
+1631 2110 3771
+1632 9487 9189
+1633 2980 8486
+1634 578 5391
+1635 8471 217
+1636 2880 2277
+1637 7894 1953
+1638 4383 106
+1639 6371 920
+1640 9029 4793
+1641 7097 2156
+1642 8235 2073
+1643 5214 3253
+1644 8073 7944
+1645 7850 4945
+1646 4772 3336
+1647 4972 3389
+1648 1143 1434
+1649 3090 4496
+1650 1314 8357
+1651 5070 6832
+1652 4825 5860
+1653 2161 551
+1654 1758 8840
+1655 7164 9968
+1656 8342 3867
+1657 9239 7906
+1658 469 4848
+1659 2220 7419
+1660 501 2875
+1661 6658 5316
+1662 213 6357
+1663 4454 8628
+1664 663 3459
+1665 8198 1520
+1666 2899 112
+1667 3493 5679
+1668 1054 6538
+1669 8769 7128
+1670 752 7721
+1671 7927 1480
+1672 6279 1383
+1673 3860 9280
+1674 9606 4370
+1675 6811 4416
+1676 6833 3523
+1677 6165 4808
+1678 6413 6560
+1679 5406 5844
+1680 7735 5918
+1681 6980 292
+1682 3621 3523
+1683 711 3224
+1684 3293 2907
+1685 9179 1651
+1686 8458 3349
+1687 3623 4323
+1688 878 9778
+1689 8988 4414
+1690 2829 3704
+1691 2422 7787
+1692 5935 9684
+1693 1920 1700
+1694 9623 9541
+1695 5283 6250
+1696 4452 2588
+1697 6550 9216
+1698 1689 2955
+1699 2548 9852
+1700 9849 5779
+1701 1708 2115
+1702 9334 5563
+1703 7266 7653
+1704 3602 7211
+1705 3951 4509
+1706 5726 8394
+1707 5585 3741
+1708 8767 6401
+1709 3174 813
+1710 8543 9989
+1711 3234 4538
+1712 6797 8987
+1713 449 7323
+1714 2015 3819
+1715 549 2679
+1716 7034 29
+1717 9538 8395
+1718 9114 262
+1719 8164 6744
+1720 9924 1901
+1721 3947 5662
+1722 6742 4607
+1723 1277 7562
+1724 2976 5262
+1725 9610 9777
+1726 769 6583
+1727 1680 5200
+1728 3546 8745
+1729 4383 3844
+1730 2765 690
+1731 4091 408
+1732 8574 2076
+1733 4389 4416
+1734 2582 5351
+1735 6915 1922
+1736 526 9826
+1737 5475 4416
+1738 1856 4206
+1739 7002 5261
+1740 6341 7410
+1741 5698 3049
+1742 2062 2022
+1743 6139 9633
+1744 1824 7090
+1745 408 4263
+1746 7640 4758
+1747 2855 1026
+1748 3579 7092
+1749 7179 8031
+1750 7714 1706
+1751 5849 7693
+1752 3616 3006
+1753 2879 818
+1754 7634 9529
+1755 9687 1662
+1756 1951 7253
+1757 1733 5410
+1758 1065 744
+1759 8395 5994
+1760 4038 3658
+1761 455 7593
+1762 6011 81
+1763 3031 2022
+1764 8631 2009
+1765 7420 6950
+1766 3436 7664
+1767 91 3779
+1768 7778 6866
+1769 9211 6937
+1770 3671 4734
+1771 4640 6796
+1772 5803 3207
+1773 2153 4590
+1774 9459 4094
+1775 1789 8321
+1776 4097 5232
+1777 4630 5488
+1778 4350 8332
+1779 5809 2275
+1780 360 5659
+1781 7491 4977
+1782 1909 833
+1783 3399 8962
+1784 980 660
+1785 6642 5424
+1786 8227 3017
+1787 7833 2350
+1788 3056 6138
+1789 7663 2670
+1790 4085 2550
+1791 8740 2702
+1792 2840 2
+1793 7931 6876
+1794 3675 1003
+1795 6392 1745
+1796 5343 1185
+1797 4978 9703
+1798 1773 1687
+1799 1069 9977
+1800 5092 2894
+1801 172 6002
+1802 2470 1915
+1803 9354 2122
+1804 9654 2224
+1805 9888 9913
+1806 580 5901
+1807 4861 1557
+1808 7862 9455
+1809 869 6921
+1810 6286 4871
+1811 8382 4739
+1812 260 3621
+1813 247 2718
+1814 9093 7140
+1815 5207 152
+1816 504 1867
+1817 7650 4372
+1818 3968 2648
+1819 1964 1962
+1820 6513 47
+1821 8409 6396
+1822 3177 4111
+1823 6934 9565
+1824 6873 3441
+1825 2286 1411
+1826 8806 5468
+1827 2596 1461
+1828 460 1757
+1829 2069 2160
+1830 1963 5566
+1831 3531 9342
+1832 1796 3706
+1833 1492 5170
+1834 8563 6801
+1835 5909 2754
+1836 9793 702
+1837 9889 2808
+1838 5394 6790
+1839 2683 2134
+1840 6914 4869
+1841 6263 3609
+1842 9771 1244
+1843 737 6340
+1844 4727 2357
+1845 7256 5558
+1846 3394 1108
+1847 1162 1793
+1848 5902 8682
+1849 7862 3557
+1850 4515 3199
+1851 4238 4102
+1852 8256 5680
+1853 2118 193
+1854 456 6233
+1855 8468 8133
+1856 4431 5742
+1857 814 7384
+1858 6912 3010
+1859 7006 8617
+1860 4990 6282
+1861 4005 6372
+1862 7036 9012
+1863 2160 275
+1864 5797 4612
+1865 5406 9862
+1866 6826 8991
+1867 7752 9655
+1868 2166 4971
+1869 465 3016
+1870 777 3095
+1871 3274 3289
+1872 3265 9949
+1873 7281 1291
+1874 6770 6025
+1875 8124 9010
+1876 8107 9407
+1877 3287 123
+1878 7924 6319
+1879 8962 2592
+1880 4592 5814
+1881 9212 304
+1882 4951 8400
+1883 719 1926
+1884 9335 3530
+1885 5935 5679
+1886 7537 301
+1887 4176 3893
+1888 1878 5566
+1889 1372 1790
+1890 2544 6927
+1891 9677 1620
+1892 682 4206
+1893 5806 4179
+1894 5184 3188
+1895 830 9223
+1896 6468 2226
+1897 405 4639
+1898 5717 1432
+1899 8762 3719
+1900 1910 8351
+1901 1498 5205
+1902 672 7609
+1903 371 366
+1904 7421 6836
+1905 2318 4591
+1906 6899 3424
+1907 3137 966
+1908 5230 1399
+1909 2616 1932
+1910 2804 2757
+1911 2518 1272
+1912 14 8917
+1913 5675 1263
+1914 4889 6088
+1915 7509 5551
+1916 124 9915
+1917 9311 4544
+1918 4219 3259
+1919 9753 7680
+1920 9303 5354
+1921 9427 5758
+1922 5333 6270
+1923 2497 6110
+1924 5236 5643
+1925 4924 6797
+1926 4890 4665
+1927 642 155
+1928 1456 221
+1929 314 1844
+1930 479 5777
+1931 9352 5660
+1932 661 7290
+1933 4994 3968
+1934 6728 996
+1935 1423 8515
+1936 977 1405
+1937 6203 8442
+1938 2794 3064
+1939 2572 7999
+1940 1538 7794
+1941 6616 15
+1942 7536 8765
+1943 9854 2971
+1944 5268 4777
+1945 9551 8147
+1946 3390 1372
+1947 6062 9023
+1948 1872 6784
+1949 9256 501
+1950 5862 8055
+1951 2087 4036
+1952 6973 227
+1953 3205 9383
+1954 6933 3741
+1955 5088 8158
+1956 8037 7939
+1957 9313 1133
+1958 700 6781
+1959 7711 1091
+1960 1242 4733
+1961 4416 7367
+1962 977 6228
+1963 7680 7777
+1964 524 6202
+1965 8361 9715
+1966 8709 996
+1967 459 7006
+1968 3069 9469
+1969 5262 9239
+1970 8309 7297
+1971 3634 1875
+1972 5587 1279
+1973 6614 1768
+1974 2666 5591
+1975 4384 4785
+1976 9963 1818
+1977 7803 8352
+1978 9137 9510
+1979 3686 7205
+1980 4557 3585
+1981 614 4856
+1982 1645 8123
+1983 5752 7832
+1984 3767 1618
+1985 1112 2303
+1986 857 4977
+1987 7309 7439
+1988 7955 7101
+1989 1769 8414
+1990 2252 7404
+1991 8024 8299
+1992 2081 2511
+1993 7739 7091
+1994 309 7537
+1995 3334 3452
+1996 3363 6493
+1997 2239 7630
+1998 7027 5709
+1999 5751 3897
+2000 2050 3898
+2001 9140 5565
+2002 6216 2508
+2003 5469 6981
+2004 6601 5487
+2005 6113 2924
+2006 6955 9498
+2007 2126 3532
+2008 5537 4779
+2009 5803 7489
+2010 8364 513
+2011 459 1765
+2012 1943 3925
+2013 6066 4934
+2014 4186 8574
+2015 9764 8967
+2016 1958 7463
+2017 1382 8921
+2018 4910 353
+2019 3619 6716
+2020 5642 5870
+2021 3582 617
+2022 467 198
+2023 9932 6164
+2024 9394 8493
+2025 9174 2487
+2026 9484 2810
+2027 6054 2430
+2028 3902 7992
+2029 1886 9151
+2030 6217 5896
+2031 4802 2552
+2032 1410 9830
+2033 2370 4151
+2034 5419 6379
+2035 2366 5341
+2036 2824 5933
+2037 2435 5219
+2038 6435 1669
+2039 8438 5739
+2040 7596 6209
+2041 1394 7152
+2042 3723 2425
+2043 7245 7671
+2044 9962 6843
+2045 8930 11
+2046 7523 4073
+2047 3094 6862
+2048 132 3119
+2049 6411 9797
+2050 3223 7623
+2051 1672 8459
+2052 7150 559
+2053 556 2621
+2054 7568 1390
+2055 855 4743
+2056 8418 8294
+2057 8285 2675
+2058 1778 8475
+2059 2809 286
+2060 8510 6084
+2061 3917 7044
+2062 835 7311
+2063 4305 3505
+2064 4163 5115
+2065 2441 9726
+2066 3103 8402
+2067 586 4548
+2068 6113 649
+2069 1550 142
+2070 1706 8752
+2071 8481 9851
+2072 3407 9610
+2073 1832 4130
+2074 6509 6759
+2075 2522 3697
+2076 2814 5232
+2077 6477 7313
+2078 61 4143
+2079 866 3732
+2080 2102 5129
+2081 7253 7999
+2082 2455 4022
+2083 3559 3811
+2084 7857 780
+2085 3482 5916
+2086 8807 784
+2087 5994 3745
+2088 2528 3224
+2089 1766 9886
+2090 580 9011
+2091 5569 4412
+2092 5219 7817
+2093 149 1193
+2094 7733 6280
+2095 1490 8686
+2096 2057 3279
+2097 4690 7768
+2098 7528 779
+2099 8109 184
+2100 5940 8090
+2101 7292 8784
+2102 4200 9627
+2103 214 670
+2104 8955 5014
+2105 5269 5453
+2106 2132 3618
+2107 1548 9878
+2108 5872 78
+2109 6315 1649
+2110 2907 4785
+2111 4452 7378
+2112 3651 7380
+2113 3052 2536
+2114 42 5347
+2115 8751 5664
+2116 636 8983
+2117 7255 6245
+2118 3949 1223
+2119 4197 1402
+2120 1987 9353
+2121 3158 5178
+2122 4744 6407
+2123 308 1817
+2124 209 611
+2125 1264 6118
+2126 230 2281
+2127 1552 3222
+2128 9845 654
+2129 5821 6477
+2130 3821 2147
+2131 5754 2662
+2132 4278 7320
+2133 9314 8306
+2134 8062 455
+2135 9691 991
+2136 7832 9407
+2137 1615 3351
+2138 589 926
+2139 4576 4672
+2140 1780 186
+2141 9760 9973
+2142 6118 5629
+2143 692 735
+2144 6117 3364
+2145 7033 4527
+2146 7601 1120
+2147 1418 4202
+2148 6224 3273
+2149 9610 4942
+2150 5186 5647
+2151 4076 8956
+2152 9093 4428
+2153 786 5129
+2154 5301 1381
+2155 7344 1059
+2156 3400 2479
+2157 4141 9318
+2158 2769 9007
+2159 7444 9267
+2160 5575 7292
+2161 9127 6871
+2162 2695 3677
+2163 1203 1556
+2164 6038 6332
+2165 5428 1028
+2166 4844 7180
+2167 4469 476
+2168 2232 2481
+2169 4704 164
+2170 2225 2810
+2171 7438 1163
+2172 446 5475
+2173 3107 4792
+2174 4328 6940
+2175 595 9797
+2176 138 9152
+2177 4311 3369
+2178 8971 4139
+2179 7298 330
+2180 6700 8645
+2181 7952 272
+2182 6159 4828
+2183 4846 4578
+2184 2528 284
+2185 3542 9415
+2186 2417 981
+2187 119 3513
+2188 53 501
+2189 803 143
+2190 4555 9077
+2191 5514 7426
+2192 6071 6147
+2193 3097 9181
+2194 246 4698
+2195 2543 8779
+2196 5384 882
+2197 2304 4932
+2198 9160 1948
+2199 9004 5960
+2200 2126 2420
+2201 6648 8375
+2202 792 1919
+2203 8642 6415
+2204 7361 7332
+2205 776 5950
+2206 7388 1378
+2207 2180 2744
+2208 9960 2062
+2209 8201 1767
+2210 4437 2513
+2211 8243 8553
+2212 7202 3323
+2213 9601 9499
+2214 4776 5428
+2215 5307 1814
+2216 6834 6842
+2217 5636 5978
+2218 3654 7200
+2219 8682 6219
+2220 8736 3145
+2221 3157 2402
+2222 5090 1391
+2223 9007 3235
+2224 5613 5921
+2225 6078 6251
+2226 6241 1160
+2227 6655 2010
+2228 5023 951
+2229 3819 5646
+2230 7456 2107
+2231 3822 6907
+2232 237 3627
+2233 3388 2397
+2234 64 8807
+2235 5454 1961
+2236 8329 9890
+2237 4779 333
+2238 466 5579
+2239 1590 8127
+2240 2432 579
+2241 8220 8637
+2242 681 9244
+2243 7695 4844
+2244 5136 5483
+2245 8810 8232
+2246 8351 374
+2247 1640 5972
+2248 3796 6307
+2249 6586 3696
+2250 9018 2526
+2251 78 1341
+2252 6009 9753
+2253 7795 277
+2254 7640 2410
+2255 6781 9654
+2256 6885 8232
+2257 8182 6528
+2258 5453 9957
+2259 5368 2409
+2260 9482 6641
+2261 2629 4466
+2262 8764 1559
+2263 538 2303
+2264 1954 8160
+2265 7390 5976
+2266 7334 4524
+2267 838 205
+2268 4506 490
+2269 1325 7756
+2270 7087 4681
+2271 5576 6900
+2272 1492 5744
+2273 4530 5376
+2274 6448 5879
+2275 4308 4565
+2276 1161 7354
+2277 6354 1787
+2278 6921 2652
+2279 8675 9023
+2280 5382 388
+2281 1097 9467
+2282 3958 8340
+2283 809 2258
+2284 7221 5490
+2285 7943 8551
+2286 7229 5164
+2287 2562 9569
+2288 4121 4295
+2289 5718 2876
+2290 4631 7377
+2291 4719 5933
+2292 5810 4313
+2293 3450 1606
+2294 7671 939
+2295 3234 2674
+2296 4004 6728
+2297 9819 4765
+2298 9503 5165
+2299 2618 3566
+2300 8544 9469
+2301 6351 6446
+2302 3046 3255
+2303 6861 7336
+2304 3574 1485
+2305 8485 7480
+2306 595 1843
+2307 7492 354
+2308 287 9320
+2309 6077 5988
+2310 4606 8945
+2311 3738 2329
+2312 1451 8359
+2313 2943 5511
+2314 7619 2439
+2315 9401 1797
+2316 6455 7643
+2317 3384 5247
+2318 2641 3334
+2319 9222 3020
+2320 8737 9117
+2321 3637 3739
+2322 7001 4820
+2323 1207 7654
+2324 1629 2889
+2325 3218 2776
+2326 4426 451
+2327 8307 1703
+2328 9505 2210
+2329 3584 5798
+2330 3078 9911
+2331 7764 7432
+2332 1296 4862
+2333 2214 6070
+2334 9030 2854
+2335 2112 2783
+2336 3490 337
+2337 6087 9996
+2338 1334 7431
+2339 6033 8030
+2340 2710 5304
+2341 8415 8943
+2342 1467 9715
+2343 8503 8130
+2344 5820 7440
+2345 7930 1789
+2346 340 9040
+2347 6778 1608
+2348 6705 7196
+2349 2746 3761
+2350 3246 7139
+2351 4995 3514
+2352 9723 176
+2353 955 4035
+2354 7166 4393
+2355 7256 7629
+2356 9608 1832
+2357 4573 7332
+2358 4692 7158
+2359 2254 2179
+2360 3602 1683
+2361 7005 5843
+2362 6382 2163
+2363 6087 3032
+2364 7473 1847
+2365 5592 9097
+2366 1358 4851
+2367 3615 1604
+2368 7536 7840
+2369 501 6207
+2370 7033 6277
+2371 9229 4059
+2372 6621 3639
+2373 6219 2767
+2374 9576 3014
+2375 7672 8822
+2376 9458 2159
+2377 3239 7985
+2378 5578 1833
+2379 2819 4800
+2380 9600 5278
+2381 5877 782
+2382 6364 5055
+2383 6751 8657
+2384 5600 1580
+2385 4050 9265
+2386 9910 5424
+2387 2594 5493
+2388 9094 817
+2389 7793 490
+2390 9335 7919
+2391 7066 8920
+2392 184 4858
+2393 7729 4632
+2394 2057 7819
+2395 9761 4415
+2396 468 9055
+2397 6333 766
+2398 5363 7935
+2399 2641 8340
+2400 7638 2623
+2401 5496 3765
+2402 8037 8772
+2403 986 4872
+2404 7315 7232
+2405 8400 5228
+2406 2082 1491
+2407 7699 482
+2408 1296 6012
+2409 5115 4491
+2410 4734 6362
+2411 7217 3637
+2412 8718 8980
+2413 2473 6451
+2414 3599 6241
+2415 4676 1543
+2416 5669 7148
+2417 9278 2702
+2418 592 8404
+2419 5414 8799
+2420 6941 9356
+2421 3767 1432
+2422 1036 9345
+2423 1676 7738
+2424 3597 1540
+2425 5284 4190
+2426 854 1744
+2427 1695 6906
+2428 7974 189
+2429 7593 2848
+2430 5138 2472
+2431 4812 4769
+2432 3085 2926
+2433 3409 5415
+2434 3489 6222
+2435 6069 8205
+2436 3510 1087
+2437 2713 8513
+2438 3281 5702
+2439 500 6322
+2440 3412 9574
+2441 767 5724
+2442 20 1419
+2443 7355 5477
+2444 8018 1156
+2445 284 6099
+2446 4125 6232
+2447 6566 503
+2448 9670 0
+2449 2392 3732
+2450 3659 8519
+2451 7600 202
+2452 2480 2521
+2453 4497 4312
+2454 4255 5973
+2455 2725 9386
+2456 4291 9944
+2457 3790 3489
+2458 7833 5009
+2459 3812 153
+2460 1939 3045
+2461 141 2666
+2462 5506 6105
+2463 9324 7989
+2464 3284 9185
+2465 7129 851
+2466 4954 7768
+2467 263 9814
+2468 9950 1338
+2469 4728 5274
+2470 1737 5946
+2471 2258 1528
+2472 3366 2663
+2473 2891 9695
+2474 2783 2155
+2475 2400 4519
+2476 4489 4581
+2477 8095 1480
+2478 3101 5726
+2479 543 2739
+2480 779 4751
+2481 6227 8552
+2482 5699 8861
+2483 486 6567
+2484 6173 9938
+2485 9448 2268
+2486 4373 377
+2487 6392 1675
+2488 140 6934
+2489 305 6703
+2490 1073 4555
+2491 513 4014
+2492 8559 2956
+2493 4263 4297
+2494 2338 8711
+2495 2381 8037
+2496 5244 3482
+2497 1333 6633
+2498 5677 4442
+2499 4571 1698
+2500 6566 8346
+2501 5271 6309
+2502 1479 5194
+2503 2005 5342
+2504 2891 8030
+2505 7374 6263
+2506 8926 8351
+2507 4127 2393
+2508 1131 4222
+2509 7566 7089
+2510 7038 7737
+2511 6620 6046
+2512 3962 5531
+2513 3497 8187
+2514 785 7382
+2515 434 1164
+2516 1271 5390
+2517 828 3790
+2518 4694 9391
+2519 8005 7587
+2520 4997 2895
+2521 6034 8154
+2522 7141 824
+2523 85 8668
+2524 3413 6007
+2525 138 9771
+2526 1010 166
+2527 8442 1293
+2528 5954 5476
+2529 182 4731
+2530 1128 7693
+2531 4860 9623
+2532 8789 8670
+2533 5658 901
+2534 6958 420
+2535 9323 7342
+2536 5553 1448
+2537 4697 5636
+2538 5587 6543
+2539 6522 7208
+2540 539 1497
+2541 1232 5736
+2542 4979 5599
+2543 8397 2069
+2544 4319 830
+2545 2373 4897
+2546 6485 7535
+2547 2057 875
+2548 2065 6485
+2549 5245 8617
+2550 122 3724
+2551 163 9750
+2552 1797 2966
+2553 1820 6788
+2554 3811 3671
+2555 8619 8461
+2556 1310 6175
+2557 6218 2025
+2558 7384 6930
+2559 7433 9150
+2560 7027 1070
+2561 7472 9703
+2562 2844 6057
+2563 7878 3314
+2564 7650 6511
+2565 5876 4695
+2566 218 7904
+2567 2437 8282
+2568 5713 1689
+2569 3439 2899
+2570 3816 9013
+2571 6122 5576
+2572 9944 9962
+2573 2874 633
+2574 1916 8728
+2575 9179 853
+2576 8973 6495
+2577 2136 1409
+2578 2662 285
+2579 1209 2595
+2580 5460 8822
+2581 1563 2702
+2582 8888 5528
+2583 1907 1040
+2584 4254 3476
+2585 6038 4331
+2586 9901 5192
+2587 3419 3270
+2588 4415 697
+2589 9736 9597
+2590 4384 4848
+2591 2264 6661
+2592 7004 489
+2593 810 5866
+2594 4604 1576
+2595 2100 1601
+2596 5945 2579
+2597 8223 5816
+2598 3353 7027
+2599 5353 8943
+2600 5851 2191
+2601 5039 6790
+2602 800 6774
+2603 3385 2820
+2604 3121 6408
+2605 1776 9971
+2606 5608 7923
+2607 1797 1166
+2608 3613 8200
+2609 1593 5836
+2610 6043 9764
+2611 3765 7777
+2612 9086 9778
+2613 8515 8787
+2614 3408 5577
+2615 3342 5856
+2616 993 7760
+2617 5471 6628
+2618 7527 9120
+2619 7851 9152
+2620 627 148
+2621 3138 9834
+2622 4390 6669
+2623 7351 3935
+2624 1666 9603
+2625 8356 6170
+2626 3596 8420
+2627 2483 1904
+2628 1632 2774
+2629 4858 687
+2630 1399 1505
+2631 4882 4405
+2632 9025 4898
+2633 1257 149
+2634 6915 2378
+2635 4219 1428
+2636 4157 8739
+2637 6657 9107
+2638 7784 2809
+2639 1478 3030
+2640 2330 918
+2641 2822 509
+2642 2676 2190
+2643 7141 7238
+2644 6317 4749
+2645 4058 8782
+2646 1143 9224
+2647 7311 8624
+2648 8687 2291
+2649 7431 4058
+2650 5784 3263
+2651 9530 9930
+2652 6782 229
+2653 4992 4848
+2654 7725 2906
+2655 7913 2134
+2656 7864 9832
+2657 4493 8943
+2658 9048 5600
+2659 225 4336
+2660 3535 880
+2661 793 3242
+2662 8307 3302
+2663 265 7678
+2664 5601 6808
+2665 1340 9868
+2666 433 6705
+2667 5208 4557
+2668 4710 6319
+2669 7598 4462
+2670 5440 7477
+2671 9873 2807
+2672 4287 9677
+2673 5166 453
+2674 8978 180
+2675 1014 5592
+2676 9105 4433
+2677 8425 5819
+2678 7017 7964
+2679 5038 340
+2680 4899 5919
+2681 1504 9958
+2682 3982 7717
+2683 8100 7388
+2684 2925 1147
+2685 8585 8851
+2686 6128 3000
+2687 3899 6358
+2688 9793 5069
+2689 8418 1401
+2690 101 5544
+2691 467 2395
+2692 1796 7470
+2693 4591 3549
+2694 6344 1204
+2695 4330 8863
+2696 9779 8309
+2697 436 8133
+2698 8699 9574
+2699 140 4508
+2700 6222 4165
+2701 8706 7367
+2702 7545 1123
+2703 4073 4656
+2704 8159 6323
+2705 3651 6072
+2706 5719 5999
+2707 8779 596
+2708 5049 5449
+2709 5920 2139
+2710 8766 718
+2711 9862 3533
+2712 7889 9032
+2713 9679 3713
+2714 6945 4091
+2715 6743 2850
+2716 4324 5600
+2717 2880 3047
+2718 2004 624
+2719 3450 7109
+2720 6628 6818
+2721 1796 8
+2722 5450 1916
+2723 2446 895
+2724 4690 135
+2725 3493 2062
+2726 4812 6206
+2727 7369 4732
+2728 5333 7463
+2729 964 5025
+2730 5997 7404
+2731 1166 3574
+2732 3141 8680
+2733 1757 2862
+2734 9347 9483
+2735 7030 6190
+2736 5007 8674
+2737 2093 5200
+2738 3408 7103
+2739 7949 8670
+2740 9424 6061
+2741 3754 8447
+2742 8992 4747
+2743 5578 6717
+2744 6044 5153
+2745 3316 2713
+2746 4740 3953
+2747 8189 4651
+2748 3229 2668
+2749 1563 3056
+2750 1495 7117
+2751 2517 1379
+2752 9674 6009
+2753 8976 6837
+2754 9530 9341
+2755 8564 928
+2756 1569 4113
+2757 1045 2798
+2758 3342 5080
+2759 2223 1300
+2760 8411 8801
+2761 7497 2611
+2762 285 344
+2763 4246 8853
+2764 915 7423
+2765 8660 2810
+2766 4920 3619
+2767 4210 6449
+2768 3938 5916
+2769 5841 5063
+2770 9806 4970
+2771 3005 6157
+2772 7972 8410
+2773 5551 1913
+2774 8138 3131
+2775 7378 9482
+2776 5140 3681
+2777 9366 9669
+2778 6803 4167
+2779 9146 5701
+2780 9109 3293
+2781 277 3274
+2782 5371 9908
+2783 6264 8010
+2784 4039 4813
+2785 8635 6746
+2786 871 2569
+2787 1180 3773
+2788 934 9591
+2789 6510 4791
+2790 7203 5952
+2791 5030 1578
+2792 8870 2659
+2793 1281 1596
+2794 2575 9144
+2795 8052 3425
+2796 8330 7953
+2797 3201 309
+2798 7077 9657
+2799 4719 393
+2800 9719 4235
+2801 4852 8277
+2802 27 5430
+2803 2546 8040
+2804 260 5242
+2805 6763 8393
+2806 4914 7228
+2807 1134 5292
+2808 6356 8722
+2809 5090 5101
+2810 9757 8162
+2811 7054 5540
+2812 2439 9634
+2813 9215 8793
+2814 5210 6510
+2815 5131 3312
+2816 4111 1272
+2817 3020 7319
+2818 3455 433
+2819 9474 9553
+2820 5464 333
+2821 702 8068
+2822 7119 1596
+2823 4769 1024
+2824 2228 4336
+2825 935 1919
+2826 4042 7187
+2827 4996 8198
+2828 4867 9551
+2829 4092 7909
+2830 4960 913
+2831 3603 3924
+2832 8461 9936
+2833 9154 9444
+2834 9924 3481
+2835 1648 2788
+2836 7170 7630
+2837 8416 5553
+2838 9948 7810
+2839 8952 6737
+2840 7054 9135
+2841 7967 9570
+2842 6187 6103
+2843 2443 3785
+2844 1880 6755
+2845 3404 1667
+2846 7079 350
+2847 8603 5827
+2848 6945 762
+2849 5037 1462
+2850 5010 5022
+2851 1727 5442
+2852 7629 2656
+2853 7909 7510
+2854 4039 5566
+2855 8624 3310
+2856 9255 8795
+2857 8485 8054
+2858 7355 7526
+2859 5926 6186
+2860 9476 9890
+2861 9830 2983
+2862 137 7096
+2863 1616 4679
+2864 793 8770
+2865 4983 5309
+2866 8408 3823
+2867 7942 4573
+2868 4463 6315
+2869 8219 5948
+2870 304 4339
+2871 9515 7271
+2872 6313 6281
+2873 6542 6106
+2874 4881 2972
+2875 8624 6644
+2876 5145 3769
+2877 1335 9604
+2878 8641 5239
+2879 4775 8905
+2880 3220 4929
+2881 4845 6053
+2882 5436 8010
+2883 6820 7336
+2884 9682 6998
+2885 5098 5110
+2886 5509 6644
+2887 8759 2436
+2888 9238 6921
+2889 1922 2554
+2890 8415 7291
+2891 2525 3875
+2892 2873 5638
+2893 1346 5851
+2894 2799 5526
+2895 7324 7916
+2896 2788 6514
+2897 8187 909
+2898 7739 7415
+2899 8082 4260
+2900 3930 8050
+2901 5135 1317
+2902 6507 9743
+2903 7232 9686
+2904 8424 6005
+2905 1261 4002
+2906 6946 880
+2907 4459 2911
+2908 8727 5851
+2909 7785 3781
+2910 357 3463
+2911 190 1326
+2912 5137 945
+2913 2756 7443
+2914 5070 7295
+2915 546 138
+2916 9663 5044
+2917 1953 3410
+2918 9167 7522
+2919 2814 3355
+2920 3493 2744
+2921 6793 9243
+2922 5175 2751
+2923 6158 7248
+2924 3050 6311
+2925 290 7884
+2926 6990 3245
+2927 9578 6861
+2928 3661 4522
+2929 6370 2002
+2930 7995 271
+2931 479 5224
+2932 6952 3004
+2933 2688 7224
+2934 2323 3712
+2935 3430 5653
+2936 4992 2664
+2937 1882 829
+2938 2626 6119
+2939 8024 2349
+2940 3108 8678
+2941 8149 1454
+2942 967 2808
+2943 10 1945
+2944 1782 6709
+2945 6331 2844
+2946 4272 2570
+2947 1773 6001
+2948 9659 9818
+2949 3665 202
+2950 996 4795
+2951 9733 5526
+2952 9536 1017
+2953 7301 7733
+2954 829 6293
+2955 6311 8893
+2956 1590 3248
+2957 2297 6670
+2958 2419 4162
+2959 9042 5393
+2960 7740 5809
+2961 2360 968
+2962 6197 912
+2963 8863 6669
+2964 8916 5138
+2965 5362 5663
+2966 2482 6339
+2967 9851 1605
+2968 402 8595
+2969 763 6197
+2970 7027 9559
+2971 1518 1230
+2972 3498 7454
+2973 1304 3671
+2974 3223 255
+2975 9669 6533
+2976 2468 8131
+2977 6237 7960
+2978 869 9908
+2979 2199 1006
+2980 4891 6727
+2981 7997 6635
+2982 7627 6416
+2983 2402 7478
+2984 3570 4190
+2985 7390 2897
+2986 368 9391
+2987 7877 9575
+2988 5963 3139
+2989 5945 2550
+2990 8902 4964
+2991 7175 5133
+2992 824 3937
+2993 473 5208
+2994 7982 162
+2995 8572 5583
+2996 4777 3942
+2997 2636 9733
+2998 3139 3664
+2999 6955 4875
+3000 7003 173
+3001 2389 458
+3002 1418 3726
+3003 3465 2246
+3004 5336 1383
+3005 3709 3453
+3006 1946 562
+3007 2376 2161
+3008 9495 9197
+3009 1933 8776
+3010 383 8332
+3011 5043 5471
+3012 7460 9471
+3013 9518 5668
+3014 9688 8473
+3015 7228 2148
+3016 4697 7470
+3017 2259 9758
+3018 9075 3916
+3019 8298 3110
+3020 5658 1298
+3021 4830 2465
+3022 7264 630
+3023 3873 5822
+3024 535 1774
+3025 15 4154
+3026 1856 9490
+3027 9177 1933
+3028 7907 8596
+3029 8997 9259
+3030 297 78
+3031 6730 2930
+3032 9578 4275
+3033 3797 2935
+3034 7334 3024
+3035 3158 6413
+3036 7762 8296
+0 1 1973
+0 2 4253
+0 3 5341
+0 5 4066
+0 6 2702
+0 9 4393
+0 10 2468
+0 11 4341
+0 12 5043
+0 14 2905
+0 17 3055
+0 18 4648
+0 20 4520
+0 22 7409
+0 24 3145
+0 26 4205
+0 30 5293
+0 37 4413
+0 44 4078
+0 45 4901
+0 46 1894
+0 48 8847
+0 49 6845
+0 54 2686
+0 56 5786
+0 58 973
+0 61 2925
+0 73 4298
+0 76 2450
+0 79 1631
+0 82 3312
+0 83 5139
+0 84 2599
+0 85 847
+0 93 4235
+0 98 4195
+0 106 1640
+0 109 2641
+0 114 2905
+0 115 4772
+0 116 6813
+0 120 2821
+0 121 2646
+0 133 4486
+0 134 7645
+0 135 2326
+0 146 4755
+0 147 5478
+0 149 6110
+0 150 4296
+0 154 2330
+0 155 5177
+0 156 2399
+0 160 2423
+0 169 6667
+0 175 7449
+0 181 5571
+0 202 5339
+0 211 6187
+0 225 1272
+0 230 5129
+0 233 7542
+0 236 1659
+0 237 5042
+0 241 5405
+0 247 3735
+0 250 4583
+0 251 872
+0 252 6803
+0 256 1896
+0 261 5218
+0 270 3248
+0 272 5821
+0 288 8682
+0 295 4190
+0 297 1560
+0 302 4017
+0 304 5102
+0 305 1268
+0 306 5971
+0 312 7082
+0 313 4722
+0 314 4796
+0 320 3926
+0 321 8670
+0 324 412
+0 329 5085
+0 338 4186
+0 351 5584
+0 352 1260
+0 353 1939
+0 356 5553
+0 357 4770
+0 377 6125
+0 379 5550
+0 382 2314
+0 388 2565
+0 398 2788
+0 401 6535
+0 406 4716
+0 412 5037
+0 424 3677
+0 429 1076
+0 433 2432
+0 439 5698
+0 443 525
+0 444 8356
+0 448 3404
+0 451 6563
+0 454 3297
+0 455 4997
+0 468 7175
+0 471 4773
+0 472 7469
+0 473 2195
+0 486 3719
+0 490 4863
+0 500 7616
+0 503 4380
+0 507 1182
+0 509 6627
+0 513 4390
+0 516 3896
+0 517 2910
+0 520 3446
+0 532 2405
+0 533 2676
+0 538 2060
+0 539 1921
+0 545 5050
+0 551 4167
+0 555 2958
+0 558 5702
+0 563 815
+0 568 4622
+0 581 4350
+0 587 4651
+0 588 964
+0 592 1975
+0 594 2539
+0 595 3246
+0 603 3889
+0 604 1734
+0 613 2342
+0 616 783
+0 622 4874
+0 623 1473
+0 624 2395
+0 631 2609
+0 636 275
+0 638 1740
+0 640 4501
+0 642 4798
+0 649 8211
+0 653 1967
+0 657 3320
+0 658 5641
+0 663 3736
+0 674 1412
+0 676 5675
+0 677 5332
+0 686 3533
+0 693 4816
+0 695 5247
+0 699 395
+0 714 1362
+0 739 3083
+0 741 844
+0 744 2447
+0 745 2077
+0 747 5991
+0 755 5643
+0 761 4951
+0 762 4859
+0 769 5577
+0 770 3826
+0 771 2093
+0 775 1814
+0 780 2254
+0 783 3492
+0 795 2267
+0 801 2009
+0 807 8617
+0 817 4506
+0 818 3924
+0 822 3290
+0 824 4898
+0 828 3712
+0 843 4320
+0 844 851
+0 850 4814
+0 853 4868
+0 859 5405
+0 861 6090
+0 868 5717
+0 871 5196
+0 890 3958
+0 893 2408
+0 895 3561
+0 905 7027
+0 907 1648
+0 910 4093
+0 913 2128
+0 914 4128
+0 915 4197
+0 922 1149
+0 923 1891
+0 924 2823
+0 927 2947
+0 933 6039
+0 939 4433
+0 943 8800
+0 946 6336
+0 947 8536
+0 956 3058
+0 958 5959
+0 960 1283
+0 962 2830
+0 970 4115
+0 976 5292
+0 979 2205
+0 988 2264
+0 991 7220
+0 995 6039
+0 996 1350
+0 1003 5679
+0 1004 3153
+0 1012 3790
+0 1014 7718
+0 1018 3251
+0 1024 4174
+0 1025 7306
+0 1026 4569
+0 1028 4956
+0 1034 2974
+0 1044 2864
+0 1047 1991
+0 1052 6256
+0 1053 2878
+0 1059 4864
+0 1064 6758
+0 1072 7471
+0 1075 4690
+0 1077 5140
+0 1081 5437
+0 1086 3751
+0 1089 4165
+0 1090 1192
+0 1114 2873
+0 1116 2318
+0 1120 4757
+0 1121 4119
+0 1122 5417
+0 1126 3811
+0 1130 6413
+0 1142 6981
+0 1151 2220
+0 1162 6757
+0 1164 6039
+0 1184 1979
+0 1185 5820
+0 1190 4886
+0 1194 5895
+0 1198 5160
+0 1202 5991
+0 1206 3681
+0 1211 7396
+0 1215 4940
+0 1220 1935
+0 1223 6847
+0 1225 6948
+0 1230 3585
+0 1237 4341
+0 1247 4708
+0 1253 3742
+0 1259 5425
+0 1265 1246
+0 1269 2779
+0 1272 1309
+0 1279 1728
+0 1280 5813
+0 1282 7263
+0 1298 1870
+0 1308 6892
+0 1314 4352
+0 1321 2464
+0 1323 5735
+0 1326 2892
+0 1327 6128
+0 1347 3932
+0 1353 6714
+0 1357 6010
+0 1360 1166
+0 1366 7989
+0 1379 6338
+0 1381 5005
+0 1392 8074
+0 1393 6482
+0 1395 1359
+0 1397 3190
+0 1407 8138
+0 1415 2669
+0 1426 6140
+0 1427 5582
+0 1433 3371
+0 1439 4457
+0 1446 7892
+0 1458 4179
+0 1459 1710
+0 1471 2025
+0 1476 3712
+0 1483 8020
+0 1485 4364
+0 1496 6430
+0 1503 6326
+0 1508 5993
+0 1510 7250
+0 1514 5399
+0 1517 3800
+0 1519 6126
+0 1524 3249
+0 1527 7379
+0 1547 6468
+0 1548 3225
+0 1549 3980
+0 1550 4399
+0 1556 2706
+0 1563 3769
+0 1584 6127
+0 1592 3896
+0 1595 2457
+0 1602 5072
+0 1604 5779
+0 1613 2487
+0 1616 7174
+0 1625 8633
+0 1626 7330
+0 1629 2545
+0 1630 3894
+0 1633 6569
+0 1636 2751
+0 1639 1722
+0 1640 4119
+0 1656 3053
+0 1667 3850
+0 1671 2507
+0 1687 2725
+0 1690 3054
+0 1694 8120
+0 1699 7994
+0 1701 3933
+0 1763 2632
+0 1764 3041
+0 1765 4823
+0 1771 4433
+0 1784 4986
+0 1803 3745
+0 1804 4036
+0 1806 6099
+0 1823 7211
+0 1827 3193
+0 1828 5214
+0 1833 4935
+0 1834 5231
+0 1839 2961
+0 1842 4324
+0 1844 905
+0 1846 2615
+0 1847 4514
+0 1851 2139
+0 1858 1394
+0 1861 4222
+0 1866 6627
+0 1872 7839
+0 1880 3497
+0 1886 2893
+0 1896 878
+0 1905 3927
+0 1907 2908
+0 1915 3608
+0 1917 4227
+0 1926 2311
+0 1929 5348
+0 1931 4903
+0 1935 7359
+0 1941 2650
+0 1946 2491
+0 1966 3419
+0 1969 6775
+0 1971 2078
+0 1995 2491
+0 1996 4612
+0 2000 3848
+0 2002 592
+0 2005 664
+0 2022 5637
+0 2029 7653
+0 2030 3473
+0 2032 8478
+0 2038 1141
+0 2039 4310
+0 2043 5444
+0 2047 5066
+0 2051 7173
+0 2052 2447
+0 2057 2667
+0 2067 5449
+0 2074 4376
+0 2085 4055
+0 2094 4351
+0 2096 3657
+0 2098 2547
+0 2103 5703
+0 2108 2407
+0 2110 3568
+0 2116 8201
+0 2125 5683
+0 2143 5230
+0 2148 999
+0 2155 2225
+0 2156 2225
+0 2164 3881
+0 2166 4771
+0 2172 5986
+0 2175 8884
+0 2179 2718
+0 2184 3792
+0 2185 7247
+0 2189 5355
+0 2207 3455
+0 2209 2670
+0 2226 1450
+0 2233 2238
+0 2235 539
+0 2237 2301
+0 2241 6687
+0 2257 4793
+0 2258 7485
+0 2280 2099
+0 2296 4553
+0 2313 4052
+0 2315 3836
+0 2322 2720
+0 2336 3020
+0 2338 6557
+0 2345 2404
+0 2349 3153
+0 2354 2461
+0 2363 725
+0 2369 6340
+0 2376 3845
+0 2381 1709
+0 2384 893
+0 2386 5202
+0 2388 3843
+0 2404 5050
+0 2411 1972
+0 2417 3660
+0 2418 7778
+0 2419 6329
+0 2437 6705
+0 2451 3009
+0 2454 3758
+0 2457 2097
+0 2459 2944
+0 2464 7108
+0 2465 2211
+0 2469 2941
+0 2482 6388
+0 2487 1106
+0 2488 7070
+0 2493 2276
+0 2496 1078
+0 2502 4959
+0 2508 4822
+0 2518 6980
+0 2523 8310
+0 2524 4169
+0 2525 9130
+0 2528 3020
+0 2529 5892
+0 2530 6889
+0 2531 7190
+0 2534 2447
+0 2535 6114
+0 2539 4819
+0 2550 5643
+0 2551 9098
+0 2559 6917
+0 2562 4536
+0 2570 6785
+0 2575 3905
+0 2576 5233
+0 2589 8225
+0 2593 5890
+0 2595 3631
+0 2596 337
+0 2618 6913
+0 2619 7040
+0 2633 4947
+0 2634 1293
+0 2647 6377
+0 2656 7692
+0 2671 4261
+0 2687 4251
+0 2688 4910
+0 2725 2171
+0 2727 2853
+0 2735 3973
+0 2745 2321
+0 2753 5502
+0 2759 3598
+0 2761 1877
+0 2769 2598
+0 2777 8110
+0 2784 2826
+0 2807 5302
+0 2811 3383
+0 2815 973
+0 2823 1682
+0 2831 2488
+0 2837 4156
+0 2845 2362
+0 2861 4235
+0 2865 2907
+0 2870 5638
+0 2885 2689
+0 2889 3703
+0 2891 3402
+0 2896 4937
+0 2913 5738
+0 2917 3789
+0 2924 4621
+0 2932 1429
+0 2958 3623
+0 2968 8047
+0 2969 6124
+0 2975 5730
+0 2977 5521
+0 2980 4316
+0 3006 4145
+0 3014 7246
+0 3026 7965
+0 107 6638
+0 308 5330
+0 296 4640
+0 333 2983
+0 593 7232
+0 1383 6119
+0 803 4369
+0 1674 4409
+0 1388 6519
+0 1117 2488
+0 564 6963
+0 831 6235
+0 255 5054
+0 78 2574
+0 491 3745
+0 269 5736
+0 60 7071
+0 1637 2327
+0 223 4335
+0 263 1784
+0 1023 4292
+0 409 1178
+0 218 1056
+0 27 3331
+0 867 2386
+0 925 6424
+0 81 5965
+0 782 7858
+0 788 868
+0 47 4424
+0 1608 4062
+0 903 8156
+0 204 4289
+0 1049 8006
+0 21 1390
+0 1686 2965
+0 578 305
+0 935 3372
+0 87 4747
+0 544 2876
+0 665 5575
+0 235 6425
+0 423 6932
+0 164 2157
+0 1231 1928
+0 476 2103
+0 7 7997
+0 99 4211
+0 703 1597
+0 957 2540
+0 634 4269
+0 842 7279
+0 841 5375
+0 1557 2983
+0 265 4681
+0 459 1390
+0 97 2194
+0 1536 3182
+0 4 4582
+0 370 917
+0 105 6381
+0 707 3218
+0 950 5188
+0 374 5649
+0 1221 3973
+0 57 1351
+0 857 3718
+0 300 6695
+0 920 2684
+0 367 3364
+0 1542 6068
+0 1418 1889
+0 418 572
+0 560 2461
+0 1277 4578
+0 244 6020
+0 477 4462
+0 142 5637
+0 530 3300
+0 1340 4144
+0 698 3829
+0 1311 4985
+0 396 7109
+0 728 3753
+0 127 2714
+0 1062 3916
+0 144 7547
+0 1097 5274
+0 219 6755
+0 88 4164
+0 350 8441
+0 1263 2466
+0 1155 5122
+0 336 2765
+0 67 3885
+0 185 4963
+0 1325 3034
+0 821 371
+0 607 2660
+0 493 2609
+0 289 7102
+0 1513 1246
+0 15 5297
+0 1404 2468
+0 1558 6729
+0 92 5839
+0 143 4578
+0 763 1924
+0 62 2458
+0 1411 7381
+0 39 5728
+0 90 3351
+0 178 4596
+0 213 3726
+0 620 1067
+0 1134 559
+0 1233 4813
+0 641 6013
+0 1294 2381
+0 23 6262
+0 373 7250
+0 340 4575
+0 1605 3716
+0 1367 6165
+0 436 7736
+0 1200 4253
+0 1434 3090
+0 290 3467
+0 1432 3773
+0 577 8061
+0 1682 2262
+0 865 1718
+0 200 6626
+0 277 2135
+0 648 5437
+0 190 3200
+0 1020 3489
+0 499 7537
+0 284 5304
+0 1010 5705
+0 1437 6596
+1 8 1033
+1 23 4649
+1 36 5931
+1 38 1745
+1 39 4569
+1 43 2685
+1 64 6234
+1 67 5749
+1 71 613
+1 94 1623
+1 99 5971
+1 101 4910
+1 103 3245
+1 118 6639
+1 124 5076
+1 130 2240
+1 140 6714
+1 141 5929
+1 142 3674
+1 158 3651
+1 161 1446
+1 163 3376
+1 167 3684
+1 195 6506
+1 199 2871
+1 213 3459
+1 216 3994
+1 219 5122
+1 238 4817
+1 245 1794
+1 248 3177
+1 263 2446
+1 284 4604
+1 291 7293
+1 294 4315
+1 307 4791
+1 326 3304
+1 331 3411
+1 348 5983
+1 354 4028
+1 358 3786
+1 378 288
+1 384 2891
+1 395 5640
+1 397 5329
+1 411 3458
+1 450 6318
+1 464 4666
+1 475 5074
+1 496 3548
+1 498 3358
+1 501 4415
+1 519 3883
+1 521 3041
+1 540 1868
+1 542 2953
+1 553 4776
+1 576 3654
+1 606 5506
+1 641 5664
+1 662 3490
+1 683 5890
+1 698 2002
+1 704 4913
+1 715 4373
+1 717 5652
+1 730 3335
+1 734 4329
+1 777 2279
+1 785 3547
+1 787 2910
+1 799 2972
+1 806 3471
+1 809 364
+1 819 1136
+1 825 3234
+1 831 4306
+1 835 2138
+1 836 4642
+1 866 2400
+1 876 5049
+1 880 4540
+1 900 4087
+1 911 1738
+1 921 3855
+1 930 3706
+1 937 4130
+1 982 1982
+1 1005 2328
+1 1016 5158
+1 1031 4299
+1 1048 6893
+1 1055 3824
+1 1065 3469
+1 1083 6943
+1 1085 3077
+1 1111 5282
+1 1153 4441
+1 1186 4455
+1 1208 2537
+1 1218 1565
+1 1222 5712
+1 1227 1681
+1 1243 3319
+1 1250 2956
+1 1251 4040
+1 1257 5780
+1 1277 4287
+1 1285 4285
+1 1288 596
+1 1291 5747
+1 1309 2944
+1 1310 1446
+1 1315 5348
+1 1342 5690
+1 1343 3681
+1 1363 2759
+1 1367 5336
+1 1376 2123
+1 1377 3447
+1 1388 5317
+1 1389 4440
+1 1414 5862
+1 1422 2374
+1 1430 5417
+1 1435 5527
+1 1442 5103
+1 1465 3249
+1 1473 4621
+1 1481 3411
+1 1489 2587
+1 1507 4404
+1 1542 4094
+1 1545 4614
+1 1560 6245
+1 1576 5456
+1 1585 1412
+1 1607 4589
+1 1614 2761
+1 1628 2540
+1 1637 4010
+1 1652 1790
+1 1658 4105
+1 1666 4297
+1 1674 5108
+1 1693 3525
+1 1698 3039
+1 1706 4466
+1 1720 5847
+1 1724 1921
+1 1727 3032
+1 1745 4100
+1 1747 3487
+1 1748 3133
+1 1753 3660
+1 1756 4059
+1 1767 4425
+1 1768 4286
+1 1778 4236
+1 1785 2514
+1 1788 2502
+1 1794 3204
+1 1799 6809
+1 1800 1339
+1 1808 6321
+1 1813 4476
+1 1815 4007
+1 1830 2935
+1 1843 4384
+1 1850 899
+1 1882 4325
+1 1903 5569
+1 1911 3454
+1 1914 2026
+1 1919 6353
+1 1920 4959
+1 1932 4996
+1 1950 4183
+1 1953 5442
+1 1963 4859
+1 1984 2587
+1 1986 3752
+1 2020 2105
+1 2021 3601
+1 2023 5806
+1 2025 4939
+1 2034 2457
+1 2035 2473
+1 2037 2354
+1 2046 3018
+1 2049 6009
+1 2062 4877
+1 2065 5994
+1 2071 6993
+1 2079 3657
+1 2106 2421
+1 2118 2928
+1 2120 5827
+1 2123 4776
+1 2124 5533
+1 2137 2984
+1 2138 5039
+1 2151 4876
+1 2158 5206
+1 2183 588
+1 2191 3477
+1 2197 2353
+1 2202 4305
+1 2205 4163
+1 2211 5815
+1 2220 4336
+1 2239 4972
+1 2260 5589
+1 2272 3433
+1 2273 1278
+1 2286 2925
+1 2291 1847
+1 2302 1685
+1 2320 6565
+1 2329 1933
+1 2335 2730
+1 2341 6225
+1 2343 5678
+1 2344 3591
+1 2346 6463
+1 2362 2695
+1 2390 6158
+1 2393 3267
+1 2399 4633
+1 2406 3559
+1 2416 3264
+1 2424 2714
+1 2439 4581
+1 2456 5849
+1 2468 6104
+1 2474 2596
+1 2489 4942
+1 2500 4721
+1 2545 2276
+1 2547 4047
+1 2549 4579
+1 2564 3964
+1 2580 4819
+1 2594 2523
+1 2609 3391
+1 2611 3752
+1 2616 5073
+1 2621 5896
+1 2629 3429
+1 2642 2643
+1 2666 4835
+1 2673 3704
+1 2675 3797
+1 2677 4281
+1 2694 3428
+1 2698 6897
+1 2700 1718
+1 2707 5525
+1 2714 2440
+1 2718 4280
+1 2723 3807
+1 2731 3379
+1 2747 3725
+1 2770 5372
+1 2774 3759
+1 2786 3942
+1 2802 4671
+1 2804 4396
+1 2816 2853
+1 2817 3546
+1 2833 7084
+1 2871 5930
+1 2887 4567
+1 2893 3612
+1 2899 3580
+1 2926 2627
+1 2948 7699
+1 2999 2570
+1 3001 4210
+1 3012 6131
+1 3032 5076
+1 100 3347
+1 923 3462
+1 193 4018
+1 702 6363
+1 568 2866
+1 174 1390
+1 7 6087
+1 257 4249
+1 352 891
+1 85 1130
+1 217 3911
+1 187 4155
+1 1643 1103
+1 811 4525
+1 126 5596
+1 53 2668
+1 1282 5651
+1 1101 5068
+1 166 3013
+1 398 4625
+1 313 3334
+1 92 5018
+1 554 3253
+1 108 3462
+1 171 3983
+1 995 4685
+1 849 3720
+1 1279 270
+1 814 2852
+1 37 2765
+1 117 4815
+1 855 5090
+1 221 4249
+1 86 4595
+1 298 5508
+1 528 4185
+1 1127 1873
+1 451 5572
+1 1589 3808
+1 59 4951
+1 1096 1180
+1 165 5072
+1 449 1718
+1 1209 4533
+1 260 1122
+1 1386 4660
+1 3 4843
+1 304 3237
+1 120 1547
+1 1060 4164
+1 927 1507
+1 710 4782
+1 1237 2647
+1 1025 6304
+1 391 3844
+1 1453 3433
+1 1508 5938
+1 1616 5612
+1 147 5173
+1 286 2128
+1 266 4224
+1 72 4722
+1 75 3007
+1 477 6056
+1 617 7066
+1 1039 5136
+1 693 4155
+1 1289 2610
+1 653 3185
+1 1538 2520
+1 483 6462
+1 1276 2916
+1 178 3288
+1 983 3420
+1 306 5370
+1 614 3347
+1 370 2876
+1 254 5912
+1 1540 1471
+1 447 2748
+1 11 3017
+1 1462 3369
+1 111 4856
+1 339 5682
+1 70 3205
+1 1278 512
+1 1474 4138
+1 18 3745
+1 922 3094
+1 375 5074
+1 13 6343
+1 1249 1872
+2 7 10589
+2 34 6082
+2 40 6385
+2 41 11624
+2 50 4987
+2 53 4600
+2 55 1852
+2 65 2389
+2 72 9365
+2 75 4558
+2 77 6216
+2 78 3710
+2 89 2146
+2 102 7137
+2 107 9325
+2 129 7483
+2 151 2199
+2 174 6347
+2 179 10158
+2 183 6589
+2 192 11674
+2 194 8646
+2 196 8730
+2 197 6908
+2 204 542
+2 224 8098
+2 226 4040
+2 266 7273
+2 274 6641
+2 281 7244
+2 285 8571
+2 296 3054
+2 311 2725
+2 344 2226
+2 365 10506
+2 404 7914
+2 413 7221
+2 422 4751
+2 430 8000
+2 432 8081
+2 453 8220
+2 499 10258
+2 511 8321
+2 515 85
+2 535 6976
+2 536 7411
+2 544 1463
+2 559 8021
+2 561 7260
+2 583 3704
+2 585 4185
+2 611 3121
+2 614 7914
+2 620 3280
+2 630 9858
+2 634 1472
+2 675 5956
+2 682 1347
+2 731 2860
+2 740 8818
+2 751 9346
+2 759 5955
+2 763 2343
+2 782 7536
+2 800 10021
+2 802 2733
+2 842 10257
+2 848 2363
+2 877 5719
+2 884 2311
+2 899 6920
+2 916 8076
+2 918 10359
+2 920 6917
+2 961 7623
+2 964 4012
+2 972 8056
+2 975 7284
+2 1037 5122
+2 1043 9164
+2 1051 7211
+2 1071 5331
+2 1094 11319
+2 1103 11646
+2 1110 5280
+2 1133 6223
+2 1158 9583
+2 1173 6639
+2 1178 67
+2 1193 1496
+2 1205 6638
+2 1207 3351
+2 1229 8585
+2 1252 7858
+2 1274 5397
+2 1276 2856
+2 1292 6604
+2 1305 3627
+2 1312 6592
+2 1328 7987
+2 1337 8004
+2 1369 5522
+2 1372 4750
+2 1387 1442
+2 1405 1447
+2 1408 9653
+2 1421 9524
+2 1434 6588
+2 1440 9265
+2 1447 6086
+2 1455 7802
+2 1492 126
+2 1495 8053
+2 1506 8977
+2 1516 6864
+2 1525 7755
+2 1528 6934
+2 1544 10651
+2 1551 5435
+2 1569 11194
+2 1574 3438
+2 1588 7452
+2 1593 2965
+2 1597 2077
+2 1605 2765
+2 1610 5144
+2 1623 1236
+2 1635 2382
+2 1672 3667
+2 1680 4330
+2 1685 847
+2 1705 6368
+2 1725 7633
+2 1726 10120
+2 1735 2959
+2 1761 10872
+2 1774 1988
+2 1781 3693
+2 1792 7346
+2 1796 4624
+2 1817 3139
+2 1841 3887
+2 1863 7930
+2 1884 1480
+2 1939 9350
+2 1954 3337
+2 1980 5500
+2 1987 5876
+2 2011 9414
+2 2012 8119
+2 2090 11546
+2 2126 9636
+2 2132 7614
+2 2136 7538
+2 2140 8320
+2 2160 6698
+2 2161 4780
+2 2181 2680
+2 2262 1249
+2 2263 9329
+2 2289 4211
+2 2295 6652
+2 2306 9276
+2 2316 6467
+2 2323 10261
+2 2333 8598
+2 2334 1094
+2 2339 7020
+2 2356 407
+2 2360 6281
+2 2361 4673
+2 2408 9400
+2 2430 4739
+2 2448 2156
+2 2453 5788
+2 2475 7833
+2 2498 4775
+2 2540 9349
+2 2548 8925
+2 2557 3650
+2 2568 4178
+2 2577 7765
+2 2579 8668
+2 2590 6110
+2 2599 8157
+2 2607 8128
+2 2622 7101
+2 2686 3833
+2 2711 1385
+2 2720 5682
+2 2740 3937
+2 2755 1784
+2 2756 8526
+2 2787 8836
+2 2788 11626
+2 2795 2218
+2 2805 6973
+2 2824 7945
+2 2829 8156
+2 2854 6755
+2 2855 1700
+2 2862 10914
+2 2879 8460
+2 2880 7204
+2 2901 4803
+2 2933 8791
+2 2942 8923
+2 2956 8348
+2 3004 4594
+2 3011 5856
+2 3022 3012
+2 3035 7949
+2 465 7362
+2 1449 8346
+2 36 5660
+2 631 6792
+2 1196 10885
+2 594 3275
+2 632 4393
+2 354 9456
+2 259 5925
+2 313 6515
+2 61 6844
+2 599 9672
+2 362 2615
+2 8 4932
+2 1295 2590
+2 1166 3681
+2 771 6102
+2 1287 1767
+2 557 5669
+2 1396 2155
+2 1466 2436
+2 85 4871
+2 93 8482
+2 781 8527
+2 130 7696
+2 1131 9722
+2 1184 2298
+2 248 7167
+2 1172 9524
+2 649 11051
+2 915 728
+2 1586 3659
+2 142 8757
+2 120 5386
+2 1496 6073
+2 421 5647
+2 162 9231
+2 459 5584
+2 516 4631
+2 1218 7022
+2 689 7106
+2 897 4393
+2 370 3580
+2 984 11411
+2 1658 9777
+2 1076 8060
+2 26 8457
+2 121 3126
+2 451 6964
+2 540 5399
+3 4 1126
+3 29 5588
+3 31 3168
+3 33 530
+3 104 4641
+3 108 5235
+3 127 2992
+3 164 4123
+3 182 6379
+3 185 9172
+3 198 8293
+3 209 3813
+3 223 9335
+3 239 5297
+3 243 5218
+3 262 7696
+3 269 1503
+3 287 3123
+3 317 5185
+3 318 2854
+3 341 2483
+3 361 5400
+3 405 1586
+3 461 4822
+3 474 4257
+3 480 5240
+3 512 2801
+3 534 2959
+3 633 7990
+3 667 2219
+3 713 5976
+3 839 3084
+3 841 147
+3 856 2794
+3 870 7998
+3 879 6580
+3 886 3102
+3 938 9459
+3 942 6514
+3 966 655
+3 977 5263
+3 1000 2462
+3 1001 9393
+3 1017 3670
+3 1070 7194
+3 1099 4927
+3 1102 3000
+3 1106 6148
+3 1112 2235
+3 1154 7193
+3 1169 8526
+3 1244 2212
+3 1248 7458
+3 1249 6620
+3 1278 4455
+3 1325 6505
+3 1350 525
+3 1364 4539
+3 1390 832
+3 1394 9510
+3 1406 7431
+3 1410 1338
+3 1444 7063
+3 1475 2041
+3 1518 5444
+3 1522 3354
+3 1540 4630
+3 1647 4985
+3 1651 3255
+3 1695 3145
+3 1713 7869
+3 1731 7903
+3 1733 4749
+3 1811 2349
+3 1829 7955
+3 1857 7506
+3 1899 3398
+3 1918 5607
+3 1947 2969
+3 1976 5521
+3 1977 1363
+3 2003 2848
+3 2009 2543
+3 2028 4504
+3 2070 6815
+3 2077 1851
+3 2080 6514
+3 2081 1399
+3 2089 7121
+3 2102 4835
+3 2104 2170
+3 2119 7020
+3 2127 7790
+3 2145 2863
+3 2178 3021
+3 2198 5208
+3 2259 5529
+3 2270 2702
+3 2294 6182
+3 2308 8332
+3 2337 3663
+3 2365 3383
+3 2392 8431
+3 2443 1875
+3 2444 5939
+3 2483 7846
+3 2490 7672
+3 2491 8385
+3 2497 6996
+3 2503 6547
+3 2578 8845
+3 2637 2612
+3 2639 7950
+3 2681 7390
+3 2702 6014
+3 2710 6385
+3 2860 3033
+3 2881 3621
+3 2976 5939
+3 2992 8126
+3 3024 9421
+3 121 6766
+3 232 7491
+3 1659 6103
+3 214 8193
+3 173 7404
+3 1207 2200
+3 268 6177
+3 1566 1784
+3 490 1567
+3 181 799
+3 522 7933
+3 862 1654
+3 100 1516
+3 1310 3839
+3 1554 6262
+3 23 3618
+3 1057 5407
+3 741 5050
+3 1148 6020
+3 538 4300
+3 434 3631
+3 311 2506
+3 1409 5816
+3 74 5879
+3 82 6977
+3 830 4928
+3 1241 5966
+3 1305 5065
+3 7 6325
+3 746 4657
+3 298 2718
+3 1082 3885
+3 575 1654
+3 170 6822
+3 834 1406
+3 151 3145
+3 73 4583
+3 161 4302
+4 35 5679
+4 47 5374
+4 60 4542
+4 88 1650
+4 143 6038
+4 191 2611
+4 229 5882
+4 254 8564
+4 258 2334
+4 267 3762
+4 380 1931
+4 390 3358
+4 399 5472
+4 409 4457
+4 423 2933
+4 457 3697
+4 598 9569
+4 628 6679
+4 706 4220
+4 709 4143
+4 742 4299
+4 748 5811
+4 794 3777
+4 863 4837
+4 934 3081
+4 935 6563
+4 980 7532
+4 1087 5555
+4 1118 4841
+4 1175 6106
+4 1209 5157
+4 1224 3788
+4 1263 2498
+4 1290 5146
+4 1339 2403
+4 1345 3906
+4 1354 2121
+4 1358 9014
+4 1424 8764
+4 1425 8550
+4 1450 8281
+4 1502 5571
+4 1513 4340
+4 1557 7312
+4 1581 9319
+4 1582 4532
+4 1596 2460
+4 1619 3278
+4 1642 3929
+4 1649 5673
+4 1653 8400
+4 1746 1539
+4 1749 2467
+4 1757 6855
+4 1786 2991
+4 1824 3058
+4 1831 6047
+4 1832 7142
+4 1927 9838
+4 1943 3282
+4 1944 3511
+4 2024 2637
+4 2031 5095
+4 2050 5585
+4 2196 6016
+4 2314 3673
+4 2321 5416
+4 2382 2390
+4 2431 3945
+4 2436 7040
+4 2466 4024
+4 2501 3308
+4 2565 2983
+4 2643 1893
+4 2699 8553
+4 2746 4332
+4 2773 5068
+4 2853 1656
+4 2940 6082
+4 1173 6174
+4 26 7742
+4 1254 1725
+4 807 8458
+4 506 5601
+4 1479 1296
+4 271 845
+4 471 4434
+4 438 2800
+4 941 3174
+4 270 7819
+4 871 3756
+4 207 7439
+4 1416 4821
+4 542 7128
+4 155 8765
+4 1398 3251
+4 68 6955
+4 912 1497
+4 253 4480
+4 1408 6877
+4 998 8075
+4 1331 6698
+4 1587 5793
+4 577 8278
+4 1350 1639
+4 1580 2480
+4 266 3548
+4 1556 2713
+4 8 4473
+4 203 4725
+4 734 6472
+4 5 8501
+4 1625 8864
+4 301 975
+4 870 7336
+4 116 3885
+4 580 2560
+4 1284 9399
+4 1403 7374
+4 1119 4744
+4 97 2404
+4 1104 2413
+4 1103 8749
+4 32 3748
+4 563 4863
+5 70 1290
+5 110 6541
+5 144 9501
+5 180 3946
+5 208 6458
+5 227 3629
+5 276 6280
+5 308 3404
+5 322 7397
+5 343 2702
+5 376 6810
+5 419 9990
+5 427 5404
+5 447 5490
+5 531 2445
+5 550 9103
+5 574 4918
+5 582 5912
+5 600 8634
+5 612 2264
+5 652 4857
+5 681 2283
+5 685 10346
+5 703 4001
+5 732 4096
+5 737 8365
+5 760 6005
+5 766 2261
+5 885 1597
+5 968 3221
+5 973 3758
+5 981 10370
+5 993 2876
+5 1038 5230
+5 1105 6726
+5 1149 6132
+5 1156 2733
+5 1171 7733
+5 1210 3320
+5 1242 1513
+5 1300 6317
+5 1322 8280
+5 1385 9728
+5 1429 9826
+5 1494 8065
+5 1512 7368
+5 1535 5218
+5 1553 8620
+5 1575 5936
+5 1591 3895
+5 1609 5370
+5 1723 7095
+5 1737 5185
+5 1769 9611
+5 1849 6549
+5 1875 10439
+5 1989 7909
+5 2054 5573
+5 2100 8513
+5 2111 7271
+5 2130 2401
+5 2231 6634
+5 2252 10049
+5 2264 7650
+5 2279 10778
+5 2298 8775
+5 2299 3105
+5 2324 2418
+5 2347 4840
+5 2389 5729
+5 2470 5445
+5 2522 5086
+5 2585 5512
+5 2591 6154
+5 2592 4940
+5 2597 8129
+5 2600 4143
+5 2606 8216
+5 2662 6838
+5 2838 10744
+5 2867 7145
+5 2907 3391
+5 2936 3634
+5 2952 7489
+5 2970 10320
+5 2997 9240
+5 3015 5417
+5 3020 3679
+5 3023 5611
+5 1080 6700
+5 975 10565
+5 387 8327
+5 964 6584
+5 415 4275
+5 1455 9904
+5 1247 7025
+5 1094 8189
+5 651 9012
+5 20 4151
+5 1583 5358
+5 556 10059
+5 686 7589
+5 1655 10745
+5 845 5519
+6 15 2706
+6 27 6013
+6 81 5922
+6 112 6388
+6 131 7594
+6 201 6570
+6 240 3526
+6 278 2776
+6 299 8005
+6 360 2830
+6 362 5985
+6 431 6372
+6 452 1640
+6 479 1514
+6 518 2674
+6 548 1688
+6 602 5586
+6 625 1888
+6 626 8617
+6 629 8231
+6 635 3540
+6 656 5288
+6 689 5136
+6 756 1859
+6 779 979
+6 804 3686
+6 954 7164
+6 1040 5782
+6 1042 8207
+6 1054 700
+6 1079 7653
+6 1101 7516
+6 1150 5117
+6 1235 1643
+6 1266 5568
+6 1317 2365
+6 1453 4472
+6 1457 3425
+6 1498 7861
+6 1552 7037
+6 1564 5685
+6 1567 6795
+6 1618 1528
+6 1643 2527
+6 1668 4781
+6 1676 4127
+6 1717 9086
+6 1812 3061
+6 1825 984
+6 1862 7994
+6 1937 7091
+6 2036 3789
+6 2055 3332
+6 2066 6259
+6 2139 3009
+6 2153 3681
+6 2171 4601
+6 2195 6645
+6 2206 4511
+6 2234 7257
+6 2238 4233
+6 2240 1646
+6 2265 5870
+6 2282 6277
+6 2290 5497
+6 2452 595
+6 2553 4776
+6 2586 7596
+6 2696 9205
+6 2791 2163
+6 2832 9547
+6 2851 3513
+6 2920 813
+6 2983 5360
+6 113 3371
+6 1548 4016
+6 1130 8574
+6 939 7052
+6 53 2435
+6 466 7934
+6 294 4418
+6 64 8717
+6 110 5395
+6 225 3876
+6 10 3232
+6 815 6747
+6 1107 6687
+6 1234 6512
+6 1623 5753
+6 1362 10170
+7 57 8929
+7 63 6411
+7 100 6040
+7 119 3804
+7 122 6649
+7 137 5509
+7 193 2125
+7 277 6426
+7 292 4195
+7 346 7897
+7 408 7483
+7 646 9627
+7 680 7049
+7 805 1189
+7 840 9520
+7 847 5921
+7 849 5212
+7 909 8374
+7 917 6170
+7 919 8083
+7 1015 9882
+7 1148 1015
+7 1179 3484
+7 1195 8072
+7 1226 5481
+7 1228 8232
+7 1256 5681
+7 1329 10242
+7 1371 10503
+7 1380 11562
+7 1404 6312
+7 1579 7370
+7 1641 8927
+7 1789 8796
+7 1814 7010
+7 1826 7585
+7 1877 9793
+7 1973 9043
+7 2001 7805
+7 2144 7396
+7 2232 6714
+7 2261 5429
+7 2293 8327
+7 2340 4591
+7 2383 4287
+7 2407 10683
+7 2450 1708
+7 2505 5961
+7 2567 1626
+7 2573 9264
+7 2588 9366
+7 2638 8752
+7 2664 4273
+7 2792 9544
+7 2850 5416
+7 88 5549
+7 579 8692
+7 673 4727
+7 817 5134
+7 655 2762
+7 594 7340
+7 146 9138
+7 177 3162
+7 38 7024
+7 974 10284
+7 1070 4587
+7 510 6291
+7 560 7953
+7 1638 9941
+7 102 4017
+7 1551 5911
+7 846 4500
+7 311 8451
+7 327 7086
+7 1105 6944
+7 1238 5082
+7 156 7553
+8 13 6860
+8 95 2521
+8 165 4543
+8 235 5499
+8 268 2383
+8 280 3770
+8 298 5186
+8 372 4676
+8 456 2844
+8 494 5417
+8 619 2707
+8 673 3573
+8 708 1788
+8 735 6845
+8 971 3926
+8 1013 5019
+8 1108 1708
+8 1172 6801
+8 1196 6755
+8 1273 7212
+8 1330 2469
+8 1336 3948
+8 1565 5786
+8 1859 5740
+8 1979 4212
+8 2064 2092
+8 2083 1604
+8 2358 3954
+8 2685 6648
+8 2808 5654
+8 2902 6683
+8 2937 3969
+8 2949 3321
+8 2954 5221
+8 2995 4240
+8 35 5625
+8 770 4734
+8 1429 6381
+8 636 1162
+8 1579 2053
+8 172 2144
+8 97 2273
+8 444 7414
+8 1171 3845
+8 684 5007
+8 156 2013
+8 1081 4874
+8 711 1351
+8 27 4002
+8 1357 5288
+8 555 2387
+8 320 3656
+8 386 3536
+8 1631 2992
+8 1669 5394
+8 176 3986
+8 1066 5991
+8 452 984
+8 1662 5766
+8 1007 3901
+8 978 2382
+8 390 1793
+8 1528 7032
+8 1320 5059
+8 587 4767
+8 352 447
+8 919 4635
+8 882 4204
+8 1150 3774
+9 59 4888
+9 97 2744
+9 177 3354
+9 260 4288
+9 370 4897
+9 375 4582
+9 458 2000
+9 607 2735
+9 749 4937
+9 791 2187
+9 883 5657
+9 1104 3109
+9 1294 5873
+9 1313 6221
+9 1587 5690
+9 1608 2280
+9 1612 3531
+9 1719 1449
+9 1722 2122
+9 1798 7060
+9 1852 1864
+9 1951 5354
+9 1974 4205
+9 2076 4178
+9 2167 6644
+9 2271 1151
+9 2301 461
+9 2434 3265
+9 2467 7151
+9 2494 4804
+9 2495 4527
+9 2541 5572
+9 2563 3607
+9 2604 3608
+9 2628 6440
+9 2797 7318
+9 2799 6642
+9 2835 6419
+9 2863 5495
+9 2957 4418
+9 2978 6654
+9 2998 4709
+9 3000 6562
+9 1670 6044
+9 1667 3388
+9 421 259
+9 480 3750
+9 1054 6586
+9 902 579
+9 76 1969
+9 455 7049
+9 471 2478
+9 1165 2938
+9 111 3237
+9 1448 6584
+9 80 6088
+9 258 895
+9 565 6783
+9 754 5446
+9 331 4773
+9 380 1411
+9 1229 5217
+9 21 4712
+9 179 4660
+9 190 1246
+10 21 2915
+10 68 1289
+10 111 6190
+10 171 5384
+10 176 3235
+10 212 3319
+10 214 2363
+10 333 4684
+10 529 6649
+10 757 6418
+10 816 1707
+10 860 7286
+10 1045 8694
+10 1084 8126
+10 1177 5811
+10 1189 6848
+10 1232 3777
+10 1307 3745
+10 1417 8504
+10 1449 7061
+10 1529 760
+10 1659 8046
+10 1738 5470
+10 1775 9045
+10 1779 2299
+10 1856 5802
+10 1868 5902
+10 1908 1389
+10 2010 3029
+10 2230 2949
+10 2244 5471
+10 2300 9969
+10 2317 5596
+10 2441 7335
+10 2561 9910
+10 2605 10584
+10 2615 6182
+10 2670 7460
+10 2676 5780
+10 2744 5179
+10 2763 8907
+10 2783 8042
+10 2905 5727
+10 2938 6692
+10 3016 7483
+10 1439 4089
+10 196 6178
+10 1064 9128
+10 237 6963
+10 420 9256
+10 137 4769
+10 1422 3343
+10 1602 7318
+10 122 10434
+10 712 9359
+10 518 905
+10 544 4088
+10 1016 5150
+11 25 3711
+11 90 7645
+11 159 3106
+11 203 5910
+11 491 3166
+11 492 1067
+11 502 5320
+11 691 3481
+11 733 6180
+11 772 7268
+11 784 7139
+11 823 5379
+11 1056 6297
+11 1076 8737
+11 1161 7581
+11 1238 5030
+11 1320 5798
+11 1772 4347
+11 2170 1248
+11 2328 8166
+11 2331 7227
+11 2352 8996
+11 2427 3086
+11 2478 2484
+11 2572 10437
+11 2672 6480
+11 2679 4966
+11 2695 5777
+11 2701 8029
+11 2749 772
+11 2872 5402
+11 2892 2273
+11 2897 7295
+11 2903 8197
+11 2934 830
+11 2939 6689
+11 1001 3130
+11 519 6779
+11 85 3660
+11 611 5414
+11 93 719
+11 1606 7674
+11 147 7971
+11 566 1666
+11 488 8334
+11 580 7397
+11 489 7255
+11 979 4350
+11 401 2621
+11 195 8619
+11 49 3369
+11 1600 6164
+11 241 8653
+11 113 2287
+12 19 6479
+12 28 1833
+12 86 3420
+12 96 5157
+12 126 8956
+12 275 5256
+12 337 9816
+12 349 2074
+12 389 5125
+12 710 8270
+12 738 6212
+12 754 4173
+12 854 7133
+12 862 6724
+12 1050 4960
+12 1061 8799
+12 1197 8149
+12 1239 9191
+12 1295 7596
+12 1304 5314
+12 1382 3536
+12 1621 10365
+12 1661 6171
+12 1665 7774
+12 1770 3149
+12 1776 3735
+12 1802 2458
+12 1889 1962
+12 1893 5116
+12 1988 8022
+12 2149 8986
+12 2169 5288
+12 2398 6326
+12 2519 8287
+12 2646 5600
+12 2655 7350
+12 2748 2692
+12 2779 8676
+12 2840 8386
+12 2868 4602
+12 2906 6812
+12 3030 3586
+12 1596 5948
+12 208 3710
+12 1372 9157
+12 457 4564
+12 398 7777
+12 101 8605
+12 936 5669
+12 509 9585
+12 195 9326
+13 69 811
+13 91 1304
+13 162 5732
+13 186 6944
+13 290 8359
+13 300 3176
+13 301 2727
+13 425 8375
+13 664 8512
+13 687 1766
+13 725 7154
+13 729 5573
+13 832 3677
+13 897 5533
+13 901 7633
+13 936 4383
+13 1007 3565
+13 1010 1741
+13 1027 7308
+13 1113 5073
+13 1399 9003
+13 1490 1889
+13 1867 215
+13 2007 8265
+13 2131 7134
+13 2154 8491
+13 2192 3783
+13 2318 8065
+13 2426 10439
+13 2566 7811
+13 2587 7636
+13 2632 4720
+13 2658 4050
+13 2709 7590
+13 2834 6336
+13 2839 2944
+13 2844 6578
+13 2856 1542
+13 2869 3544
+13 2898 2064
+13 1630 4987
+13 1671 7995
+13 241 4285
+13 59 5823
+13 989 9492
+13 424 3846
+13 1378 1252
+14 113 3853
+14 221 1664
+14 242 4890
+14 293 6300
+14 303 7561
+14 402 4928
+14 463 7871
+14 590 1606
+14 627 610
+14 648 4909
+14 829 4848
+14 903 7375
+14 1187 7273
+14 1231 2270
+14 1303 3771
+14 1359 3735
+14 1391 3173
+14 1463 1615
+14 1500 2553
+14 1703 7448
+14 1956 8149
+14 2017 7397
+14 2026 6747
+14 2186 802
+14 2217 5141
+14 2350 5487
+14 2598 5385
+14 2626 6795
+14 2801 6911
+14 2912 2413
+14 2955 8019
+14 16 2130
+14 1191 5796
+14 530 1047
+14 414 9247
+14 450 9267
+14 171 6277
+14 1609 4800
+14 71 3314
+14 208 5314
+14 1410 8186
+14 1375 7514
+14 752 5826
+14 51 5954
+14 404 7945
+15 16 1161
+15 32 5664
+15 42 1649
+15 139 8032
+15 527 7551
+15 834 8739
+15 888 3261
+15 896 3918
+15 1437 9278
+15 1456 6604
+15 1536 6252
+15 1554 4462
+15 1708 9117
+15 1990 4883
+15 2018 5231
+15 2283 798
+15 2330 7517
+15 2432 2740
+15 2486 4757
+15 2683 8956
+15 2693 4294
+15 2987 10058
+15 1242 1827
+15 326 5964
+15 233 10626
+15 716 4970
+15 140 10868
+15 1524 3899
+15 230 6441
+15 43 3473
+15 798 7510
+15 1271 5266
+15 1436 4462
+15 1645 7776
+15 722 9208
+15 1031 8323
+15 247 1926
+15 1577 3045
+15 472 6272
+15 485 8875
+15 1668 3698
+16 87 864
+16 148 1953
+16 210 9158
+16 368 5930
+16 410 2633
+16 566 2063
+16 597 7248
+16 957 6264
+16 987 1101
+16 1166 5537
+16 1375 7225
+16 1590 4467
+16 2093 828
+16 2303 8273
+16 2307 6937
+16 2366 3114
+16 2446 5592
+16 2574 7027
+16 2631 4917
+16 2708 5667
+16 2726 6017
+16 2739 9977
+16 2848 6323
+16 118 9248
+16 227 3079
+16 307 6734
+16 799 7302
+16 1665 7495
+16 1006 947
+16 52 7399
+16 1321 7378
+16 1246 2631
+16 1083 7646
+16 22 7432
+16 1341 813
+16 796 8094
+16 1324 8770
+16 1512 5865
+16 494 9964
+17 403 7420
+17 407 1597
+17 505 7514
+17 562 7671
+17 570 397
+17 707 6246
+17 810 6734
+17 1074 5424
+17 1125 7087
+17 1213 6352
+17 1504 4371
+17 1577 7192
+17 1578 6202
+17 1750 1041
+17 1754 7463
+17 1883 7945
+17 1901 7793
+17 1925 5973
+17 1983 6395
+17 2075 6335
+17 2099 2029
+17 2133 6203
+17 2180 6797
+17 2367 5075
+17 2396 10723
+17 2764 9378
+17 1257 8025
+17 191 6460
+17 107 8511
+17 381 1178
+17 491 6514
+17 1307 4121
+17 24 6196
+17 369 5730
+17 230 6627
+17 157 9461
+17 554 5806
+17 709 7858
+18 138 6454
+18 335 743
+18 387 6617
+18 421 6694
+18 460 4228
+18 465 8594
+18 546 9728
+18 718 8169
+18 1199 1863
+18 1346 9009
+18 1520 6881
+18 1521 1629
+18 1532 2100
+18 1572 6491
+18 1657 9698
+18 2173 2902
+18 2405 7796
+18 2413 3934
+18 2472 2381
+18 2473 7145
+18 2610 8598
+18 2738 4930
+18 2822 6248
+18 2919 1905
+18 3031 5742
+18 439 5929
+18 94 3139
+18 167 505
+18 1390 7740
+18 1397 2810
+18 314 5560
+18 165 8626
+18 1164 8454
+18 81 5800
+18 894 10758
+18 60 8241
+19 125 4592
+19 446 5201
+19 481 2261
+19 514 5056
+19 889 5088
+19 1311 2225
+19 1351 4791
+19 1368 6249
+19 1418 2238
+19 1479 3292
+19 1807 5209
+19 1970 1947
+19 2129 716
+19 2395 3834
+19 2435 1777
+19 2511 451
+19 2659 6669
+19 2660 6362
+19 2806 1782
+19 2821 6044
+19 2894 3860
+19 2985 3692
+19 1617 6577
+19 1349 3988
+19 361 3719
+19 428 5535
+19 366 1925
+19 206 1867
+19 669 7725
+19 332 4717
+19 283 5467
+19 204 5081
+19 548 4521
+19 1486 1955
+19 208 4190
+20 157 3972
+20 166 3253
+20 228 3736
+20 319 3766
+20 417 1722
+20 525 4646
+20 702 5099
+20 764 7812
+20 969 6469
+20 1091 4995
+20 1188 6612
+20 1334 4591
+20 1451 7621
+20 1631 980
+20 1855 7651
+20 1881 8710
+20 1900 3717
+20 1949 8652
+20 2044 8589
+20 2190 5296
+20 2394 3201
+20 2460 1621
+20 2771 2026
+20 1138 4895
+20 47 2163
+20 1584 5599
+20 195 7961
+20 174 2494
+20 126 7661
+20 863 2241
+20 222 4056
+20 996 3925
+21 273 4593
+21 336 4152
+21 632 2649
+21 989 6132
+21 1443 5331
+21 1491 4966
+21 1573 7527
+21 1586 2368
+21 1615 1507
+21 1654 6619
+21 1655 7820
+21 1669 6316
+21 1682 1031
+21 2041 5284
+21 2159 7292
+21 2309 3751
+21 2380 5930
+21 2480 4031
+21 2781 4017
+21 2931 4536
+21 1347 5317
+21 646 4035
+21 79 1440
+21 495 4568
+21 944 4259
+21 126 6784
+21 1169 3769
+21 50 844
+21 457 1964
+21 1495 4324
+22 80 5079
+22 526 1689
+22 875 4075
+22 891 10112
+22 1488 9464
+22 1499 9233
+22 1660 6443
+22 2254 8564
+22 2400 8398
+22 2442 7976
+22 2665 1215
+22 1521 5232
+22 1008 7457
+22 62 9824
+22 658 3857
+22 1680 6319
+22 1385 2484
+22 90 10406
+22 410 5000
+22 1412 5387
+22 1627 6484
+22 202 6918
+22 309 7071
+22 1468 3088
+22 240 3587
+22 194 2172
+22 1504 6706
+22 967 10794
+22 1167 7325
+22 934 8913
+23 92 2817
+23 132 4754
+23 173 4114
+23 222 8260
+23 255 3723
+23 327 5646
+23 495 5832
+23 736 3311
+23 974 7795
+23 1115 8588
+23 1332 4775
+23 1431 1884
+23 1555 1292
+23 1598 5350
+23 1599 6907
+23 2016 3363
+23 2194 6284
+23 2229 3315
+23 2410 2375
+23 2689 8036
+23 2918 4255
+23 2929 6832
+23 1137 8738
+23 1318 1664
+23 1240 4706
+23 39 1748
+23 1564 9039
+23 1182 5522
+24 220 9853
+24 282 5863
+24 393 7175
+24 466 7897
+24 670 8375
+24 820 2185
+24 902 5373
+24 1165 8858
+24 1176 7320
+24 1734 2761
+24 1760 1886
+24 1923 3519
+24 2014 6220
+24 2015 9678
+24 2115 6981
+24 2215 2929
+24 2348 6248
+24 2387 2904
+24 2481 7039
+24 2820 3740
+24 2916 7588
+24 1190 7398
+24 222 1864
+24 619 5347
+24 455 1885
+24 582 3824
+24 1067 4882
+24 748 1155
+25 170 8425
+25 207 2351
+25 316 3304
+25 644 3188
+25 778 5361
+25 790 4807
+25 941 4765
+25 1060 7442
+25 1246 1355
+25 1566 5965
+25 1816 3375
+25 1895 8853
+25 2141 10933
+25 2225 5885
+25 2359 1978
+25 2445 6271
+25 2663 7649
+25 2789 4820
+25 495 5454
+25 1413 9133
+25 931 9672
+25 1673 8425
+25 701 3732
+25 1159 6427
+25 1069 6633
+25 445 6355
+25 482 543
+25 59 7755
+26 271 8519
+26 414 9231
+26 470 2403
+26 484 3369
+26 577 6047
+26 821 4552
+26 955 2681
+26 1033 4920
+26 1129 1533
+26 1331 6908
+26 1361 9829
+26 1420 8813
+26 1480 3521
+26 1964 3387
+26 2068 5199
+26 2187 1444
+26 2243 6532
+26 2657 6730
+26 2728 5962
+26 2826 4975
+26 2915 2944
+26 3010 5493
+26 1058 6676
+26 954 8347
+26 672 2442
+27 51 4587
+27 650 3254
+27 697 8026
+27 765 3007
+27 944 1303
+27 1182 2381
+27 1338 10489
+27 1466 2031
+27 1477 8066
+27 1570 7396
+27 1583 6410
+27 1632 6881
+27 1793 4661
+27 1921 3462
+27 1948 8366
+27 1992 6874
+27 2053 8402
+27 2162 6401
+27 2200 6827
+27 2374 926
+27 2440 9121
+27 2571 4308
+27 2877 10534
+27 2904 3714
+28 206 3706
+28 381 9218
+28 584 3617
+28 608 4173
+28 651 8320
+28 692 9242
+28 700 2028
+28 776 5185
+28 959 2440
+28 1029 4564
+28 1561 2454
+28 1975 3295
+28 2484 6753
+28 2706 4604
+28 270 5622
+28 435 2612
+28 1014 2980
+28 1250 1913
+28 527 4935
+28 629 8764
+28 611 6224
+28 558 1250
+28 836 1661
+28 475 6781
+28 293 7548
+29 589 3409
+29 621 8792
+29 688 5417
+29 999 9112
+29 1035 5169
+29 2250 9187
+29 2537 4378
+29 2624 1795
+29 2669 6787
+29 2772 4743
+29 2796 5232
+29 2841 4527
+29 626 3313
+29 467 9232
+29 156 7471
+29 732 8374
+29 932 1734
+29 259 4111
+29 267 6882
+29 1369 8586
+29 1308 4586
+29 359 5283
+29 1335 2440
+29 786 7601
+29 250 7454
+30 117 7567
+30 145 4284
+30 323 6948
+30 325 5836
+30 373 4670
+30 510 8457
+30 953 7065
+30 1041 9407
+30 1192 1316
+30 1306 5109
+30 2082 6790
+30 2084 6093
+30 2532 1852
+30 2569 6516
+30 2654 4022
+30 3005 5973
+30 697 8907
+30 78 6937
+30 644 6946
+30 1647 5025
+30 713 6342
+30 677 3060
+30 1224 4594
+30 1018 7291
+31 187 6440
+31 215 3249
+31 339 3638
+31 504 4877
+31 572 6734
+31 827 7169
+31 965 3611
+31 1241 4963
+31 1460 1121
+31 1707 4573
+31 1790 5906
+31 1894 5126
+31 1912 5412
+31 1961 1357
+31 2063 4926
+31 2391 1781
+31 1265 6781
+31 57 6442
+31 201 7706
+31 167 6719
+31 1015 8834
+31 795 5265
+31 171 4964
+32 232 5184
+32 436 4588
+32 488 4212
+32 541 6888
+32 567 3779
+32 724 1599
+32 881 5423
+32 1864 1998
+32 1885 1296
+32 2326 5926
+32 2623 3497
+32 2640 5993
+32 550 4094
+32 318 5650
+32 161 2979
+32 1152 5395
+32 622 6609
+32 1211 3567
+32 466 3640
+32 473 1986
+32 787 4673
+32 199 837
+33 887 3036
+33 948 8433
+33 1378 3042
+33 1428 6618
+33 1464 3151
+33 1791 4342
+33 1952 6767
+33 2165 6374
+33 2542 3129
+33 2729 7104
+33 2767 3628
+33 757 2570
+33 843 6944
+33 229 5696
+33 365 6162
+33 525 5127
+33 174 5738
+33 40 1302
+33 886 2584
+33 1079 1510
+33 1576 9807
+33 176 8585
+34 289 4921
+34 345 6321
+34 1140 2528
+34 1157 3250
+34 1469 2086
+34 1601 5363
+34 2224 2445
+34 2536 2962
+34 2775 6384
+34 211 4047
+34 1632 7483
+34 1488 4157
+34 999 3319
+34 135 860
+34 146 5898
+34 118 6938
+34 926 3661
+34 173 5208
+34 430 2584
+34 1061 6042
+34 364 2848
+34 337 6572
+35 66 3430
+35 426 6256
+35 449 5247
+35 564 10559
+35 1107 7599
+35 1200 8548
+35 1928 8516
+35 1960 9704
+35 2268 5462
+35 2292 5651
+35 2768 8114
+35 2994 2012
+35 1592 7551
+35 548 7838
+35 248 8494
+35 319 11121
+35 910 8240
+35 1327 7315
+35 1109 5366
+35 269 6027
+36 310 5660
+36 442 1982
+36 483 7461
+36 485 1230
+36 852 6683
+36 882 8369
+36 892 9442
+36 1066 2508
+36 1472 6144
+36 1533 7201
+36 1650 7875
+36 1870 9602
+36 2253 7612
+36 2297 3070
+36 2517 9237
+36 2704 1759
+36 270 9566
+36 1450 9154
+36 187 9470
+36 196 8116
+37 168 7674
+37 200 5612
+37 523 4880
+37 666 6308
+37 672 1371
+37 792 3232
+37 798 5227
+37 1058 5117
+37 1135 4777
+37 1773 362
+37 2375 7187
+37 2471 3180
+37 2803 3445
+37 2876 3464
+37 940 8632
+37 583 6873
+37 582 1829
+37 1614 4048
+37 363 1526
+38 123 4277
+38 330 6109
+38 369 4167
+38 418 960
+38 727 3290
+38 931 5791
+38 1021 3165
+38 1787 2196
+38 2019 3875
+38 2402 5236
+38 2737 4353
+38 2886 2880
+38 2979 4940
+38 175 6893
+38 1624 5592
+38 1011 3109
+38 440 4195
+38 389 423
+38 654 5519
+39 826 3338
+39 906 7112
+39 985 6612
+39 1264 4228
+39 1662 6732
+39 1820 8051
+39 2463 2609
+39 2874 5443
+39 171 4076
+39 1476 3081
+39 331 6135
+39 275 2217
+39 441 958
+39 321 6770
+39 218 5766
+39 1033 3264
+39 60 1749
+40 363 6421
+40 647 5530
+40 1324 5595
+40 1714 6158
+40 1718 7830
+40 1940 5232
+40 2332 6181
+40 1539 2553
+40 750 2580
+40 276 6546
+40 895 5904
+40 726 4839
+40 1201 2957
+40 1382 4813
+40 1366 3127
+40 733 1241
+40 550 4812
+40 618 5487
+41 105 2362
+41 309 8239
+41 1078 2860
+41 1214 9089
+41 1219 6011
+41 1543 5078
+41 2247 3734
+41 2379 5183
+41 2715 8909
+41 256 10400
+41 1507 6932
+41 50 7632
+41 547 10359
+41 627 7925
+41 1161 8432
+41 153 11727
+41 1160 5220
+41 269 9266
+42 467 6674
+42 482 4593
+42 767 4983
+42 1008 7248
+42 1082 6041
+42 1684 3542
+42 1739 6887
+42 1981 556
+42 2210 4742
+42 233 9899
+42 1183 3094
+42 947 5558
+42 1099 5798
+42 443 5575
+42 1501 6795
+42 1666 5215
+42 294 1392
+42 1621 10436
+43 671 2141
+43 846 4072
+43 1281 3049
+43 1691 2058
+43 2218 1951
+43 2810 7776
+43 612 4091
+43 1174 812
+43 609 8597
+43 772 7270
+43 539 6011
+43 1460 4293
+43 588 5541
+43 1017 3626
+43 1510 2924
+43 1431 3169
+43 1226 1525
+44 205 2348
+44 246 2181
+44 571 4125
+44 1384 4144
+44 2114 2960
+44 2201 4596
+44 2421 4227
+44 133 8298
+44 948 3939
+44 383 3254
+44 1273 4319
+44 805 3880
+44 583 6781
+44 988 3587
+44 403 4803
+44 531 3571
+44 1424 3857
+45 218 5337
+45 400 10180
+45 1067 2207
+45 1271 4743
+45 1301 2336
+45 1580 2211
+45 1742 7725
+45 1879 4043
+45 2649 2668
+45 942 6279
+45 152 5909
+45 1607 5565
+45 635 5031
+45 156 6595
+45 321 8650
+45 1415 7556
+45 1484 4479
+46 52 2307
+46 74 3294
+46 244 7869
+46 552 5155
+46 774 8949
+46 1217 9262
+46 2990 4870
+46 299 7148
+46 1085 3938
+46 172 4169
+46 200 8409
+46 1365 4983
+46 1074 7430
+46 253 8525
+46 214 3312
+46 264 5404
+46 145 2991
+47 136 3057
+47 415 1701
+47 435 3353
+47 660 6050
+47 814 2441
+47 1168 4276
+47 1401 2909
+47 1526 6385
+47 1663 2764
+47 1673 3182
+47 1762 6708
+47 2479 4333
+47 2581 3829
+47 2641 5671
+48 392 7502
+48 565 12289
+48 591 3012
+48 1258 7542
+48 1755 12101
+48 1873 10764
+48 2174 4587
+48 193 2969
+48 961 4533
+48 937 10327
+48 1124 10547
+48 1633 2577
+48 562 4745
+48 619 8943
+48 758 9310
+48 879 11358
+49 2608 3279
+49 2651 9438
+49 1561 4132
+49 230 4309
+49 1441 9132
+49 1562 3795
+49 478 2204
+49 473 4824
+49 1252 4277
+49 412 6916
+49 248 4304
+49 144 4374
+49 284 4903
+49 175 1253
+49 363 4197
+50 416 6224
+50 845 3552
+50 894 7485
+50 994 2907
+50 1131 4784
+50 1352 3105
+50 2713 4734
+50 2935 2948
+50 2946 910
+50 266 5051
+50 120 2207
+50 816 2023
+50 1053 3807
+50 186 937
+51 184 2808
+51 253 3171
+51 1180 648
+51 1679 1276
+51 2353 6080
+51 2509 1258
+51 2682 2998
+51 2719 3268
+51 334 6335
+51 608 2183
+51 719 4820
+51 270 6904
+51 242 3120
+51 506 3977
+52 62 2933
+52 217 857
+52 497 8095
+52 659 4270
+52 1865 7948
+52 1998 3494
+52 2087 2497
+52 2157 7981
+52 2204 5005
+52 2667 3608
+52 2852 533
+52 332 7856
+52 237 6968
+52 1115 1581
+53 837 2827
+53 932 9035
+53 1402 4622
+53 1677 3367
+53 1968 8226
+53 2602 6896
+53 2951 5950
+53 691 5384
+53 562 5191
+53 899 2330
+53 528 1532
+53 287 9408
+53 590 3646
+54 560 5138
+54 952 3037
+54 998 9412
+54 1487 8806
+54 1744 6533
+54 1838 6286
+54 1888 5060
+54 1957 5788
+54 2006 9360
+54 2033 3561
+54 2256 8165
+54 2311 1557
+54 2357 6628
+54 2814 5965
+54 2873 6111
+55 152 2448
+55 554 5500
+55 593 6077
+55 599 7833
+55 1297 5554
+55 2377 7086
+55 2428 2716
+55 2476 4049
+55 2965 3942
+55 1531 3260
+55 1489 4144
+55 740 7213
+55 1180 4359
+55 917 6900
+56 705 4373
+56 786 7987
+56 815 3634
+56 1147 6704
+56 1348 6747
+56 1448 2134
+56 1664 3517
+56 2128 10138
+56 140 8213
+56 1578 7910
+56 235 877
+56 1338 2475
+56 860 6300
+56 579 7746
+57 231 325
+57 2269 7984
+57 2691 6450
+57 83 6377
+57 215 4115
+57 73 5321
+57 608 5825
+57 744 2273
+57 667 4685
+57 107 7578
+57 1162 6406
+57 237 6245
+58 711 1700
+58 865 2663
+58 1006 4268
+58 1622 5994
+58 2373 1624
+58 2614 3542
+58 2636 6491
+58 252 7054
+58 256 2243
+58 225 2204
+58 96 1057
+58 192 7844
+58 1051 4507
+58 913 2955
+59 925 3010
+59 1191 1770
+59 1681 9484
+59 1854 2780
+59 2319 8923
+59 2477 9166
+59 2757 5753
+59 2819 7418
+59 2830 8045
+59 452 5467
+59 338 5861
+60 265 2559
+60 573 1704
+60 1523 9597
+60 650 9201
+60 1553 1175
+60 185 9081
+60 1543 2401
+60 310 7592
+60 1646 6282
+60 1389 7048
+61 350 9144
+61 773 6613
+61 1467 9346
+61 2059 734
+61 2945 3722
+61 1640 7043
+61 1594 2078
+61 859 2599
+61 1168 2795
+61 635 4719
+61 182 1744
+61 259 6135
+62 347 5999
+62 746 6336
+62 1355 2737
+62 1837 4543
+62 1913 1300
+62 2751 3943
+62 2793 5186
+62 348 8041
+62 1044 4715
+62 1423 10952
+62 520 5162
+63 645 6754
+63 716 3911
+63 768 7791
+63 1716 6873
+63 1783 5751
+63 1993 7395
+63 2276 3703
+63 1572 6108
+63 431 8339
+63 413 9472
+63 489 7521
+63 1354 8060
+63 453 2459
+64 617 2054
+64 1236 9902
+64 2275 5945
+64 2890 2310
+64 1232 6651
+64 630 7765
+64 1193 7250
+64 88 3137
+64 1342 9252
+64 166 4515
+64 976 3871
+64 235 7258
+65 328 7059
+65 367 5404
+65 857 5844
+65 1093 3193
+65 1709 4928
+65 2228 3098
+65 2414 7257
+65 2601 6953
+65 2743 6666
+65 2925 10714
+65 76 4535
+65 1405 2712
+66 537 971
+66 726 6164
+66 789 7624
+66 1020 2814
+66 1183 5260
+66 1270 6446
+66 2560 2167
+66 2703 3997
+66 2883 4329
+66 2962 2696
+66 1452 4919
+66 639 2628
+67 506 6688
+67 808 10989
+67 1409 1098
+67 1470 6915
+67 2372 3959
+67 238 10559
+67 1262 1298
+67 312 10768
+67 581 536
+67 116 9166
+67 1374 1731
+68 1286 2504
+68 1289 5841
+68 2058 8273
+68 458 8154
+68 197 10200
+68 361 6918
+68 729 9249
+68 277 3034
+68 456 5561
+68 1217 8860
+68 300 8555
+69 873 2341
+69 1152 1698
+69 1648 9932
+69 1373 4010
+69 783 5152
+69 141 5180
+69 416 2131
+69 1056 2301
+69 211 7807
+69 83 6500
+69 144 4188
+69 1133 7499
+70 340 1827
+70 366 4541
+70 543 6183
+70 654 3221
+70 1137 1181
+70 1318 7760
+70 2042 1358
+70 1028 7727
+70 736 4454
+70 124 6993
+70 456 5606
+71 580 4795
+71 1146 4723
+71 1302 4296
+71 2690 4250
+71 679 5811
+71 260 1718
+71 1264 1658
+71 780 2699
+71 158 3509
+71 986 3824
+71 287 7445
+72 1511 8975
+72 1916 3232
+72 2285 4866
+72 2533 8119
+72 1013 10148
+72 310 7946
+72 584 1173
+72 343 5687
+72 93 5729
+72 1544 1750
+73 1268 1416
+73 1386 5895
+73 1892 3781
+73 1965 5670
+73 2266 3991
+73 2397 6144
+73 2409 2291
+73 2842 2410
+73 779 5238
+74 743 2236
+74 1474 3675
+74 2163 3213
+74 2176 7262
+74 2449 1802
+74 1568 4536
+74 1358 3932
+74 1526 6885
+74 1251 2896
+74 1516 2224
+75 992 4794
+75 1678 5427
+75 1704 6248
+75 1821 5980
+75 2750 7068
+75 2984 3483
+75 1518 6802
+75 418 1797
+75 317 6656
+75 278 5045
+76 851 3402
+76 926 4830
+76 1068 4782
+76 1452 2896
+76 1644 3553
+76 426 4739
+76 938 6806
+76 549 6876
+76 368 1342
+77 283 6431
+77 371 3378
+77 586 5498
+77 678 6842
+77 1468 1605
+77 2544 7010
+77 357 8184
+77 1175 3921
+77 179 4128
+77 215 1779
+77 1438 3984
+78 355 2288
+78 522 6950
+78 578 2879
+78 605 6707
+78 1423 11159
+78 2147 6686
+78 2612 9908
+78 1136 6298
+78 670 9728
+79 332 6455
+79 445 5517
+79 508 7697
+79 2680 4646
+79 394 1971
+79 1634 5675
+79 946 7319
+79 818 4944
+79 209 7805
+79 1610 296
+80 359 2199
+80 1145 6169
+80 1568 1821
+80 2312 4264
+80 553 4313
+80 340 3368
+80 389 4610
+80 263 5709
+80 592 2816
+81 1019 7047
+81 1400 2716
+81 1482 1764
+81 1721 2424
+81 2150 2936
+81 1629 5018
+81 1261 2998
+81 1219 5067
+82 2342 11583
+82 2712 8912
+82 581 1529
+82 1656 3766
+82 202 6707
+82 362 4290
+82 636 3136
+82 1563 4757
+82 394 2331
+83 1541 6216
+83 1603 4951
+83 2214 2874
+83 2422 3383
+83 2617 3531
+83 2742 7140
+83 3025 2762
+83 1533 3298
+84 385 4055
+84 929 2867
+84 1174 3260
+84 1201 1511
+84 1933 1698
+84 1444 5453
+84 101 3497
+84 1400 1776
+84 162 4751
+84 325 4605
+85 861 5280
+85 1098 5167
+85 118 5602
+85 1143 6265
+85 1222 5709
+85 382 1481
+85 1106 6089
+86 2112 7232
+86 2221 2432
+86 2520 4069
+86 2630 1180
+86 122 11946
+86 1178 8255
+86 234 6860
+86 332 6795
+86 1329 4749
+87 477 9174
+87 1163 3561
+87 1461 10159
+87 2208 9098
+87 2552 968
+87 130 3920
+87 1364 5536
+87 838 6726
+87 334 8098
+88 750 1269
+88 904 1247
+88 1023 158
+88 1692 3428
+88 1848 2505
+88 2981 1051
+88 1235 7279
+89 264 7560
+89 1011 1287
+89 1413 7933
+89 2941 2409
+89 561 6052
+89 104 5428
+89 724 5880
+89 501 7457
+89 257 6470
+89 1520 6992
+90 601 1883
+90 684 7441
+90 753 5943
+90 2351 4464
+90 2661 8098
+90 242 7632
+90 933 8288
+91 1119 8057
+91 1284 9169
+91 319 7114
+91 1019 6899
+91 1487 4222
+91 625 7922
+91 1072 7881
+91 1522 4936
+91 1541 3868
+92 172 6905
+92 279 4144
+92 569 3445
+92 1670 7029
+92 2423 6105
+92 2516 6975
+92 2836 666
+93 374 4322
+93 978 4895
+93 730 6327
+93 197 10312
+93 1036 5601
+93 300 6833
+94 812 3236
+94 1697 7122
+94 1702 6039
+94 1936 3331
+94 2526 3898
+94 678 3801
+94 152 3167
+94 448 3567
+95 394 2826
+95 615 4324
+95 618 5649
+95 1462 6300
+95 1645 5674
+95 1835 2780
+95 2177 2344
+95 2849 1417
+95 2911 3478
+96 556 8286
+96 2092 6302
+96 116 7786
+96 1523 4766
+96 721 2065
+96 1529 1275
+96 288 9362
+96 785 6272
+97 128 5871
+97 355 2357
+97 1565 3624
+97 567 1257
+97 1258 6290
+97 322 5380
+98 437 9153
+98 547 7090
+98 1967 7045
+98 864 2935
+98 366 5923
+98 696 5755
+98 813 8791
+98 847 4382
+98 1359 4627
+99 984 11954
+99 2967 850
+99 263 3863
+99 185 8895
+99 141 11144
+99 1323 7964
+99 622 8523
+99 1040 7249
+100 758 5268
+100 858 4120
+100 2878 1574
+100 751 8153
+100 1304 2921
+100 955 4315
+100 171 1992
+101 1945 5094
+101 992 1676
+101 997 5841
+101 280 1354
+101 1068 5902
+101 1509 4190
+101 1213 5821
+102 781 2006
+102 963 3148
+102 1254 3633
+102 1275 3825
+102 1531 8419
+102 2963 4987
+102 2982 3732
+103 1589 7050
+103 1982 4432
+103 2078 6537
+103 2105 1694
+103 794 4008
+103 156 5378
+103 374 3314
+103 840 6502
+104 2438 797
+104 461 4663
+104 524 4806
+104 1676 4203
+104 115 4290
+104 390 2128
+104 990 7539
+105 153 9381
+105 3009 1087
+105 539 7268
+105 612 6580
+105 177 3403
+105 632 4957
+105 561 5676
+106 1620 6764
+106 2543 1182
+106 126 5686
+106 407 2834
+106 890 3157
+106 1483 8799
+106 1459 1079
+106 516 3589
+107 478 2831
+107 884 8964
+107 1135 2625
+107 1328 2649
+107 481 1977
+108 549 2684
+108 668 4607
+108 186 3808
+108 981 6324
+108 138 2169
+108 135 3885
+108 1527 1974
+109 188 7494
+109 386 1903
+109 967 6452
+109 1319 5638
+109 2455 6429
+109 250 1988
+109 663 1359
+109 819 1533
+110 1509 4245
+110 2004 3559
+110 839 1675
+110 130 6266
+110 1620 6443
+110 1003 8320
+110 411 4221
+111 1203 1356
+111 1240 1314
+111 1349 5550
+111 2212 2571
+111 2223 1589
+111 2485 2530
+112 950 7227
+112 1493 9449
+112 1539 7728
+112 2113 6033
+112 647 6559
+112 1371 10188
+112 1156 5191
+112 1639 8884
+113 462 7294
+113 1374 7144
+113 1819 3712
+113 2697 3693
+113 625 3099
+113 1322 3286
+114 476 804
+114 1370 6122
+114 1675 1961
+114 1711 5329
+114 1897 8122
+114 2219 2945
+114 523 3967
+114 1506 7600
+115 391 5284
+115 610 5613
+115 1260 2398
+115 1627 2674
+115 1029 2994
+115 374 5424
+115 504 6100
+116 1255 5596
+116 1715 8811
+116 591 2659
+116 547 6870
+116 416 3703
+117 234 3789
+117 752 2780
+117 1234 849
+117 1958 832
+117 388 7703
+117 384 6214
+117 243 9158
+118 1267 7085
+118 2953 8042
+118 1352 8192
+118 397 10900
+119 2385 3213
+119 2512 914
+119 666 4709
+119 323 2253
+119 143 8718
+119 1497 3302
+119 610 7930
+120 874 4375
+120 1170 5092
+120 1997 4005
+120 1493 4565
+121 1245 5940
+121 1588 9097
+121 132 6624
+121 1591 6901
+121 1047 3393
+122 990 8350
+122 2203 3336
+122 1024 10188
+122 904 3909
+122 694 11108
+123 2088 4025
+123 1236 5298
+123 429 5834
+123 792 2442
+123 924 4726
+123 591 2156
+123 1298 3618
+124 315 5419
+124 643 8082
+124 1362 8833
+124 1876 7164
+124 2944 1343
+124 2989 7191
+125 2401 5217
+125 1376 5936
+125 775 7017
+125 1312 6060
+125 866 6244
+125 965 296
+125 481 2332
+126 1922 3646
+126 637 6640
+126 613 6605
+127 1138 5919
+127 1416 3357
+127 1445 3891
+127 1696 3658
+127 2506 4362
+127 2943 8058
+128 178 2094
+128 364 1420
+128 2627 4067
+128 2895 6071
+128 2959 7451
+128 184 2410
+128 1100 6617
+129 383 9255
+129 504 9158
+129 1648 11991
+129 808 10199
+129 1456 6031
+129 518 9838
+129 1042 3424
+130 1809 2492
+130 2974 5610
+130 1142 3576
+130 761 2534
+131 1266 2617
+131 1195 8188
+131 1034 6400
+131 1333 1080
+131 874 8063
+131 1500 9714
+131 844 7941
+132 570 4315
+132 966 1524
+132 514 7496
+132 1110 6374
+132 749 4173
+132 1336 6895
+133 2613 8036
+133 1595 6842
+133 1009 3084
+133 143 892
+133 970 8401
+133 1599 2323
+134 468 5043
+134 1299 1326
+134 167 10047
+134 623 7584
+134 286 4815
+134 731 9111
+134 261 3690
+135 1978 8328
+135 2072 6219
+135 2546 5114
+135 681 3097
+135 714 3689
+136 434 2728
+136 2027 7465
+136 664 8881
+136 432 2555
+136 769 5811
+136 1114 4996
+136 765 6609
+137 257 4490
+137 1436 4534
+137 1515 5687
+137 253 5052
+137 784 5264
+137 1559 5091
+138 1373 4383
+138 1955 3189
+138 1999 6434
+138 1502 2037
+138 333 5147
+138 806 8614
+139 2135 7725
+139 2216 1235
+139 2310 2123
+139 2527 7011
+139 2684 7775
+139 372 2458
+140 1095 9555
+140 1419 6243
+140 2776 6494
+140 1091 10003
+141 190 5267
+141 461 8046
+141 384 5912
+141 297 7847
+142 286 3878
+142 2812 2295
+142 586 7528
+142 147 6036
+143 1780 10731
+143 2355 7928
+143 1163 5458
+144 2091 5659
+144 2146 9451
+144 1477 4443
+145 3028 6124
+145 1683 8159
+145 345 7757
+145 531 7917
+145 657 5205
+146 420 7678
+146 2370 3468
+146 2733 8352
+146 2884 2592
+147 1117 7135
+147 228 6567
+147 1275 3203
+148 872 5226
+148 323 4506
+148 639 3265
+148 350 6692
+148 303 5890
+148 1255 5056
+149 2403 8350
+149 251 5780
+149 982 6057
+149 1628 3142
+149 289 8535
+149 404 3247
+150 1204 8578
+150 1530 11010
+150 210 4669
+150 179 9952
+150 348 5025
+150 1663 8236
+151 189 7282
+151 1766 6368
+151 2008 3185
+151 643 391
+151 1585 3108
+152 928 8815
+152 1736 10949
+152 1391 997
+152 447 2075
+153 985 3178
+153 1519 8615
+153 1260 4833
+153 169 10284
+153 1214 2904
+154 2900 7281
+154 1505 1704
+154 182 4095
+154 397 8356
+154 1678 4849
+154 392 6630
+155 2304 3340
+155 881 9561
+155 810 6518
+155 671 5624
+155 704 4622
+156 1109 2917
+157 2652 9770
+157 199 2982
+157 417 2299
+157 1618 6609
+157 833 3272
+158 2429 6781
+158 282 5659
+158 349 1893
+158 485 8042
+158 1274 6360
+159 2134 4404
+159 400 5023
+159 1306 3423
+159 827 3352
+159 1030 3153
+159 541 4790
+160 530 2731
+160 639 2365
+160 1287 5648
+160 766 536
+160 184 6226
+160 801 3933
+161 400 6406
+161 1120 4084
+161 603 3643
+161 914 3062
+162 788 6053
+162 898 3803
+162 1751 3408
+162 604 7426
+163 1139 5923
+163 1537 1458
+163 1959 3783
+163 2499 4522
+163 2732 6009
+163 2809 2710
+164 2458 2808
+164 1402 6100
+164 1059 4365
+164 307 4902
+164 1038 3868
+165 949 7395
+165 1155 6898
+165 541 3261
+165 1334 6566
+166 1406 3086
+166 1590 1858
+166 354 4831
+166 637 5005
+167 1810 5602
+167 2717 1989
+168 2825 10221
+168 706 6676
+168 543 6947
+168 319 5701
+168 460 5311
+169 2722 6955
+169 2752 8852
+169 205 2906
+169 759 5826
+170 190 5518
+170 363 5863
+170 1684 6329
+170 328 5933
+172 1710 8974
+172 189 1684
+172 1210 1485
+173 972 3393
+173 206 4022
+173 898 5188
+174 1181 3328
+174 468 6381
+175 2843 4716
+175 406 9212
+175 1571 5815
+176 1123 4845
+176 768 8938
+176 652 4908
+177 1283 5515
+177 600 7185
+177 1380 10041
+178 1073 5156
+178 883 7733
+178 1514 2222
+179 277 6339
+179 520 6861
+180 2433 1199
+180 441 5881
+180 822 543
+180 1194 3112
+180 928 5232
+181 1365 6067
+181 1505 6708
+181 406 1846
+181 1095 8869
+182 438 5592
+182 1221 4178
+182 680 7697
+183 912 6404
+183 2249 2967
+183 2645 4036
+183 310 4758
+183 690 1056
+184 2692 2165
+184 302 8120
+184 921 5235
+185 341 8692
+185 1132 8350
+186 1333 4867
+186 2923 4155
+186 737 4639
+187 1985 2133
+187 2790 7046
+187 254 3964
+188 2828 4270
+188 229 6970
+188 360 10885
+188 534 2165
+188 1443 1923
+189 694 1518
+189 797 1496
+189 534 10998
+189 837 4859
+190 1212 3112
+190 2888 3377
+191 1649 6625
+191 470 7604
+191 878 6812
+191 1121 5465
+192 1356 7991
+192 2061 4059
+192 3018 10075
+192 1126 5219
+193 1871 4511
+193 2558 4558
+193 351 3814
+194 1132 8449
+194 2514 3929
+194 1296 1763
+194 253 1112
+195 596 7111
+195 1159 4811
+196 1874 5315
+196 2554 2544
+196 205 3635
+197 259 4810
+197 347 11467
+197 742 5372
+198 665 9188
+198 908 3632
+198 2245 9247
+198 199 4768
+198 312 4599
+199 2278 5069
+199 877 6461
+200 1080 6966
+200 227 5598
+200 1473 2667
+201 2378 3925
+201 1361 8286
+201 1363 7618
+201 1472 6650
+202 796 2774
+202 1743 3894
+202 3036 1832
+203 945 4637
+203 342 9748
+203 1026 5698
+203 403 7633
+204 1478 9778
+204 327 5316
+204 1417 9750
+205 2107 3004
+205 2794 1761
+205 760 1985
+206 2730 1560
+206 2882 1621
+206 1290 5785
+207 728 2150
+207 1097 8469
+207 1777 3998
+207 3033 1846
+208 2305 6133
+208 2909 6277
+209 311 6078
+209 1087 5062
+209 429 7546
+210 226 1132
+210 952 9171
+210 1687 5360
+211 1740 5907
+211 2193 3999
+212 1552 2865
+212 1661 2545
+212 778 2885
+212 1681 2532
+213 1055 3673
+213 993 4747
+213 349 5476
+214 1728 8009
+214 953 5090
+215 487 3866
+215 722 1699
+216 292 5626
+216 344 239
+216 1353 7961
+216 640 6545
+217 396 6409
+217 2274 3259
+217 474 519
+218 908 2422
+218 593 7531
+219 637 6981
+219 700 3695
+219 364 5993
+220 1043 12441
+220 1481 9377
+220 1292 5321
+220 350 7656
+221 1199 5172
+221 411 7439
+221 642 7307
+222 2741 7740
+222 1281 5668
+223 440 9778
+223 386 982
+223 381 7535
+224 2420 2835
+224 685 5170
+224 606 8489
+224 1052 2124
+225 1315 3261
+225 1688 8774
+226 721 5849
+226 878 6569
+226 745 2877
+227 719 4484
+227 2222 3519
+228 342 8045
+228 1160 4770
+228 1657 7577
+229 1086 2526
+229 1626 8271
+230 1497 1363
+231 493 3637
+231 830 1503
+231 1335 7979
+231 1909 3973
+232 2988 3046
+232 553 7055
+232 239 6083
+233 1411 2582
+233 517 10409
+234 2866 4552
+234 462 5346
+234 1428 4823
+235 1853 6746
+236 1048 9161
+236 1280 6413
+236 279 7787
+236 385 6363
+237 2966 195
+238 1679 4935
+238 1465 4465
+238 282 4080
+239 2199 6151
+239 2242 2971
+239 790 1946
+240 1069 1868
+240 1515 7756
+240 609 9138
+241 249 3064
+241 1317 7736
+242 1924 1943
+242 1230 980
+243 826 5214
+243 800 8599
+243 1581 7982
+244 1383 2409
+244 853 5984
+244 1560 4649
+245 1262 6596
+245 1805 9566
+245 2246 6322
+245 514 5934
+246 712 4852
+246 1065 3416
+246 1619 7207
+246 1555 5044
+247 3029 8856
+247 490 7386
+247 308 1725
+248 2813 4636
+249 892 6773
+249 1401 4855
+249 578 3824
+249 542 5627
+250 618 3573
+250 569 7229
+251 413 7085
+251 1000 7448
+251 511 5436
+252 351 1803
+252 342 4108
+252 1021 8102
+254 575 6687
+254 1368 7889
+255 1192 1397
+255 433 5948
+255 848 3979
+256 983 7187
+256 1677 4120
+257 1600 7210
+257 1050 5466
+258 696 4243
+258 586 5576
+258 1022 5288
+259 2758 2830
+260 1092 5724
+260 1143 6191
+261 1752 6657
+261 2515 10322
+261 346 7103
+262 2782 4659
+262 3007 6887
+262 551 5223
+262 543 1855
+263 442 6179
+264 720 1007
+264 2086 7721
+264 1511 5231
+265 1461 3084
+265 1550 3839
+265 268 5855
+266 2766 4592
+267 595 3545
+267 488 5428
+267 1291 6849
+268 2986 10125
+268 296 4978
+269 2412 2660
+271 2858 2000
+271 1330 6228
+271 377 6512
+272 675 1082
+272 1482 3374
+272 1478 4360
+272 1116 3618
+273 2960 7853
+273 388 7864
+273 960 6145
+273 1111 9776
+274 283 6065
+274 385 2280
+274 1475 894
+275 1730 6490
+275 896 3677
+276 2142 4784
+276 943 11401
+278 1129 984
+278 949 3088
+279 1562 1232
+279 3017 1714
+280 305 4758
+280 676 7445
+281 2778 4543
+281 1530 6967
+281 342 7279
+282 1878 3876
+283 1801 7800
+284 969 9265
+285 869 4667
+285 2288 2821
+285 1288 2610
+286 669 6746
+287 1454 4762
+288 2255 6260
+288 2736 4560
+289 2582 8717
+290 1398 7999
+290 1836 1063
+291 1036 5115
+291 909 5592
+291 893 9543
+292 1215 3011
+292 362 4711
+293 1624 4290
+293 2060 1881
+294 2847 8031
+295 828 7895
+295 1427 9480
+295 474 2263
+296 334 4965
+297 314 5090
+297 1123 3098
+298 1149 5348
+299 708 5631
+299 378 5380
+301 330 8280
+301 962 8319
+302 1759 5373
+302 1293 7862
+303 1118 3699
+303 1151 6894
+304 1559 4228
+304 3002 4349
+305 2928 2433
+305 575 4928
+306 1412 1493
+306 1545 7572
+307 312 9900
+308 2325 2913
+309 869 4623
+309 1517 3981
+313 1494 1846
+314 489 6365
+315 428 5295
+315 1216 4395
+315 1267 2598
+316 1319 4408
+316 1598 7460
+316 753 3531
+317 1188 6253
+317 971 3914
+318 1991 1968
+318 325 6658
+320 1225 8230
+320 1248 2590
+321 1675 8242
+322 872 3796
+322 1046 4863
+323 940 10316
+324 1471 1655
+324 454 3632
+324 1612 3585
+325 535 4842
+326 2248 5602
+326 428 8363
+327 2668 3235
+328 1644 653
+328 1084 5248
+329 1245 1515
+329 739 6901
+329 596 3643
+330 880 8167
+330 1243 6810
+331 1934 1080
+333 973 1817
+334 2818 5166
+335 1393 4130
+335 347 648
+335 440 9767
+336 1032 7533
+336 2556 8087
+337 1286 7641
+337 1360 7296
+338 1144 2212
+338 369 8063
+339 1534 9848
+339 2584 6273
+340 459 3742
+341 377 6976
+341 615 2063
+343 1902 4533
+343 486 3358
+344 2765 1408
+344 1426 6089
+345 1421 8176
+345 521 5508
+346 1140 3036
+346 1259 3610
+347 986 5181
+348 2678 2479
+349 372 6403
+351 2462 2206
+352 1057 2551
+353 371 4977
+353 628 5663
+353 435 5700
+354 2760 9481
+355 679 1283
+355 1650 9444
+356 1348 8732
+356 1153 6516
+356 1525 3185
+357 905 11042
+357 1451 8919
+358 656 7372
+358 825 3557
+358 1073 7746
+359 589 4500
+359 1181 3130
+360 813 8183
+360 1532 1007
+361 463 5101
+364 2121 2007
+365 441 4703
+365 1558 6777
+366 1063 3375
+367 655 3035
+367 1136 2498
+368 524 4388
+368 1574 3218
+369 850 6554
+371 609 5031
+371 738 5366
+372 521 2152
+373 1030 5899
+373 1634 6137
+375 725 6071
+375 1089 3843
+376 2875 6565
+376 472 1659
+376 774 7928
+377 2492 7617
+378 1840 2289
+378 2097 3742
+379 803 9598
+379 1930 841
+379 3021 4856
+380 425 7714
+380 526 4473
+381 1326 6520
+382 1403 3345
+382 1887 642
+383 469 1291
+383 1299 7170
+384 1113 1066
+385 469 5236
+386 569 8163
+387 1683 6412
+387 443 5670
+388 557 3163
+389 854 3678
+391 2281 2573
+392 1141 3382
+393 1782 9011
+393 1457 5989
+395 1384 7405
+395 505 2291
+396 3034 6451
+399 1154 3885
+399 1176 7401
+401 1128 10589
+402 2521 4013
+402 2800 2696
+405 434 4474
+405 835 6770
+407 1093 3151
+408 1938 6552
+408 1186 9035
+409 1233 4253
+410 1062 4808
+412 2961 8023
+414 1617 8994
+415 1128 6882
+417 1394 5855
+419 508 3344
+419 420 2749
+422 867 6950
+422 589 2582
+423 1549 6892
+424 1432 6042
+425 1179 1252
+426 1002 5161
+427 498 1639
+427 1537 362
+430 2993 2916
+431 876 10409
+432 2415 7436
+433 1442 6032
+436 524 6929
+437 1498 1896
+437 1641 8042
+438 510 6662
+439 762 6788
+442 2716 5874
+444 2674 12272
+445 588 3875
+446 1547 8399
+446 1244 8011
+448 1906 2889
+449 1096 2569
+450 627 9483
+453 1567 8055
+454 2510 6235
+458 573 2061
+460 574 4659
+462 1387 6806
+463 1419 6004
+464 1088 3004
+464 2859 2215
+465 991 6470
+467 579 4456
+469 1147 2331
+470 613 4046
+475 1654 5527
+476 2538 3992
+478 2101 6899
+479 598 3810
+479 626 7262
+480 945 3124
+482 2973 3169
+483 690 6634
+484 597 3161
+484 929 1714
+486 1611 4627
+487 1904 4459
+487 735 8068
+492 1268 3445
+492 1092 4732
+493 2635 1756
+494 2625 1713
+496 1570 6608
+496 602 5396
+497 1441 7121
+497 1729 5104
+498 1157 7032
+499 1869 6691
+500 661 8516
+500 2013 5315
+501 1009 8865
+502 1035 1430
+502 1660 6603
+503 557 3512
+503 2754 3553
+505 1622 1531
+507 855 7948
+507 1158 4925
+508 1227 3278
+509 2927 1214
+511 2368 2998
+512 633 6031
+512 956 2713
+513 528 4226
+513 1144 4032
+515 804 3340
+515 891 2446
+517 864 3229
+519 2930 2732
+522 959 2761
+523 2461 7301
+525 2371 7880
+526 1303 7283
+527 1447 3924
+529 592 3876
+529 1125 9074
+532 1300 4851
+532 615 3105
+533 2513 6939
+533 2705 4837
+535 1392 6823
+536 1293 3530
+536 1004 1229
+537 1228 6848
+537 705 5981
+538 1638 4261
+540 793 4724
+545 587 9100
+545 901 8653
+546 1538 3659
+546 1356 2583
+549 621 8989
+551 958 5208
+552 1642 3824
+552 776 1373
+555 2644 725
+556 2996 5962
+558 1891 9424
+559 1492 7918
+559 1355 6380
+563 997 6287
+564 2650 6236
+565 2425 5043
+566 2857 8018
+567 1672 1599
+568 1039 2694
+570 2122 5834
+571 1122 6527
+571 1283 2502
+572 616 4821
+572 1454 7325
+573 630 6253
+574 930 4255
+576 851 5120
+576 1615 4586
+584 1316 4580
+585 1027 5098
+585 674 5522
+590 723 1427
+595 1108 1156
+596 598 4725
+597 600 5684
+599 2188 4615
+601 1860 5173
+601 994 4168
+602 823 4760
+603 755 7401
+604 2095 8844
+605 2284 6901
+605 2364 6863
+606 699 4084
+607 1341 4949
+610 2620 8903
+614 2922 4807
+616 682 2546
+617 3019 5990
+620 951 6688
+621 1351 8491
+623 838 5915
+624 1463 6108
+624 1077 6290
+628 2648 9078
+629 1167 3301
+631 687 7945
+633 2908 7585
+634 1046 8385
+638 720 6180
+638 1395 2296
+645 1440 7896
+659 2504 5091
+660 2798 9324
+661 701 8058
+662 1485 2614
+668 811 7638
+683 2921 4220
+688 1962 1857
+692 1127 7451
+695 1203 9020
+715 1535 2262
+717 875 6853
+718 1689 2685
+723 1438 3474
+727 980 6371
+743 1741 3659
+747 1343 1768
+756 1344 8795
+764 3008 1251
+767 833 6423
+773 2555 4745
+777 2721 2632
+789 797 5514
+791 1344 3954
+793 2109 2792
+802 1078 7403
+809 1256 4254
+812 2069 6668
+820 1797 9720
+824 1239 1314
+829 1098 4073
+832 3027 5277
+852 2327 7006
+856 1898 6326
+858 1425 4074
+868 963 3366
+873 1316 6700
+885 1134 6004
+887 2950 8941
+888 1396 8401
+889 2227 6499
+900 1205 7257
+906 1346 7230
+907 1345 7448
+911 2277 3440
+916 1546 5174
+918 2117 6414
+951 1407 6438
+968 1270 3152
+977 1022 4258
+987 1177 6792
+1002 1049 3215
+1005 2827 6445
+1012 3013 5109
+1032 2507 3401
+1037 1124 2640
+1041 2653 5524
+1045 1102 1336
+1063 2972 3763
+1071 1994 6607
+1075 1340 8112
+1088 1467 2548
+1090 1100 6279
+1112 1758 7698
+1139 2048 4081
+1141 1636 1925
+1145 2583 6382
+1146 1664 8260
+1170 1688 1878
+1185 1822 4920
+1187 1261 4275
+1189 2991 2985
+1197 1469 6606
+1198 1594 4135
+1202 1818 6419
+1204 2780 7455
+1206 1575 6318
+1208 2056 7336
+1212 1501 7299
+1216 2785 5827
+1220 1269 4050
+1223 1470 2717
+1253 1296 6825
+1272 1795 1387
+1285 1484 1368
+1297 2267 10631
+1301 1890 5308
+1302 1686 8391
+1309 2152 1705
+1313 1464 4031
+1314 2947 2437
+1332 1845 3244
+1337 2724 9998
+1339 2073 4595
+1370 2971 1678
+1377 2287 3344
+1379 2040 2140
+1381 3003 3864
+1399 2447 3134
+1414 1486 3701
+1420 2251 10646
+1430 2168 5920
+1433 2182 5007
+1435 1571 3506
+1445 1499 2874
+1446 1712 2268
+1458 2846 5543
+1480 2964 5892
+1490 2045 7635
+1491 2734 8384
+1503 2762 6823
+1534 2914 7006
+1546 1910 2040
+1569 2864 1336
+1573 1646 7145
+1582 1732 8160
+1593 1942 5563
+1597 2910 8273
+1601 2213 6745
+1603 1651 1833
+1604 1606 8238
+1611 2603 5751
+1613 2236 5406
+1635 1700 5730
+1652 1653 5939
+1685 1972 3611
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/topology-read/Orbis_toposample.txt Fri Mar 12 14:36:38 2010 -0500
@@ -0,0 +1,2769 @@
+956 1413
+366 1387
+1421 1369
+1421 1007
+794 1416
+1415 1309
+1397 182
+1402 492
+1412 1358
+1250 1209
+1420 416
+1380 85
+1364 1254
+1316 1129
+230 1310
+718 1301
+589 1422
+1411 571
+1407 1400
+1417 1224
+1310 1419
+944 1391
+1296 1397
+185 1409
+1252 1422
+1144 1408
+1360 989
+1323 1051
+445 1396
+1041 1408
+1414 1393
+483 1388
+1260 601
+385 1414
+1364 735
+1284 625
+1065 1421
+1395 1078
+1341 1350
+1135 56
+1416 1391
+736 1380
+110 1422
+1171 1076
+1374 1408
+1358 1048
+1420 1199
+195 1416
+498 1422
+1139 1419
+306 1405
+487 1418
+961 1422
+1421 409
+1351 1261
+954 1422
+1414 1401
+1257 1388
+1404 1400
+15 1303
+1153 1095
+1422 1145
+401 1417
+1277 1421
+339 1268
+1411 987
+261 1411
+1410 1358
+227 1248
+1418 630
+1392 1303
+1405 1032
+1212 590
+996 1421
+379 1374
+1417 1399
+16 1353
+237 1422
+1365 915
+1414 114
+80 1418
+1421 438
+1407 363
+1415 679
+1089 1385
+1422 973
+138 1422
+1419 1400
+1422 372
+51 1246
+983 1398
+332 1422
+1414 1344
+1396 1299
+495 1390
+1420 691
+1364 784
+139 1200
+1039 1358
+1399 1416
+1393 569
+18 1420
+1300 1415
+886 1417
+901 1335
+1350 446
+1419 1107
+1397 801
+651 1374
+778 1407
+1242 1409
+1394 806
+696 1407
+1097 1420
+1291 1414
+1414 1174
+340 1375
+931 1044
+1406 1364
+873 1418
+1415 1234
+1293 1415
+1418 905
+368 1422
+939 1422
+1123 1422
+1203 1289
+1372 1412
+1156 822
+1413 1042
+1092 1046
+1384 1266
+1415 1388
+1063 1374
+1418 1194
+1323 91
+657 1326
+1422 553
+1422 1395
+1287 393
+1221 1293
+1375 1310
+1346 1160
+1395 1145
+258 1418
+874 1421
+359 1372
+1298 1405
+1418 752
+639 1353
+1340 1421
+1385 432
+1421 841
+1397 1361
+1391 1312
+300 1398
+1329 1051
+1294 1057
+1160 13
+1421 1084
+1419 1358
+885 1418
+1398 593
+958 1420
+488 1410
+1362 1161
+1289 715
+1384 569
+89 1216
+466 1227
+803 1191
+877 1411
+1420 783
+796 1345
+1421 1253
+1390 148
+1083 1418
+1416 212
+208 1325
+1419 477
+1406 1361
+216 1131
+1419 868
+1344 1416
+1398 1311
+1366 688
+1400 1333
+563 1170
+1421 418
+1418 1085
+1422 1350
+1300 833
+1399 1400
+1245 1389
+689 1422
+1232 1418
+1262 1390
+1416 1400
+713 1375
+1420 1182
+660 1409
+1147 1393
+884 1420
+1176 1415
+1421 986
+659 1403
+1400 1401
+1408 1217
+1009 1394
+1050 1386
+1380 484
+1420 680
+1039 1416
+829 1403
+1342 1413
+1223 1353
+1414 1352
+1383 1314
+1408 1204
+1109 1393
+1322 570
+1305 1406
+1395 20
+1422 947
+539 1376
+1419 1390
+1229 460
+1299 402
+1422 94
+1422 463
+1420 605
+1422 1185
+1355 1346
+764 1422
+1421 1218
+1392 493
+1068 1147
+572 1422
+1422 1193
+1357 1315
+1406 1378
+1021 1349
+33 1270
+1421 927
+1062 1398
+1419 976
+1421 482
+1408 1101
+1273 1262
+403 477
+1013 1422
+851 1418
+849 1385
+894 1420
+1206 1409
+1300 1030
+1290 1419
+1394 1115
+1409 758
+499 1348
+1422 1011
+769 1261
+1415 1031
+570 1375
+1221 631
+981 1422
+1402 464
+1363 1419
+58 1420
+1387 1060
+1213 1419
+1420 1352
+1100 1414
+1003 1295
+895 1042
+1185 1338
+1311 411
+1392 289
+907 1383
+1278 1396
+1388 532
+1419 714
+828 1409
+1403 1098
+1066 586
+1181 1419
+1422 619
+492 1413
+1335 1418
+1375 73
+1302 823
+1405 1364
+810 1420
+1402 321
+1325 834
+1420 778
+1404 1290
+1358 414
+1411 885
+1413 744
+1421 673
+1407 440
+1417 1368
+1371 1385
+1422 564
+1399 1401
+508 1422
+518 546
+1091 1114
+1415 1386
+1327 1406
+1134 1416
+1398 1245
+1216 1199
+951 1359
+670 1408
+1097 1422
+567 1096
+714 1422
+1420 1351
+833 1057
+1055 1377
+1407 1289
+1226 994
+1396 1110
+1417 1393
+1011 1375
+813 1416
+1420 1221
+1395 1084
+1132 804
+728 1420
+965 1418
+637 1261
+561 1413
+1421 224
+1120 785
+1402 433
+1404 1369
+505 1311
+725 1419
+1132 1406
+1150 1418
+1406 1370
+1415 1035
+1391 127
+1407 682
+1409 999
+1411 773
+1366 1417
+1416 950
+566 1421
+1249 1382
+670 1409
+1368 1149
+391 1361
+1402 1247
+612 1382
+220 787
+1397 1069
+39 1382
+1418 725
+210 1420
+1343 358
+444 1422
+1135 1421
+1018 1422
+1269 604
+637 1418
+939 1417
+632 1247
+1422 815
+474 1337
+892 1420
+907 1360
+1077 1419
+1365 1215
+1250 459
+1293 27
+678 1422
+1372 594
+732 1411
+1293 384
+1417 1062
+1383 1421
+1105 1411
+628 1420
+1402 1188
+1407 87
+1409 1112
+902 1255
+1416 1302
+1037 1320
+1397 29
+1184 1414
+1422 335
+610 1416
+731 1321
+439 1373
+705 1295
+1026 1368
+828 1333
+1410 1395
+1417 1124
+1421 680
+1328 741
+1420 387
+986 1376
+1418 1066
+1391 1093
+1417 1401
+1365 1410
+857 1393
+1390 722
+1417 439
+1410 1372
+1409 1399
+1409 587
+1421 1055
+1420 1027
+481 1421
+1205 1415
+531 1321
+1061 1417
+449 1413
+1381 346
+1166 1418
+897 1415
+1352 61
+1105 1418
+1067 1386
+1303 1404
+838 1354
+1418 771
+892 1422
+1421 1118
+1411 1399
+1413 971
+1422 658
+1126 1155
+1235 1397
+1422 607
+855 975
+1306 546
+1413 507
+1417 651
+1128 1417
+733 1421
+1395 870
+1363 318
+442 1422
+1412 1291
+1418 194
+1311 621
+144 1413
+1406 640
+1314 1410
+1420 889
+1390 1421
+1280 1296
+955 1379
+264 1340
+1415 1370
+1348 189
+1393 1379
+1122 1418
+1205 1412
+1399 1414
+1170 1408
+1175 1259
+1025 480
+969 1418
+1270 1404
+1421 121
+1404 743
+422 1402
+1195 166
+427 1422
+1387 1406
+1419 618
+1158 1163
+1399 1229
+1413 1045
+1352 1393
+1419 729
+1328 255
+1358 1262
+1409 1134
+821 1371
+1306 266
+1361 605
+686 1227
+1411 848
+1422 1203
+202 1413
+853 1325
+362 1418
+1145 1391
+1056 1326
+1395 1350
+181 1387
+1158 1233
+948 1422
+219 1419
+1378 661
+307 1418
+1353 1412
+974 1385
+1034 1422
+328 1338
+1090 1059
+1154 1418
+1357 1417
+1294 1316
+243 1390
+707 1420
+1380 937
+1409 526
+1422 761
+1191 1263
+528 1210
+1366 22
+1417 1386
+1157 1417
+506 1286
+1409 797
+1409 1265
+574 1420
+1285 1111
+1368 1410
+1258 1179
+1421 268
+653 1413
+773 1386
+1389 103
+1420 483
+1413 478
+1278 984
+1420 703
+1422 1212
+1406 209
+1048 1421
+1422 985
+835 1315
+1391 1422
+1422 656
+1419 1040
+1141 502
+1422 42
+1360 1416
+270 1162
+794 1420
+1345 1419
+772 1421
+1420 682
+978 1410
+614 1396
+1418 695
+622 1376
+1367 1415
+1411 184
+132 1374
+1007 1419
+1412 1371
+1257 172
+1348 1347
+1422 1081
+320 1409
+466 1370
+899 1421
+1419 1201
+1416 1088
+1417 744
+1421 633
+464 412
+1367 1321
+819 1420
+917 1357
+839 1413
+1322 1412
+1404 1224
+393 1422
+1369 1328
+992 1409
+404 1316
+1420 529
+1321 397
+1421 533
+929 1383
+1119 1417
+1202 1414
+1069 1382
+1419 1202
+1407 1229
+1368 1178
+1200 685
+1383 1263
+1405 1218
+1355 1406
+881 1325
+267 1416
+1104 1273
+759 1420
+1308 1422
+154 1186
+1333 1382
+1408 919
+1260 1317
+1422 418
+1306 1414
+1401 1406
+1313 1369
+1165 1422
+1330 1045
+1411 625
+580 1277
+1420 904
+1416 503
+1395 992
+1000 1420
+1386 46
+324 1388
+1389 31
+1411 630
+1106 1407
+901 1348
+735 1160
+1418 93
+1421 1036
+1034 1420
+1420 136
+1285 820
+791 1418
+1391 971
+1326 754
+1397 1031
+583 1422
+394 1422
+708 1219
+1388 694
+211 1414
+1398 155
+1356 1412
+998 1402
+1225 1378
+716 1411
+1421 855
+649 1422
+1387 319
+1016 1422
+1422 621
+1417 1388
+704 1347
+1418 503
+1079 454
+1309 1313
+1377 1419
+1419 1098
+1239 1327
+1410 1383
+1402 1399
+1336 1266
+673 1422
+1283 1409
+646 1371
+1054 1060
+1399 1415
+1404 1344
+802 1352
+1195 1421
+1417 1349
+1421 311
+1409 198
+814 1274
+1398 995
+1419 632
+746 1421
+1292 90
+661 1416
+1317 1413
+1409 729
+1252 1377
+895 1389
+740 1419
+1414 1369
+1197 179
+898 1386
+1297 671
+107 1381
+866 1420
+1067 350
+656 585
+623 1422
+291 1422
+259 1422
+768 1354
+1308 521
+701 1388
+1343 1419
+1327 1419
+1421 1313
+929 1342
+1402 1047
+1418 578
+666 1422
+395 1407
+1326 1331
+1203 1223
+1231 1382
+1022 1417
+597 1415
+1207 1371
+719 1415
+491 1171
+1414 617
+1269 1394
+1418 407
+1338 1058
+1304 1307
+226 1403
+1404 1387
+1398 2
+1257 1082
+1388 26
+809 1421
+449 1268
+904 1416
+1418 1012
+766 1420
+1065 1411
+823 1393
+298 1420
+1417 1053
+707 1421
+1345 910
+1422 1324
+798 1390
+1420 743
+924 1380
+1013 1402
+1404 1000
+1306 574
+688 1402
+1337 1412
+1421 756
+462 1421
+1140 1345
+1421 49
+1311 1406
+1222 1276
+1375 435
+1323 624
+517 1380
+1417 451
+1422 310
+627 1371
+1304 1421
+1233 301
+1052 1397
+1422 544
+1417 1241
+1307 431
+1401 1410
+1395 1415
+1347 665
+1420 1087
+671 1411
+1332 1407
+1421 469
+1408 1279
+1421 1308
+173 1376
+1407 109
+1359 1212
+1374 1417
+1419 808
+1254 1408
+1329 746
+1181 1361
+1390 1417
+1345 528
+883 1388
+1411 1059
+1139 1071
+1129 1368
+1417 1358
+1391 1250
+817 1421
+542 1421
+455 1421
+658 1421
+1420 265
+1255 1370
+635 1421
+1190 1345
+837 1415
+1420 1024
+1403 322
+1406 1365
+1257 1420
+1421 779
+1421 456
+817 1418
+1418 842
+647 1418
+1181 1383
+861 1407
+383 1422
+1198 1413
+1415 430
+1335 1233
+399 1408
+1259 1387
+1014 968
+117 1319
+942 1356
+1410 1387
+1334 552
+1422 826
+1118 1397
+428 1391
+1375 231
+1417 1293
+1408 1189
+1169 1392
+1410 1380
+1406 1220
+1002 1228
+235 1329
+581 1420
+761 995
+1396 398
+598 1407
+962 1422
+1269 1281
+1396 1247
+1399 1406
+1340 877
+1320 482
+1246 1382
+1406 1231
+1420 990
+417 1388
+998 1422
+579 1421
+1328 1208
+697 1420
+1417 1103
+1372 1404
+286 1421
+1002 1350
+1405 104
+1421 1323
+991 1389
+1399 1413
+1032 1282
+1417 844
+1355 1267
+1291 131
+1026 1386
+1422 475
+858 1330
+867 1156
+649 1402
+1419 1321
+1109 1232
+602 513
+1196 1314
+1397 1231
+472 113
+72 1364
+1044 960
+1398 441
+1421 870
+1412 1375
+1255 815
+1244 1096
+1404 1375
+1335 1414
+1405 1329
+1420 433
+1338 1419
+1124 1350
+400 1420
+701 1403
+1344 337
+1412 1324
+831 1319
+1314 1419
+1415 396
+1020 1368
+1294 1174
+531 1355
+1305 1418
+736 1403
+1405 1384
+722 1398
+40 1359
+1419 1063
+1022 1419
+1418 123
+896 1420
+588 1396
+1354 807
+872 1312
+1249 1324
+1419 1369
+1413 1283
+10 1422
+681 1421
+1359 274
+1081 396
+1422 953
+1409 1143
+1422 1354
+1419 1384
+1419 1073
+1418 1401
+473 1393
+1244 1388
+1076 1420
+1028 1167
+1421 960
+950 1419
+1320 1417
+842 602
+1418 738
+1418 592
+1228 916
+416 1360
+1030 1405
+1121 1385
+555 1422
+1072 1111
+156 1409
+1021 1420
+1353 1376
+1392 496
+1211 1290
+1323 1414
+246 1355
+1392 811
+1281 1418
+840 1420
+1410 1333
+920 1420
+1406 1258
+1420 364
+1419 1218
+1056 1422
+1420 1120
+390 1368
+728 1421
+1417 162
+551 1326
+1420 44
+1408 1277
+1421 726
+1183 1411
+1344 530
+1242 1414
+1185 1394
+119 1318
+1375 1073
+1384 423
+1397 844
+1389 1294
+1363 1352
+1376 413
+1173 1415
+1421 554
+1413 734
+1417 7
+1405 1388
+1017 1422
+1267 547
+1404 1337
+1392 1240
+1409 931
+1265 1416
+1378 356
+1206 1416
+1411 251
+1418 1069
+1421 596
+1288 1417
+1409 149
+1422 284
+436 1413
+717 1422
+30 1391
+1159 1387
+1418 847
+683 1366
+1131 1396
+86 1407
+1421 643
+1204 1085
+338 1420
+430 434
+1402 636
+1362 1414
+403 1083
+1275 1417
+1395 229
+1176 1420
+1420 485
+159 1419
+1033 1194
+1227 1356
+1390 1246
+169 1385
+1409 804
+1422 1126
+753 1420
+1256 552
+1422 341
+1196 1419
+972 1284
+1287 880
+1404 1217
+1422 1304
+1038 1422
+1280 373
+1419 1232
+1255 1414
+936 1388
+1331 1091
+883 1411
+187 1107
+862 1411
+1275 1398
+1406 1142
+1347 1412
+909 1339
+1277 1379
+1420 201
+1288 389
+1008 1341
+1016 1418
+1366 1227
+575 1415
+1416 424
+928 1264
+1124 1419
+1410 1092
+1257 1275
+1184 1388
+1421 473
+1340 865
+1355 1421
+1420 678
+152 1284
+810 1422
+1245 1219
+1415 1179
+1414 1394
+1219 1384
+1421 1064
+126 648
+753 1396
+1418 800
+557 1419
+1330 525
+1368 1412
+1417 1123
+1109 1108
+1087 1301
+917 1393
+1339 1376
+1410 1399
+460 1279
+940 1420
+1422 1178
+105 1325
+1406 1339
+1405 1354
+1380 348
+1275 1393
+1347 668
+1364 1177
+1417 1332
+1357 1410
+1348 1192
+1372 1381
+635 1422
+1220 1421
+1412 1386
+1421 949
+1412 1202
+1243 129
+966 1408
+1416 675
+1420 398
+1086 1381
+1354 1418
+1418 1265
+1384 1214
+1391 1096
+1405 1322
+1292 1418
+1222 1378
+1252 1393
+1406 1266
+1416 548
+1339 1416
+1367 1288
+1410 1371
+985 1407
+1421 431
+1117 1422
+305 1327
+1211 1419
+1205 805
+1271 1159
+1377 941
+1369 1410
+900 1399
+1154 1422
+1407 495
+890 1421
+1409 566
+1415 1351
+1338 1414
+1404 1313
+1414 1382
+1401 1415
+1313 1296
+949 1373
+584 1421
+1418 174
+59 1413
+1236 1346
+908 1386
+1078 1393
+1318 1414
+1395 603
+1422 550
+1377 1333
+699 1360
+1099 1413
+1380 1309
+1287 1203
+1394 21
+634 1411
+1418 1204
+1420 1194
+1031 1351
+303 1369
+1410 1384
+476 1420
+1381 1249
+1370 599
+1245 407
+1416 1269
+78 1408
+1422 747
+677 1415
+1341 1420
+1422 920
+1413 879
+1400 1412
+415 1335
+522 1354
+47 1412
+515 1419
+1006 1422
+1394 1412
+991 1390
+6 1420
+750 1330
+1300 410
+560 1360
+1418 712
+37 1421
+1055 1294
+1413 463
+1223 1389
+1260 1261
+1396 97
+1259 1380
+1370 1405
+875 1354
+1393 631
+438 1418
+1393 966
+1217 1418
+1410 1103
+1292 1152
+100 1274
+1420 1082
+1079 1415
+957 1421
+863 1348
+1101 1081
+1058 287
+645 1421
+1215 17
+1422 1331
+1421 1336
+1237 1417
+1236 1248
+1164 1372
+1032 1418
+1288 69
+1420 915
+203 1375
+1329 1276
+1408 1305
+544 1415
+1041 1416
+1421 639
+1419 840
+1392 1414
+1422 1166
+730 599
+1262 1417
+770 1206
+1418 392
+1271 1419
+1004 1421
+1422 1076
+692 1417
+1420 1400
+1196 1393
+1418 848
+1422 1299
+1241 1363
+918 1296
+410 1422
+1407 645
+1380 1406
+108 1420
+1359 1415
+1360 505
+1390 1127
+1199 453
+983 1420
+993 1409
+1384 1414
+454 1420
+1402 489
+1347 1410
+1379 1097
+1165 1421
+1199 1413
+1327 1192
+893 1422
+548 1422
+1372 518
+1033 1377
+151 1357
+1074 1402
+1378 1061
+1184 1419
+1396 554
+1309 1144
+1408 1117
+1318 1421
+993 1394
+1256 1415
+975 1420
+776 1421
+595 1422
+1059 1386
+1086 538
+277 1335
+727 1418
+1307 158
+1397 498
+1005 1328
+1386 1256
+887 1316
+1071 1363
+1404 1106
+41 1350
+1133 1416
+1409 551
+1421 316
+854 1420
+1419 1264
+221 1420
+948 1418
+67 1271
+1411 106
+1329 1037
+1001 1422
+1292 1143
+1397 846
+290 1361
+1357 723
+294 1326
+1394 741
+1390 427
+1371 1198
+435 1416
+1418 82
+1308 550
+1270 375
+1398 1044
+1414 1331
+1414 1258
+683 1324
+1362 329
+1312 19
+609 1421
+1314 1362
+1189 1310
+1356 1410
+596 1381
+336 1366
+1310 1191
+1408 1080
+1100 1372
+1389 1079
+1224 1421
+994 1353
+1125 1418
+1421 647
+816 1279
+1315 75
+1008 1367
+1420 1201
+1049 147
+45 1422
+494 1421
+716 1394
+925 1352
+923 801
+1336 81
+1351 249
+1394 1327
+1415 1219
+1267 1363
+1333 1413
+1238 1415
+1422 978
+1232 1354
+9 1422
+1186 1420
+1370 710
+1335 655
+176 1422
+331 1420
+1421 245
+1321 553
+516 1418
+1420 317
+1304 60
+1405 1399
+1300 534
+1265 549
+1342 558
+1403 1218
+1192 1230
+1422 479
+1310 1332
+1116 615
+1419 1074
+1413 567
+1272 1234
+1334 1420
+1421 238
+924 1405
+128 1422
+1365 262
+537 1420
+120 1411
+1422 1158
+165 1418
+1341 1422
+1123 1418
+1398 652
+1136 1315
+1298 1373
+989 1395
+1410 1381
+1382 122
+378 1420
+1340 458
+517 1276
+250 1422
+811 1415
+467 1347
+514 1390
+1411 1111
+1299 652
+1113 1396
+1419 1288
+1390 429
+447 1383
+488 1095
+1398 684
+1420 706
+1408 1401
+1291 421
+1397 440
+428 1421
+1358 1385
+921 1420
+964 1264
+1113 607
+530 1345
+742 1390
+1091 1356
+748 1413
+1196 1365
+1419 845
+958 1422
+1385 183
+835 1421
+1290 1328
+1404 1401
+860 1420
+1422 1251
+1295 501
+133 1390
+1416 1198
+903 1422
+1387 695
+1390 933
+1420 558
+1420 217
+1422 782
+84 1344
+1365 1414
+1193 1377
+1411 500
+388 1378
+1357 1373
+1329 1406
+1237 1201
+1418 52
+1338 386
+1422 426
+1335 1061
+1420 1304
+520 1349
+1366 1359
+1395 698
+1419 390
+905 1413
+1382 577
+1420 690
+11 1409
+1413 914
+1307 1386
+1390 1410
+1395 1416
+980 1122
+1264 1422
+1391 1259
+767 1063
+1412 1378
+1416 853
+1410 1392
+674 1357
+1239 624
+1420 1101
+1417 535
+1414 1297
+1337 1415
+1010 1383
+1401 1390
+1104 1388
+1370 170
+1384 1116
+1387 1172
+1422 1131
+1412 1325
+1398 1305
+1361 662
+1418 1174
+1090 1420
+1421 1344
+654 774
+1405 1383
+641 1422
+1113 1388
+102 1319
+1214 1410
+422 1417
+1367 774
+1337 1286
+1190 1422
+314 1340
+1417 1381
+458 1121
+894 1422
+1392 1412
+1337 1302
+667 1421
+1243 1209
+860 1407
+626 1361
+1308 1036
+1216 1415
+1406 1400
+663 1422
+1412 1390
+1421 1119
+1422 576
+1420 399
+1208 1408
+1362 1422
+1327 1253
+12 1083
+1378 28
+77 1378
+1399 1412
+1341 1349
+1396 657
+1233 1418
+1412 1367
+1207 1380
+1405 413
+1422 798
+1422 1229
+1413 1226
+1410 1312
+1387 789
+780 1382
+1377 791
+1422 272
+494 1422
+1422 490
+177 1308
+1299 1413
+478 1414
+256 1420
+424 1422
+611 1422
+380 1369
+1188 1148
+1018 1418
+292 1288
+1382 1304
+1397 253
+1327 406
+1 1330
+876 1361
+559 1409
+1413 921
+1403 1137
+996 1371
+874 1394
+1333 977
+598 642
+1416 1401
+1303 762
+1412 1366
+1392 944
+1172 1420
+1365 532
+954 1417
+663 1394
+1403 1210
+1404 1399
+869 1422
+276 1349
+1137 764
+116 1400
+1413 1167
+468 1420
+704 1393
+1363 841
+542 1413
+432 1422
+1420 96
+1302 164
+1407 891
+419 1387
+941 1422
+1422 850
+1405 1347
+914 1289
+1419 882
+1372 280
+1388 1102
+1105 1416
+1040 1317
+1049 1380
+1277 1309
+1420 545
+1376 1209
+1406 1385
+271 1422
+1133 751
+1136 1418
+1422 1204
+646 1414
+423 1417
+1047 1408
+153 1305
+1140 1381
+943 1422
+1422 851
+1390 511
+1336 175
+1395 1251
+1415 628
+92 1422
+1399 1403
+1338 54
+1422 759
+1420 747
+1419 1301
+1420 1264
+1417 343
+1410 1366
+1272 1243
+789 1369
+1144 1418
+1408 970
+1405 1367
+1387 1228
+1418 660
+1422 1107
+1213 395
+1177 1374
+878 1370
+957 1420
+1422 240
+1108 1025
+1420 672
+1148 1337
+450 536
+112 1420
+1419 135
+206 1315
+1414 241
+1402 1102
+1416 448
+1287 1421
+392 1407
+802 1376
+1010 1312
+1281 1297
+1156 1138
+1408 1400
+825 1421
+913 1422
+1408 1046
+1420 675
+1377 308
+1151 1389
+1128 1373
+1414 1372
+525 1295
+493 1373
+1220 1393
+1415 150
+871 1388
+1422 997
+738 881
+1396 334
+421 643
+559 1422
+1260 1422
+1389 1312
+737 1383
+506 1132
+1373 1216
+524 1417
+1382 1419
+1422 1051
+1394 715
+1411 469
+1235 1416
+1268 1421
+1088 1389
+1337 1205
+1302 1420
+956 644
+1418 1141
+1381 1050
+526 1415
+1419 1093
+1386 1317
+969 1369
+1412 1293
+1404 1355
+0 1421
+1379 711
+1413 1149
+99 1422
+1384 509
+1412 180
+662 1422
+1417 1319
+1412 1383
+1421 555
+1397 57
+1351 1089
+1363 1416
+918 1402
+1420 610
+1420 1164
+888 1394
+1406 1376
+952 1422
+1320 1393
+1244 927
+1041 1240
+1412 1377
+1273 1341
+1173 1373
+1395 1273
+1420 882
+1420 720
+1398 14
+1064 1416
+1379 1134
+130 1419
+1042 1408
+1421 875
+932 1420
+1421 234
+1378 443
+1414 1376
+1422 511
+1422 1094
+1360 1412
+374 1117
+1419 1126
+1313 1408
+1284 1078
+909 1384
+893 749
+1404 470
+1240 450
+852 1422
+1093 1413
+1421 706
+365 1422
+876 1384
+1283 1090
+1380 1414
+1419 608
+1421 536
+1415 95
+1407 1399
+1225 369
+1387 827
+1364 285
+1422 676
+510 1328
+457 1385
+1422 1095
+1422 1054
+1296 1420
+1418 1251
+1360 1280
+1391 871
+1329 1414
+1368 1414
+937 1415
+1386 961
+387 1418
+167 1419
+1121 859
+1175 1416
+1420 1068
+1405 1362
+644 1421
+776 1388
+1279 163
+1415 282
+762 1422
+504 1413
+381 1387
+1385 168
+1422 988
+1356 344
+1268 1267
+1415 1133
+1412 1401
+1421 788
+1399 1419
+1407 705
+1421 1258
+676 1420
+1253 1405
+1412 1040
+718 1421
+803 1372
+455 1422
+1414 795
+799 1422
+1422 884
+1421 1248
+740 1355
+1415 1331
+963 1254
+207 1394
+1412 1382
+973 1320
+446 1421
+1420 1399
+1225 748
+1422 1050
+1416 1379
+755 1420
+737 1388
+1377 471
+1416 968
+1421 1359
+1414 1400
+461 1422
+1421 1400
+1404 1363
+1402 562
+565 1376
+650 1416
+1025 1421
+1410 1394
+866 1403
+1402 692
+863 1417
+1406 1388
+302 1417
+1404 1361
+1142 1394
+1065 1120
+1419 419
+586 902
+1420 1143
+1208 1419
+1281 1273
+604 1420
+1415 1068
+1421 486
+254 1392
+1422 606
+608 1358
+36 1421
+1314 500
+1418 524
+1414 1361
+1422 296
+987 1391
+1409 1187
+1379 468
+1405 1379
+1149 1417
+955 1421
+1290 1357
+591 1394
+1365 1189
+1193 613
+1414 442
+1419 1067
+611 771
+1421 1028
+1413 812
+1148 1403
+1417 616
+1177 1421
+1356 1405
+1072 1367
+1168 1388
+1230 1318
+1397 1261
+1349 1108
+910 1421
+549 1384
+481 1387
+1412 739
+1420 1183
+1283 1379
+1383 1353
+1397 101
+838 1421
+1414 1019
+1340 588
+1195 1352
+1411 429
+145 1416
+1332 1099
+1420 1060
+1387 283
+1383 837
+1380 1412
+1421 564
+1412 1393
+1414 1315
+693 1418
+824 1384
+1418 514
+1317 1210
+1421 523
+1419 668
+236 1371
+1221 1236
+839 1375
+1316 1317
+489 1215
+1369 669
+1402 1084
+1337 1370
+1405 1373
+1364 288
+827 1418
+1396 5
+327 1368
+1371 629
+1392 1282
+790 1416
+951 1421
+864 1370
+1407 1286
+1389 767
+345 1272
+822 1419
+1422 775
+1334 397
+1379 1410
+453 1407
+1368 1416
+1367 257
+1377 437
+1053 1419
+1385 745
+1362 1419
+655 1412
+1127 1368
+1417 543
+1012 1408
+1404 1151
+1418 730
+1419 648
+487 1422
+1349 357
+1330 1298
+1416 1225
+1106 1421
+1351 527
+1415 1183
+834 1295
+1411 55
+1421 1394
+1417 137
+665 35
+1417 1271
+1419 1242
+1253 1376
+1416 1015
+1253 1418
+568 1417
+1114 1422
+406 1403
+638 1393
+1420 484
+930 946
+713 1412
+124 1380
+247 1418
+401 1422
+1271 666
+1408 389
+1356 1369
+125 1279
+1297 157
+1422 1170
+1417 388
+1374 1270
+1282 1302
+1410 1263
+1399 1421
+1420 952
+1419 452
+1386 355
+1422 541
+1420 587
+1386 24
+1418 233
+1421 1234
+1396 1212
+1410 1362
+1418 563
+228 1406
+1419 414
+1386 1286
+1406 479
+1420 999
+1320 1412
+1385 1062
+1161 1421
+462 1422
+1413 1266
+1324 758
+140 1421
+1163 1367
+1419 1190
+1422 486
+1420 886
+698 1422
+1422 755
+591 1409
+523 1354
+32 1379
+687 1389
+1405 1335
+1421 650
+1418 1256
+1421 1150
+190 1393
+1421 146
+1419 1283
+1402 1400
+1420 1313
+1311 1070
+1389 824
+1421 1043
+1418 62
+1085 1390
+1236 1394
+1421 193
+1418 763
+1417 640
+1377 1416
+391 1422
+1420 911
+1146 502
+616 1346
+922 1418
+1422 434
+1114 1322
+1422 1296
+1416 1372
+1348 1162
+1415 1400
+1414 1391
+1412 1349
+1417 1338
+1385 71
+1410 1340
+1407 1075
+1411 1115
+142 1197
+865 1420
+1234 1420
+1421 1330
+1094 1336
+797 1413
+543 1418
+1418 467
+712 1406
+1381 1364
+1409 1400
+1282 1389
+83 1422
+739 1422
+1392 1070
+1356 1399
+1098 1290
+1406 1348
+1382 1269
+936 1409
+534 1390
+1299 1421
+269 461
+1191 1408
+1052 1391
+1332 1325
+1392 43
+623 412
+1405 1207
+672 1422
+1146 859
+1367 1414
+1403 697
+849 1323
+1402 988
+830 1411
+1420 1136
+1420 757
+1075 1420
+1419 1071
+1378 537
+1407 529
+745 1420
+862 1396
+1411 497
+1422 1139
+1314 1394
+1409 1165
+984 619
+1409 788
+1387 1110
+926 1391
+1140 1419
+200 1419
+626 1422
+64 1419
+1281 679
+1348 580
+260 1280
+793 1074
+1410 1285
+1345 1418
+1389 777
+1416 1386
+1417 1240
+1250 1408
+1381 315
+1418 888
+1418 593
+188 1419
+1153 1345
+1420 1077
+1408 1172
+1407 807
+962 1411
+1421 1401
+723 1179
+1362 1155
+1272 1415
+1316 1420
+1291 1246
+326 1360
+693 1421
+1278 1422
+845 1422
+617 1286
+1422 756
+353 1292
+1419 1289
+1363 1345
+1318 724
+1381 519
+864 1422
+1409 76
+684 1274
+1422 1210
+313 1416
+1422 1082
+634 1370
+1422 1231
+1408 1112
+689 1420
+1176 1418
+1309 1406
+953 1418
+404 1419
+1420 1005
+1315 1239
+360 1422
+1419 1401
+323 1419
+1224 1414
+700 1422
+1028 1409
+1363 1421
+1382 595
+1421 614
+1375 719
+1420 1157
+1422 1182
+1422 872
+1391 8
+1200 1419
+420 1386
+1346 1343
+1343 1422
+1222 613
+141 1322
+1265 1384
+1415 1039
+1416 1319
+708 1416
+1412 1339
+1408 465
+452 1418
+1419 1339
+1397 504
+1410 1400
+1027 1391
+1420 796
+1405 1400
+1422 545
+808 1422
+1284 540
+1367 590
+1417 1038
+1420 942
+1415 1125
+1421 66
+1389 843
+443 1420
+721 1418
+1421 783
+1415 457
+1351 1419
+1406 967
+1414 867
+1410 1374
+1147 1318
+1420 1003
+765 1422
+1159 1422
+622 1420
+1417 938
+1420 1256
+1358 750
+1317 814
+1412 1280
+1341 1406
+472 1334
+1411 295
+642 1409
+118 597
+1421 519
+1413 1119
+1418 696
+606 1403
+160 1421
+1344 805
+1405 806
+244 1393
+1213 222
+1275 1420
+1422 23
+1417 982
+1406 1394
+1343 1312
+252 1386
+1422 568
+1420 751
+1409 900
+1418 813
+1412 1370
+1320 232
+1383 1180
+411 1418
+1209 1324
+1419 1393
+1376 1400
+1377 1301
+1411 400
+627 1408
+1405 1341
+1389 293
+1406 1381
+1422 510
+1359 1295
+1348 1381
+1254 1419
+1422 1137
+792 1420
+1378 654
+1352 38
+1408 612
+1422 615
+535 1421
+1347 1415
+1419 1155
+1154 1332
+248 1418
+1075 1422
+1410 465
+1408 242
+1014 1351
+1417 342
+1422 836
+1421 1162
+1421 799
+1387 1421
+1418 426
+1019 1422
+1410 1220
+843 1305
+1197 1411
+1374 1053
+571 1413
+1342 1319
+1385 1355
+1409 333
+1403 1276
+1374 1422
+1338 935
+1408 1399
+539 1413
+980 1421
+225 1175
+512 1336
+1346 913
+1125 1380
+1422 1400
+934 1411
+1384 589
+1352 1413
+1214 1421
+1418 562
+1374 1214
+959 1420
+516 1394
+1242 215
+1104 1373
+1422 1152
+547 1422
+499 1411
+709 1422
+1422 898
+1381 700
+1385 1166
+1362 415
+1420 186
+681 1316
+441 1289
+1417 781
+770 1420
+880 1230
+1421 694
+1414 1036
+1416 890
+1421 1237
+959 1387
+1235 1342
+1403 787
+1389 53
+134 1373
+609 1413
+1385 196
+490 1409
+444 1380
+1420 930
+1420 1238
+925 1419
+1420 1187
+1323 1412
+1350 445
+1186 1421
+1421 522
+527 1178
+832 690
+1418 584
+775 1394
+1150 1422
+818 1407
+1416 1099
+1422 1202
+1334 749
+1411 711
+1422 192
+1421 943
+1407 618
+1407 575
+1406 1110
+780 1326
+1285 887
+1033 1418
+1412 1384
+1142 1422
+830 437
+191 1410
+878 1371
+1404 1391
+1422 795
+1411 1241
+1421 1138
+1404 1379
+1376 1115
+1375 669
+1379 1188
+1407 1164
+1417 74
+620 1403
+50 1346
+1171 1400
+273 1418
+501 1419
+1049 1384
+520 1402
+832 1342
+786 1415
+1419 1378
+1303 1294
+664 1422
+507 1394
+782 1407
+1072 1349
+377 1422
+1411 933
+769 1409
+1416 425
+1092 1418
+819 981
+1422 581
+1420 868
+1412 1373
+480 1118
+757 1416
+1422 1064
+1359 1046
+641 1393
+600 1420
+1402 997
+1403 1035
+1421 891
+1377 199
+691 1161
+979 1422
+1211 633
+1410 1307
+1422 702
+1419 869
+1403 178
+1362 1088
+1422 1167
+1417 1235
+1402 922
+1419 1387
+1421 760
+1356 638
+1066 1403
+1230 1420
+111 1420
+1038 1282
+370 1384
+928 1322
+1360 1333
+205 1402
+1359 25
+1298 1100
+686 1416
+533 1243
+947 1419
+800 1422
+347 1331
+1365 1321
+1407 687
+1406 1373
+703 1322
+1180 1029
+1206 1420
+1421 394
+1419 560
+299 1311
+1415 699
+349 1034
+1422 1226
+1420 451
+946 1334
+1422 1023
+1351 1416
+1211 1421
+1420 1401
+766 1367
+1306 540
+1407 1309
+1331 1052
+278 1422
+846 1262
+1422 1215
+1420 908
+1410 792
+1422 577
+1017 1310
+1420 903
+1422 974
+1247 850
+1411 1285
+1373 1419
+1298 752
+1419 1056
+1272 1422
+1334 115
+1416 508
+1130 1418
+1421 304
+1410 1325
+1416 1300
+1411 857
+1409 576
+1403 906
+1415 1379
+1421 1116
+1383 557
+702 1332
+967 1403
+1419 1259
+940 1413
+1326 1173
+1420 724
+1415 1255
+667 1187
+1193 1102
+354 1343
+541 1371
+1373 731
+1411 1004
+1421 279
+821 1127
+1420 1163
+1350 1112
+1418 858
+742 1421
+889 1422
+1381 1414
+1408 1035
+1370 1238
+1422 214
+1419 1152
+1020 1420
+561 1418
+1418 912
+1413 1401
+1418 447
+1420 945
+1422 1258
+1006 1419
+1422 1089
+1201 1027
+470 459
+1412 1342
+1355 513
+790 1411
+1371 1422
+98 1368
+1353 1419
+1415 1103
+1138 1420
+1141 1391
+1213 1198
+1420 475
+1422 1319
+1297 1342
+1417 1192
+48 982
+382 1287
+1422 938
+1415 474
+1420 1298
+1379 1339
+709 1421
+1391 856
+717 1366
+521 1422
+1417 1303
+1244 1407
+836 1263
+1420 1241
+281 1393
+1416 4
+1402 63
+1404 1328
+1415 1045
+1403 79
+1383 88
+405 1420
+1357 1151
+1422 786
+1422 565
+1421 1129
+1420 409
+1254 1306
+1301 538
+515 1366
+592 1422
+1421 239
+1130 1421
+1415 1200
+556 1422
+1422 1399
+1414 923
+721 970
+1223 1070
+1015 1394
+1353 772
+1024 1278
+1421 213
+1168 1407
+1419 1334
+556 1411
+734 1420
+371 1413
+1207 1420
+456 1419
+1420 1363
+1411 1057
+1407 497
+1421 1228
+1406 1369
+1411 1401
+1413 932
+1411 275
+1409 1401
+1365 1043
+1364 1047
+1168 1420
+1422 726
+1418 1399
+1418 1318
+1419 826
+1372 976
+1410 1343
+1330 1350
+784 1410
+620 1208
+1080 1239
+1418 963
+223 1415
+1422 70
+1409 916
+1413 1122
+1413 856
+351 1420
+1420 1347
+1379 1414
+1413 352
+1422 1080
+1364 1422
+1422 417
+583 572
+1420 912
+768 1391
+1413 582
+1418 1030
+1415 906
+263 1422
+1421 965
+1420 579
+420 1422
+1346 1128
+1422 408
+1420 763
+781 1420
+1413 1251
+1301 1378
+1037 1417
+1421 934
+1417 1400
+1420 512
+760 1411
+1422 1073
+1416 1217
+1413 218
+1415 1009
+1411 197
+1153 1422
+1410 733
+1344 1263
+1415 491
+820 1420
+720 1421
+1420 402
+710 1363
+1422 896
+1421 1226
+1414 1029
+1411 65
+1420 977
+1402 852
+312 1421
+1157 1043
+1421 509
+1353 732
+1416 1332
+1346 1180
+1421 1331
+659 1411
+1419 1023
+1420 677
+1353 3
+1349 143
+1420 1270
+1342 485
+1421 1169
+1420 1267
+1409 1135
+935 1260
+601 1341
+1402 825
+1421 408
+1420 376
+1422 1274
+1407 309
+1418 1276
+325 1292
+1419 964
+1378 990
+1414 1195
+1402 809
+204 1354
+945 1422
+1420 727
+1422 1029
+1403 573
+1422 1401
+1422 629
+1421 873
+1197 1343
+1409 897
+1419 1323
+1422 899
+405 1421
+1421 1086
+1403 879
+1407 1087
+1407 573
+367 1421
+1357 664
+1407 1169
+1339 171
+496 972
+1421 594
+1421 68
+1418 812
+1403 1400
+1409 1237
+1421 1094
+1419 448
+1413 425
+1421 1194
+1403 1001
+1278 861
+1421 578
+1422 818
+1146 1420
+1266 1344
+1420 1249
+1411 1400
+1358 1238
+1422 603
+829 1422
+1418 926
+1421 1058
+1422 161
+1422 1222
+1420 653
+1366 1336
+1402 779
+1371 1414
+1421 1054
+1421 1274
+1364 1324
+754 1391
+1339 636
+1420 1048
+361 785
+436 1130
+1351 1077
+1420 793
+1421 1182
+1421 476
+1411 585
+1421 582
+1268 1190
+1412 1365
+1422 34
+1421 854
+1422 919
+1421 765
+1421 911
+1336 1026
+1421 685
+1324 816
+1297 600
+1421 777
+1421 979
+1343 297
+1385 674
+1410 1336
+1291 1343
+471 1390
+1248 1340
+1307 330
+1365 831
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/topology-read/topology-example-sim.cc Fri Mar 12 14:36:38 2010 -0500
@@ -0,0 +1,208 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program 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 program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * Author: Tommaso Pecorella <tommaso.pecorella@unifi.it>
+ * Author: Valerio Sartini <valesar@gmail.com>
+ *
+ * This program conducts a simple experiment: It builds up a topology based on
+ * either Inet or Orbis trace files. A random node is then chosen, and all the
+ * other nodes will send a packet to it. The TTL is measured and reported as an histogram.
+ *
+ */
+
+#include <ctime>
+
+#include <sstream>
+
+#include "ns3/core-module.h"
+#include "ns3/common-module.h"
+#include "ns3/node-module.h"
+#include "ns3/helper-module.h"
+#include "ns3/simulator-module.h"
+
+#include "ns3/topology-read-module.h"
+#include <list>
+
+using namespace ns3;
+using namespace std;
+
+NS_LOG_COMPONENT_DEFINE ("TopologyCreationExperiment");
+
+
+static list<unsigned int> data;
+
+static void SinkRx (Ptr<const Packet> p, const Address &ad)
+{
+ Ipv4Header ipv4;
+ p->PeekHeader (ipv4);
+ std::cout << "TTL: " << (unsigned)ipv4.GetTtl () << std::endl;
+}
+
+
+// ----------------------------------------------------------------------
+// -- main
+// ----------------------------------------------
+int main (int argc, char *argv[])
+{
+
+ string format ("Inet");
+ string input ("examples/topology-read/Inet_small_toposample.txt");
+
+ // Set up command line parameters used to control the experiment.
+ CommandLine cmd;
+ cmd.AddValue ("format", "Format to use for data input [Orbis|Inet].",
+ format);
+ cmd.AddValue ("input", "Name of the input file.",
+ input);
+ cmd.Parse (argc, argv);
+
+
+ // ------------------------------------------------------------
+ // -- Read topology data.
+ // --------------------------------------------
+
+ // Pick a topology reader based in the requested format.
+
+ Ptr<TopologyReader> inFile = 0;
+ TopologyReaderHelper topoHelp;
+
+ NodeContainer nodes;
+
+ topoHelp.SetFileName(input);
+ topoHelp.SetFileType(format);
+ inFile = topoHelp.GetTopologyReader();
+
+ if (inFile != 0)
+ {
+ nodes = inFile->Read ();
+ }
+
+ if (inFile->LinksSize () == 0)
+ {
+ NS_LOG_ERROR ("Problems reading the topology file. Failing.");
+ return -1;
+ }
+
+ // ------------------------------------------------------------
+ // -- Create nodes and network stacks
+ // --------------------------------------------
+ NS_LOG_INFO ("creating internet stack");
+ InternetStackHelper stack;
+
+ // Setup NixVector Routing
+ Ipv4NixVectorHelper nixRouting;
+ Ipv4StaticRoutingHelper staticRouting;
+
+ Ipv4ListRoutingHelper listRH;
+ listRH.Add (staticRouting, 0);
+ listRH.Add (nixRouting, 10);
+
+ stack.SetRoutingHelper (listRH);
+ stack.Install (nodes);
+
+ NS_LOG_INFO ("creating ip4 addresses");
+ Ipv4AddressHelper address;
+ address.SetBase ("10.0.0.0", "255.255.255.252");
+
+ int totlinks = inFile->LinksSize ();
+
+ NS_LOG_INFO ("creating node containers");
+ NodeContainer nc[totlinks];
+ TopologyReader::ConstLinksIterator iter;
+ int i = 0;
+ for ( iter = inFile->LinksBegin (); iter != inFile->LinksEnd (); iter++, i++ )
+ {
+ nc[i] = NodeContainer (iter->GetFromNode (), iter->GetToNode ());
+ }
+
+ NS_LOG_INFO ("creating net device containers");
+ NetDeviceContainer ndc[totlinks];
+ PointToPointHelper p2p;
+ for (int i = 0; i < totlinks; i++)
+ {
+ // p2p.SetChannelAttribute ("Delay", TimeValue(MilliSeconds(weight[i])));
+ p2p.SetChannelAttribute ("Delay", StringValue ("2ms"));
+ p2p.SetDeviceAttribute ("DataRate", StringValue ("5Mbps"));
+ ndc[i] = p2p.Install (nc[i]);
+ }
+
+ // it crates little subnets, one for each couple of nodes.
+ NS_LOG_INFO ("creating ipv4 interfaces");
+ Ipv4InterfaceContainer ipic[totlinks];
+ for (int i = 0; i < totlinks; i++)
+ {
+ ipic[i] = address.Assign (ndc[i]);
+ address.NewNetwork ();
+ }
+
+
+ uint32_t totalNodes = nodes.GetN ();
+ UniformVariable unifRandom (0, totalNodes - 1);
+
+ unsigned int randomServerNumber = unifRandom.GetInteger (0, totalNodes - 1);
+
+ Ptr<Node> randomServerNode = nodes.Get (randomServerNumber);
+ Ptr<Ipv4> ipv4Server = randomServerNode->GetObject<Ipv4> ();
+ Ipv4InterfaceAddress iaddrServer = ipv4Server->GetAddress (1,0);
+ Ipv4Address ipv4AddrServer = iaddrServer.GetLocal ();
+
+ // ------------------------------------------------------------
+ // -- Send around packets to check the ttl
+ // --------------------------------------------
+ Config::SetDefault ("ns3::Ipv4RawSocketImpl::Protocol", StringValue ("2"));
+ InetSocketAddress dst = InetSocketAddress ( ipv4AddrServer );
+
+ OnOffHelper onoff = OnOffHelper ("ns3::Ipv4RawSocketFactory", dst);
+ onoff.SetAttribute ("OnTime", RandomVariableValue (ConstantVariable (1.0)));
+ onoff.SetAttribute ("OffTime", RandomVariableValue (ConstantVariable (0.0)));
+ onoff.SetAttribute ("DataRate", DataRateValue (DataRate (15000)));
+ onoff.SetAttribute ("PacketSize", UintegerValue (1200));
+
+ NodeContainer clientNodes;
+ for ( unsigned int i = 0; i < nodes.GetN (); i++ )
+ {
+ if (i != randomServerNumber )
+ {
+ Ptr<Node> clientNode = nodes.Get (i);
+ clientNodes.Add (clientNode);
+ }
+ }
+
+ ApplicationContainer apps = onoff.Install (clientNodes);
+ apps.Start (Seconds (1.0));
+ apps.Stop (Seconds (2.0));
+
+ PacketSinkHelper sink = PacketSinkHelper ("ns3::Ipv4RawSocketFactory", dst);
+ apps = sink.Install (randomServerNode);
+ apps.Start (Seconds (0.0));
+ apps.Stop (Seconds (3.0));
+
+ // we trap the packet sink receiver to extract the TTL.
+ Config::ConnectWithoutContext ("/NodeList/*/ApplicationList/*/$ns3::PacketSink/Rx",
+ MakeCallback (&SinkRx));
+
+ // ------------------------------------------------------------
+ // -- Run the simulation
+ // --------------------------------------------
+ NS_LOG_INFO ("Run Simulation.");
+ Simulator::Run ();
+ Simulator::Destroy ();
+
+ NS_LOG_INFO ("Done.");
+
+ return 0;
+
+ // end main
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/topology-read/waf Fri Mar 12 14:36:38 2010 -0500
@@ -0,0 +1,1 @@
+exec "`dirname "$0"`"/../../waf "$@"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/topology-read/wscript Fri Mar 12 14:36:38 2010 -0500
@@ -0,0 +1,5 @@
+## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
+
+def build(bld):
+ obj = bld.create_ns3_program('topology-read', ['topology-read', 'internet-stack'])
+ obj.source = 'topology-example-sim.cc'
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/contrib/topology-read/inet-topology-reader.cc Fri Mar 12 14:36:38 2010 -0500
@@ -0,0 +1,140 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2010 Universita' di Firenze, Italy
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program 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 program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * Author: Tommaso Pecorella (tommaso.pecorella@unifi.it)
+ * Author: Valerio Sartini (Valesar@gmail.com)
+ */
+
+#include <fstream>
+#include <cstdlib>
+#include <sstream>
+
+#include "ns3/log.h"
+#include "inet-topology-reader.h"
+
+using namespace std;
+
+namespace ns3 {
+
+NS_LOG_COMPONENT_DEFINE ("InetTopologyReader");
+
+NS_OBJECT_ENSURE_REGISTERED (InetTopologyReader);
+
+TypeId InetTopologyReader::GetTypeId (void)
+{
+ static TypeId tid = TypeId ("ns3::InetTopologyReader")
+ .SetParent<Object> ()
+ ;
+ return tid;
+}
+
+InetTopologyReader::InetTopologyReader ()
+{
+ NS_LOG_FUNCTION (this);
+}
+
+InetTopologyReader::~InetTopologyReader ()
+{
+ NS_LOG_FUNCTION (this);
+}
+
+NodeContainer
+InetTopologyReader::Read (void)
+{
+ ifstream topgen;
+ topgen.open (GetFileName ().c_str ());
+ map<string, Ptr<Node> > nodeMap;
+ NodeContainer nodes;
+
+ if ( !topgen.is_open () )
+ {
+ return nodes;
+ }
+
+ string from;
+ string to;
+ string linkAttr;
+
+ int linksNumber = 0;
+ int nodesNumber = 0;
+
+ int totnode = 0;
+ int totlink = 0;
+
+ istringstream lineBuffer;
+ string line;
+
+ getline (topgen,line);
+ lineBuffer.str (line);
+
+ lineBuffer >> totnode;
+ lineBuffer >> totlink;
+ NS_LOG_INFO ("Inet topology should have " << totnode << " nodes and " << totlink << " links");
+
+ for (int i = 0; i <= totnode; i++)
+ {
+ getline (topgen,line);
+ }
+
+ for (int i = 0; i < totlink && !topgen.eof (); i++)
+ {
+ getline (topgen,line);
+ lineBuffer.clear ();
+ lineBuffer.str (line);
+
+ lineBuffer >> from;
+ lineBuffer >> to;
+ lineBuffer >> linkAttr;
+
+ if ( (!from.empty ()) && (!to.empty ()) )
+ {
+ NS_LOG_INFO ( linksNumber << " From: " << from << " to: " << to );
+
+ if ( nodeMap[from] == 0 )
+ {
+ Ptr<Node> tmpNode = CreateObject<Node> ();
+ nodeMap[from] = tmpNode;
+ nodes.Add (tmpNode);
+ nodesNumber++;
+ }
+
+ if (nodeMap[to] == 0)
+ {
+ Ptr<Node> tmpNode = CreateObject<Node> ();
+ nodeMap[to] = tmpNode;
+ nodes.Add (tmpNode);
+ nodesNumber++;
+ }
+
+ Link link ( nodeMap[from], from, nodeMap[to], to );
+ if ( !linkAttr.empty () )
+ {
+ link.SetAttribute ("Weight", linkAttr);
+ }
+ AddLink (link);
+
+ linksNumber++;
+ }
+ }
+
+ NS_LOG_INFO ("Inet topology created with " << nodesNumber << " nodes and " << linksNumber << " links");
+ topgen.close ();
+
+ return nodes;
+}
+
+} /* namespace ns3 */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/contrib/topology-read/inet-topology-reader.h Fri Mar 12 14:36:38 2010 -0500
@@ -0,0 +1,76 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2010 Universita' di Firenze, Italy
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program 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 program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * Author: Tommaso Pecorella (tommaso.pecorella@unifi.it)
+ * Author: Valerio Sartini (valesar@gmail.com)
+ */
+
+#ifndef __INET_TOPOLOGY_READER_H__
+#define __INET_TOPOLOGY_READER_H__
+
+#include "ns3/nstime.h"
+
+#include "topology-reader.h"
+
+namespace ns3 {
+
+
+// ------------------------------------------------------------
+// --------------------------------------------
+/**
+ * \ingroup topology
+ * \brief Topology file reader (Inet-format type).
+ *
+ * This class takes an input file in Inet format and extracts all
+ * the informations needed to build the topology
+ * (i.e.number of nodes, links and links structure).
+ * It have been tested with Inet 3.0
+ * http://topology.eecs.umich.edu/inet/
+ *
+ * It might set a link attribute named "Weight", corresponding to
+ * the euclidean distance between two nodes, the nodes being randomly positioned.
+ */
+class InetTopologyReader : public TopologyReader
+{
+public:
+ static TypeId GetTypeId (void);
+
+ InetTopologyReader ();
+ virtual ~InetTopologyReader ();
+
+ /**
+ * \brief Main topology reading function.
+ *
+ * This method opens an input stream and reads the Inet-format file.
+ * From the first line it takes the total number of nodes and links.
+ * Then discards a number of rows equals to total nodes (containing
+ * useless geographical informations).
+ * Then reads until the end of the file (total links number rows) and saves
+ * the structure of every single link in the topology.
+ *
+ * \return the container of the nodes created (or empty container if there was an error)
+ */
+ virtual NodeContainer Read (void);
+
+ // end class InetTopologyReader
+};
+
+// end namespace ns3
+};
+
+
+#endif // __INET_TOPOLOGY_READER_H__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/contrib/topology-read/orbis-topology-reader.cc Fri Mar 12 14:36:38 2010 -0500
@@ -0,0 +1,121 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2010 Universita' di Firenze, Italy
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program 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 program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * Author: Tommaso Pecorella (tommaso.pecorella@unifi.it)
+ * Author: Valerio Sartini (valesar@gmail.com)
+ */
+
+#include <fstream>
+#include <cstdlib>
+#include <iostream>
+#include <sstream>
+
+#include "ns3/log.h"
+#include "orbis-topology-reader.h"
+
+using namespace std;
+
+namespace ns3 {
+
+NS_LOG_COMPONENT_DEFINE ("OrbisTopologyReader");
+
+NS_OBJECT_ENSURE_REGISTERED (OrbisTopologyReader);
+
+TypeId OrbisTopologyReader::GetTypeId (void)
+{
+ static TypeId tid = TypeId ("ns3::OrbisTopologyReader")
+ .SetParent<Object> ()
+ ;
+ return tid;
+}
+
+OrbisTopologyReader::OrbisTopologyReader ()
+{
+ NS_LOG_FUNCTION (this);
+}
+
+OrbisTopologyReader::~OrbisTopologyReader ()
+{
+ NS_LOG_FUNCTION (this);
+}
+
+NodeContainer
+OrbisTopologyReader::Read (void)
+{
+ ifstream topgen;
+ topgen.open (GetFileName ().c_str ());
+ map<string, Ptr<Node> > nodeMap;
+ NodeContainer nodes;
+
+ if ( !topgen.is_open () )
+ {
+ return nodes;
+ }
+
+ string from;
+ string to;
+ istringstream lineBuffer;
+ string line;
+
+ int linksNumber = 0;
+ int nodesNumber = 0;
+
+ while (!topgen.eof ())
+ {
+ line.clear ();
+ lineBuffer.clear ();
+ from.clear ();
+ to.clear ();
+
+ getline (topgen,line);
+ lineBuffer.str (line);
+ lineBuffer >> from;
+ lineBuffer >> to;
+
+ if ( (!from.empty ()) && (!to.empty ()) )
+ {
+ NS_LOG_INFO ( linksNumber << " From: " << from << " to: " << to );
+ if ( nodeMap[from] == 0 )
+ {
+ Ptr<Node> tmpNode = CreateObject<Node> ();
+ nodeMap[from] = tmpNode;
+ nodes.Add (tmpNode);
+ nodesNumber++;
+ }
+
+ if (nodeMap[to] == 0)
+ {
+ Ptr<Node> tmpNode = CreateObject<Node> ();
+ nodeMap[to] = tmpNode;
+ nodes.Add (tmpNode);
+ nodesNumber++;
+ }
+
+ Link link ( nodeMap[from], from, nodeMap[to], to );
+ AddLink (link);
+
+ linksNumber++;
+ }
+ }
+ NS_LOG_INFO ("Orbis topology created with " << nodesNumber << " nodes and " << linksNumber << " links");
+ topgen.close ();
+
+ return nodes;
+}
+
+} /* namespace ns3 */
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/contrib/topology-read/orbis-topology-reader.h Fri Mar 12 14:36:38 2010 -0500
@@ -0,0 +1,73 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2010 Universita' di Firenze, Italy
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program 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 program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * Author: Tommaso Pecorella (tommaso.pecorella@unifi.it)
+ * Author: Valerio Sartini (valesar@gmail.com)
+ */
+
+#ifndef __ORBIS_TOPOLOGY_READER_H__
+#define __ORBIS_TOPOLOGY_READER_H__
+
+#include "ns3/nstime.h"
+
+#include "topology-reader.h"
+
+namespace ns3 {
+
+
+// ------------------------------------------------------------
+// --------------------------------------------
+/**
+ * \ingroup topology
+ * \brief Topology file reader (Orbis-format type).
+ *
+ * This class takes an input file in Orbis format and extracts all
+ * the informations needed to build the topology
+ * (i.e.number of nodes, links and links structure).
+ * It have been tested with Orbis 0.70
+ * http://www.sysnet.ucsd.edu/~pmahadevan/topo_research/topo.html
+ */
+class OrbisTopologyReader : public TopologyReader
+{
+public:
+ static TypeId GetTypeId (void);
+
+ OrbisTopologyReader ();
+ virtual ~OrbisTopologyReader ();
+
+ /**
+ * \brief Main topology reading function.
+ *
+ * This method opens an input stream and reads the Orbis-format file.
+ * Every row represents a topology link (the ids of a couple of nodes),
+ * so the input file is read line by line to figure out how many links
+ * and nodes are in the topology.
+ *
+ * \return the container of the nodes created (or empty container if there was an error)
+ */
+ virtual NodeContainer Read (void);
+
+ // end class OrbisTopologyReader
+};
+
+// end namespace ns3
+};
+
+
+#endif // __ORBIS_TOPOLOGY_READER_H__
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/contrib/topology-read/topology-reader.cc Fri Mar 12 14:36:38 2010 -0500
@@ -0,0 +1,169 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2010 Universita' di Firenze, Italy
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program 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 program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * Author: Tommaso Pecorella (tommaso.pecorella@unifi.it)
+ * Author: Valerio Sartini (valesar@gmail.com)
+ */
+
+#include "ns3/log.h"
+
+#include "topology-reader.h"
+
+
+namespace ns3 {
+
+NS_LOG_COMPONENT_DEFINE ("TopologyReader");
+
+NS_OBJECT_ENSURE_REGISTERED (TopologyReader);
+
+TypeId TopologyReader::GetTypeId (void)
+{
+ static TypeId tid = TypeId ("ns3::TopologyReader")
+ .SetParent<Object> ()
+ ;
+ return tid;
+}
+
+TopologyReader::TopologyReader ()
+{
+ NS_LOG_FUNCTION (this);
+}
+
+TopologyReader::~TopologyReader ()
+{
+ NS_LOG_FUNCTION (this);
+}
+
+void
+TopologyReader::SetFileName (const std::string fileName)
+{
+ m_fileName = fileName;
+}
+
+std::string
+TopologyReader::GetFileName () const
+{
+ return m_fileName;
+}
+
+/* Manipulating the address block */
+
+TopologyReader::ConstLinksIterator
+TopologyReader::LinksBegin (void) const
+{
+ return m_linksList.begin ();
+}
+
+TopologyReader::ConstLinksIterator
+TopologyReader::LinksEnd (void) const
+{
+ return m_linksList.end ();
+}
+
+int
+TopologyReader::LinksSize (void) const
+{
+ return m_linksList.size ();
+}
+
+bool
+TopologyReader::LinksEmpty (void) const
+{
+ return m_linksList.empty ();
+}
+
+void
+TopologyReader::AddLink (Link link)
+{
+ m_linksList.push_back (link);
+ return;
+}
+
+
+TopologyReader::Link::Link ( Ptr<Node> fromPtr, std::string fromName, Ptr<Node> toPtr, std::string toName )
+{
+ m_fromPtr = fromPtr;
+ m_fromName = fromName;
+ m_toPtr = toPtr;
+ m_toName = toName;
+}
+
+TopologyReader::Link::Link ()
+{
+}
+
+
+Ptr<Node> TopologyReader::Link::GetFromNode (void) const
+{
+ return m_fromPtr;
+}
+
+std::string
+TopologyReader::Link::GetFromNodeName (void) const
+{
+ return m_fromName;
+}
+
+Ptr<Node>
+TopologyReader::Link::GetToNode (void) const
+{
+ return m_toPtr;
+}
+
+std::string
+TopologyReader::Link::GetToNodeName (void) const
+{
+ return m_toName;
+}
+
+std::string
+TopologyReader::Link::GetAttribute (std::string name)
+{
+ NS_ASSERT_MSG (m_linkAttr.find ("name") == m_linkAttr.end (), "Requested topology link attribute not found");
+ return m_linkAttr[name];
+}
+
+bool
+TopologyReader::Link::GetAttributeFailSafe (std::string name, std::string &value)
+{
+ if ( m_linkAttr.find ("name") == m_linkAttr.end () )
+ {
+ return false;
+ }
+ value = m_linkAttr[name];
+ return true;
+}
+
+void
+TopologyReader::Link::SetAttribute (std::string name, std::string &value)
+{
+ m_linkAttr[name] = value;
+}
+
+TopologyReader::Link::ConstAttributesIterator
+TopologyReader::Link::AttributesBegin (void)
+{
+ return m_linkAttr.begin ();
+}
+TopologyReader::Link::ConstAttributesIterator
+TopologyReader::Link::AttributesEnd (void)
+{
+ return m_linkAttr.end ();
+}
+
+
+} /* namespace ns3 */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/contrib/topology-read/topology-reader.h Fri Mar 12 14:36:38 2010 -0500
@@ -0,0 +1,203 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2010 Universita' di Firenze, Italy
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program 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 program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * Author: Tommaso Pecorella (tommaso.pecorella@unifi.it)
+ * Author: Valerio Sartini (valesar@gmail.com)
+ */
+
+#ifndef __TOPOLOGY_READER_H__
+#define __TOPOLOGY_READER_H__
+
+#include <string>
+#include <map>
+#include <list>
+
+#include "ns3/object.h"
+#include "ns3/node-container.h"
+
+
+namespace ns3 {
+
+/**
+ * \defgroup topology Topology Input Readers
+ */
+
+/**
+ * \ingroup topology
+ * \brief Interface for input file readers management.
+ *
+ * This interface perform the shared tasks among all possible input file readers.
+ * Each different file format is handled by its own topology reader.
+ */
+class TopologyReader : public Object
+{
+
+public:
+ /**
+ * \ingroup topology
+ * \brief Inner class holding the details about a link between two nodes.
+ *
+ * The link is not described in terms of technology. Rather it is only stating
+ * an association between two nodes. The nodes are characterized also with names
+ * reflecting how the nodes are called in the original topology file.
+ */
+ class Link
+ {
+public:
+ typedef std::map<std::string, std::string >::const_iterator ConstAttributesIterator;
+
+ Link ( Ptr<Node> fromPtr, std::string fromName, Ptr<Node> toPtr, std::string toName );
+
+ /**
+ * \brief Returns a Ptr<Node> to the "from" node of the link
+ * \return a Ptr<Node> to the "from" node of the link
+ */
+ Ptr<Node> GetFromNode (void) const;
+ /**
+ * \brief Returns the name of the "from" node of the link
+ * \return the name of the "from" node of the link
+ */
+ std::string GetFromNodeName (void) const;
+ /**
+ * \brief Returns a Ptr<Node> to the "to" node of the link
+ * \return a Ptr<Node> to the "to" node of the link
+ */
+ Ptr<Node> GetToNode (void) const;
+ /**
+ * \brief Returns the name of the "to" node of the link
+ * \return the name of the "to" node of the link
+ */
+ std::string GetToNodeName (void) const;
+ /**
+ * \brief Returns the value of a link attribute. The attribute must exist.
+ *
+ * \param name the name of the attribute
+ *
+ * \return the value of the attribute
+ */
+ std::string GetAttribute (std::string name);
+ /**
+ * \brief Returns the value of a link attribute.
+ * \param name the name of the attribute
+ * \param value the value of the attribute
+ *
+ * \return true if the attribute was defined, false otherwise.
+ */
+ bool GetAttributeFailSafe (std::string name, std::string &value);
+ /**
+ * \brief Sets an arbitrary link attribute.
+ * \param name the name of the attribute
+ * \param value the value of the attribute
+ */
+ void SetAttribute (std::string name, std::string &value);
+ /**
+ * \brief Returns an iterator to the begin of the attributes.
+ * \return a const iterator to the first attribute of a link.
+ */
+ ConstAttributesIterator AttributesBegin (void);
+ /**
+ * \brief Returns an iterator to the end of the attributes.
+ * \return a const iterator to the last attribute of a link.
+ */
+ ConstAttributesIterator AttributesEnd (void);
+
+private:
+ Link ();
+ std::string m_fromName;
+ Ptr< Node > m_fromPtr;
+ std::string m_toName;
+ Ptr< Node > m_toPtr;
+ std::map<std::string, std::string > m_linkAttr;
+ };
+
+ /**
+ * \brief Contant iterator to the list of the links.
+ */
+ typedef std::list< Link >::const_iterator ConstLinksIterator;
+
+ static TypeId GetTypeId (void);
+
+ TopologyReader ();
+ virtual ~TopologyReader ();
+
+ /**
+ * \brief Main topology reading function.
+ *
+ * The data is parsed and the results are returned in the passed lists.
+ * The rationale behind this choice is to allow non-progressive node IDs
+ * in the topology files, as well as to separate the topology
+ * reader from the choices about actual IP number assignment and
+ * kind of links between nodes.
+ *
+ * \return the container of the nodes created (or null if there was an error)
+ */
+ virtual NodeContainer Read (void) = 0;
+
+ /**
+ * \brief Sets the input file name.
+ * \param fileName the input file name.
+ */
+ void SetFileName (const std::string fileName);
+
+ /**
+ * \brief Returns the input file name.
+ * \return the input file name.
+ */
+ std::string GetFileName (void) const;
+
+ /**
+ * \brief Returns an iterator to the the first link in this block.
+ * \return a const iterator to the first link in this block.
+ */
+ ConstLinksIterator LinksBegin (void) const;
+
+ /**
+ * \brief Returns an iterator to the the last link in this block.
+ * \return a const iterator to the last link in this block.
+ */
+ ConstLinksIterator LinksEnd (void) const;
+
+ /**
+ * \brief Returns the number of links in this block.
+ * \return the number of links in this block.
+ */
+ int LinksSize (void) const;
+
+ /**
+ * \brief Checks if the block contains any links.
+ * \return true if there are no links in this block, false otherwise.
+ */
+ bool LinksEmpty (void) const;
+
+ /**
+ * \brief Adds a link to the topology.
+ * \param link the link to be added.
+ */
+ void AddLink (Link link);
+
+private:
+ std::string m_fileName;
+ std::list<Link> m_linksList;
+
+ // end class TopologyReader
+};
+
+// end namespace ns3
+};
+
+
+#endif // __TOPOLOGY_READER_H__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/contrib/topology-read/topology.h Fri Mar 12 14:36:38 2010 -0500
@@ -0,0 +1,32 @@
+/**
+ * \addtogroup topology Topology Input Readers
+ *
+ * The topology modules aim at reading a topology file generated by an automatic topology generator.
+ *
+ * The process is divided in two steps:
+ * - running a topology generator to build a topology file
+ * - reading the topology file and build a ns-3 simulation
+ *
+ * Hence, model is focused on being able to read correctly the various topology formats.
+ *
+ * Currently there are two models:
+ * - Orbis 0.7
+ * - Inet 3.0
+ *
+ * A good source for topology data is also Archipelago (http://www.caida.org/projects/ark/)
+ *
+ * The current Archipelago Measurements, monthly updated, are stored here:
+ * http://data.caida.org/datasets/topology/ipv4.allpref24-aslinks/
+ * (complete notation and triple data source, one for each working group)
+ *
+ * A different and more compact notation that signs only the AS-relationships is here:
+ * http://www.caida.org/data/active/as-relationships/index.xml
+ * (a sort of more Orbis-like format)
+ *
+ * The compact notation can be easily stripped down to a pure Orbis format, just removing
+ * the double relationships (the compact format use one-way links, while Orbis use two-way
+ * links) and pruning the 3rd parameter. Note that with the compact data Orbis can then be
+ * used create a rescaled version of the topology, thus being the most effective way
+ * (to my best knowledge) to make an internet-like topology.
+ *
+ */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/contrib/topology-read/wscript Fri Mar 12 14:36:38 2010 -0500
@@ -0,0 +1,17 @@
+## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
+
+def build(bld):
+ obj = bld.create_ns3_module('topology-read')
+ obj.source = [
+ 'topology-reader.cc',
+ 'inet-topology-reader.cc',
+ 'orbis-topology-reader.cc',
+ ]
+ headers = bld.new_task_gen('ns3header')
+ headers.module = 'topology-read'
+ headers.source = [
+ 'topology-reader.h',
+ 'inet-topology-reader.h',
+ 'orbis-topology-reader.h',
+ ]
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/helper/topology-reader-helper.cc Fri Mar 12 14:36:38 2010 -0500
@@ -0,0 +1,80 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2010 Universita' di Firenze, Italy
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program 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 program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * Author: Tommaso Pecorella (tommaso.pecorella@unifi.it)
+ * Author: Valerio Sartini (valesar@gmail.com)
+ */
+
+#include "ns3/object.h"
+#include "ns3/topology-reader-helper.h"
+#include "ns3/inet-topology-reader.h"
+#include "ns3/orbis-topology-reader.h"
+#include "ns3/log.h"
+
+namespace ns3 {
+
+NS_LOG_COMPONENT_DEFINE ("TopologyReaderHelper");
+
+TopologyReaderHelper::TopologyReaderHelper ()
+{
+ m_inFile = 0;
+}
+
+void
+TopologyReaderHelper::SetFileName (const std::string fileName)
+{
+ m_fileName = fileName;
+}
+
+void
+TopologyReaderHelper::SetFileType (const std::string fileType)
+{
+ m_fileType = fileType;
+}
+
+
+Ptr<TopologyReader>
+TopologyReaderHelper::GetTopologyReader ()
+{
+ if (!m_inFile)
+ {
+ NS_ASSERT_MSG (!m_fileType.empty (), "Missing File Type");
+ NS_ASSERT_MSG (!m_fileName.empty (), "Missing File Name");
+
+ if (m_fileType == "Orbis")
+ {
+ NS_LOG_INFO ("Creating Orbis formatted data input.");
+ m_inFile = CreateObject<OrbisTopologyReader> ();
+ }
+ else if (m_fileType == "Inet")
+ {
+ NS_LOG_INFO ("Creating Inet formatted data input.");
+ m_inFile = CreateObject<InetTopologyReader> ();
+ }
+ else
+ {
+ NS_ASSERT_MSG (false, "Wrong (unknown) File Type");
+ }
+
+ m_inFile->SetFileName (m_fileName);
+ }
+ return m_inFile;
+}
+
+
+
+} // namespace ns3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/helper/topology-reader-helper.h Fri Mar 12 14:36:38 2010 -0500
@@ -0,0 +1,66 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) 2010 Universita' di Firenze, Italy
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program 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 program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * Author: Tommaso Pecorella (tommaso.pecorella@unifi.it)
+ * Author: Valerio Sartini (valesar@gmail.com)
+ */
+
+#ifndef TOPOLOGY_READER_HELPER_H
+#define TOPOLOGY_READER_HELPER_H
+
+#include "ns3/topology-reader.h"
+#include <string>
+
+namespace ns3 {
+
+/**
+ * \ingroup topology
+ * \brief Helper class which makes it easier to configure and use a generic TopologyReader.
+ */
+class TopologyReaderHelper
+{
+public:
+ TopologyReaderHelper ();
+
+ /**
+ * \brief Sets the input file name.
+ * \param fileName the input file name.
+ */
+ void SetFileName (const std::string fileName);
+
+ /**
+ * \brief Sets the input file type. Supported file types are "Orbis" and "Inet".
+ * \param fileType the input file type.
+ */
+ void SetFileType (const std::string fileType);
+
+ /**
+ * \brief Gets a Ptr<TopologyReader> to the actual TopologyReader.
+ * \return the created Topoloy Reader (or null if there was an error).
+ */
+ Ptr<TopologyReader> GetTopologyReader ();
+
+private:
+ Ptr<TopologyReader> m_inFile;
+ std::string m_fileName;
+ std::string m_fileType;
+};
+
+} // namespace ns3
+
+
+#endif /* TOPOLOGY_READER_HELPER_H */
--- a/src/helper/wscript Thu Mar 11 14:22:33 2010 +0100
+++ b/src/helper/wscript Fri Mar 12 14:36:38 2010 -0500
@@ -50,6 +50,7 @@
'udp-client-server-helper.cc',
'trace-helper.cc',
'wimax-helper.cc',
+ 'topology-reader-helper.cc',
]
headers = bld.new_task_gen('ns3header')
@@ -103,6 +104,7 @@
'udp-client-server-helper.h',
'trace-helper.h',
'wimax-helper.h',
+ 'topology-reader-helper.h',
]
env = bld.env_of_name('default')
--- a/src/wscript Thu Mar 11 14:22:33 2010 +0100
+++ b/src/wscript Fri Mar 12 14:36:38 2010 -0500
@@ -51,6 +51,7 @@
'applications/udp-client-server',
'devices/wimax',
'mpi',
+ 'contrib/topology-read',
)
def set_options(opt):
--- a/test.py Thu Mar 11 14:22:33 2010 +0100
+++ b/test.py Fri Mar 12 14:36:38 2010 -0500
@@ -127,6 +127,8 @@
("tcp/tcp-nsc-zoo", "ENABLE_NSC == True", "True"),
("tcp/tcp-star-server", "True", "True"),
+ ("topology-read/topology-read --input=../../examples/topology-read/Inet_small_toposample.txt", "True", "True"),
+
("tunneling/virtual-net-device", "True", "True"),
("tutorial/first", "True", "True"),