mirror of
https://github.com/Pumpkin-MC/Pumpkin.git
synced 2026-08-31 08:22:33 +00:00
* bitsets! * add benchmark to confirm * assert same output (this will become outdated on the next version upgrade) --------- Co-authored-by: CuzImClicks <cuzimclicks@proton.me>
1536 lines
30 KiB
Rust
1536 lines
30 KiB
Rust
use std::hint::black_box;
|
|
|
|
use criterion::{Criterion, criterion_group, criterion_main};
|
|
use pumpkin_data::block_properties::has_random_ticks;
|
|
|
|
const MAX_ID: u16 = 30000;
|
|
|
|
#[inline(never)]
|
|
fn run_all<F: Fn(u16) -> bool>(f: F) -> u32 {
|
|
let mut acc = 0u32;
|
|
for id in 0..=MAX_ID {
|
|
if f(black_box(id)) {
|
|
acc += 1;
|
|
}
|
|
}
|
|
black_box(acc)
|
|
}
|
|
|
|
fn assert_same_outputs() {
|
|
for id in 0..=MAX_ID {
|
|
let a = has_random_ticks(id);
|
|
let b = has_random_ticks_matches(id);
|
|
if a != b {
|
|
println!("Mismatch at id={}: bitset={}, matches={}", id, a, b);
|
|
println!("has_random_ticks_matches was compiled for 1.21.11!");
|
|
}
|
|
}
|
|
}
|
|
|
|
pub fn bench_has_random_ticks(c: &mut Criterion) {
|
|
assert_same_outputs();
|
|
|
|
c.bench_function("has_random_ticks/bitset", |b| {
|
|
b.iter(|| run_all(has_random_ticks))
|
|
});
|
|
|
|
c.bench_function("has_random_ticks/matches", |b| {
|
|
b.iter(|| run_all(has_random_ticks_matches))
|
|
});
|
|
}
|
|
criterion_group!(benches, bench_has_random_ticks);
|
|
criterion_main!(benches);
|
|
|
|
pub fn has_random_ticks_matches(state_id: u16) -> bool {
|
|
matches!(
|
|
state_id,
|
|
8 | 9
|
|
| 29
|
|
| 30
|
|
| 31
|
|
| 32
|
|
| 33
|
|
| 34
|
|
| 35
|
|
| 36
|
|
| 37
|
|
| 38
|
|
| 39
|
|
| 40
|
|
| 41
|
|
| 42
|
|
| 43
|
|
| 44
|
|
| 45
|
|
| 46
|
|
| 47
|
|
| 48
|
|
| 49
|
|
| 50
|
|
| 51
|
|
| 52
|
|
| 53
|
|
| 54
|
|
| 55
|
|
| 56
|
|
| 57
|
|
| 58
|
|
| 59
|
|
| 60
|
|
| 61
|
|
| 62
|
|
| 63
|
|
| 64
|
|
| 65
|
|
| 66
|
|
| 67
|
|
| 68
|
|
| 69
|
|
| 70
|
|
| 71
|
|
| 72
|
|
| 73
|
|
| 74
|
|
| 75
|
|
| 76
|
|
| 77
|
|
| 78
|
|
| 79
|
|
| 80
|
|
| 81
|
|
| 82
|
|
| 83
|
|
| 84
|
|
| 102
|
|
| 103
|
|
| 104
|
|
| 105
|
|
| 106
|
|
| 107
|
|
| 108
|
|
| 109
|
|
| 110
|
|
| 111
|
|
| 112
|
|
| 113
|
|
| 114
|
|
| 115
|
|
| 116
|
|
| 117
|
|
| 278
|
|
| 279
|
|
| 306
|
|
| 307
|
|
| 334
|
|
| 335
|
|
| 362
|
|
| 363
|
|
| 390
|
|
| 391
|
|
| 418
|
|
| 419
|
|
| 446
|
|
| 447
|
|
| 474
|
|
| 475
|
|
| 502
|
|
| 503
|
|
| 530
|
|
| 531
|
|
| 558
|
|
| 559
|
|
| 2135
|
|
| 2136
|
|
| 5110
|
|
| 5111
|
|
| 5112
|
|
| 5113
|
|
| 5114
|
|
| 5115
|
|
| 5116
|
|
| 5118
|
|
| 5119
|
|
| 5120
|
|
| 5121
|
|
| 5122
|
|
| 5123
|
|
| 5124
|
|
| 5125
|
|
| 6680
|
|
| 6682
|
|
| 6718
|
|
| 6719
|
|
| 6720
|
|
| 6721
|
|
| 6722
|
|
| 6723
|
|
| 6724
|
|
| 6725
|
|
| 6726
|
|
| 6728
|
|
| 6729
|
|
| 6730
|
|
| 6731
|
|
| 6732
|
|
| 6733
|
|
| 6734
|
|
| 6735
|
|
| 6736
|
|
| 6737
|
|
| 6738
|
|
| 6739
|
|
| 6740
|
|
| 6741
|
|
| 6742
|
|
| 6743
|
|
| 6746
|
|
| 6747
|
|
| 6748
|
|
| 6749
|
|
| 6750
|
|
| 6751
|
|
| 6752
|
|
| 6753
|
|
| 6754
|
|
| 6755
|
|
| 6756
|
|
| 6757
|
|
| 6758
|
|
| 6759
|
|
| 6760
|
|
| 6761
|
|
| 6816
|
|
| 6817
|
|
| 7789
|
|
| 7790
|
|
| 7791
|
|
| 7792
|
|
| 7793
|
|
| 7794
|
|
| 7795
|
|
| 7796
|
|
| 7797
|
|
| 7798
|
|
| 7799
|
|
| 7800
|
|
| 7801
|
|
| 7802
|
|
| 7803
|
|
| 7804
|
|
| 7805
|
|
| 7806
|
|
| 7807
|
|
| 7808
|
|
| 7809
|
|
| 7810
|
|
| 7811
|
|
| 7812
|
|
| 7813
|
|
| 7814
|
|
| 7815
|
|
| 7816
|
|
| 7817
|
|
| 7818
|
|
| 7819
|
|
| 7820
|
|
| 7821
|
|
| 7822
|
|
| 7823
|
|
| 7824
|
|
| 7825
|
|
| 7826
|
|
| 7827
|
|
| 7828
|
|
| 7829
|
|
| 7830
|
|
| 7831
|
|
| 7832
|
|
| 7833
|
|
| 7834
|
|
| 7835
|
|
| 7836
|
|
| 7837
|
|
| 7838
|
|
| 7839
|
|
| 7840
|
|
| 7841
|
|
| 7842
|
|
| 7843
|
|
| 7844
|
|
| 7845
|
|
| 7846
|
|
| 7847
|
|
| 7848
|
|
| 7849
|
|
| 7850
|
|
| 7851
|
|
| 7852
|
|
| 7853
|
|
| 7854
|
|
| 7855
|
|
| 7856
|
|
| 7857
|
|
| 7858
|
|
| 7859
|
|
| 7860
|
|
| 7861
|
|
| 7862
|
|
| 7863
|
|
| 7864
|
|
| 7865
|
|
| 7866
|
|
| 7867
|
|
| 7868
|
|
| 7869
|
|
| 7870
|
|
| 7871
|
|
| 7872
|
|
| 7873
|
|
| 7874
|
|
| 7875
|
|
| 7876
|
|
| 7877
|
|
| 7878
|
|
| 7879
|
|
| 7880
|
|
| 7881
|
|
| 7882
|
|
| 7883
|
|
| 7884
|
|
| 8051
|
|
| 8052
|
|
| 8053
|
|
| 8054
|
|
| 8055
|
|
| 8056
|
|
| 8057
|
|
| 8058
|
|
| 8059
|
|
| 8060
|
|
| 8061
|
|
| 8062
|
|
| 8063
|
|
| 8064
|
|
| 8065
|
|
| 8066
|
|
| 8067
|
|
| 8068
|
|
| 8141
|
|
| 8142
|
|
| 8143
|
|
| 8144
|
|
| 8145
|
|
| 8146
|
|
| 8147
|
|
| 8148
|
|
| 8149
|
|
| 8150
|
|
| 8151
|
|
| 8152
|
|
| 8153
|
|
| 8154
|
|
| 8155
|
|
| 8156
|
|
| 8157
|
|
| 8158
|
|
| 8159
|
|
| 8160
|
|
| 8161
|
|
| 8162
|
|
| 8163
|
|
| 8164
|
|
| 8165
|
|
| 8166
|
|
| 8167
|
|
| 8168
|
|
| 8169
|
|
| 8170
|
|
| 8171
|
|
| 8172
|
|
| 8173
|
|
| 8174
|
|
| 8175
|
|
| 8176
|
|
| 8177
|
|
| 8178
|
|
| 8179
|
|
| 8180
|
|
| 8181
|
|
| 8182
|
|
| 8183
|
|
| 8184
|
|
| 8185
|
|
| 8186
|
|
| 8187
|
|
| 8188
|
|
| 8717
|
|
| 8718
|
|
| 9246
|
|
| 9247
|
|
| 9248
|
|
| 9280
|
|
| 9281
|
|
| 9282
|
|
| 9283
|
|
| 9284
|
|
| 9285
|
|
| 9286
|
|
| 9287
|
|
| 10457
|
|
| 10458
|
|
| 10459
|
|
| 10460
|
|
| 10461
|
|
| 10462
|
|
| 10463
|
|
| 10465
|
|
| 10466
|
|
| 10467
|
|
| 10468
|
|
| 10469
|
|
| 10470
|
|
| 10471
|
|
| 14504
|
|
| 14505
|
|
| 14506
|
|
| 14507
|
|
| 14508
|
|
| 14595
|
|
| 14596
|
|
| 14598
|
|
| 14600
|
|
| 14602
|
|
| 14604
|
|
| 14609
|
|
| 14610
|
|
| 14611
|
|
| 14860
|
|
| 14861
|
|
| 14862
|
|
| 14863
|
|
| 14864
|
|
| 14865
|
|
| 14866
|
|
| 14867
|
|
| 14868
|
|
| 14869
|
|
| 14870
|
|
| 14871
|
|
| 14872
|
|
| 14873
|
|
| 14874
|
|
| 14875
|
|
| 14876
|
|
| 14877
|
|
| 14878
|
|
| 14879
|
|
| 14880
|
|
| 14881
|
|
| 14882
|
|
| 14883
|
|
| 14884
|
|
| 14888
|
|
| 14889
|
|
| 14890
|
|
| 14891
|
|
| 14892
|
|
| 14893
|
|
| 14894
|
|
| 14895
|
|
| 14896
|
|
| 14897
|
|
| 14898
|
|
| 14899
|
|
| 14903
|
|
| 14904
|
|
| 14905
|
|
| 14906
|
|
| 14907
|
|
| 14908
|
|
| 14909
|
|
| 14910
|
|
| 14911
|
|
| 14912
|
|
| 14913
|
|
| 14914
|
|
| 14915
|
|
| 14916
|
|
| 14917
|
|
| 14918
|
|
| 14919
|
|
| 14920
|
|
| 14921
|
|
| 14922
|
|
| 14923
|
|
| 14924
|
|
| 14925
|
|
| 14926
|
|
| 14927
|
|
| 14928
|
|
| 14929
|
|
| 14930
|
|
| 14931
|
|
| 14932
|
|
| 14933
|
|
| 14934
|
|
| 15076
|
|
| 15077
|
|
| 15079
|
|
| 15081
|
|
| 15083
|
|
| 15085
|
|
| 15087
|
|
| 20643
|
|
| 20644
|
|
| 20645
|
|
| 20646
|
|
| 20647
|
|
| 20648
|
|
| 20649
|
|
| 20650
|
|
| 20651
|
|
| 20652
|
|
| 20653
|
|
| 20654
|
|
| 20739
|
|
| 20740
|
|
| 20741
|
|
| 20755
|
|
| 20772
|
|
| 20775
|
|
| 20776
|
|
| 20777
|
|
| 20778
|
|
| 20779
|
|
| 20780
|
|
| 20781
|
|
| 20782
|
|
| 20783
|
|
| 20784
|
|
| 20785
|
|
| 20786
|
|
| 20787
|
|
| 20788
|
|
| 20789
|
|
| 20790
|
|
| 20791
|
|
| 20792
|
|
| 20793
|
|
| 20794
|
|
| 20795
|
|
| 20796
|
|
| 20797
|
|
| 20798
|
|
| 20799
|
|
| 20802
|
|
| 20803
|
|
| 20804
|
|
| 20805
|
|
| 20806
|
|
| 20807
|
|
| 20808
|
|
| 20809
|
|
| 20810
|
|
| 20811
|
|
| 20812
|
|
| 20813
|
|
| 20814
|
|
| 20815
|
|
| 20816
|
|
| 20817
|
|
| 20818
|
|
| 20819
|
|
| 20820
|
|
| 20821
|
|
| 20822
|
|
| 20823
|
|
| 20824
|
|
| 20825
|
|
| 20826
|
|
| 23201
|
|
| 25107
|
|
| 25108
|
|
| 25109
|
|
| 25114
|
|
| 25115
|
|
| 25116
|
|
| 25118
|
|
| 25119
|
|
| 25120
|
|
| 25205
|
|
| 25206
|
|
| 25207
|
|
| 25208
|
|
| 25209
|
|
| 25210
|
|
| 25211
|
|
| 25212
|
|
| 25213
|
|
| 25214
|
|
| 25215
|
|
| 25216
|
|
| 25217
|
|
| 25218
|
|
| 25219
|
|
| 25220
|
|
| 25221
|
|
| 25222
|
|
| 25223
|
|
| 25224
|
|
| 25225
|
|
| 25226
|
|
| 25227
|
|
| 25228
|
|
| 25229
|
|
| 25230
|
|
| 25231
|
|
| 25232
|
|
| 25233
|
|
| 25234
|
|
| 25235
|
|
| 25236
|
|
| 25237
|
|
| 25238
|
|
| 25239
|
|
| 25240
|
|
| 25241
|
|
| 25242
|
|
| 25243
|
|
| 25244
|
|
| 25245
|
|
| 25246
|
|
| 25247
|
|
| 25248
|
|
| 25249
|
|
| 25250
|
|
| 25251
|
|
| 25252
|
|
| 25253
|
|
| 25254
|
|
| 25255
|
|
| 25256
|
|
| 25257
|
|
| 25258
|
|
| 25259
|
|
| 25260
|
|
| 25261
|
|
| 25262
|
|
| 25263
|
|
| 25264
|
|
| 25265
|
|
| 25266
|
|
| 25267
|
|
| 25268
|
|
| 25269
|
|
| 25270
|
|
| 25271
|
|
| 25272
|
|
| 25273
|
|
| 25274
|
|
| 25275
|
|
| 25276
|
|
| 25277
|
|
| 25278
|
|
| 25279
|
|
| 25280
|
|
| 25281
|
|
| 25282
|
|
| 25283
|
|
| 25284
|
|
| 25285
|
|
| 25286
|
|
| 25287
|
|
| 25288
|
|
| 25289
|
|
| 25290
|
|
| 25291
|
|
| 25292
|
|
| 25293
|
|
| 25294
|
|
| 25295
|
|
| 25296
|
|
| 25297
|
|
| 25298
|
|
| 25299
|
|
| 25300
|
|
| 25301
|
|
| 25302
|
|
| 25303
|
|
| 25304
|
|
| 25305
|
|
| 25306
|
|
| 25307
|
|
| 25308
|
|
| 25309
|
|
| 25310
|
|
| 25311
|
|
| 25312
|
|
| 25313
|
|
| 25314
|
|
| 25315
|
|
| 25316
|
|
| 25317
|
|
| 25318
|
|
| 25319
|
|
| 25320
|
|
| 25321
|
|
| 25322
|
|
| 25323
|
|
| 25324
|
|
| 25325
|
|
| 25326
|
|
| 25327
|
|
| 25328
|
|
| 25329
|
|
| 25330
|
|
| 25331
|
|
| 25332
|
|
| 25333
|
|
| 25334
|
|
| 25335
|
|
| 25336
|
|
| 25337
|
|
| 25338
|
|
| 25339
|
|
| 25340
|
|
| 25341
|
|
| 25342
|
|
| 25343
|
|
| 25344
|
|
| 25345
|
|
| 25346
|
|
| 25347
|
|
| 25348
|
|
| 25349
|
|
| 25350
|
|
| 25351
|
|
| 25352
|
|
| 25353
|
|
| 25354
|
|
| 25355
|
|
| 25356
|
|
| 25357
|
|
| 25358
|
|
| 25359
|
|
| 25360
|
|
| 25361
|
|
| 25362
|
|
| 25363
|
|
| 25364
|
|
| 25365
|
|
| 25366
|
|
| 25367
|
|
| 25368
|
|
| 25369
|
|
| 25370
|
|
| 25371
|
|
| 25372
|
|
| 25373
|
|
| 25374
|
|
| 25375
|
|
| 25376
|
|
| 25377
|
|
| 25378
|
|
| 25379
|
|
| 25380
|
|
| 25381
|
|
| 25382
|
|
| 25383
|
|
| 25384
|
|
| 25385
|
|
| 25386
|
|
| 25387
|
|
| 25388
|
|
| 25389
|
|
| 25390
|
|
| 25391
|
|
| 25392
|
|
| 25393
|
|
| 25394
|
|
| 25395
|
|
| 25396
|
|
| 25397
|
|
| 25398
|
|
| 25399
|
|
| 25400
|
|
| 25401
|
|
| 25402
|
|
| 25403
|
|
| 25404
|
|
| 25405
|
|
| 25406
|
|
| 25407
|
|
| 25408
|
|
| 25409
|
|
| 25410
|
|
| 25411
|
|
| 25412
|
|
| 25413
|
|
| 25414
|
|
| 25415
|
|
| 25416
|
|
| 25417
|
|
| 25418
|
|
| 25419
|
|
| 25420
|
|
| 25421
|
|
| 25422
|
|
| 25423
|
|
| 25424
|
|
| 25425
|
|
| 25426
|
|
| 25427
|
|
| 25428
|
|
| 25429
|
|
| 25430
|
|
| 25431
|
|
| 25432
|
|
| 25433
|
|
| 25434
|
|
| 25435
|
|
| 25436
|
|
| 25437
|
|
| 25438
|
|
| 25439
|
|
| 25440
|
|
| 25441
|
|
| 25442
|
|
| 25443
|
|
| 25444
|
|
| 25451
|
|
| 25452
|
|
| 25453
|
|
| 25454
|
|
| 25455
|
|
| 25456
|
|
| 25457
|
|
| 25458
|
|
| 25459
|
|
| 25460
|
|
| 25461
|
|
| 25462
|
|
| 25463
|
|
| 25464
|
|
| 25465
|
|
| 25466
|
|
| 25467
|
|
| 25468
|
|
| 25821
|
|
| 25822
|
|
| 25823
|
|
| 25824
|
|
| 25825
|
|
| 25826
|
|
| 25827
|
|
| 25828
|
|
| 25829
|
|
| 25830
|
|
| 25831
|
|
| 25832
|
|
| 25833
|
|
| 25834
|
|
| 25835
|
|
| 25836
|
|
| 25837
|
|
| 25838
|
|
| 25839
|
|
| 25840
|
|
| 25841
|
|
| 25842
|
|
| 25843
|
|
| 25844
|
|
| 25845
|
|
| 25846
|
|
| 25847
|
|
| 25848
|
|
| 25849
|
|
| 25850
|
|
| 25851
|
|
| 25852
|
|
| 25853
|
|
| 25854
|
|
| 25855
|
|
| 25856
|
|
| 25857
|
|
| 25858
|
|
| 25859
|
|
| 25860
|
|
| 25861
|
|
| 25862
|
|
| 25863
|
|
| 25864
|
|
| 25865
|
|
| 25866
|
|
| 25867
|
|
| 25868
|
|
| 25869
|
|
| 25870
|
|
| 25871
|
|
| 25872
|
|
| 25873
|
|
| 25874
|
|
| 25875
|
|
| 25876
|
|
| 25877
|
|
| 25878
|
|
| 25879
|
|
| 25880
|
|
| 25881
|
|
| 25882
|
|
| 25883
|
|
| 25884
|
|
| 25885
|
|
| 25886
|
|
| 25887
|
|
| 25888
|
|
| 25889
|
|
| 25890
|
|
| 25891
|
|
| 25892
|
|
| 25893
|
|
| 25894
|
|
| 25895
|
|
| 25896
|
|
| 25897
|
|
| 25898
|
|
| 25899
|
|
| 25900
|
|
| 25901
|
|
| 25902
|
|
| 25903
|
|
| 25904
|
|
| 25905
|
|
| 25906
|
|
| 25907
|
|
| 25908
|
|
| 25909
|
|
| 25910
|
|
| 25911
|
|
| 25912
|
|
| 25913
|
|
| 25914
|
|
| 25915
|
|
| 25916
|
|
| 25917
|
|
| 25918
|
|
| 25919
|
|
| 25920
|
|
| 25921
|
|
| 25922
|
|
| 25923
|
|
| 25924
|
|
| 25925
|
|
| 25926
|
|
| 25927
|
|
| 25928
|
|
| 25929
|
|
| 25930
|
|
| 25931
|
|
| 25932
|
|
| 25933
|
|
| 25934
|
|
| 25935
|
|
| 25936
|
|
| 25937
|
|
| 25938
|
|
| 25939
|
|
| 25940
|
|
| 25941
|
|
| 25942
|
|
| 25943
|
|
| 25944
|
|
| 25945
|
|
| 25946
|
|
| 25947
|
|
| 25948
|
|
| 26013
|
|
| 26014
|
|
| 26015
|
|
| 26016
|
|
| 26017
|
|
| 26018
|
|
| 26019
|
|
| 26020
|
|
| 26021
|
|
| 26022
|
|
| 26023
|
|
| 26024
|
|
| 26025
|
|
| 26026
|
|
| 26027
|
|
| 26028
|
|
| 26029
|
|
| 26030
|
|
| 26031
|
|
| 26032
|
|
| 26033
|
|
| 26034
|
|
| 26035
|
|
| 26036
|
|
| 26037
|
|
| 26038
|
|
| 26039
|
|
| 26040
|
|
| 26041
|
|
| 26042
|
|
| 26043
|
|
| 26044
|
|
| 26045
|
|
| 26046
|
|
| 26047
|
|
| 26048
|
|
| 26049
|
|
| 26050
|
|
| 26051
|
|
| 26052
|
|
| 26053
|
|
| 26054
|
|
| 26055
|
|
| 26056
|
|
| 26057
|
|
| 26058
|
|
| 26059
|
|
| 26060
|
|
| 26061
|
|
| 26062
|
|
| 26063
|
|
| 26064
|
|
| 26065
|
|
| 26066
|
|
| 26067
|
|
| 26068
|
|
| 26069
|
|
| 26070
|
|
| 26071
|
|
| 26072
|
|
| 26073
|
|
| 26074
|
|
| 26075
|
|
| 26076
|
|
| 26333
|
|
| 26334
|
|
| 26335
|
|
| 26336
|
|
| 26337
|
|
| 26338
|
|
| 26339
|
|
| 26340
|
|
| 26341
|
|
| 26342
|
|
| 26343
|
|
| 26344
|
|
| 26345
|
|
| 26346
|
|
| 26347
|
|
| 26348
|
|
| 26349
|
|
| 26350
|
|
| 26351
|
|
| 26352
|
|
| 26353
|
|
| 26354
|
|
| 26355
|
|
| 26356
|
|
| 26357
|
|
| 26358
|
|
| 26359
|
|
| 26360
|
|
| 26361
|
|
| 26362
|
|
| 26363
|
|
| 26364
|
|
| 26365
|
|
| 26366
|
|
| 26367
|
|
| 26368
|
|
| 26369
|
|
| 26370
|
|
| 26371
|
|
| 26372
|
|
| 26373
|
|
| 26374
|
|
| 26375
|
|
| 26376
|
|
| 26377
|
|
| 26378
|
|
| 26379
|
|
| 26380
|
|
| 26381
|
|
| 26382
|
|
| 26383
|
|
| 26384
|
|
| 26385
|
|
| 26386
|
|
| 26387
|
|
| 26388
|
|
| 26389
|
|
| 26390
|
|
| 26391
|
|
| 26392
|
|
| 26393
|
|
| 26394
|
|
| 26395
|
|
| 26396
|
|
| 26397
|
|
| 26398
|
|
| 26399
|
|
| 26400
|
|
| 26401
|
|
| 26402
|
|
| 26403
|
|
| 26404
|
|
| 26405
|
|
| 26406
|
|
| 26407
|
|
| 26408
|
|
| 26409
|
|
| 26410
|
|
| 26411
|
|
| 26412
|
|
| 26413
|
|
| 26414
|
|
| 26415
|
|
| 26416
|
|
| 26417
|
|
| 26418
|
|
| 26419
|
|
| 26420
|
|
| 26421
|
|
| 26422
|
|
| 26423
|
|
| 26424
|
|
| 26425
|
|
| 26426
|
|
| 26427
|
|
| 26428
|
|
| 26429
|
|
| 26430
|
|
| 26431
|
|
| 26432
|
|
| 26433
|
|
| 26434
|
|
| 26435
|
|
| 26436
|
|
| 26437
|
|
| 26438
|
|
| 26439
|
|
| 26440
|
|
| 26441
|
|
| 26442
|
|
| 26443
|
|
| 26444
|
|
| 26445
|
|
| 26446
|
|
| 26447
|
|
| 26448
|
|
| 26449
|
|
| 26450
|
|
| 26451
|
|
| 26452
|
|
| 26453
|
|
| 26454
|
|
| 26455
|
|
| 26456
|
|
| 26457
|
|
| 26458
|
|
| 26459
|
|
| 26460
|
|
| 26525
|
|
| 26526
|
|
| 26527
|
|
| 26528
|
|
| 26529
|
|
| 26530
|
|
| 26531
|
|
| 26532
|
|
| 26533
|
|
| 26534
|
|
| 26535
|
|
| 26536
|
|
| 26537
|
|
| 26538
|
|
| 26539
|
|
| 26540
|
|
| 26541
|
|
| 26542
|
|
| 26543
|
|
| 26544
|
|
| 26545
|
|
| 26546
|
|
| 26547
|
|
| 26548
|
|
| 26549
|
|
| 26550
|
|
| 26551
|
|
| 26552
|
|
| 26553
|
|
| 26554
|
|
| 26555
|
|
| 26556
|
|
| 26557
|
|
| 26558
|
|
| 26559
|
|
| 26560
|
|
| 26561
|
|
| 26562
|
|
| 26563
|
|
| 26564
|
|
| 26565
|
|
| 26566
|
|
| 26567
|
|
| 26568
|
|
| 26569
|
|
| 26570
|
|
| 26571
|
|
| 26572
|
|
| 26573
|
|
| 26574
|
|
| 26575
|
|
| 26576
|
|
| 26577
|
|
| 26578
|
|
| 26579
|
|
| 26580
|
|
| 26581
|
|
| 26582
|
|
| 26583
|
|
| 26584
|
|
| 26585
|
|
| 26586
|
|
| 26587
|
|
| 26588
|
|
| 26845
|
|
| 26846
|
|
| 26847
|
|
| 26848
|
|
| 26849
|
|
| 26850
|
|
| 26861
|
|
| 26862
|
|
| 26863
|
|
| 26864
|
|
| 26865
|
|
| 26866
|
|
| 26867
|
|
| 26868
|
|
| 26869
|
|
| 26870
|
|
| 26871
|
|
| 26872
|
|
| 26893
|
|
| 26894
|
|
| 26895
|
|
| 26896
|
|
| 26897
|
|
| 26898
|
|
| 26899
|
|
| 26900
|
|
| 26901
|
|
| 26902
|
|
| 26903
|
|
| 26904
|
|
| 26905
|
|
| 26906
|
|
| 26907
|
|
| 26908
|
|
| 26909
|
|
| 26910
|
|
| 26911
|
|
| 26912
|
|
| 26913
|
|
| 26914
|
|
| 26915
|
|
| 26916
|
|
| 26917
|
|
| 26918
|
|
| 26919
|
|
| 26920
|
|
| 26921
|
|
| 26922
|
|
| 26923
|
|
| 26924
|
|
| 26925
|
|
| 26926
|
|
| 26927
|
|
| 26928
|
|
| 26929
|
|
| 26930
|
|
| 26931
|
|
| 26932
|
|
| 26933
|
|
| 26934
|
|
| 26935
|
|
| 26936
|
|
| 26937
|
|
| 26938
|
|
| 26939
|
|
| 26940
|
|
| 26941
|
|
| 26942
|
|
| 26943
|
|
| 26944
|
|
| 26945
|
|
| 26946
|
|
| 26947
|
|
| 26948
|
|
| 26949
|
|
| 26950
|
|
| 26951
|
|
| 26952
|
|
| 26953
|
|
| 26954
|
|
| 26955
|
|
| 26956
|
|
| 26957
|
|
| 26958
|
|
| 26959
|
|
| 26960
|
|
| 26961
|
|
| 26962
|
|
| 26963
|
|
| 26964
|
|
| 27085
|
|
| 27086
|
|
| 27087
|
|
| 27088
|
|
| 27089
|
|
| 27090
|
|
| 27091
|
|
| 27092
|
|
| 27093
|
|
| 27094
|
|
| 27095
|
|
| 27096
|
|
| 27097
|
|
| 27098
|
|
| 27099
|
|
| 27100
|
|
| 27101
|
|
| 27102
|
|
| 27103
|
|
| 27104
|
|
| 27105
|
|
| 27106
|
|
| 27107
|
|
| 27108
|
|
| 27109
|
|
| 27110
|
|
| 27111
|
|
| 27112
|
|
| 27113
|
|
| 27114
|
|
| 27115
|
|
| 27116
|
|
| 27117
|
|
| 27118
|
|
| 27119
|
|
| 27120
|
|
| 27121
|
|
| 27122
|
|
| 27123
|
|
| 27124
|
|
| 27125
|
|
| 27126
|
|
| 27127
|
|
| 27128
|
|
| 27129
|
|
| 27130
|
|
| 27131
|
|
| 27132
|
|
| 27133
|
|
| 27134
|
|
| 27135
|
|
| 27136
|
|
| 27137
|
|
| 27138
|
|
| 27139
|
|
| 27140
|
|
| 27141
|
|
| 27142
|
|
| 27143
|
|
| 27144
|
|
| 27145
|
|
| 27146
|
|
| 27147
|
|
| 27148
|
|
| 27149
|
|
| 27150
|
|
| 27151
|
|
| 27152
|
|
| 27153
|
|
| 27154
|
|
| 27155
|
|
| 27156
|
|
| 27157
|
|
| 27158
|
|
| 27159
|
|
| 27160
|
|
| 27161
|
|
| 27162
|
|
| 27163
|
|
| 27164
|
|
| 27165
|
|
| 27166
|
|
| 27167
|
|
| 27168
|
|
| 27169
|
|
| 27170
|
|
| 27171
|
|
| 27172
|
|
| 27173
|
|
| 27174
|
|
| 27175
|
|
| 27176
|
|
| 27177
|
|
| 27178
|
|
| 27179
|
|
| 27180
|
|
| 27341
|
|
| 27342
|
|
| 27343
|
|
| 27344
|
|
| 27345
|
|
| 27346
|
|
| 27347
|
|
| 27348
|
|
| 27349
|
|
| 27350
|
|
| 27351
|
|
| 27352
|
|
| 27353
|
|
| 27354
|
|
| 27355
|
|
| 27356
|
|
| 27357
|
|
| 27358
|
|
| 27359
|
|
| 27360
|
|
| 27361
|
|
| 27362
|
|
| 27363
|
|
| 27364
|
|
| 27365
|
|
| 27366
|
|
| 27367
|
|
| 27368
|
|
| 27369
|
|
| 27370
|
|
| 27371
|
|
| 27372
|
|
| 27373
|
|
| 27374
|
|
| 27375
|
|
| 27376
|
|
| 27377
|
|
| 27378
|
|
| 27379
|
|
| 27380
|
|
| 27381
|
|
| 27382
|
|
| 27383
|
|
| 27384
|
|
| 27385
|
|
| 27386
|
|
| 27387
|
|
| 27388
|
|
| 27389
|
|
| 27390
|
|
| 27391
|
|
| 27392
|
|
| 27393
|
|
| 27394
|
|
| 27395
|
|
| 27396
|
|
| 27397
|
|
| 27398
|
|
| 27399
|
|
| 27400
|
|
| 27401
|
|
| 27402
|
|
| 27403
|
|
| 27404
|
|
| 27405
|
|
| 27406
|
|
| 27407
|
|
| 27408
|
|
| 27409
|
|
| 27410
|
|
| 27411
|
|
| 27412
|
|
| 27533
|
|
| 27534
|
|
| 27535
|
|
| 27536
|
|
| 27537
|
|
| 27538
|
|
| 27539
|
|
| 27540
|
|
| 27541
|
|
| 27542
|
|
| 27543
|
|
| 27544
|
|
| 27545
|
|
| 27546
|
|
| 27547
|
|
| 27548
|
|
| 27549
|
|
| 27550
|
|
| 27551
|
|
| 27552
|
|
| 27554
|
|
| 27555
|
|
| 27556
|
|
| 27557
|
|
| 27558
|
|
| 27559
|
|
| 27560
|
|
| 27561
|
|
| 27562
|
|
| 27563
|
|
| 27564
|
|
| 27565
|
|
| 27566
|
|
| 27567
|
|
| 27568
|
|
| 27569
|
|
| 27570
|
|
| 27571
|
|
| 27572
|
|
| 27573
|
|
| 27574
|
|
| 27575
|
|
| 27576
|
|
| 27577
|
|
| 27578
|
|
| 27579
|
|
| 27580
|
|
| 27581
|
|
| 27582
|
|
| 27583
|
|
| 27584
|
|
| 27585
|
|
| 27586
|
|
| 27587
|
|
| 27588
|
|
| 27589
|
|
| 27590
|
|
| 27591
|
|
| 27592
|
|
| 27593
|
|
| 27594
|
|
| 27595
|
|
| 27596
|
|
| 27597
|
|
| 27598
|
|
| 27599
|
|
| 27600
|
|
| 27601
|
|
| 27602
|
|
| 27603
|
|
| 29666
|
|
| 29667
|
|
| 29668
|
|
| 29669
|
|
)
|
|
}
|