Skip to content

Commit

Permalink
Add a test that covers transaction set building logic on randomized d…
Browse files Browse the repository at this point in the history
…ata.

While this is not comprehensive (and probably can't be), I think that will add increase our confidence in the upcoming tx set refactoring and might prevent accidental changes in the future.
  • Loading branch information
dmkozh committed Oct 16, 2024
1 parent 1bccbc9 commit 8c15882
Show file tree
Hide file tree
Showing 11 changed files with 536 additions and 7 deletions.
7 changes: 7 additions & 0 deletions src/herder/SurgePricingUtils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -119,9 +119,16 @@ SurgePricingPriorityQueue::TxComparator::txLessThan(
{
return cmp3 < 0;
}
#ifndef BUILD_TESTS
// break tie with pointer arithmetic
auto lx = reinterpret_cast<size_t>(tx1.get()) ^ mSeed;
auto rx = reinterpret_cast<size_t>(tx2.get()) ^ mSeed;
#else
// Sort transactions deterministically in tests in order to ensure
// reproducibility.
auto lx = tx1->getFullHash();
auto rx = tx2->getFullHash();
#endif
return lx < rx;
}

Expand Down
2 changes: 1 addition & 1 deletion src/herder/test/HerderTests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6060,4 +6060,4 @@ TEST_CASE_VERSIONS("Fair nomination win rates", "[herder]")
testWinProbabilities(sks, validators, 10000);
}
}
}
}
356 changes: 356 additions & 0 deletions src/herder/test/TxSetTests.cpp

Large diffs are not rendered by default.

5 changes: 5 additions & 0 deletions src/main/Application.h
Original file line number Diff line number Diff line change
Expand Up @@ -274,6 +274,11 @@ class Application

// Access the load generator for manual operation.
virtual LoadGenerator& getLoadGenerator() = 0;

// Returns the mutable config of the app. This is only useful for testing
// the config flags that are used in dynamic fashion (i.e. not for the app
// initialization), use with caution.
virtual Config& getMutableConfig() = 0;
#endif

// Execute any administrative commands written in the Config.COMMANDS
Expand Down
5 changes: 5 additions & 0 deletions src/main/ApplicationImpl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1266,6 +1266,11 @@ ApplicationImpl::getLoadGenerator()
}
return *mLoadGenerator;
}
Config&
ApplicationImpl::getMutableConfig()
{
return mConfig;
}
#endif

void
Expand Down
2 changes: 2 additions & 0 deletions src/main/ApplicationImpl.h
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,8 @@ class ApplicationImpl : public Application
virtual void generateLoad(GeneratedLoadConfig cfg) override;

virtual LoadGenerator& getLoadGenerator() override;

virtual Config& getMutableConfig() override;
#endif

virtual void applyCfgCommands() override;
Expand Down
10 changes: 6 additions & 4 deletions src/test/TxTests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -499,20 +499,22 @@ closeLedgerOn(Application& app, int day, int month, int year,

TransactionResultSet
closeLedger(Application& app, std::vector<TransactionFrameBasePtr> const& txs,
bool strictOrder)
bool strictOrder, xdr::xvector<UpgradeType, 6> const& upgrades)
{
auto lastCloseTime = app.getLedgerManager()
.getLastClosedLedgerHeader()
.header.scpValue.closeTime;

auto nextLedgerSeq = app.getLedgerManager().getLastClosedLedgerNum() + 1;

return closeLedgerOn(app, nextLedgerSeq, lastCloseTime, txs, strictOrder);
return closeLedgerOn(app, nextLedgerSeq, lastCloseTime, txs, strictOrder,
upgrades);
}

TransactionResultSet
closeLedgerOn(Application& app, uint32 ledgerSeq, TimePoint closeTime,
std::vector<TransactionFrameBasePtr> const& txs, bool strictOrder)
std::vector<TransactionFrameBasePtr> const& txs, bool strictOrder,
xdr::xvector<UpgradeType, 6> const& upgrades)
{
auto lastCloseTime = app.getLedgerManager()
.getLastClosedLedgerHeader()
Expand Down Expand Up @@ -560,7 +562,7 @@ closeLedgerOn(Application& app, uint32 ledgerSeq, TimePoint closeTime,
REQUIRE(txSet.second->checkValid(app, 0, 0));
}
app.getHerder().externalizeValue(txSet.first, ledgerSeq, closeTime,
emptyUpgradeSteps);
upgrades);
REQUIRE(app.getLedgerManager().getLastClosedLedgerNum() == ledgerSeq);
return getTransactionHistoryResults(app.getDatabase(), ledgerSeq);
}
Expand Down
6 changes: 4 additions & 2 deletions src/test/TxTests.h
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,8 @@ void checkLiquidityPool(Application& app, PoolID const& poolID,
TransactionResultSet
closeLedger(Application& app,
std::vector<TransactionFrameBasePtr> const& txs = {},
bool strictOrder = false);
bool strictOrder = false,
xdr::xvector<UpgradeType, 6> const& upgrades = emptyUpgradeSteps);

TransactionResultSet
closeLedgerOn(Application& app, int day, int month, int year,
Expand All @@ -97,7 +98,8 @@ closeLedgerOn(Application& app, int day, int month, int year,
TransactionResultSet
closeLedgerOn(Application& app, uint32 ledgerSeq, TimePoint closeTime,
std::vector<TransactionFrameBasePtr> const& txs = {},
bool strictOrder = false);
bool strictOrder = false,
xdr::xvector<UpgradeType, 6> const& upgrades = emptyUpgradeSteps);

TransactionResultSet closeLedger(Application& app, TxSetXDRFrameConstPtr txSet);

Expand Down
50 changes: 50 additions & 0 deletions src/testdata/txset/v_curr.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
xdr_hash,total_fees,total_inclusion_fees,classic_ops,classic_non_dex_txs,classic_non_dex_txs_base_fee,classic_dex_txs,classic_dex_txs_base_fee,soroban_ops,soroban_base_fee,insns,read_bytes,write_bytes,read_entries,write_entries,tx_size_bytes
74bb922d7df7d12b533f71952ce7be2064e00274bc35287257261319290bbc85,5400179478,244411,234,11,587,0,0,54,780,268674487,69191,120976,451,101,227812
ec5f9a255d31915b0911d776e87ffcf7b6fcaaf616751dc87ce5a74666fb5a1f,1700329868,387001,242,13,1305,0,0,33,426,77891779,19895,106509,482,27,101752
06c4686b76e0e486368b36e62b1721491524e36f0a6d7c9c48c14c00368c1f73,4300817981,1130048,359,30,1905,2,2542,86,1411,145763277,52514,72185,412,105,136616
f2825bc9ab9f76203382d354c9673d217c36ea6ae4b2dd8736f897c656dd8161,2900039197,70623,128,41,100,9,589,29,573,36151653,48442,72800,280,147,69416
b1807e6b2f92bf8ece89ef5745b6759393e235f12b129ccf764122312bf094a3,15100612788,792752,187,4,2540,1,3215,203,486,656867210,172441,170106,698,307,347716
47e2bdf196de710446492327fc8e66224f12100aff907dbce9565f931067611b,900149076,683753,474,60,255,8,636,9,1610,33495487,29305,27356,72,48,648488
c056748fbc447459aa226af70ee6d781041edf2c17f18b94bb77f3f4f085f763,3500433810,531402,263,20,1580,0,0,70,261,148145631,180369,84416,83,57,118592
7c6836cc72fd9595195f1341aaf261e673e3bba89b86438454aa0816d7211b70,4000255680,420360,456,129,490,0,0,40,806,131702703,19687,91478,142,85,441412
8931320c4cf3bac9fec4bdf564b6b60215c62cf038148ef1dc7574dfed6251df,6200352056,760982,320,8,1068,0,0,88,117,312789831,50590,126004,229,127,291396
12723bd91d0a6a525c099ab8cc5cd4262ba1b1c9efaecaaa579ba8f9d4744ba9,1400192270,360904,273,15,658,0,0,18,702,101132148,71283,17716,40,26,38008
b3247a8f30a425264792f3b10adb57eea85be79bfa84468ab2d076a649e4948c,3400183938,239547,322,49,503,3,660,43,427,79861970,19345,99746,290,97,155620
0d0a1f8a0045dc6edf48101f1c36cbe825db80e6792e3d0c2d70d9cac0752cca,6900577764,859337,435,25,1133,0,0,93,913,240994798,241449,169238,458,277,482280
2b50f39a020779911d77e7618ad8f77e64d914fbab4ffa4e53d4532818bbde74,4000326724,383170,131,3,1884,0,0,80,999,157494452,170981,99802,155,76,561236
69b75207886f266021bb889ac30470de28999e9c509ca458e09fcc9ee2393f7c,1300091878,153172,447,7,109,6,353,13,279,315790238,285007,15974,399,13,90576
dee33f9b494681310a1633b2297d7602311cc7926508626561632b0f7d371cd7,801030419,1272617,416,6,1682,25,2546,11,1081,27289804,189070,15651,39,32,41440
c0ab7d497855c2f68d04dc00df3ece006c517388c2fda58de5efe19545e1eafd,1800146760,350464,408,21,338,0,0,18,492,9380049,27120,93658,157,57,270308
fbe07f395427ae4668088412a5a3178ad0861e6961e5f45004abcaf6e4e9976f,900352911,985979,458,10,651,4,1170,11,1203,236677106,8198,13424,72,41,58968
48cb36ca76b0546404cf9255a49678b88e2eddbaf4ffdcfd7a225ffd88a9fd08,1300125636,214408,272,272,438,0,0,13,500,140494724,56118,32938,683,25,879904
e1a3558cfba2deb742cf36a7779ca64d47db241173a9d1d621f255fc5aa28a66,3201088212,1135930,479,12,2156,0,0,64,867,86858838,35932,150601,118,79,96496
49248ea8808580f5fee309d33a52b2f31c18aaeaaf158d3fd156771aa0853a3f,1801402353,1462840,414,13,3285,0,0,27,1569,277727020,222565,46453,90,54,198608
4398f613674bc81ad9a18d57c2ac1623a0cd63db2c0255cfb4140b3010e54e38,1100250788,262249,419,22,579,6,593,11,617,42318982,273395,29365,180,71,48344
bd263f0710ee002714b2f3c4ee9ba83a4de25d089f2895812ff9a935c63abab6,1000376334,499980,193,6,100,16,2259,14,1445,11121740,10922,102571,39,23,83756
30571c47b62bb60b4e82e4c3cd54f3df92835fad3f628bc83dc092e48f5308e4,700363206,382218,415,9,852,1,904,14,461,114905843,4928,143601,522,20,85752
804dfe3b3480e596dbdf0c8588b414aeaece63505981e16b0b866d2c37b80953,1000187702,394925,367,7,490,0,0,16,492,36857309,54019,12996,95,34,316908
1e3893356110659248f54d231d74797fd442bac96eaaa761d3884aca540268a3,900185160,392782,212,7,798,1,1785,9,460,21719465,18938,66257,25,12,56524
bc244198b8833f9524cf01171942ffe27c53e54b35bcf027dc4495c4360d3f40,4500395424,656744,430,17,700,4,1302,90,601,502977137,59491,181532,235,116,119892
db02a019910fee434a2b2da06825a25d8db7f876fcede42f9af26ae6aedebe9a,4400472194,521084,114,5,3476,1,3578,74,993,289929897,141955,26038,209,90,763352
ebecc609b71257c14c17e6ca39cca6db4237e448f39f8f138134455b6bd925d2,1201223316,1328726,363,4,2846,9,3480,24,714,16990621,12796,199819,65,25,557976
dfc66fdeaa5d63a6bfdfcf3f81af7c15d439a66d4caa40a911697e0f836e7ac9,3600115862,120321,219,5,474,1,482,36,326,366266526,35109,228160,132,36,111800
0035cd520bdd8ea4402700b2058b96aa14e87d4c5d7e217340b2bf47a48034cc,1000131136,305650,181,7,711,0,0,15,163,265718884,24873,14987,313,49,43096
8fe2eb80f234b34153361cca01266ed07fca3dc81a3ed5dc8f211f81661a6561,2200990296,1161624,396,12,2286,2,2858,30,1214,159935968,26835,287964,184,101,97532
930ce24f3194405a3920d3581b08ac447ac2f7e4a62237ff534e5b54de9f267a,1100199690,221193,328,11,595,0,0,15,302,17048685,15459,147798,223,60,278176
ddeb8dd0ed0497032b52019c1fc52eadef10b97d81d10abca6e9553403303d02,1800251825,453046,285,10,825,0,0,25,668,161228565,66768,27564,91,61,905980
a0d8b74b219bd611cfb3a5d34ad3e4c4b8f271ff984408faf1aac0e3e9990867,5400321860,449466,116,12,1335,3,1988,108,1377,280905100,68188,117501,657,166,369472
ed0cd0c9fab0f32652acf4318742e140246ce21b38bb4978d439e59dcdcc4121,4700306261,619799,153,4,1521,0,0,81,908,498500482,22930,51188,334,177,245504
7f67ea1fa4580f31908c1b0dd63b8141d9c0f0b1436728ef772676071aa678c7,5800200415,245989,169,19,786,27,835,78,808,430119352,104994,43990,395,161,226112
1f9bf9c855bfb5371b5e945142b65f09210aebfb184cabc3ec0e6f7ab405bb3e,1000446304,523004,162,6,2587,1,2892,20,1208,37669348,251019,12964,102,61,47508
4aaf98cb7a4c33661cb71372b95f20c6b1e4b62239286e5abc16f38182253e83,1000741560,787064,371,16,1960,0,0,20,720,15719543,6624,108207,189,88,114748
4575d645e836a34b8b313466f593a6a569579f29c3e36188b3c4bd8e7c1ad82f,7000583996,959377,341,11,1349,0,0,111,1117,302197373,82559,26536,269,70,277920
a9eeccdf700fde0b803d11b5666d7b6cd2c02501c1e3b88f1209efcaa19a339f,1900417678,466228,281,10,1382,0,0,38,772,115186137,27891,25441,531,50,136220
60835fd05899ce4bf77486e2c91874f101621984fc0100fdfa7110682f522015,1500387308,826088,241,6,1418,0,0,30,1519,73082054,61554,25833,199,32,65160
8feabbbe893cf842dd6f0a89a4b6072302c04ad269ed803f33656ecaae4e2cfc,3200098810,246393,201,32,100,13,787,52,536,53279748,128234,79235,371,51,549932
a8c373450e97e7aaeead3f9c4f68ed45edc68e267c4ed467a69a69a05a389046,1000217765,303697,163,39,1213,0,0,13,1542,37339891,176712,282695,200,88,48576
258633b2a41c2b494d802dc945f44653596002a0306a6c4776ab0501c73813a9,3800117015,229424,375,58,120,33,411,65,414,399424267,89727,66586,464,139,358236
c278d415551c9eb03a68953387dff835f890894210b877b799e6cb95b76e925c,5900058242,70768,130,7,340,0,0,59,238,161684520,141970,167584,262,100,233052
035db05d17ed704f6742c4bcfc27f2f796111def30b0754821b886d209f58b74,5000080316,104644,368,7,187,0,0,100,115,144857435,96839,228447,103,79,218772
9fddf169c39422717e6d28c276dcaaf6445af42d617d54e7aef073a2e1989a6d,5800036837,62745,185,5,139,4,148,76,139,146683529,63354,135085,604,213,568584
bf3cd35765cfca9f1073302722b267ec66961461631b27cda46811cdf8d730ed,500304506,391798,330,10,906,0,0,9,614,23173808,9906,2914,316,155,35156
6d9a81072777acb3a9fd86f3f82aa57f17f15a3034eeae1d1ecbfd6516e166b8,3200458850,858529,345,12,1178,0,0,40,1311,180643252,26000,45277,438,47,200824
50 changes: 50 additions & 0 deletions src/testdata/txset/v_next.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
xdr_hash,total_fees,total_inclusion_fees,classic_ops,classic_non_dex_txs,classic_non_dex_txs_base_fee,classic_dex_txs,classic_dex_txs_base_fee,soroban_ops,soroban_base_fee,insns,read_bytes,write_bytes,read_entries,write_entries,tx_size_bytes
74bb922d7df7d12b533f71952ce7be2064e00274bc35287257261319290bbc85,5400179478,244411,234,11,587,0,0,54,780,268674487,69191,120976,451,101,227812
ec5f9a255d31915b0911d776e87ffcf7b6fcaaf616751dc87ce5a74666fb5a1f,1700329868,387001,242,13,1305,0,0,33,426,77891779,19895,106509,482,27,101752
06c4686b76e0e486368b36e62b1721491524e36f0a6d7c9c48c14c00368c1f73,4300817981,1130048,359,30,1905,2,2542,86,1411,145763277,52514,72185,412,105,136616
f2825bc9ab9f76203382d354c9673d217c36ea6ae4b2dd8736f897c656dd8161,2900039197,70623,128,41,100,9,589,29,573,36151653,48442,72800,280,147,69416
b1807e6b2f92bf8ece89ef5745b6759393e235f12b129ccf764122312bf094a3,15100612788,792752,187,4,2540,1,3215,203,486,656867210,172441,170106,698,307,347716
47e2bdf196de710446492327fc8e66224f12100aff907dbce9565f931067611b,900149076,683753,474,60,255,8,636,9,1610,33495487,29305,27356,72,48,648488
c056748fbc447459aa226af70ee6d781041edf2c17f18b94bb77f3f4f085f763,3500433810,531402,263,20,1580,0,0,70,261,148145631,180369,84416,83,57,118592
7c6836cc72fd9595195f1341aaf261e673e3bba89b86438454aa0816d7211b70,4000255680,420360,456,129,490,0,0,40,806,131702703,19687,91478,142,85,441412
8931320c4cf3bac9fec4bdf564b6b60215c62cf038148ef1dc7574dfed6251df,6200352056,760982,320,8,1068,0,0,88,117,312789831,50590,126004,229,127,291396
12723bd91d0a6a525c099ab8cc5cd4262ba1b1c9efaecaaa579ba8f9d4744ba9,1400192270,360904,273,15,658,0,0,18,702,101132148,71283,17716,40,26,38008
b3247a8f30a425264792f3b10adb57eea85be79bfa84468ab2d076a649e4948c,3400183938,239547,322,49,503,3,660,43,427,79861970,19345,99746,290,97,155620
0d0a1f8a0045dc6edf48101f1c36cbe825db80e6792e3d0c2d70d9cac0752cca,6900577764,859337,435,25,1133,0,0,93,913,240994798,241449,169238,458,277,482280
2b50f39a020779911d77e7618ad8f77e64d914fbab4ffa4e53d4532818bbde74,4000326724,383170,131,3,1884,0,0,80,999,157494452,170981,99802,155,76,561236
69b75207886f266021bb889ac30470de28999e9c509ca458e09fcc9ee2393f7c,1300091878,153172,447,7,109,6,353,13,279,315790238,285007,15974,399,13,90576
dee33f9b494681310a1633b2297d7602311cc7926508626561632b0f7d371cd7,801030419,1272617,416,6,1682,25,2546,11,1081,27289804,189070,15651,39,32,41440
c0ab7d497855c2f68d04dc00df3ece006c517388c2fda58de5efe19545e1eafd,1800146760,350464,408,21,338,0,0,18,492,9380049,27120,93658,157,57,270308
fbe07f395427ae4668088412a5a3178ad0861e6961e5f45004abcaf6e4e9976f,900352911,985979,458,10,651,4,1170,11,1203,236677106,8198,13424,72,41,58968
48cb36ca76b0546404cf9255a49678b88e2eddbaf4ffdcfd7a225ffd88a9fd08,1300125636,214408,272,272,438,0,0,13,500,140494724,56118,32938,683,25,879904
e1a3558cfba2deb742cf36a7779ca64d47db241173a9d1d621f255fc5aa28a66,3201088212,1135930,479,12,2156,0,0,64,867,86858838,35932,150601,118,79,96496
49248ea8808580f5fee309d33a52b2f31c18aaeaaf158d3fd156771aa0853a3f,1801402353,1462840,414,13,3285,0,0,27,1569,277727020,222565,46453,90,54,198608
4398f613674bc81ad9a18d57c2ac1623a0cd63db2c0255cfb4140b3010e54e38,1100250788,262249,419,22,579,6,593,11,617,42318982,273395,29365,180,71,48344
bd263f0710ee002714b2f3c4ee9ba83a4de25d089f2895812ff9a935c63abab6,1000376334,499980,193,6,100,16,2259,14,1445,11121740,10922,102571,39,23,83756
30571c47b62bb60b4e82e4c3cd54f3df92835fad3f628bc83dc092e48f5308e4,700363206,382218,415,9,852,1,904,14,461,114905843,4928,143601,522,20,85752
804dfe3b3480e596dbdf0c8588b414aeaece63505981e16b0b866d2c37b80953,1000187702,394925,367,7,490,0,0,16,492,36857309,54019,12996,95,34,316908
1e3893356110659248f54d231d74797fd442bac96eaaa761d3884aca540268a3,900185160,392782,212,7,798,1,1785,9,460,21719465,18938,66257,25,12,56524
bc244198b8833f9524cf01171942ffe27c53e54b35bcf027dc4495c4360d3f40,4500395424,656744,430,17,700,4,1302,90,601,502977137,59491,181532,235,116,119892
db02a019910fee434a2b2da06825a25d8db7f876fcede42f9af26ae6aedebe9a,4400472194,521084,114,5,3476,1,3578,74,993,289929897,141955,26038,209,90,763352
ebecc609b71257c14c17e6ca39cca6db4237e448f39f8f138134455b6bd925d2,1201223316,1328726,363,4,2846,9,3480,24,714,16990621,12796,199819,65,25,557976
dfc66fdeaa5d63a6bfdfcf3f81af7c15d439a66d4caa40a911697e0f836e7ac9,3600115862,120321,219,5,474,1,482,36,326,366266526,35109,228160,132,36,111800
0035cd520bdd8ea4402700b2058b96aa14e87d4c5d7e217340b2bf47a48034cc,1000131136,305650,181,7,711,0,0,15,163,265718884,24873,14987,313,49,43096
8fe2eb80f234b34153361cca01266ed07fca3dc81a3ed5dc8f211f81661a6561,2200990296,1161624,396,12,2286,2,2858,30,1214,159935968,26835,287964,184,101,97532
930ce24f3194405a3920d3581b08ac447ac2f7e4a62237ff534e5b54de9f267a,1100199690,221193,328,11,595,0,0,15,302,17048685,15459,147798,223,60,278176
ddeb8dd0ed0497032b52019c1fc52eadef10b97d81d10abca6e9553403303d02,1800251825,453046,285,10,825,0,0,25,668,161228565,66768,27564,91,61,905980
a0d8b74b219bd611cfb3a5d34ad3e4c4b8f271ff984408faf1aac0e3e9990867,5400321860,449466,116,12,1335,3,1988,108,1377,280905100,68188,117501,657,166,369472
ed0cd0c9fab0f32652acf4318742e140246ce21b38bb4978d439e59dcdcc4121,4700306261,619799,153,4,1521,0,0,81,908,498500482,22930,51188,334,177,245504
7f67ea1fa4580f31908c1b0dd63b8141d9c0f0b1436728ef772676071aa678c7,5800200415,245989,169,19,786,27,835,78,808,430119352,104994,43990,395,161,226112
1f9bf9c855bfb5371b5e945142b65f09210aebfb184cabc3ec0e6f7ab405bb3e,1000446304,523004,162,6,2587,1,2892,20,1208,37669348,251019,12964,102,61,47508
4aaf98cb7a4c33661cb71372b95f20c6b1e4b62239286e5abc16f38182253e83,1000741560,787064,371,16,1960,0,0,20,720,15719543,6624,108207,189,88,114748
4575d645e836a34b8b313466f593a6a569579f29c3e36188b3c4bd8e7c1ad82f,7000583996,959377,341,11,1349,0,0,111,1117,302197373,82559,26536,269,70,277920
a9eeccdf700fde0b803d11b5666d7b6cd2c02501c1e3b88f1209efcaa19a339f,1900417678,466228,281,10,1382,0,0,38,772,115186137,27891,25441,531,50,136220
60835fd05899ce4bf77486e2c91874f101621984fc0100fdfa7110682f522015,1500387308,826088,241,6,1418,0,0,30,1519,73082054,61554,25833,199,32,65160
8feabbbe893cf842dd6f0a89a4b6072302c04ad269ed803f33656ecaae4e2cfc,3200098810,246393,201,32,100,13,787,52,536,53279748,128234,79235,371,51,549932
a8c373450e97e7aaeead3f9c4f68ed45edc68e267c4ed467a69a69a05a389046,1000217765,303697,163,39,1213,0,0,13,1542,37339891,176712,282695,200,88,48576
258633b2a41c2b494d802dc945f44653596002a0306a6c4776ab0501c73813a9,3800117015,229424,375,58,120,33,411,65,414,399424267,89727,66586,464,139,358236
c278d415551c9eb03a68953387dff835f890894210b877b799e6cb95b76e925c,5900058242,70768,130,7,340,0,0,59,238,161684520,141970,167584,262,100,233052
035db05d17ed704f6742c4bcfc27f2f796111def30b0754821b886d209f58b74,5000080316,104644,368,7,187,0,0,100,115,144857435,96839,228447,103,79,218772
9fddf169c39422717e6d28c276dcaaf6445af42d617d54e7aef073a2e1989a6d,5800036837,62745,185,5,139,4,148,76,139,146683529,63354,135085,604,213,568584
bf3cd35765cfca9f1073302722b267ec66961461631b27cda46811cdf8d730ed,500304506,391798,330,10,906,0,0,9,614,23173808,9906,2914,316,155,35156
6d9a81072777acb3a9fd86f3f82aa57f17f15a3034eeae1d1ecbfd6516e166b8,3200458850,858529,345,12,1178,0,0,40,1311,180643252,26000,45277,438,47,200824
Loading

0 comments on commit 8c15882

Please sign in to comment.