From a7ab55dc00a199b28ed24832206732fbc27272b6 Mon Sep 17 00:00:00 2001 From: Jennifer Wang Date: Wed, 18 Aug 2021 17:08:08 -0400 Subject: [PATCH 01/17] lotus v1.11.2-rc prep --- CHANGELOG.md | 113 +++++++++++++++++++++++++++++++++++++++++++++++ build/version.go | 2 +- 2 files changed, 114 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d45f06b73..15f4a576a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,118 @@ # Lotus changelog +# v1.11.2-rc1 / 2021-08-18 + +This is the first release candidate for Lotus v1.11.1 release that introduces dagstore and many deal-making and market subsystem improvements and new features along with other bug fixes. More detailed changelog will be provided later. One of the most existing new feature we are introducing is **[Dagstore](https://docs.filecoin.io/mine/lotus/dagstore/#conceptual-overview)**: +- The dagstore is a component of the markets subsystem in lotus-miner. It is a sharded store to hold large IPLD graphs efficiently, packaged as location-transparent attachable CAR files and it replaces the former Badger staging blockstore. It is designed to provide high efficiency and throughput, and minimize resource utilization during deal-making operations. +- You can read more about dagstore's concepts, terminolog and so on [here](https://docs.filecoin.io/mine/lotus/dagstore/#conceptual-overview). +- **Note**:**When you first start your lotus-miner or market subsystem with this release, a one-time/first-time dagstore migration will be triggered**. Read this [section](https://docs.filecoin.io/mine/lotus/dagstore/#first-time-migration) to learn what the process does, what to expect and how monitor it. + - That being said, few things to note: + - it is highly recommended that to **wait all ongoing data transfer to finish or cancel inbound storage deals that are still transferring**, using the `lotus-miner data-transfers cancel` command before upgrade your market nodes. Reason being the new dagstore changes attributes in the internal deal state objects, and the paths to the staging CARs were the deal data was being placed will be lost. + - Rollback Alert(from v1.11.2-rcX to any version lower): If a storage deal is initiated with M1/v1.11.2 release, it needs to get to the `StorageDealAwaitingPrecommit` state before the you can do a version rollback or the markets process may panic. + +## Changelog +- github.com/filecoin-project/lotus: + - add rice box to required binaries ([filecoin-project/lotus#7125](https://github.com/filecoin-project/lotus/pull/7125)) + - remove m1 templates and make area selection multi-optionable ([filecoin-project/lotus#7121](https://github.com/filecoin-project/lotus/pull/7121)) + - upgrade upstream dependencies. ([filecoin-project/lotus#7115](https://github.com/filecoin-project/lotus/pull/7115)) + - Remove replace directive for multihash dep (#7113) ([filecoin-project/lotus#7113](https://github.com/filecoin-project/lotus/pull/7113)) + - Update to latest FFI ([filecoin-project/lotus#7110](https://github.com/filecoin-project/lotus/pull/7110)) + - release -> master ([filecoin-project/lotus#7105](https://github.com/filecoin-project/lotus/pull/7105)) + - fix(miner): always create miner deal staging directory (#7098) ([filecoin-project/lotus#7098](https://github.com/filecoin-project/lotus/pull/7098)) + - integrate DAG store and CARv2 in deal-making (#6671) ([filecoin-project/lotus#6671](https://github.com/filecoin-project/lotus/pull/6671)) + - fix build after merging #6097. (#7096) ([filecoin-project/lotus#7096](https://github.com/filecoin-project/lotus/pull/7096)) + - feat(miner deals): create subdir to miner repo for staged deals ([filecoin-project/lotus#6853](https://github.com/filecoin-project/lotus/pull/6853)) + - Extending sectors: more practical and flexible tools ([filecoin-project/lotus#6097](https://github.com/filecoin-project/lotus/pull/6097)) + - ([filecoin-project/lotus#7088](https://github.com/filecoin-project/lotus/pull/7088)) + - Lotus release process - how we make releases ([filecoin-project/lotus#6944](https://github.com/filecoin-project/lotus/pull/6944)) + - Strict major minor version checking on v0 and v1 apis ([filecoin-project/lotus#7038](https://github.com/filecoin-project/lotus/pull/7038)) + - ([filecoin-project/lotus#7042](https://github.com/filecoin-project/lotus/pull/7042)) + - Test with latest actors version ([filecoin-project/lotus#6998](https://github.com/filecoin-project/lotus/pull/6998)) + - codecov: fix mock name ([filecoin-project/lotus#7039](https://github.com/filecoin-project/lotus/pull/7039)) + - codecov: fix regexes ([filecoin-project/lotus#7037](https://github.com/filecoin-project/lotus/pull/7037)) + - Magically increase code coverage ([filecoin-project/lotus#7036](https://github.com/filecoin-project/lotus/pull/7036)) + - fix: don't check for t_aux when proving ([filecoin-project/lotus#7011](https://github.com/filecoin-project/lotus/pull/7011)) + - Support --actor in miner actor control list ([filecoin-project/lotus#7027](https://github.com/filecoin-project/lotus/pull/7027)) + - PreCommitPolicy: Don't try to align expirations on proving period boundaries ([filecoin-project/lotus#7018](https://github.com/filecoin-project/lotus/pull/7018)) + - revert pricelist by version to pricelist by epoch ([filecoin-project/lotus#7022](https://github.com/filecoin-project/lotus/pull/7022)) + - Shed: Include network name in genesis-verify ([filecoin-project/lotus#7019](https://github.com/filecoin-project/lotus/pull/7019)) + - Dont panic if input is bad ([filecoin-project/lotus#7007](https://github.com/filecoin-project/lotus/pull/7007)) + - Reduce splitstore memory usage during chain walks ([filecoin-project/lotus#6949](https://github.com/filecoin-project/lotus/pull/6949)) + - fix: vet actors shims ([filecoin-project/lotus#6999](https://github.com/filecoin-project/lotus/pull/6999)) + - fix: more logging in maybeStartBatch error ([filecoin-project/lotus#6996](https://github.com/filecoin-project/lotus/pull/6996)) + - fix flaky TestDealPublisher and re-enable ([filecoin-project/lotus#6991](https://github.com/filecoin-project/lotus/pull/6991)) + - feat: add ChainGetTipSetAfterHeight ([filecoin-project/lotus#6990](https://github.com/filecoin-project/lotus/pull/6990)) + - Remove forgotten non-functioning config from the pre-mainnet days ([filecoin-project/lotus#6970](https://github.com/filecoin-project/lotus/pull/6970)) + - lotus-shed splitstore clear command ([filecoin-project/lotus#6967](https://github.com/filecoin-project/lotus/pull/6967)) + - add explicit error msg if repo dir does not exist ([filecoin-project/lotus#6909](https://github.com/filecoin-project/lotus/pull/6909)) + - update go-libp2p-pubsub to v0.5.4 ([filecoin-project/lotus#6958](https://github.com/filecoin-project/lotus/pull/6958)) + - chore: disable flaky test ([filecoin-project/lotus#6957](https://github.com/filecoin-project/lotus/pull/6957)) + - Test/pledge batching msg prop ([filecoin-project/lotus#6537](https://github.com/filecoin-project/lotus/pull/6537)) + - set buildtype in nerpa and butterfly ([filecoin-project/lotus#6085](https://github.com/filecoin-project/lotus/pull/6085)) + - reasonable max value for initial sector expiration ([filecoin-project/lotus#6099](https://github.com/filecoin-project/lotus/pull/6099)) + - fix skipCount ([filecoin-project/lotus#6940](https://github.com/filecoin-project/lotus/pull/6940)) + - fix bug in MpoolPending message exclusion ([filecoin-project/lotus#6945](https://github.com/filecoin-project/lotus/pull/6945)) + - Improve formatting of workers CLI ([filecoin-project/lotus#6942](https://github.com/filecoin-project/lotus/pull/6942)) + - support MARKETS_API_INFO env var, and markets-repo, markets-api-url CLI flags. ([filecoin-project/lotus#6936](https://github.com/filecoin-project/lotus/pull/6936)) + - Update state machine deps for logging ([filecoin-project/lotus#6941](https://github.com/filecoin-project/lotus/pull/6941)) + - Update deps for more logging in data transfer and markets ([filecoin-project/lotus#6937](https://github.com/filecoin-project/lotus/pull/6937)) + - release v1.11.1 backport -> master ([filecoin-project/lotus#6929](https://github.com/filecoin-project/lotus/pull/6929)) + - make: set default GOCC earlier ([filecoin-project/lotus#6932](https://github.com/filecoin-project/lotus/pull/6932)) + - Moving GC Followup ([filecoin-project/lotus#6905](https://github.com/filecoin-project/lotus/pull/6905)) + - PR #5109 + suggested fix ([filecoin-project/lotus#6927](https://github.com/filecoin-project/lotus/pull/6927)) + - Log more call context during errors ([filecoin-project/lotus#6918](https://github.com/filecoin-project/lotus/pull/6918)) + - make: fix version check when using gotip ([filecoin-project/lotus#6916](https://github.com/filecoin-project/lotus/pull/6916)) + - polish(errors): better state tree errors ([filecoin-project/lotus#6923](https://github.com/filecoin-project/lotus/pull/6923)) + - Update to branches with improved logging ([filecoin-project/lotus#6919](https://github.com/filecoin-project/lotus/pull/6919)) + - adding an RuntimeSubsystems API to storage miner; fix `lotus-miner info` ([filecoin-project/lotus#6906](https://github.com/filecoin-project/lotus/pull/6906)) + - fix ticket check ([filecoin-project/lotus#6882](https://github.com/filecoin-project/lotus/pull/6882)) + - update go-libp2p-pubsub to v0.5.3 ([filecoin-project/lotus#6907](https://github.com/filecoin-project/lotus/pull/6907)) + - Configurable CC Sector Expiration ([filecoin-project/lotus#6803](https://github.com/filecoin-project/lotus/pull/6803)) + - Drop townhall/chainwatch ([filecoin-project/lotus#6912](https://github.com/filecoin-project/lotus/pull/6912)) + - make: Allow setting Go compiler with GOCC ([filecoin-project/lotus#6911](https://github.com/filecoin-project/lotus/pull/6911)) + - chore: fixup issue templates ([filecoin-project/lotus#6899](https://github.com/filecoin-project/lotus/pull/6899)) + - bump master version to v1.11.2-dev ([filecoin-project/lotus#6903](https://github.com/filecoin-project/lotus/pull/6903)) + - releases -> master for v1.11.0 ([filecoin-project/lotus#6894](https://github.com/filecoin-project/lotus/pull/6894)) + - Reduce entropy in the chain package ([filecoin-project/lotus#6889](https://github.com/filecoin-project/lotus/pull/6889)) +- github.com/filecoin-project/go-data-transfer (v1.7.2 -> v1.7.3): + - Simplify graphsync cancel (#229) ([filecoin-project/go-data-transfer#229](https://github.com/filecoin-project/go-data-transfer/pull/229)) +- github.com/filecoin-project/go-fil-markets (v1.6.2 -> v1.8.0): + - release: v1.8.0. (#605) ([filecoin-project/go-fil-markets#605](https://github.com/filecoin-project/go-fil-markets/pull/605)) + - Revert "refactor: pass deal proposal instead of deal ID to OnDealExpiredOrSlashed (#476)" (#604) ([filecoin-project/go-fil-markets#604](https://github.com/filecoin-project/go-fil-markets/pull/604)) + - migrate to DAG store + CARv2 blockstores for storage and retrieval (#576) ([filecoin-project/go-fil-markets#576](https://github.com/filecoin-project/go-fil-markets/pull/576)) + - release: 1.7.0 (#597) ([filecoin-project/go-fil-markets#597](https://github.com/filecoin-project/go-fil-markets/pull/597)) + - refactor: pass deal proposal instead of deal ID to OnDealExpiredOrSlashed (#476) ([filecoin-project/go-fil-markets#476](https://github.com/filecoin-project/go-fil-markets/pull/476)) + +## Contributors + +| Contributor | Commits | Lines ± | Files Changed | +|-------------|---------|---------|---------------| +| Łukasz Magiera | 15 | +3695/-8102 | 83 | +| raulk | 4 | +4169/-1661 | 103 | +| Aarsh Shah | 3 | +4729/-1025 | 86 | +| vyzo | 30 | +1092/-702 | 49 | +| Anton Evangelatov | 6 | +630/-472 | 19 | +| He Weidong | 16 | +680/-128 | 16 | +| Raúl Kripalani | 15 | +441/-275 | 47 | +| ZenGround0 | 20 | +466/-212 | 63 | +| Steven Allen | 11 | +403/-259 | 48 | +| Jennifer Wang | 7 | +109/-249 | 20 | +| dirkmc | 3 | +148/-114 | 17 | +| Mike Greenberg | 7 | +178/-77 | 17 | +| Dragan Z | 1 | +138/-0 | 1 | +| Frrist | 1 | +63/-56 | 2 | +| Aayush Rajasekaran | 5 | +62/-38 | 11 | +| frrist | 2 | +67/-6 | 6 | +| hannahhoward | 2 | +13/-11 | 3 | +| Cory Schwartz | 1 | +16/-6 | 3 | +| whyrusleeping | 1 | +7/-7 | 1 | +| hunjixin | 1 | +8/-6 | 1 | +| aarshkshah1992 | 1 | +6/-6 | 2 | +| mx | 2 | +6/-1 | 2 | +| Travis Person | 1 | +3/-2 | 1 | +| Peter Rabbitson | 1 | +1/-2 | 2 | +| Jiaying Wang | 1 | +1/-1 | 1 | + # 1.11.1 / 2021-08-16 > Note: for discussion about this release, please comment [here](https://github.com/filecoin-project/lotus/discussions/6904) diff --git a/build/version.go b/build/version.go index 5fe979cc2..dab322d60 100644 --- a/build/version.go +++ b/build/version.go @@ -40,7 +40,7 @@ func buildType() string { } // BuildVersion is the local build version -const BuildVersion = "1.11.2-dev" +const BuildVersion = "1.11.2-rc1" func UserVersion() string { if os.Getenv("LOTUS_VERSION_IGNORE_COMMIT") == "1" { From 1858c0e290defc31b651a462992813e60ceb71a3 Mon Sep 17 00:00:00 2001 From: Jennifer Wang Date: Wed, 18 Aug 2021 17:44:16 -0400 Subject: [PATCH 02/17] fix docsgen --- CHANGELOG.md | 5 +++-- build/openrpc/full.json.gz | Bin 25412 -> 25412 bytes build/openrpc/miner.json.gz | Bin 10375 -> 10375 bytes build/openrpc/worker.json.gz | Bin 2711 -> 2710 bytes documentation/en/cli-lotus-miner.md | 2 +- documentation/en/cli-lotus-worker.md | 2 +- documentation/en/cli-lotus.md | 2 +- 7 files changed, 6 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 15f4a576a..f4a0cd15a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,14 +2,15 @@ # v1.11.2-rc1 / 2021-08-18 -This is the first release candidate for Lotus v1.11.1 release that introduces dagstore and many deal-making and market subsystem improvements and new features along with other bug fixes. More detailed changelog will be provided later. One of the most existing new feature we are introducing is **[Dagstore](https://docs.filecoin.io/mine/lotus/dagstore/#conceptual-overview)**: +This is the first release candidate for Lotus v1.11.1 release that introduces dagstore and many deal-making and market subsystem improvements and new features along with other bug fixes. More detailed changelog will be provided later. One of the most existing new feature we are introducing is **[Experimental Dagstore](https://docs.filecoin.io/mine/lotus/dagstore/#conceptual-overview)**: - The dagstore is a component of the markets subsystem in lotus-miner. It is a sharded store to hold large IPLD graphs efficiently, packaged as location-transparent attachable CAR files and it replaces the former Badger staging blockstore. It is designed to provide high efficiency and throughput, and minimize resource utilization during deal-making operations. - You can read more about dagstore's concepts, terminolog and so on [here](https://docs.filecoin.io/mine/lotus/dagstore/#conceptual-overview). - **Note**:**When you first start your lotus-miner or market subsystem with this release, a one-time/first-time dagstore migration will be triggered**. Read this [section](https://docs.filecoin.io/mine/lotus/dagstore/#first-time-migration) to learn what the process does, what to expect and how monitor it. - That being said, few things to note: - it is highly recommended that to **wait all ongoing data transfer to finish or cancel inbound storage deals that are still transferring**, using the `lotus-miner data-transfers cancel` command before upgrade your market nodes. Reason being the new dagstore changes attributes in the internal deal state objects, and the paths to the staging CARs were the deal data was being placed will be lost. - Rollback Alert(from v1.11.2-rcX to any version lower): If a storage deal is initiated with M1/v1.11.2 release, it needs to get to the `StorageDealAwaitingPrecommit` state before the you can do a version rollback or the markets process may panic. - +- There are a few known bugs that we are actively working on and will be fixed in v1.11.2-rc2. + ## Changelog - github.com/filecoin-project/lotus: - add rice box to required binaries ([filecoin-project/lotus#7125](https://github.com/filecoin-project/lotus/pull/7125)) diff --git a/build/openrpc/full.json.gz b/build/openrpc/full.json.gz index ba509bb515071e0da2a539c72be00e22e9efe12a..186e489881860a126ac349aa7cc6b871c2710047 100644 GIT binary patch literal 25412 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 diff --git a/build/openrpc/miner.json.gz b/build/openrpc/miner.json.gz index 69585cbd40b58ec76ac0cb3d553abe1a50b194d1..508e1b84ee2fe95620c1e0764492ecd546c6e36c 100644 GIT binary patch delta 23 fcmZn?Lh4!0tAebgvJa;6h7d zn~g-OB$dPs{J$S4$(CeEw&>VB#}O9rMihsfA?M@A5h=Z5?gJCPjr+LW=rm5Sg((|y z+<(Q2Di?4cf95KX=;rzYeY(EF7JdRDDQ6)?yWQv<3A>G_7WP1mxg&A^`zvO|)1*IB z7i>;hZ_=Uhlhs|zhlFI+2}x`AAaZJ5yY($fvpbFjO@T~A)7M= zFRF17{cj<^jilm&jG%D~w&LOjh8FTW==(hx(8f3B6UTw5fm`|)Sjg|9vOB$bTbD$U zLv)}o>5$maxFD{3b!j0Gf{R1+ddKb*9U|GdVhRK!?p!+bz@{1gJnT^aF$E zTyuvO`bmhdT-^q~&xHa<(@gbGOjgkTf#1?%Yaz8Tn(f0oHoapH4-eSFGVnYiCb*B2 z-lFl;eabtAE$kCPyl8j>p{HmtIr6!r;dI2eGgIidb90s(^-SOT!XAT1v<|@w@q8De z7OyUK(HF`<;C{Q+YFYSe;0^TE`P9PKg7e{T6CZH@YuJK`>blc;2_O6cw!&GV3>x@8YvF!sVF7;zRDgr~ zN(7)M!xvx^rAtELrdBdro!o4dSVN^bV}a}5TbL?{l_DoWwy$Wc5S56a1tGuBXzumg z&dP`oWMVF5H`lYFjO)me8kcsf)4MN_%utM8scC5^RL!c&Ek!d>iKBa6Nd~UcZO6PV z`l~`t7b;Zo0g=yG>IbwjZ7OI^j4 zBORYwDcN_=Q?2cK@@3jmqQG^@?Shg1g{pBdKmt6j0J)SsVhabt#eF45AK{R3pSRi4gIP@FD_#(U4!sG@gE?jNjT1!%XQPTlo z?_8C7y<%1R8I(OXRHTr`49zBvHY(TsYd{gg+2rOmQRBF{mn!~bhr|AbJ75TELsqwi zXlLV44bIlM^#kJ8GQHm(sM`Rd%LCKAg;vr!EP=R`jc|%7sYF<^8JL;#57qec_!F$n zRE;!iq`7ZM^Z2*~9#BSH`WM7=VTcnl#HQ)5S@{iNBjd22>3M7Me^I^}5U2sbP8jJf z0DuKOUN2!~Ftoo8hZ0n^u?@3JYYxns>90C=*0FQnV&}<8aqPTeLv9!`HA!)PX7OQ& zuDL7%>id=AUecUV?29?wO8TaVxg|~^Q>lt$_!pOI-jxRa=!v+2_RUu##s%Df1PY43SRLS@UF)bNp0fdey?Ncg4<`}&o6F3f_Tz8stYczzscyYU&6n%bDtV|lZ4^d znK8vHmT3Xc^E$K4)pS7ugPtSqt9XQ8;+k`xmt%C%M`Z@GN*9^2tw<2fOzoz6r>CdI zZt4qvg4+nA7<#J|T_L?-Y>O1$_U05_~oEuA%q7#k8}t;+S?# z)L0ruvyi43d`F9Tkc~JL=&H*CQ`pp!kW|#3QCOPsx)u0c#9c{VBUfp=$&CxbZXrgC zIf$!oYL<%cMqVL@Nk4O&xFPRFcYg;u8dplDY%oQ#tG0H2USey4+aTpFNEs=Yk)sRsMGlNZ8;XqHnha{=B=3-+#;XFmKPD~;35cfxQBE{h!4?oC^eE1y@f`=KKy~M`N z%yzpLV5sj!zVd6}=Jy%Lg{g$!9L>7!J2$Rwr`Wjks{Dd`9#whmS#Dt|N;6OzDJ5}l z!u1maDd$JyLYpDBqEC>k(Tfk(g~w~6hp7JXLKhd*k%k~QCC0V@Zg!*=_Z(|6YM{Fl z5p@@UZr(cf@Tgp=oxf{Y^BbKPJl57%En!a=amF+rl+YnFg{~Z6iVkU7laqw$|6vW2 z8oA>YPD}gsie77;X6e7;rgoTQIOz=jA~uljvvkHMlP>9=s6kggg6IFiU;gxi3HSUz z2Hp@R!)|X#yTRln2%y(_>P2gSO}1y~DwEF5<}*DECX|~5S@nXnUXZ?L%-kzE#F^l^ zeE6=4nLFnDZggo3BYzFl+Az1XeVE&+bGW-^o4WvQ^Gf{w;9ec)>NvM=aqhU}gt>O; z*87F_k?u7mBLM+_-G*6xSs8K|XB0dm`I4L=Z zo{5O-ESMAG_14TuI9_krob>;dZcbDw;OB#6Vj=u~mOLqMw9ePAON~FdxvkD>+ME9CA>u8{_Tp=|k`iDv+ zK`F{ccg!Obq{t&6f`;&nB-ore5-EL#?{n|$ zyyVbiynXbO&o}c)88B)Jamo1FvEiYLbuV~(A!JL+)*brtl(9vDcYIOlcFD`iVLU@G~xfxkq zze>VwW>;EEXQtJE4Y$1dMCn1f&g7dKKdekp?RV#xl`aDkk+@;cM!g6M@#qT@yTHUiv zeBxt2moEY*T+IqJBzQKc$SI=5fhsme`gJVP;HKyhNM3hjN$~ zS6Kq_;u=QCF5zk`@7F6Es-%2NQMB9ccFxw0qdTgQCnej?eLN7;0f-1dEP6^Okq8(IpY6R-V?SIn>hu^-r}xwU Q1pom5|GgF%QdxQc08!vo=Kufz literal 2711 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 R{|f*B|NkKFMtfO$001cYUJw8P diff --git a/documentation/en/cli-lotus-miner.md b/documentation/en/cli-lotus-miner.md index 80178c8a7..43bd34712 100644 --- a/documentation/en/cli-lotus-miner.md +++ b/documentation/en/cli-lotus-miner.md @@ -7,7 +7,7 @@ USAGE: lotus-miner [global options] command [command options] [arguments...] VERSION: - 1.11.2-dev + 1.11.2-rc1 COMMANDS: init Initialize a lotus miner repo diff --git a/documentation/en/cli-lotus-worker.md b/documentation/en/cli-lotus-worker.md index a06ad0fff..7a85f5353 100644 --- a/documentation/en/cli-lotus-worker.md +++ b/documentation/en/cli-lotus-worker.md @@ -7,7 +7,7 @@ USAGE: lotus-worker [global options] command [command options] [arguments...] VERSION: - 1.11.2-dev + 1.11.2-rc1 COMMANDS: run Start lotus worker diff --git a/documentation/en/cli-lotus.md b/documentation/en/cli-lotus.md index b8cf6230a..f67e38155 100644 --- a/documentation/en/cli-lotus.md +++ b/documentation/en/cli-lotus.md @@ -7,7 +7,7 @@ USAGE: lotus [global options] command [command options] [arguments...] VERSION: - 1.11.2-dev + 1.11.2-rc1 COMMANDS: daemon Start a lotus daemon process From 151cd76f75eed22b44baea9ad23df1397491bb7d Mon Sep 17 00:00:00 2001 From: Jiaying Wang <42981373+jennijuju@users.noreply.github.com> Date: Wed, 18 Aug 2021 18:06:43 -0400 Subject: [PATCH 03/17] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f4a0cd15a..ebd7b53b8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ # v1.11.2-rc1 / 2021-08-18 -This is the first release candidate for Lotus v1.11.1 release that introduces dagstore and many deal-making and market subsystem improvements and new features along with other bug fixes. More detailed changelog will be provided later. One of the most existing new feature we are introducing is **[Experimental Dagstore](https://docs.filecoin.io/mine/lotus/dagstore/#conceptual-overview)**: +This is the first release candidate for Lotus v1.11.1 release that introduces dagstore and many deal-making and market subsystem improvements and new features along with other bug fixes. More detailed changelog will be provided later. One of the most existing new feature we are introducing is **[Dagstore](https://docs.filecoin.io/mine/lotus/dagstore/#conceptual-overview)**: - The dagstore is a component of the markets subsystem in lotus-miner. It is a sharded store to hold large IPLD graphs efficiently, packaged as location-transparent attachable CAR files and it replaces the former Badger staging blockstore. It is designed to provide high efficiency and throughput, and minimize resource utilization during deal-making operations. - You can read more about dagstore's concepts, terminolog and so on [here](https://docs.filecoin.io/mine/lotus/dagstore/#conceptual-overview). - **Note**:**When you first start your lotus-miner or market subsystem with this release, a one-time/first-time dagstore migration will be triggered**. Read this [section](https://docs.filecoin.io/mine/lotus/dagstore/#first-time-migration) to learn what the process does, what to expect and how monitor it. From 80624845c4799a826b2930c1bf15fd777ffe25ec Mon Sep 17 00:00:00 2001 From: Aayush Rajasekaran Date: Mon, 23 Aug 2021 10:47:44 -0400 Subject: [PATCH 04/17] Apply suggestions from code review Co-authored-by: Jacob Heun --- CHANGELOG.md | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ebd7b53b8..b77855b60 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,18 +1,26 @@ # Lotus changelog -# v1.11.2-rc1 / 2021-08-18 +# v1.11.2-rc1 / 2021-08-23 -This is the first release candidate for Lotus v1.11.1 release that introduces dagstore and many deal-making and market subsystem improvements and new features along with other bug fixes. More detailed changelog will be provided later. One of the most existing new feature we are introducing is **[Dagstore](https://docs.filecoin.io/mine/lotus/dagstore/#conceptual-overview)**: +This is the first release candidate for Lotus v1.11.2 release that introduces dagstore and many deal-making and market subsystem improvements and new features along with other bug fixes. More detailed changelog will be provided later. One of the most existing new feature we are introducing is **[Dagstore](https://docs.filecoin.io/mine/lotus/dagstore/#conceptual-overview)**: - The dagstore is a component of the markets subsystem in lotus-miner. It is a sharded store to hold large IPLD graphs efficiently, packaged as location-transparent attachable CAR files and it replaces the former Badger staging blockstore. It is designed to provide high efficiency and throughput, and minimize resource utilization during deal-making operations. - You can read more about dagstore's concepts, terminolog and so on [here](https://docs.filecoin.io/mine/lotus/dagstore/#conceptual-overview). - **Note**:**When you first start your lotus-miner or market subsystem with this release, a one-time/first-time dagstore migration will be triggered**. Read this [section](https://docs.filecoin.io/mine/lotus/dagstore/#first-time-migration) to learn what the process does, what to expect and how monitor it. - That being said, few things to note: - - it is highly recommended that to **wait all ongoing data transfer to finish or cancel inbound storage deals that are still transferring**, using the `lotus-miner data-transfers cancel` command before upgrade your market nodes. Reason being the new dagstore changes attributes in the internal deal state objects, and the paths to the staging CARs were the deal data was being placed will be lost. + - it is highly recommended to **wait all ongoing data transfer to finish or cancel inbound storage deals that are still transferring**, using the `lotus-miner data-transfers cancel` command before upgrade your market nodes. Reason being that the new dagstore changes attributes in the internal deal state objects, and the paths to the staging CARs where the deal data was being placed will be lost. - Rollback Alert(from v1.11.2-rcX to any version lower): If a storage deal is initiated with M1/v1.11.2 release, it needs to get to the `StorageDealAwaitingPrecommit` state before the you can do a version rollback or the markets process may panic. - There are a few known bugs that we are actively working on and will be fixed in v1.11.2-rc2. ## Changelog - github.com/filecoin-project/lotus: + - Update markets, dt and graphsync ([filecoin-project/lotus#7160](https://github.com/filecoin-project/lotus/pull/7160)) + - sealing: Fix RecoverDealIDs loop with changed PieceCID ([filecoin-project/lotus#7117](https://github.com/filecoin-project/lotus/pull/7117)) + - api/command for encoding actor params ([filecoin-project/lotus#7150](https://github.com/filecoin-project/lotus/pull/7150)) + - Fix nits and see if codecov works now with auto ([filecoin-project/lotus#7151](https://github.com/filecoin-project/lotus/pull/7151)) + - Codecov Projects ([filecoin-project/lotus#7147](https://github.com/filecoin-project/lotus/pull/7147)) + - shed: Support raw encoding in cid id ([filecoin-project/lotus#7149](https://github.com/filecoin-project/lotus/pull/7149)) + - rpcenc: Support reader redirect ([filecoin-project/lotus#6952](https://github.com/filecoin-project/lotus/pull/6952)) + - Fix error handling in SectorAddPieceToAny api impl ([filecoin-project/lotus#7135](https://github.com/filecoin-project/lotus/pull/7135)) - add rice box to required binaries ([filecoin-project/lotus#7125](https://github.com/filecoin-project/lotus/pull/7125)) - remove m1 templates and make area selection multi-optionable ([filecoin-project/lotus#7121](https://github.com/filecoin-project/lotus/pull/7121)) - upgrade upstream dependencies. ([filecoin-project/lotus#7115](https://github.com/filecoin-project/lotus/pull/7115)) From 371e90a40a288ef11b77b3e1f14e5f58cd26aa82 Mon Sep 17 00:00:00 2001 From: Aayush Rajasekaran Date: Mon, 23 Aug 2021 13:23:28 -0400 Subject: [PATCH 05/17] Fix typos --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b77855b60..2292fda7c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ # v1.11.2-rc1 / 2021-08-23 -This is the first release candidate for Lotus v1.11.2 release that introduces dagstore and many deal-making and market subsystem improvements and new features along with other bug fixes. More detailed changelog will be provided later. One of the most existing new feature we are introducing is **[Dagstore](https://docs.filecoin.io/mine/lotus/dagstore/#conceptual-overview)**: +This is the first release candidate for Lotus v1.11.2 release that introduces dagstore and many deal-making and market subsystem improvements and new features along with other bug fixes. More detailed changelog will be provided later. One of the most exciting new features we are introducing is **[Dagstore](https://docs.filecoin.io/mine/lotus/dagstore/#conceptual-overview)**: - The dagstore is a component of the markets subsystem in lotus-miner. It is a sharded store to hold large IPLD graphs efficiently, packaged as location-transparent attachable CAR files and it replaces the former Badger staging blockstore. It is designed to provide high efficiency and throughput, and minimize resource utilization during deal-making operations. - You can read more about dagstore's concepts, terminolog and so on [here](https://docs.filecoin.io/mine/lotus/dagstore/#conceptual-overview). - **Note**:**When you first start your lotus-miner or market subsystem with this release, a one-time/first-time dagstore migration will be triggered**. Read this [section](https://docs.filecoin.io/mine/lotus/dagstore/#first-time-migration) to learn what the process does, what to expect and how monitor it. From c3e12a69cce65b5c97ce3f2758b61e5d44723ec6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Kripalani?= Date: Fri, 27 Aug 2021 20:50:16 +0100 Subject: [PATCH 06/17] upgrade go-data-transfer; propagate deal cancellations. --- go.mod | 2 +- go.sum | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index f73511574..8413508b0 100644 --- a/go.mod +++ b/go.mod @@ -33,7 +33,7 @@ require ( github.com/filecoin-project/go-cbor-util v0.0.0-20191219014500-08c40a1e63a2 github.com/filecoin-project/go-commp-utils v0.1.1-0.20210427191551-70bf140d31c7 github.com/filecoin-project/go-crypto v0.0.0-20191218222705-effae4ea9f03 - github.com/filecoin-project/go-data-transfer v1.7.6 + github.com/filecoin-project/go-data-transfer v1.7.8 github.com/filecoin-project/go-fil-commcid v0.1.0 github.com/filecoin-project/go-fil-commp-hashhash v0.1.0 github.com/filecoin-project/go-fil-markets v1.8.1 diff --git a/go.sum b/go.sum index f16a81a9f..1e93c4cd2 100644 --- a/go.sum +++ b/go.sum @@ -280,8 +280,9 @@ github.com/filecoin-project/go-commp-utils v0.1.1-0.20210427191551-70bf140d31c7/ github.com/filecoin-project/go-crypto v0.0.0-20191218222705-effae4ea9f03 h1:2pMXdBnCiXjfCYx/hLqFxccPoqsSveQFxVLvNxy9bus= github.com/filecoin-project/go-crypto v0.0.0-20191218222705-effae4ea9f03/go.mod h1:+viYnvGtUTgJRdy6oaeF4MTFKAfatX071MPDPBL11EQ= github.com/filecoin-project/go-data-transfer v1.0.1/go.mod h1:UxvfUAY9v3ub0a21BSK9u3pB2aq30Y0KMsG+w9/ysyo= -github.com/filecoin-project/go-data-transfer v1.7.6 h1:QmAJwzjVxbvBDmYeGWnzE6aL+gjWpCmAAlBAF0YEbnE= github.com/filecoin-project/go-data-transfer v1.7.6/go.mod h1:Cbl9lzKOuAyyIxp1tE+VbV5Aix4bxzA7uJGA9wGM4fM= +github.com/filecoin-project/go-data-transfer v1.7.8 h1:s4cF9nX9sEy7RgZd3NW92YN/hKyIy2fQl+7dVOAS8r8= +github.com/filecoin-project/go-data-transfer v1.7.8/go.mod h1:Cbl9lzKOuAyyIxp1tE+VbV5Aix4bxzA7uJGA9wGM4fM= github.com/filecoin-project/go-ds-versioning v0.1.0 h1:y/X6UksYTsK8TLCI7rttCKEvl8btmWxyFMEeeWGUxIQ= github.com/filecoin-project/go-ds-versioning v0.1.0/go.mod h1:mp16rb4i2QPmxBnmanUx8i/XANp+PFCCJWiAb+VW4/s= github.com/filecoin-project/go-fil-commcid v0.0.0-20200716160307-8f644712406f/go.mod h1:Eaox7Hvus1JgPrL5+M3+h7aSPHc0cVqpSxA+TxIEpZQ= From 37c9c397d3333434a9f36f5558086e0abb066acd Mon Sep 17 00:00:00 2001 From: Jennifer Wang Date: Mon, 30 Aug 2021 18:52:16 -0400 Subject: [PATCH 07/17] update ffi to b4e4271db8f6e961934cd6ffff44fda3c610b9c0 per #7207 --- extern/filecoin-ffi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extern/filecoin-ffi b/extern/filecoin-ffi index 6e901ee3d..b4e4271db 160000 --- a/extern/filecoin-ffi +++ b/extern/filecoin-ffi @@ -1 +1 @@ -Subproject commit 6e901ee3dd5399f5aa3395d48f7d9540b661b944 +Subproject commit b4e4271db8f6e961934cd6ffff44fda3c610b9c0 From 8385f1d2a1b8d4f66377f45987665f65582bf691 Mon Sep 17 00:00:00 2001 From: Jennifer Wang Date: Mon, 30 Aug 2021 18:54:15 -0400 Subject: [PATCH 08/17] bump the version --- build/version.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/version.go b/build/version.go index dab322d60..fceb287b6 100644 --- a/build/version.go +++ b/build/version.go @@ -40,7 +40,7 @@ func buildType() string { } // BuildVersion is the local build version -const BuildVersion = "1.11.2-rc1" +const BuildVersion = "1.11.2-rc2" func UserVersion() string { if os.Getenv("LOTUS_VERSION_IGNORE_COMMIT") == "1" { From f44ba404503d1c2b5bc33fc0bd6d5ac09471af09 Mon Sep 17 00:00:00 2001 From: Jennifer Wang Date: Mon, 30 Aug 2021 18:58:25 -0400 Subject: [PATCH 09/17] update the changelog --- CHANGELOG.md | 55 ++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 38 insertions(+), 17 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2292fda7c..b63e7e098 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,24 +2,32 @@ # v1.11.2-rc1 / 2021-08-23 -This is the first release candidate for Lotus v1.11.2 release that introduces dagstore and many deal-making and market subsystem improvements and new features along with other bug fixes. More detailed changelog will be provided later. One of the most exciting new features we are introducing is **[Dagstore](https://docs.filecoin.io/mine/lotus/dagstore/#conceptual-overview)**: +This is the second release candidate for Lotus v1.11.2 release that includes a proof patch for v1.11.2-rc1. +lotus v1.11.2 introduces dagstore and many deal-making and market subsystem improvements and new features along with other bug fixes. More detailed changelog will be provided later. One of the most exciting new features we are introducing is **[Dagstore](https://docs.filecoin.io/mine/lotus/dagstore/#conceptual-overview)**: - The dagstore is a component of the markets subsystem in lotus-miner. It is a sharded store to hold large IPLD graphs efficiently, packaged as location-transparent attachable CAR files and it replaces the former Badger staging blockstore. It is designed to provide high efficiency and throughput, and minimize resource utilization during deal-making operations. - You can read more about dagstore's concepts, terminolog and so on [here](https://docs.filecoin.io/mine/lotus/dagstore/#conceptual-overview). - **Note**:**When you first start your lotus-miner or market subsystem with this release, a one-time/first-time dagstore migration will be triggered**. Read this [section](https://docs.filecoin.io/mine/lotus/dagstore/#first-time-migration) to learn what the process does, what to expect and how monitor it. - That being said, few things to note: - it is highly recommended to **wait all ongoing data transfer to finish or cancel inbound storage deals that are still transferring**, using the `lotus-miner data-transfers cancel` command before upgrade your market nodes. Reason being that the new dagstore changes attributes in the internal deal state objects, and the paths to the staging CARs where the deal data was being placed will be lost. - Rollback Alert(from v1.11.2-rcX to any version lower): If a storage deal is initiated with M1/v1.11.2 release, it needs to get to the `StorageDealAwaitingPrecommit` state before the you can do a version rollback or the markets process may panic. -- There are a few known bugs that we are actively working on and will be fixed in v1.11.2-rc2. ## Changelog - github.com/filecoin-project/lotus: - - Update markets, dt and graphsync ([filecoin-project/lotus#7160](https://github.com/filecoin-project/lotus/pull/7160)) + - bump the version + - update ffi to b4e4271db8f6e961934cd6ffff44fda3c610b9c0 per #7207 + - upgrade go-data-transfer; propagate deal cancellations. + - Fix typos + - Apply suggestions from code review + - Update CHANGELOG.md + - fix docsgen + - lotus v1.11.2-rc prep + - Update markets, dt and graphsync ([filecoin-project/lotus#7160](https://github.com/filecoin-project/lotus/pull/7160)) - sealing: Fix RecoverDealIDs loop with changed PieceCID ([filecoin-project/lotus#7117](https://github.com/filecoin-project/lotus/pull/7117)) - api/command for encoding actor params ([filecoin-project/lotus#7150](https://github.com/filecoin-project/lotus/pull/7150)) - Fix nits and see if codecov works now with auto ([filecoin-project/lotus#7151](https://github.com/filecoin-project/lotus/pull/7151)) - Codecov Projects ([filecoin-project/lotus#7147](https://github.com/filecoin-project/lotus/pull/7147)) - - shed: Support raw encoding in cid id ([filecoin-project/lotus#7149](https://github.com/filecoin-project/lotus/pull/7149)) - - rpcenc: Support reader redirect ([filecoin-project/lotus#6952](https://github.com/filecoin-project/lotus/pull/6952)) + - shed: Support raw encoding in cid id ([filecoin-project/lotus#7149](https://github.com/filecoin-project/lotus/pull/7149)) + - rpcenc: Support reader redirect ([filecoin-project/lotus#6952](https://github.com/filecoin-project/lotus/pull/6952)) - Fix error handling in SectorAddPieceToAny api impl ([filecoin-project/lotus#7135](https://github.com/filecoin-project/lotus/pull/7135)) - add rice box to required binaries ([filecoin-project/lotus#7125](https://github.com/filecoin-project/lotus/pull/7125)) - remove m1 templates and make area selection multi-optionable ([filecoin-project/lotus#7121](https://github.com/filecoin-project/lotus/pull/7121)) @@ -83,44 +91,57 @@ This is the first release candidate for Lotus v1.11.2 release that introduces da - bump master version to v1.11.2-dev ([filecoin-project/lotus#6903](https://github.com/filecoin-project/lotus/pull/6903)) - releases -> master for v1.11.0 ([filecoin-project/lotus#6894](https://github.com/filecoin-project/lotus/pull/6894)) - Reduce entropy in the chain package ([filecoin-project/lotus#6889](https://github.com/filecoin-project/lotus/pull/6889)) -- github.com/filecoin-project/go-data-transfer (v1.7.2 -> v1.7.3): +- github.com/filecoin-project/go-data-transfer (v1.7.2 -> v1.7.8): + - send cancel async (#245) ([filecoin-project/go-data-transfer#245](https://github.com/filecoin-project/go-data-transfer/pull/245)) + - release: v1.7.7 ([filecoin-project/go-data-transfer#242](https://github.com/filecoin-project/go-data-transfer/pull/242)) + - reduce channel monitor log verbosity (#241) ([filecoin-project/go-data-transfer#241](https://github.com/filecoin-project/go-data-transfer/pull/241)) + - release: v1.7.6 ([filecoin-project/go-data-transfer#239](https://github.com/filecoin-project/go-data-transfer/pull/239)) + - feat: improve graphsync transport logging (#238) ([filecoin-project/go-data-transfer#238](https://github.com/filecoin-project/go-data-transfer/pull/238)) + - Log completion message flow (#236) ([filecoin-project/go-data-transfer#236](https://github.com/filecoin-project/go-data-transfer/pull/236)) + - Handle data-sent and data-queued events in the TransferFinished state (#233) ([filecoin-project/go-data-transfer#233](https://github.com/filecoin-project/go-data-transfer/pull/233)) + - Log closing of completion channel (#232) ([filecoin-project/go-data-transfer#232](https://github.com/filecoin-project/go-data-transfer/pull/232)) + - fix log statement. (#230) ([filecoin-project/go-data-transfer#230](https://github.com/filecoin-project/go-data-transfer/pull/230)) - Simplify graphsync cancel (#229) ([filecoin-project/go-data-transfer#229](https://github.com/filecoin-project/go-data-transfer/pull/229)) -- github.com/filecoin-project/go-fil-markets (v1.6.2 -> v1.8.0): +- github.com/filecoin-project/go-fil-markets (v1.6.2 -> v1.8.1): + - Update data-transfer and graphsync (#611) ([filecoin-project/go-fil-markets#611](https://github.com/filecoin-project/go-fil-markets/pull/611)) + - close file descriptors + log piece handoff to sealing subsystem (#609) ([filecoin-project/go-fil-markets#609](https://github.com/filecoin-project/go-fil-markets/pull/609)) - release: v1.8.0. (#605) ([filecoin-project/go-fil-markets#605](https://github.com/filecoin-project/go-fil-markets/pull/605)) - Revert "refactor: pass deal proposal instead of deal ID to OnDealExpiredOrSlashed (#476)" (#604) ([filecoin-project/go-fil-markets#604](https://github.com/filecoin-project/go-fil-markets/pull/604)) - migrate to DAG store + CARv2 blockstores for storage and retrieval (#576) ([filecoin-project/go-fil-markets#576](https://github.com/filecoin-project/go-fil-markets/pull/576)) - release: 1.7.0 (#597) ([filecoin-project/go-fil-markets#597](https://github.com/filecoin-project/go-fil-markets/pull/597)) - refactor: pass deal proposal instead of deal ID to OnDealExpiredOrSlashed (#476) ([filecoin-project/go-fil-markets#476](https://github.com/filecoin-project/go-fil-markets/pull/476)) -## Contributors +Contributors | Contributor | Commits | Lines ± | Files Changed | |-------------|---------|---------|---------------| -| Łukasz Magiera | 15 | +3695/-8102 | 83 | -| raulk | 4 | +4169/-1661 | 103 | -| Aarsh Shah | 3 | +4729/-1025 | 86 | +| Łukasz Magiera | 23 | +5040/-8389 | 114 | +| Aarsh Shah | 11 | +4859/-1078 | 101 | +| raulk | 5 | +4170/-1662 | 104 | | vyzo | 30 | +1092/-702 | 49 | | Anton Evangelatov | 6 | +630/-472 | 19 | +| ZenGround0 | 31 | +556/-274 | 74 | | He Weidong | 16 | +680/-128 | 16 | -| Raúl Kripalani | 15 | +441/-275 | 47 | -| ZenGround0 | 20 | +466/-212 | 63 | +| Raúl Kripalani | 16 | +444/-277 | 49 | | Steven Allen | 11 | +403/-259 | 48 | -| Jennifer Wang | 7 | +109/-249 | 20 | -| dirkmc | 3 | +148/-114 | 17 | +| Jennifer Wang | 11 | +231/-257 | 31 | +| dirkmc | 5 | +204/-138 | 20 | | Mike Greenberg | 7 | +178/-77 | 17 | | Dragan Z | 1 | +138/-0 | 1 | | Frrist | 1 | +63/-56 | 2 | -| Aayush Rajasekaran | 5 | +62/-38 | 11 | +| Aayush Rajasekaran | 7 | +74/-42 | 13 | | frrist | 2 | +67/-6 | 6 | | hannahhoward | 2 | +13/-11 | 3 | | Cory Schwartz | 1 | +16/-6 | 3 | | whyrusleeping | 1 | +7/-7 | 1 | | hunjixin | 1 | +8/-6 | 1 | | aarshkshah1992 | 1 | +6/-6 | 2 | +| Dirk McCormick | 2 | +8/-0 | 2 | | mx | 2 | +6/-1 | 2 | | Travis Person | 1 | +3/-2 | 1 | +| Jiaying Wang | 2 | +2/-2 | 2 | | Peter Rabbitson | 1 | +1/-2 | 2 | -| Jiaying Wang | 1 | +1/-1 | 1 | + # 1.11.1 / 2021-08-16 From b4719c9dafd6189693e7dbaaed18957baee43907 Mon Sep 17 00:00:00 2001 From: Jennifer Wang Date: Mon, 30 Aug 2021 19:03:11 -0400 Subject: [PATCH 10/17] docsgen --- build/openrpc/full.json.gz | Bin 25412 -> 25412 bytes build/openrpc/miner.json.gz | Bin 10375 -> 10375 bytes build/openrpc/worker.json.gz | Bin 2710 -> 2711 bytes documentation/en/cli-lotus-miner.md | 2 +- documentation/en/cli-lotus-worker.md | 2 +- documentation/en/cli-lotus.md | 2 +- 6 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build/openrpc/full.json.gz b/build/openrpc/full.json.gz index 186e489881860a126ac349aa7cc6b871c2710047..4ef30c549cc22e32122b166ff30dad60b8277b84 100644 GIT binary patch delta 23 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 R{|f*B|NnPsP=Q%`006mCUgZD) literal 2710 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 Q1pom5|GgF%QdxQc08!vo=Kufz diff --git a/documentation/en/cli-lotus-miner.md b/documentation/en/cli-lotus-miner.md index 43bd34712..1483426af 100644 --- a/documentation/en/cli-lotus-miner.md +++ b/documentation/en/cli-lotus-miner.md @@ -7,7 +7,7 @@ USAGE: lotus-miner [global options] command [command options] [arguments...] VERSION: - 1.11.2-rc1 + 1.11.2-rc2 COMMANDS: init Initialize a lotus miner repo diff --git a/documentation/en/cli-lotus-worker.md b/documentation/en/cli-lotus-worker.md index 7a85f5353..0a5d79e38 100644 --- a/documentation/en/cli-lotus-worker.md +++ b/documentation/en/cli-lotus-worker.md @@ -7,7 +7,7 @@ USAGE: lotus-worker [global options] command [command options] [arguments...] VERSION: - 1.11.2-rc1 + 1.11.2-rc2 COMMANDS: run Start lotus worker diff --git a/documentation/en/cli-lotus.md b/documentation/en/cli-lotus.md index f67e38155..f6ba11244 100644 --- a/documentation/en/cli-lotus.md +++ b/documentation/en/cli-lotus.md @@ -7,7 +7,7 @@ USAGE: lotus [global options] command [command options] [arguments...] VERSION: - 1.11.2-rc1 + 1.11.2-rc2 COMMANDS: daemon Start a lotus daemon process From c298d8ca3e16401235351a9c63a5c2868e945b6a Mon Sep 17 00:00:00 2001 From: Jennifer Wang Date: Mon, 30 Aug 2021 18:58:25 -0400 Subject: [PATCH 11/17] update the changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b63e7e098..8b4fbfca9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Lotus changelog -# v1.11.2-rc1 / 2021-08-23 +# v1.11.2-rc2 / 2021-08-30 This is the second release candidate for Lotus v1.11.2 release that includes a proof patch for v1.11.2-rc1. lotus v1.11.2 introduces dagstore and many deal-making and market subsystem improvements and new features along with other bug fixes. More detailed changelog will be provided later. One of the most exciting new features we are introducing is **[Dagstore](https://docs.filecoin.io/mine/lotus/dagstore/#conceptual-overview)**: From 074eac16cccd1375377396fd326afba287bfe6d0 Mon Sep 17 00:00:00 2001 From: Jennifer Wang Date: Tue, 31 Aug 2021 13:46:03 -0400 Subject: [PATCH 12/17] update the ffi commit --- extern/filecoin-ffi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extern/filecoin-ffi b/extern/filecoin-ffi index b4e4271db..5de64e7c4 160000 --- a/extern/filecoin-ffi +++ b/extern/filecoin-ffi @@ -1 +1 @@ -Subproject commit b4e4271db8f6e961934cd6ffff44fda3c610b9c0 +Subproject commit 5de64e7c45fa1b3b6becbbdb9f237bec3239545d From a6ddd167c69bcf6e489cbc813edba9195de21ecc Mon Sep 17 00:00:00 2001 From: Jennifer Wang Date: Thu, 2 Sep 2021 15:40:15 -0400 Subject: [PATCH 13/17] integrate the proof patch: tag proofs-v9-revert-deps-hotfix --- extern/filecoin-ffi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extern/filecoin-ffi b/extern/filecoin-ffi index 5de64e7c4..78366aeb8 160000 --- a/extern/filecoin-ffi +++ b/extern/filecoin-ffi @@ -1 +1 @@ -Subproject commit 5de64e7c45fa1b3b6becbbdb9f237bec3239545d +Subproject commit 78366aeb85796c0687a53107a6cd52da7bd8abd5 From 0853b99fcadbae9c76a3d66249c145661e7ccd5d Mon Sep 17 00:00:00 2001 From: Jennifer Wang Date: Thu, 2 Sep 2021 17:43:54 -0400 Subject: [PATCH 14/17] bump the version --- build/version.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/version.go b/build/version.go index fceb287b6..2e03befb4 100644 --- a/build/version.go +++ b/build/version.go @@ -40,7 +40,7 @@ func buildType() string { } // BuildVersion is the local build version -const BuildVersion = "1.11.2-rc2" +const BuildVersion = "1.11.2" func UserVersion() string { if os.Getenv("LOTUS_VERSION_IGNORE_COMMIT") == "1" { From db34b828e46da30abd38932b6c697636fc621519 Mon Sep 17 00:00:00 2001 From: Jennifer Wang Date: Mon, 6 Sep 2021 19:25:19 -0400 Subject: [PATCH 15/17] update changelog --- CHANGELOG.md | 270 ++++++++++++++++++++++++++------------------------- 1 file changed, 137 insertions(+), 133 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8b4fbfca9..0bd1c6b13 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,147 +1,151 @@ # Lotus changelog -# v1.11.2-rc2 / 2021-08-30 +# v1.11.2 / 2021-09-06 -This is the second release candidate for Lotus v1.11.2 release that includes a proof patch for v1.11.2-rc1. -lotus v1.11.2 introduces dagstore and many deal-making and market subsystem improvements and new features along with other bug fixes. More detailed changelog will be provided later. One of the most exciting new features we are introducing is **[Dagstore](https://docs.filecoin.io/mine/lotus/dagstore/#conceptual-overview)**: -- The dagstore is a component of the markets subsystem in lotus-miner. It is a sharded store to hold large IPLD graphs efficiently, packaged as location-transparent attachable CAR files and it replaces the former Badger staging blockstore. It is designed to provide high efficiency and throughput, and minimize resource utilization during deal-making operations. -- You can read more about dagstore's concepts, terminolog and so on [here](https://docs.filecoin.io/mine/lotus/dagstore/#conceptual-overview). -- **Note**:**When you first start your lotus-miner or market subsystem with this release, a one-time/first-time dagstore migration will be triggered**. Read this [section](https://docs.filecoin.io/mine/lotus/dagstore/#first-time-migration) to learn what the process does, what to expect and how monitor it. - - That being said, few things to note: - - it is highly recommended to **wait all ongoing data transfer to finish or cancel inbound storage deals that are still transferring**, using the `lotus-miner data-transfers cancel` command before upgrade your market nodes. Reason being that the new dagstore changes attributes in the internal deal state objects, and the paths to the staging CARs where the deal data was being placed will be lost. - - Rollback Alert(from v1.11.2-rcX to any version lower): If a storage deal is initiated with M1/v1.11.2 release, it needs to get to the `StorageDealAwaitingPrecommit` state before the you can do a version rollback or the markets process may panic. +lotus v1.11.2 is a feature release that's **highly recommend ALL lotus users to upgrade**, including node operators, +storage providers and clients. -## Changelog -- github.com/filecoin-project/lotus: - - bump the version - - update ffi to b4e4271db8f6e961934cd6ffff44fda3c610b9c0 per #7207 - - upgrade go-data-transfer; propagate deal cancellations. - - Fix typos - - Apply suggestions from code review - - Update CHANGELOG.md - - fix docsgen - - lotus v1.11.2-rc prep - - Update markets, dt and graphsync ([filecoin-project/lotus#7160](https://github.com/filecoin-project/lotus/pull/7160)) - - sealing: Fix RecoverDealIDs loop with changed PieceCID ([filecoin-project/lotus#7117](https://github.com/filecoin-project/lotus/pull/7117)) - - api/command for encoding actor params ([filecoin-project/lotus#7150](https://github.com/filecoin-project/lotus/pull/7150)) - - Fix nits and see if codecov works now with auto ([filecoin-project/lotus#7151](https://github.com/filecoin-project/lotus/pull/7151)) - - Codecov Projects ([filecoin-project/lotus#7147](https://github.com/filecoin-project/lotus/pull/7147)) - - shed: Support raw encoding in cid id ([filecoin-project/lotus#7149](https://github.com/filecoin-project/lotus/pull/7149)) - - rpcenc: Support reader redirect ([filecoin-project/lotus#6952](https://github.com/filecoin-project/lotus/pull/6952)) - - Fix error handling in SectorAddPieceToAny api impl ([filecoin-project/lotus#7135](https://github.com/filecoin-project/lotus/pull/7135)) - - add rice box to required binaries ([filecoin-project/lotus#7125](https://github.com/filecoin-project/lotus/pull/7125)) - - remove m1 templates and make area selection multi-optionable ([filecoin-project/lotus#7121](https://github.com/filecoin-project/lotus/pull/7121)) - - upgrade upstream dependencies. ([filecoin-project/lotus#7115](https://github.com/filecoin-project/lotus/pull/7115)) - - Remove replace directive for multihash dep (#7113) ([filecoin-project/lotus#7113](https://github.com/filecoin-project/lotus/pull/7113)) - - Update to latest FFI ([filecoin-project/lotus#7110](https://github.com/filecoin-project/lotus/pull/7110)) - - release -> master ([filecoin-project/lotus#7105](https://github.com/filecoin-project/lotus/pull/7105)) - - fix(miner): always create miner deal staging directory (#7098) ([filecoin-project/lotus#7098](https://github.com/filecoin-project/lotus/pull/7098)) - - integrate DAG store and CARv2 in deal-making (#6671) ([filecoin-project/lotus#6671](https://github.com/filecoin-project/lotus/pull/6671)) - - fix build after merging #6097. (#7096) ([filecoin-project/lotus#7096](https://github.com/filecoin-project/lotus/pull/7096)) - - feat(miner deals): create subdir to miner repo for staged deals ([filecoin-project/lotus#6853](https://github.com/filecoin-project/lotus/pull/6853)) - - Extending sectors: more practical and flexible tools ([filecoin-project/lotus#6097](https://github.com/filecoin-project/lotus/pull/6097)) - - ([filecoin-project/lotus#7088](https://github.com/filecoin-project/lotus/pull/7088)) - - Lotus release process - how we make releases ([filecoin-project/lotus#6944](https://github.com/filecoin-project/lotus/pull/6944)) - - Strict major minor version checking on v0 and v1 apis ([filecoin-project/lotus#7038](https://github.com/filecoin-project/lotus/pull/7038)) - - ([filecoin-project/lotus#7042](https://github.com/filecoin-project/lotus/pull/7042)) - - Test with latest actors version ([filecoin-project/lotus#6998](https://github.com/filecoin-project/lotus/pull/6998)) - - codecov: fix mock name ([filecoin-project/lotus#7039](https://github.com/filecoin-project/lotus/pull/7039)) - - codecov: fix regexes ([filecoin-project/lotus#7037](https://github.com/filecoin-project/lotus/pull/7037)) - - Magically increase code coverage ([filecoin-project/lotus#7036](https://github.com/filecoin-project/lotus/pull/7036)) - - fix: don't check for t_aux when proving ([filecoin-project/lotus#7011](https://github.com/filecoin-project/lotus/pull/7011)) - - Support --actor in miner actor control list ([filecoin-project/lotus#7027](https://github.com/filecoin-project/lotus/pull/7027)) - - PreCommitPolicy: Don't try to align expirations on proving period boundaries ([filecoin-project/lotus#7018](https://github.com/filecoin-project/lotus/pull/7018)) - - revert pricelist by version to pricelist by epoch ([filecoin-project/lotus#7022](https://github.com/filecoin-project/lotus/pull/7022)) - - Shed: Include network name in genesis-verify ([filecoin-project/lotus#7019](https://github.com/filecoin-project/lotus/pull/7019)) - - Dont panic if input is bad ([filecoin-project/lotus#7007](https://github.com/filecoin-project/lotus/pull/7007)) - - Reduce splitstore memory usage during chain walks ([filecoin-project/lotus#6949](https://github.com/filecoin-project/lotus/pull/6949)) - - fix: vet actors shims ([filecoin-project/lotus#6999](https://github.com/filecoin-project/lotus/pull/6999)) - - fix: more logging in maybeStartBatch error ([filecoin-project/lotus#6996](https://github.com/filecoin-project/lotus/pull/6996)) - - fix flaky TestDealPublisher and re-enable ([filecoin-project/lotus#6991](https://github.com/filecoin-project/lotus/pull/6991)) - - feat: add ChainGetTipSetAfterHeight ([filecoin-project/lotus#6990](https://github.com/filecoin-project/lotus/pull/6990)) - - Remove forgotten non-functioning config from the pre-mainnet days ([filecoin-project/lotus#6970](https://github.com/filecoin-project/lotus/pull/6970)) - - lotus-shed splitstore clear command ([filecoin-project/lotus#6967](https://github.com/filecoin-project/lotus/pull/6967)) - - add explicit error msg if repo dir does not exist ([filecoin-project/lotus#6909](https://github.com/filecoin-project/lotus/pull/6909)) - - update go-libp2p-pubsub to v0.5.4 ([filecoin-project/lotus#6958](https://github.com/filecoin-project/lotus/pull/6958)) - - chore: disable flaky test ([filecoin-project/lotus#6957](https://github.com/filecoin-project/lotus/pull/6957)) - - Test/pledge batching msg prop ([filecoin-project/lotus#6537](https://github.com/filecoin-project/lotus/pull/6537)) - - set buildtype in nerpa and butterfly ([filecoin-project/lotus#6085](https://github.com/filecoin-project/lotus/pull/6085)) - - reasonable max value for initial sector expiration ([filecoin-project/lotus#6099](https://github.com/filecoin-project/lotus/pull/6099)) - - fix skipCount ([filecoin-project/lotus#6940](https://github.com/filecoin-project/lotus/pull/6940)) - - fix bug in MpoolPending message exclusion ([filecoin-project/lotus#6945](https://github.com/filecoin-project/lotus/pull/6945)) - - Improve formatting of workers CLI ([filecoin-project/lotus#6942](https://github.com/filecoin-project/lotus/pull/6942)) - - support MARKETS_API_INFO env var, and markets-repo, markets-api-url CLI flags. ([filecoin-project/lotus#6936](https://github.com/filecoin-project/lotus/pull/6936)) - - Update state machine deps for logging ([filecoin-project/lotus#6941](https://github.com/filecoin-project/lotus/pull/6941)) - - Update deps for more logging in data transfer and markets ([filecoin-project/lotus#6937](https://github.com/filecoin-project/lotus/pull/6937)) - - release v1.11.1 backport -> master ([filecoin-project/lotus#6929](https://github.com/filecoin-project/lotus/pull/6929)) - - make: set default GOCC earlier ([filecoin-project/lotus#6932](https://github.com/filecoin-project/lotus/pull/6932)) - - Moving GC Followup ([filecoin-project/lotus#6905](https://github.com/filecoin-project/lotus/pull/6905)) - - PR #5109 + suggested fix ([filecoin-project/lotus#6927](https://github.com/filecoin-project/lotus/pull/6927)) - - Log more call context during errors ([filecoin-project/lotus#6918](https://github.com/filecoin-project/lotus/pull/6918)) - - make: fix version check when using gotip ([filecoin-project/lotus#6916](https://github.com/filecoin-project/lotus/pull/6916)) - - polish(errors): better state tree errors ([filecoin-project/lotus#6923](https://github.com/filecoin-project/lotus/pull/6923)) - - Update to branches with improved logging ([filecoin-project/lotus#6919](https://github.com/filecoin-project/lotus/pull/6919)) - - adding an RuntimeSubsystems API to storage miner; fix `lotus-miner info` ([filecoin-project/lotus#6906](https://github.com/filecoin-project/lotus/pull/6906)) - - fix ticket check ([filecoin-project/lotus#6882](https://github.com/filecoin-project/lotus/pull/6882)) - - update go-libp2p-pubsub to v0.5.3 ([filecoin-project/lotus#6907](https://github.com/filecoin-project/lotus/pull/6907)) - - Configurable CC Sector Expiration ([filecoin-project/lotus#6803](https://github.com/filecoin-project/lotus/pull/6803)) - - Drop townhall/chainwatch ([filecoin-project/lotus#6912](https://github.com/filecoin-project/lotus/pull/6912)) - - make: Allow setting Go compiler with GOCC ([filecoin-project/lotus#6911](https://github.com/filecoin-project/lotus/pull/6911)) - - chore: fixup issue templates ([filecoin-project/lotus#6899](https://github.com/filecoin-project/lotus/pull/6899)) - - bump master version to v1.11.2-dev ([filecoin-project/lotus#6903](https://github.com/filecoin-project/lotus/pull/6903)) - - releases -> master for v1.11.0 ([filecoin-project/lotus#6894](https://github.com/filecoin-project/lotus/pull/6894)) - - Reduce entropy in the chain package ([filecoin-project/lotus#6889](https://github.com/filecoin-project/lotus/pull/6889)) +## Highlights +- 🌟🌟🌟 Introduce Dagstore and CARv2 for deal-making (#6671) ([filecoin-project/lotus#6671](https://github. + com/filecoin-project/lotus/pull/6671)) + - **[lotus miner markets' Dagstore](https://docs.filecoin.io/mine/lotus/dagstore/#conceptual-overview)** is a + component of the `markets` subsystem in lotus-miner. It is a sharded store to hold large IPLD graphs efficiently, + packaged as location-transparent attachable CAR files and it replaces the former Badger staging blockstore. It + is designed to provide high efficiency and throughput, and minimize resource utilization during deal-making operations. + The dagstore also leverages the indexing features of [CARv2](https://github.com/ipld/ipld/blob/master/specs/transport/car/carv2/index.md) to enable plan CAR files to act as read and write + blockstores, which are served as the direct medium for data exchanges in markets for both storage and retrieval + deal making without requiring intermediate buffers. + - In the future, lotus will leverage and interact with Dagstore a lot for new features and improvements for deal + making, therefore, it's highly recommended to lotus users to go through [Lotus Miner: About the markets dagstore](https://docs.filecoin.io/mine/lotus/dagstore/#conceptual-overview) thoroughly to learn more about Dagstore's + conceptual overview, terminology, directory structure, configuration and so on. + - **Note**: + - When you first start your lotus-miner or market subsystem with this release, a one-time/first-time **dagstore + migration** will be triggered which replaces the former Badger staging blockstore with dagstore. We highly + recommend storage providers to read this [section](https://docs.filecoin. io/mine/lotus/dagstore/#first-time-migration) to learn more about + what the process does, what to expect and how monitor it. + - It is highly recommended to **wait all ongoing data transfer to finish or cancel inbound storage deals that + are still transferring**, using the `lotus-miner data-transfers cancel` command before upgrade your market nodes. Reason being that the new dagstore changes attributes in the internal deal state objects, and the paths to the staging CARs where the deal data was being placed will be lost. + - ⏮ Rollback Alert(from v1.11.2-rcX to any version lower): If a storages deal is initiated with M1/v1.11.2(-rcX) + release, it needs to get to the `StorageDealAwaitingPrecommit` state before you can do a version rollback or the markets process may panic. + - 💙 **Special thanks to [MinerX fellows for testing and providing valuable feedbacks](https://github.com/filecoin-project/lotus/discussions/6852) for Dagstore in the past month!** +- 🌟🌟 rpcenc: Support reader redirect ([filecoin-project/lotus#6952](https://github.com/filecoin-project/lotus/pull/6952)) + - This allows market processes to send piece bytes directly to workers involved on `AddPiece`. +- Extending sectors: more practical and flexible tools ([filecoin-project/lotus#6097](https://github.com/filecoin-project/lotus/pull/6097)) + - `lotus-miner sectors check-expire` to inspect expiring sectors. + - `lotus-miner sectors renew` for renewing expiring sectors, see the command help menu for customizable option + like `extension`, `new-expiration` and so on. +- ‼️ MpoolReplaceCmd ( lotus mpool replace`) now takes FIL for fee-limit ([filecoin-project/lotus#6927](https://github.com/filecoin-project/lotus/pull/6927)) +- Drop townhall/chainwatch ([filecoin-project/lotus#6912](https://github.com/filecoin-project/lotus/pull/6912)) + - ChainWatch is no longer supported by lotus. +- Configurable CC Sector Expiration ([filecoin-project/lotus#6803](https://github.com/filecoin-project/lotus/pull/6803)) + - Set `CommittedCapacitySectorLifetime` in lotus-miner/config.toml to specify the default expiration for a new CC + sector, value must be between 180-540 days inclusive. + +## New Features +- api/command for encoding actor params ([filecoin-project/lotus#7150](https://github.com/filecoin-project/lotus/pull/7150)) +- shed: Support raw encoding in cid id ([filecoin-project/lotus#7149](https://github.com/filecoin-project/lotus/pull/7149)) +- feat(miner deals): create subdir to miner repo for staged deals ([filecoin-project/lotus#6853](https://github.com/filecoin-project/lotus/pull/6853)) +- Support --actor in miner actor control list ([filecoin-project/lotus#7027](https://github.com/filecoin-project/lotus/pull/7027)) +- Shed: Include network name in genesis-verify ([filecoin-project/lotus#7019](https://github.com/filecoin-project/lotus/pull/7019)) +- feat: add ChainGetTipSetAfterHeight ([filecoin-project/lotus#6990](https://github.com/filecoin-project/lotus/pull/6990)) +- lotus-shed splitstore clear command ([filecoin-project/lotus#6967](https://github.com/filecoin-project/lotus/pull/6967)) + +## Improvements +- improve get api error messages ([filecoin-project/lotus#7088](https://github.com/filecoin-project/lotus/pull/7088)) +- Strict major minor version checking on v0 and v1 apis ([filecoin-project/lotus#7038](https://github.com/filecoin-project/lotus/pull/7038)) +- make lotus-miner net commands hit markets subsystem. ([filecoin-project/lotus#7042](https://github.com/filecoin-project/lotus/pull/7042)) +- Test with latest actors version ([filecoin-project/lotus#6998](https://github.com/filecoin-project/lotus/pull/6998)) +- Reduce splitstore memory usage during chain walks ([filecoin-project/lotus#6949](https://github.com/filecoin-project/lotus/pull/6949)) +- Remove forgotten non-functioning config from the pre-mainnet days ([filecoin-project/lotus#6970](https://github.com/filecoin-project/lotus/pull/6970)) +- add explicit error msg if repo dir does not exist ([filecoin-project/lotus#6909](https://github.com/filecoin-project/lotus/pull/6909)) +- Test/pledge batching msg prop ([filecoin-project/lotus#6537](https://github.com/filecoin-project/lotus/pull/6537)) +- reasonable max value for initial sector expiration ([filecoin-project/lotus#6099](https://github.com/filecoin-project/lotus/pull/6099)) +- support MARKETS_API_INFO env var, and markets-repo, markets-api-url CLI flags. ([filecoin-project/lotus#6936](https://github.com/filecoin-project/lotus/pull/6936)) +- Improve formatting of workers CLI ([filecoin-project/lotus#6942](https://github.com/filecoin-project/lotus/pull/6942)) +- make: set default GOCC earlier ([filecoin-project/lotus#6932](https://github.com/filecoin-project/lotus/pull/6932)) +- Moving GC Followup ([filecoin-project/lotus#6905](https://github.com/filecoin-project/lotus/pull/6905)) +- Log more call context during errors ([filecoin-project/lotus#6918](https://github.com/filecoin-project/lotus/pull/6918)) +- polish(errors): better state tree errors ([filecoin-project/lotus#6923](https://github.com/filecoin-project/lotus/pull/6923)) +- adding an RuntimeSubsystems API to storage miner; fix `lotus-miner info` ([filecoin-project/lotus#6906](https://github.com/filecoin-project/lotus/pull/6906)) +- Reduce entropy in the chain package ([filecoin-project/lotus#6889](https://github.com/filecoin-project/lotus/pull/6889)) +- make: Allow setting Go compiler with GOCC ([filecoin-project/lotus#6911](https://github.com/filecoin-project/lotus/pull/6911)) + +## Bug Fixes +- sealing: Fix RecoverDealIDs loop with changed PieceCID ([filecoin-project/lotus#7117](https://github.com/filecoin-project/lotus/pull/7117)) +- Fix error handling in SectorAddPieceToAny api impl ([filecoin-project/lotus#7135](https://github.com/filecoin-project/lotus/pull/7135)) +- add rice box to required binaries ([filecoin-project/lotus#7125](https://github.com/filecoin-project/lotus/pull/7125)) +- fix(miner): always create miner deal staging directory (#7098) ([filecoin-project/lotus#7098](https://github.com/filecoin-project/lotus/pull/7098)) +- fix build after merging #6097. (#7096) ([filecoin-project/lotus#7096](https://github.com/filecoin-project/lotus/pull/7096)) +- fix: don't check for t_aux when proving ([filecoin-project/lotus#7011](https://github.com/filecoin-project/lotus/pull/7011)) +- fix: vet actors shims ([filecoin-project/lotus#6999](https://github.com/filecoin-project/lotus/pull/6999)) +- fix: more logging in maybeStartBatch error ([filecoin-project/lotus#6996](https://github.com/filecoin-project/lotus/pull/6996)) +- fix flaky TestDealPublisher and re-enable ([filecoin-project/lotus#6991](https://github.com/filecoin-project/lotus/pull/6991)) +- fix skipCount ([filecoin-project/lotus#6940](https://github.com/filecoin-project/lotus/pull/6940)) +- fix bug in MpoolPending message exclusion ([filecoin-project/lotus#6945](https://github.com/filecoin-project/lotus/pull/6945)) +- PreCommitPolicy: Don't try to align expirations on proving period boundaries ([filecoin-project/lotus#7018](https://github.com/filecoin-project/lotus/pull/7018)) +- make: fix version check when using gotip ([filecoin-project/lotus#6916](https://github.com/filecoin-project/lotus/pull/6916)) +- fix ticket check ([filecoin-project/lotus#6882](https://github.com/filecoin-project/lotus/pull/6882)) + +## Dependency Updates - github.com/filecoin-project/go-data-transfer (v1.7.2 -> v1.7.8): - - send cancel async (#245) ([filecoin-project/go-data-transfer#245](https://github.com/filecoin-project/go-data-transfer/pull/245)) - - release: v1.7.7 ([filecoin-project/go-data-transfer#242](https://github.com/filecoin-project/go-data-transfer/pull/242)) - - reduce channel monitor log verbosity (#241) ([filecoin-project/go-data-transfer#241](https://github.com/filecoin-project/go-data-transfer/pull/241)) - - release: v1.7.6 ([filecoin-project/go-data-transfer#239](https://github.com/filecoin-project/go-data-transfer/pull/239)) - - feat: improve graphsync transport logging (#238) ([filecoin-project/go-data-transfer#238](https://github.com/filecoin-project/go-data-transfer/pull/238)) - - Log completion message flow (#236) ([filecoin-project/go-data-transfer#236](https://github.com/filecoin-project/go-data-transfer/pull/236)) - - Handle data-sent and data-queued events in the TransferFinished state (#233) ([filecoin-project/go-data-transfer#233](https://github.com/filecoin-project/go-data-transfer/pull/233)) - - Log closing of completion channel (#232) ([filecoin-project/go-data-transfer#232](https://github.com/filecoin-project/go-data-transfer/pull/232)) - - fix log statement. (#230) ([filecoin-project/go-data-transfer#230](https://github.com/filecoin-project/go-data-transfer/pull/230)) - - Simplify graphsync cancel (#229) ([filecoin-project/go-data-transfer#229](https://github.com/filecoin-project/go-data-transfer/pull/229)) - github.com/filecoin-project/go-fil-markets (v1.6.2 -> v1.8.1): - - Update data-transfer and graphsync (#611) ([filecoin-project/go-fil-markets#611](https://github.com/filecoin-project/go-fil-markets/pull/611)) - - close file descriptors + log piece handoff to sealing subsystem (#609) ([filecoin-project/go-fil-markets#609](https://github.com/filecoin-project/go-fil-markets/pull/609)) - - release: v1.8.0. (#605) ([filecoin-project/go-fil-markets#605](https://github.com/filecoin-project/go-fil-markets/pull/605)) - - Revert "refactor: pass deal proposal instead of deal ID to OnDealExpiredOrSlashed (#476)" (#604) ([filecoin-project/go-fil-markets#604](https://github.com/filecoin-project/go-fil-markets/pull/604)) - - migrate to DAG store + CARv2 blockstores for storage and retrieval (#576) ([filecoin-project/go-fil-markets#576](https://github.com/filecoin-project/go-fil-markets/pull/576)) - - release: 1.7.0 (#597) ([filecoin-project/go-fil-markets#597](https://github.com/filecoin-project/go-fil-markets/pull/597)) - - refactor: pass deal proposal instead of deal ID to OnDealExpiredOrSlashed (#476) ([filecoin-project/go-fil-markets#476](https://github.com/filecoin-project/go-fil-markets/pull/476)) +- update go-libp2p-pubsub to v0.5.4 ([filecoin-project/lotus#6958](https://github.com/filecoin-project/lotus/pull/6958)) +- integrate the proof patch: tag proofs-v9-revert-deps-hotfix +- Update markets, dt and graphsync ([filecoin-project/lotus#7160](https://github.com/filecoin-project/lotus/pull/7160)) +- Remove replace directive for multihash dep (#7113) ([filecoin-project/lotus#7113](https://github.com/filecoin-project/lotus/pull/7113)) +- upgrade upstream dependencies. ([filecoin-project/lotus#7115](https://github.com/filecoin-project/lotus/pull/7115)) +- Update to latest FFI ([filecoin-project/lotus#7110](https://github.com/filecoin-project/lotus/pull/7110)) +- Update state machine deps for logging ([filecoin-project/lotus#6941](https://github.com/filecoin-project/lotus/pull/6941)) +- Update deps for more logging in data transfer and markets ([filecoin-project/lotus#6937](https://github.com/filecoin-project/lotus/pull/6937)) +- Update to branches with improved logging ([filecoin-project/lotus#6919](https://github.com/filecoin-project/lotus/pull/6919)) +- update go-libp2p-pubsub to v0.5.3 ([filecoin-project/lotus#6907](https://github.com/filecoin-project/lotus/pull/6907)) + +## Others +- Fix nits and see if codecov works now with auto ([filecoin-project/lotus#7151](https://github.com/filecoin-project/lotus/pull/7151)) +- Codecov Projects ([filecoin-project/lotus#7147](https://github.com/filecoin-project/lotus/pull/7147)) +- remove m1 templates and make area selection multi-optionable ([filecoin-project/lotus#7121](https://github.com/filecoin-project/lotus/pull/7121)) +- release -> master ([filecoin-project/lotus#7105](https://github.com/filecoin-project/lotus/pull/7105)) +- Lotus release process - how we make releases ([filecoin-project/lotus#6944](https://github.com/filecoin-project/lotus/pull/6944)) +- codecov: fix mock name ([filecoin-project/lotus#7039](https://github.com/filecoin-project/lotus/pull/7039)) +- codecov: fix regexes ([filecoin-project/lotus#7037](https://github.com/filecoin-project/lotus/pull/7037)) +- chore: disable flaky test ([filecoin-project/lotus#6957](https://github.com/filecoin-project/lotus/pull/6957)) +- set buildtype in nerpa and butterfly ([filecoin-project/lotus#6085](https://github.com/filecoin-project/lotus/pull/6085)) +- release v1.11.1 backport -> master ([filecoin-project/lotus#6929](https://github.com/filecoin-project/lotus/pull/6929)) +- chore: fixup issue templates ([filecoin-project/lotus#6899](https://github.com/filecoin-project/lotus/pull/6899)) +- bump master version to v1.11.2-dev ([filecoin-project/lotus#6903](https://github.com/filecoin-project/lotus/pull/6903)) +- releases -> master for v1.11.0 ([filecoin-project/lotus#6894](https://github.com/filecoin-project/lotus/pull/6894)) + Contributors | Contributor | Commits | Lines ± | Files Changed | |-------------|---------|---------|---------------| -| Łukasz Magiera | 23 | +5040/-8389 | 114 | -| Aarsh Shah | 11 | +4859/-1078 | 101 | -| raulk | 5 | +4170/-1662 | 104 | -| vyzo | 30 | +1092/-702 | 49 | -| Anton Evangelatov | 6 | +630/-472 | 19 | -| ZenGround0 | 31 | +556/-274 | 74 | -| He Weidong | 16 | +680/-128 | 16 | -| Raúl Kripalani | 16 | +444/-277 | 49 | -| Steven Allen | 11 | +403/-259 | 48 | -| Jennifer Wang | 11 | +231/-257 | 31 | -| dirkmc | 5 | +204/-138 | 20 | -| Mike Greenberg | 7 | +178/-77 | 17 | -| Dragan Z | 1 | +138/-0 | 1 | -| Frrist | 1 | +63/-56 | 2 | -| Aayush Rajasekaran | 7 | +74/-42 | 13 | -| frrist | 2 | +67/-6 | 6 | -| hannahhoward | 2 | +13/-11 | 3 | -| Cory Schwartz | 1 | +16/-6 | 3 | -| whyrusleeping | 1 | +7/-7 | 1 | -| hunjixin | 1 | +8/-6 | 1 | -| aarshkshah1992 | 1 | +6/-6 | 2 | -| Dirk McCormick | 2 | +8/-0 | 2 | -| mx | 2 | +6/-1 | 2 | -| Travis Person | 1 | +3/-2 | 1 | -| Jiaying Wang | 2 | +2/-2 | 2 | -| Peter Rabbitson | 1 | +1/-2 | 2 | - +| @magik6k | 23 | +5040/-8389 | 114 | +| @aarshkshah1992 | 11 | +4859/-1078 | 101 | +| @raulk | 5 | +4170/-1662 | 104 | +| @vyzo | 30 | +1092/-702 | 49 | +| @nonsense | 6 | +630/-472 | 19 | +| @ZenGround0 | 31 | +556/-274 | 74 | +| @He Weidong | 16 | +680/-128 | 16 | +| @raulk | 16 | +444/-277 | 49 | +| @Stebalien | 11 | +403/-259 | 48 | +| @jennijuju| 17 | +276/-281 | 42 | +| @dirkmc | 5 | +204/-138 | 20 | +| @placer14 | 7 | +178/-77 | 17 | +| @BlocksOnAChain | 1 | +138/-0 | 1 | +| @Frrist | 1 | +63/-56 | 2 | +| @arajasek | 7 | +74/-42 | 13 | +| @frrist | 2 | +67/-6 | 6 | +| @hannahhoward | 2 | +13/-11 | 3 | +| @coryschwartz | 1 | +16/-6 | 3 | +| @whyrusleeping | 1 | +7/-7 | 1 | +| @hunjixin | 1 | +8/-6 | 1 | +| @aarshkshah1992 | 1 | +6/-6 | 2 | +| @dirkmc | 2 | +8/-0 | 2 | +| @mx | 2 | +6/-1 | 2 | +| @travisperson | 1 | +3/-2 | 1 | +| @jennijuju | 2 | +2/-2 | 2 | +| @ribasushi | 1 | +1/-2 | 2 | # 1.11.1 / 2021-08-16 From f7b90cb5c1ffe1fdc3547e0a2db35a163fb57c2a Mon Sep 17 00:00:00 2001 From: Jennifer Wang Date: Mon, 6 Sep 2021 19:36:10 -0400 Subject: [PATCH 16/17] docsgen --- build/openrpc/full.json.gz | Bin 25412 -> 25409 bytes build/openrpc/miner.json.gz | Bin 10375 -> 10372 bytes build/openrpc/worker.json.gz | Bin 2711 -> 2708 bytes documentation/en/cli-lotus-miner.md | 2 +- documentation/en/cli-lotus-worker.md | 2 +- documentation/en/cli-lotus.md | 2 +- 6 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build/openrpc/full.json.gz b/build/openrpc/full.json.gz index 4ef30c549cc22e32122b166ff30dad60b8277b84..66813c3f1d106c39b3b61faefda98882300a0b72 100644 GIT binary patch literal 25409 zcmV)}KzqL*iwFP!00000|LnbKbKAJGKm1itdR|PDQas+`B(6I3RBUJQ9VhX%J(GJ* zoO=f%Aqis&;1Hl~O)B60UsypGi3i8#Tgqy&lgri%&aj5mv)921Tr0)qmL;9vg&1P7|%C65q~BO;y*!P_YMMEQ9fhBV^H7X^NZ z|I=k^n|u;(3Ob)&k{_4k&p-bh3<6Qv^ox6+rUEm`3v91YaWp z#(IJQ5<}hq$Ky*P-m0=w$N-@n%n=78ga`;D>c<}Phq4I|1_8LiK>$Vp^{zlnI1WHs z{gRB3M`wrucnxs?M*+GdgW({A5uB+n6G!4JkLJ%q%CP*F`gLvtL||HEHJCkKrIff5$jN z{$QU+F%k`j5%M4xPsT7{=*Krvh{XXHgy^A^S5%3n$|5zxGf4eDIHNJ~2m8C*!@&{c zaIio4HwiZXbAB-O$bU`IfB)-W13?q?eL2-IIE`qCB929UN%C+I8jrr~X1)(*$j9=J z5hgI2za<{^F`0-@2N~Mi6}wkW(SY$ty!kOq$f@`Sx~TsB<3~2Xbo3YUxaIs-JQE*J zZJi_P$sy$D_C4m)cmyIeqa1+%ldHjS5J$mae=y}dWc$DVI*~;-JUaU|*&NTqhzh!X z4FnhabrjIiuQSLvihhM5{xyu~?fm~Hh-^&g|97&rxw$LGROVrFy&j02!Z?l4v0#yH z8CgXe72ND8crt_GSM@EvVZlwt&_myUG_kLWrmK0_GlFhv+JD-HxmAy)n!8mIm#{cS zX9$cS!yXV~Cz?SqnE;Mx%oYDj>$T!PRr|Mk*rm@{Tg+x3!;v@G-`d_0n>B=7%+_gc zTW&lP|6je2)n?H}*geVf5g8@ju6UgSon?{t-m^}qk1Oq+=o~QvRQNmrc@hjty=QofTYCv)C;mz!{7=?(WO4uT4?Egu?UK9$cwaL?EF_Flu~9=mf6>}b+v#Ohn^e`~+d{{_{7b-7AAtysQG|$>tw@D#508&}L!5eQ7DG)r zpM-;B9}$knxB_+_Vjo0e^)W=az@7{R7;K|JtdsBdkkHrcXeazy3V^6$&9zyR5`Drg=_dErV_yB^BqSO?! z=|&z2e;@oR;of+@J^BZF2=3f4f4Vo{fjfJAw8O5@Ec}b!{vF11It%|A&Bkax-q{`F zop`<%$7px^dRM~FWUFeR*d0ngI?k~3vVk+aM_lsyZj2$Ry^t@YDzPa20YM){3o&KV zcrO}pk=z9gBken<56dSkM4s4CWuDPaYB{EHkC;Yz`PS;+xgs{W{UatQ8tf0on_JsE zyMy820()0T_WsA&yVHo$aivZ^9J~#XCwkXqz7M`&a!6ys2m7ywiz;V^0;vE9MmH1< zoYHfy>#1j_FcK>#|MLsNlPMqU4>kwG!3X_Anmv*d=K=zrQ7Q-0$M;Mc{)iZZ6Lf|= zghS5yYhE|pV~YnT=WiyH2u&bIqSXtz9-9m;;_J^4<8T%#lZ;$X=XhdU{T+=&aRLKr zX%S7RX*+-ny+cTTvX=Io;xO*Y6r{%6!V;8fuBGMueSkTdvAd+cy&=mWUq66R1m|)% z#xl4M(_dmuEr`w-S4YA#HrS2$!X8@ONX7zf%9?zpQIMAgrbWeq*({BxzyP{cuVB0F zh_4U}T^jh3&UBYiOX-|RD;BzEuDrG0nN;Xs|1?Oq)I(ER5`A=*Jdoy9A7EvD zHI!3PZR3($l24SQeQ-P$1tJ7sgcQ>WgTz8BYD2(r$Pga_%zt4Zz*i^``Yq)0pyZOI zJ*tyi1pGJ*BpdSu@B4)T7%&P#$`~F6NFErMn+KeNDZECP#K&W4edF0!#u1&VVZa#z z3=tni0P^e+p~OQQ;L8*dMcNdGAtG#eNhk@FIzGk`OWOobWZz12zrlP80(yfO2V8Q& zr|DokN*MN0BtD{`9Ni)>7Ryr3;OC3C`{3fk@j3YT_Tt0mBXIuV^Y14|;Pa=Ge}jX! z;P>;lN8sJ(Gw}ZH#l`Wb_u%8(^Yb_F-=2fxPv8wWKYe?6{O)=qBXfMRe949lnR` z9YTjN>{Rsx&#)!15Z>C&4N$agN^KUDZU|ek6auAnu@v{E@hS z^`lg)W%|hVfx-svw&`?zw^iL%?Pse>^NT_w_rc)x_%ywjo6VZudqfb!-E}-&zuHSp zpS4`z@LXstixoQETCb{HMq#r8m-KBOB~J7+r4%ji?vk63x}&M|tqs)6Ae=Tnr@sl^}2UZy}%K1k5tR)*Nhhqc4O;qg)Vta&sFeKfg_cJQu88M@)qIh(w=y}Awm9+T~x zvG>p3?0S1TqgVW9<7e~_6ukdbf!n-iNR??s+ zkvA;y?Qn-pc|>-1u3k=dViF<$pO@oXvOD?f#mcGaZg8y~{}K1$EO*Zgy9 zbElbq3Rc*eXNqTad{TV^q1+sYf&W=fuML9~ZT70xXd>&GUr(G%uQ{6yr^|wC2?u(G z+Sz26adz&VrNy8>&&kiDzvM1#2WvZRdezkBB)Z2hkSs>g}dG%qh1?y>yr3)k!lp zygF}~(>3imchXfO=dSEy2|jL&&z6s;bS8W}N*;`9lri-RZmuGv6uCLLn4+u=?Zy{i zmT1$0Q8GXYdd}%{N|5qmlY(KE7bywnl;Kr4tr5FvedSRni8#c*lPV8bs#I>93K>&Z zZnYBU?JefwV_2Jpe`mH*dt_|4knA zgEzA9n}bUN{`dLw=g*!$|6g5E|I5$Lbjx389Qb+|;Lop${3rb2&C?-}gLuN<92kGU zdHU^7XW(72fj8T;;kKK!<%DC#5~@UE?(J#?Vd{QX)Or4ZLEB@%M4&yjz z2eDJX#8(z)bGvJdO=BQC_cBPRF@W6)u_aiC-QiNnEvZk{GtXHnCp!1KgM97s5lS=u zz$D{~S8XJtx)9#oR9M;CJ&}!?+Pf5v*#s>k9TUQ<#iMeUb<)vEM<*Sfbac`&Cmr_| z#HgsbL}M!sRdsuZ(AIaERLNewo>H0@pMvS$&C5*MLRk|SF&(QDKtIF4+(642+<6B~fr1eI^Me zld>w6zvPnS!s8H{M6RhWKQsc(5K5klDabm2Ab=c2s^}$2BFrR*^!>5Hdxpf^L51Vv zYt6@BFSy~WX7^y;3lmS8`57EM>3aq2+Za|G-knmkYQ}9g2nj$i3b5nVj#oQgeXn@+ z_GZ&f&kvAw&UK>dE_QewQ5r1dxT>*gHml~cEu&4zTcD}yo@Htt2JjfbEKdPIx0q$l zrY^R^qj3cli?%eg`r%?WBziKa5%mxx_neVzHC=i9fS})zjUedv5xYpV(;rOJR5kGp z(VuDDOKxsY#S3*MNpTDpwCEnJ?(L?VeP;;zo#mviY;!YYH0O)GcXfM>-n;V9xAmgW zC|w{k6B1OIA{++3OcTcJ;uOhEaY-^cDy2huO9b8kL4J?Nuui(JnRHDL7T4gsaa|eG zZqto}bHuw#TwU4v;H^1Tp>D00M1>h;3m8z+>6k_y8plB}2MlqR%3y`mg(ThpzcYOm z%!4vcxjS9^8JhlMOD4GeqRHv{oI~CjQ0U4F0EKcGOToqG(O;t8LUf@UZ$KBirS|Y5 zquavZnb48upyrTc#<9nYywj5ihSLJ*_=S%C`bC*Le;GlBevvl7fYA(!$Wtk$(x(?f zMf+)v0|fAc_ZqbUm9(wW_m67hG_AugR-g!KE)toD7;R*n5wuCkJ?POcqN)vx^2%Xtvp2 z9u~&20P^NY^5`s##Xi4LzsEExXxm-lWjn0f57sr8Ma@K}FD+Ev&B3Fx#J#NZIt?%) z{167-A)U=m+w+cm{lx+HWU;darssU4{TQH2gf_5-LjN8Nyf}~$K=1?gQ27UByg_`J z-WbDr#OF)CRoOUhys-fY{pMj-2w-b-d$%RZ=$7~Mu>y|Qb$+FKcMuN+N07sd2og4~ zKcLf zBy6iEa z-2U_1fBt=qKKu_4-|xL)(eM9t;C;FMaPaPY`vZGR-(TEDA5X4-`yW2;ZZmJX_H;L= zVZ8^vUFk zq%Q_kWpYyXMgS!fDu7HnSm28iBgl{sC;@8Fy|J_EIb9hyd(oAfxjlKZwX;>{ZzmU) z_;jZjdFW7nz%HB7Y+|uffsoLL$43GgF4kkrrW?#2Mw{)d9#!-&soMwyA>jtY|DeR} zCg*hEjP(!IBy6n1(gf$<*=T;Ja2`j#yYh`LQhOO-H3pH(6r zgWh&}q%rhIr%dkb)OmuX+^cfI*)wlZ-HvhFb8S&_0moi~U2BRLvFel%gHuN+K}RW< zb`1F;Gvr!s+#f5x6UO;i+23wm*mSwY-(lj*%)#B*UsB!1cjcMs8T;QcisqlkV-zjs zhe;=m9CA&mQ@w(V=>JbUx1ZQ-uq1?&XT(xkpiD6x)xOoJQE|kkRrZCMfDy z?G#y5%@5#>S|sf|)JjRE-qAs0sY)t;3gCVHN%H3vRT_lb5i7!Hov;hQtHHe2crx@O9& zl0z!VD@0c%F4kEeXu<$%;bigXO!<3tF8q2^NQ1{Q8Pm=TB5h%@J?L3dbg=?twA-UY zQl8pHwjh%R^Omf%3UPpm0Fg4Vr}pPhuHE|x22QPc5Nb`Or&jHrG2d9R`iO>LGqX2cS0&e^cwpDNe{-GTiZLkq5|Ylh_Lvhzc&htw6#SQPTTT7xkg>~9SR2axsqHIA7v z6>7qc**Q||zf~m?u5Gg&O@`m5yyT8H6;d8u zK3xtj2c4}?DY=&RCryYMMIvU}(gcA={r)LgC1D|@$dlA0 z(+8%7?C#Wse3rZP1T${hd%J2PrFN>rL4W;b7SgKgVlGx{z0obWqKgjx!Brz_;&-Ba zMxS|Ht`!zK1~3THd#5}tOULqF#nKU`D@R`89a&v!wQiE`VBlvPNS*ET5giOXSYOZG z-Nu`Jl4&CtEG5Q7{aW#5?ZA~b)hw%YdtC*Trgf2EQiLQzsqDBV#FQ_~%%G2wxbITW z2cB$Y`2+~rV5?+O8^57t1d($laLxn{GdRrPFoSa@aLxqInZP*{JRWC)2c`pgGIYR(*nwRf1simI*j8=9|D)i|ed%BNX4S*fKxo zh@C?0ztd8A;f9tq&X9-jwXOQ$tN`~|8*+-y8x+P^Y~uE%6l7SH;R!)L z$i@N25uFw8RY=g3F%l&neh?c zmY)@Yzy+Qm#^Ed!CAK!Vqz?ra)aak*=r363s{)~^I!jQ%dXdrH-*p8j9#OquJ)Nt)X6Y?Q*Of|)0){_KcQp`1TMPVmm?sO zKlBwpHHzNEPBtm4OO>|ia;0_OJ1@2x^R}J|o)qyO61P^gbSIfxEBftg%T*1?){GCHRjxR5uM2h zEi$G+(V{GmntQbLs*h7L_1+KLZ$f-qZ7V;;)y89I0(K_gvXe*qPxLb^$Bh}P9&@Oa zM~78*8lxB`GWjB!Yc=DTuy{Pip3H<76Thq5u|><4E-TikrlG5T0Z;Ro7F$#nlUt?V zF%E+O`KIeKC21m#P%&KKDL1l9qK@8SgaG5QcLn?yiPo^u7Z{7q9xFLoQF z0-a0K0_q$bF|A*>nV+R4PURYU3Z6Vm{m&Mi$)$CBJd`sjUbI!S{zG{MP${%% zQ0g5tE{3GJGxW)bT>o9LOfvB@mAjXyh8(ABx0vuTn{eq4hU12hDc*Wrr zhgTe4ad^eyl}C(MUe?84kTxelQ$&L3_xvb5zgPf!E!Fgx|+4+aSJ z5g4gwv?8RtbOaLLc?}~BM*#v1ae;Lhogo=jeyBsa zKz>O?Z!*$+M&->E5#Yff5IyF`iJ7E8pD>RgQ+0a-NG=oj&)C_oYOdeDhwLrmcm_Fo zhtMHxzr9N>)M_DOI@yN4FfY9{WWpioji%mR;P4#r-_ZOic%q&h;K?y*jImVezv1Go z*=DP&w^f5&?5tKM4e6f@Odtbegn$Rb{&bJr3|nd*T2d-ZenCwn|1P34^YEsoB9K1!~nt_ zHsul7-MM->*@;Pn{C{4KZ^`cDuNONz{tn&U;eV6ua2toWx6|m_n_i>Ak8gK&lxhl? znu$zbTHv3}6-7E&Q;_ny<`$(PM^j$81WZZVXaQ8p@I*rwD_oLvSdC0JI|3177|p(> zRg~m`NX(SpED--p4O^-YX|OoHaY>Fj7(*N|fX8Ve^?*}=Zjl%B9>aq;EaR|@!!qlP zWgITB#{~)QyB}z9J>kLLX3a&_ynIU-%5nffx6+(ex+>y=v}Po4cl)txWb~}qwvijS zY2OfIu>ltenHjvenL;ixMi^la0XC&^;DZrTm}5*M053@bCpZODc#XgmPo^NiS17S3 zHp_Dm5(wc;v3&TfB_Vrysb`9Y@ki-{3;7r&Kd=t zSll)!QqW-PO5*dk(F7_6xL64&(FA>;sVl;OQ*~S>ivZ|x+F#VDb++Z)cgxe-7$2&z zL7lVpBlorb$>|5yR2b~m#IaCZ>pkLUh@t2jm6wy9G%#AQj!R*Eyiw|66-OIY|KpYvYXwVDu{^Gj|94A|zP&)RFn}CoK40?jM>c6> z{DnSx@%O4Ayx!i|muFUP5^TLbicynJVI+2AZ)?3Tw}|230((~~2F)L5?@l91$5n^@ zGQN*``F-#OlS3L4waX| z{C55Vc`CjSFh{e+vFEEpNp(6uKcg|RI@GU<#-typJn=u$`LYYjlzg-nBh5Z($I)gB zq}zbA1=8(PCEhjdYB{G8=TuU&AkXoHKqW)&j%TFt+FBEA!$i6UMoR=)+lrZ-xjRl& zH4iOwNtVS=Hs<(Uoa_v5o1@FKffS6nR4w?`9c5CAV-yuK~H;*`Y9XM0`LrZ2#0F7 z_S3v6nfqz+;N<+xWD=o?K-c@O7L|T+V*#>VjfrSOL{^GdANbb7=Vs5zm zF#RPVaG#W+0=Ke34~ej`3Xp3sqjtM_DFm6a+HTb=1YFBl&1C`HrGYQ$Om~LSk6HrU zU#;LFYXrG0{W-w%sF&+QyKeHjCTgr??C+7}(Z^&=yB#nX4YWFU9^s9{Da1rtIqNQ; zf5bv7PugF25Mj{L-$6uvfQ!$bFQzC$(yf?K4(5mhNanz!vzgp7%CQ(Tph8M-JkGP` z+}B@O1QDr)yKtI6`>Jey7gt=lF21)udpo5!(qObX7!E!menX=x^U*o-IE^xs4vnr* zBtDm6Vp3&Pa*mzdofofP?!4OBdnF_>y3Q23xgbDmSG&!2he~tO+W=4SC_wLMq=wrm z&&dN*Fe@gdCMQVxsoNs({Hkc5AEdMf?!`o#i`oWtrW>W(iaM8hpsg{kD31INS-cZM z72oe`6&h^ej)E|(Cs2I3SrfVUV@PRm0J%3kjoGw4Ow3iU1BqY1>C=OAJR!)}y2w-T zn zD^c3nip@plplt0%8Ev)(Bz2cHPU|rmM;_`ip@Ne!PR2MHbDw35vnx5fQj@ITt&2-5 z;M{cK_iE+i|L zp;g?YVx!d*>#)~4?K&aLTYFpx0cy9{-bRrz`B@7eu(}lyLN0jaX^y6iXZ34EeS3uB3W-tTw{ENNk;qmjMZb z0EDW1D&>_{55WXqBl0+d5j*bcxa-<**S)&f&gqUnLty|t)B|@dv}Ah(za)Dt^mxk1Lx5n}%4{ci zMb$b}GCr8UL+A{0OvUq!o#Eg#iU~TTH1O#S8SL+ErvGKQ?(;Q@bdqd2 z1W~i4>s(z^-z&gaewemb&`R=AKS=L&6-H_!+$(0Sg5bg@u)6Y=`$CT{<>kxQbwQ5x z)>YWOD-)Bo?X8b7CVX$#hL_2Pt6AA*7eXF3BhH^<+jfBf0>X!MO}WFhT%wI>X)u_?;m&ai+UECX6HK_vbBiFHDPSA(UuO zAFn1V!R~hFkOb?wyI*bAMHrFGOkvV)n_E||+uOVpGNj{06Wz}p+%L&Sw15dDBqeYr z!}bcmBpAQHJK#1#9RYr=clCLyhabt>gWI$PAqw?d?J` z$lmWV4nt?gpJU(YzTMqc{3457q}X-#Tk|bZP%{Y`1Sw;(uXD^gd71K5`5+9XPJ;)J)!=7dwcOU=CujyKbh4 zfK;;mnu#7T#whR^fDt0U@XW+{NiNA3Q7LPUAub@>=CEwYyum>LCNW|Rz)*0^2t$s* z7@TaZU#d@4pGdh+cQ_!^u@| zl}otvYzHKF{KDOe*Dorb?dj|NPfF1+8?~_<(fv5@6z9QAIV=Vw1|SHoVb6Jrp!!#+ zV_}4@F^yR;2ZEVUhJ5hG_a%moG7p|(4mi9*im8uj5YQW;yeVG14=&@)%^gn~C>Wlk zA<4v3G}Ld^rNrc&Pyt0-niMc&lYH@%n#9O{e54Cpl3a|<4_KNZS5?Ef**C&)uM_h&E8&SNb#gqT61BO?Wbb;^=q&txAK>7+nx`VwA_Bz<> zV6TI{9bxb5&AK3U3XGj9jMEkO>gvk^-}1BFWzepss!zC^4YY`N8?kOeiH4F)j8uSD z?SdU8enJUsT_MWVBp5K)p;(7v*P7ZgdUbfv;X#K79UgReuqz(istao>0LwC74((kW zQgdes0CvKCeY-1E`YJS_y(Z^`=b0@rfo_RWaWn@!f`ma&%r-ba>IDO){T14lg%X^o zAZV`sBgJg@!IpOqu$u!;4mdgBL3wZvMo87-6d=Ol2!T0` zRX{pDfJ=gIp~r){?9C)cl;l%PuH;`ZLL2=e&eCZ)u<>_|kcUHT+&Rv_z7`x#3|Ee1 zoSG^V8)i%ITs^Iv0uKg3VudXZp+LW!3{gj3^Yl@3HHV}fl3tM&be*X!pW&Or#*Wm@ zpWtA-&U5Qm2zXM4fb}E`B(}lO-IQ+j}!F z&_N6OX7yFYw2hZb=$kz|IyZVbC;DZ*ZrR}KT(45D-u}N*ovY59+NoSl<+?9(TvoZ( zQHi zDGmi~L!H$~=Xf1-woo7@0rjqcA4f7SR08?cOH44wFaRSM2>rwA+NT;{Nl}?V2Eqt? zeJd6B0q&HQi_-2`K}5AZ%&7zT4&Xb0 z?*RTo1o(S(LFyTvyhr@aHN*iN1?WIww@zrkqMbJ97d#(S{V8~o2m8&Ky`uAmF!nhO zp)H=T9_NBU_BA9XLG7hMoksGAfQ}8I{|ig-G~iRn6VJ07%%^??ZwR0fU?C#>ks98) z3&n2@W(r7aO<~x&ve1`xA-vVrK2^ymx^hlkeL05t_1iPi+(mZYXu&ph&&^3c3e9%m znb`=fSY<+1!XcAnAI4#-O86mI=LBCPV%*?Y){zbHS@6xunlM6O90!@Ru0Iql%~hgj zLP0>u1Vxtwh9QCxm?G(<>v*i=v5PW|6!uD0mXUIi)n*vc4)#)A=qXIQQVtg@6m9gB z`=We2{Dc*+Uo`|{e~FBh;Kf2($Psr+miq{X-;js z8$tGZccCD|WOD9Jksk-04PS+3mQ&+Io4P?uDQ0xtAkK_-yGpbC7_Ah!B7LT8yH@Xj zk2u5uQ>L%HGUt>o#~~MSNMm7_<}v@y=49?z`7tD>aCK&OEHqfU_CY+#+j>zj1-2Hy*VwGXkMqb3FL0g=)zOho z#}S?7!tJXw3g~$#OcH)45S~*ogI7r16qrIXL4cB>iH0*Q&gmr)@LaW^!(WNcRQaqJ z7-_I&04)rLAfDcPQVX{D+A0cN%g?2$Z-)%+9R(-D3Q%c)sUAow?yx zq4{Pc-w>#?3di^A7t$__=3+SS0J{V14zS;6!0sThgTM{~I|%#`A@FWP$a(>=mT`kN z>aW6Oq9^3rx9@X))b_p;CM~J!1iOJ@C=l#+n%`gh0A~RXR)%@Y&dd(eK0r*n&eYxm zEbGvrLx&C>I&}CD(cxZAEO3SNAdgvVV3<{{!-U!uHY?bK;<8c=mz}dht?oMKNEM`2 zgSU$*ijWK*Vta|$n6BuAVS4Dob6hnpHThy#0^m~~HH&R_HU&Y+=^W1{U z>Y29^92Fn48)wchr8ZNnmzoW^*4L}c6h1WB@UkY1>?xdk(>Fmt1;rK38VI z3X4SEUU5jt7)LYYznO7uZO}1aOAo$4%+C?wSoTHYAQ%q*J4Uft_YWF-Qxu&czX*76`b*4E>_tE?L$~3Z7p%e)0ZGgNLiIYF^1Y4@9d!pm-}_>;Y6Vmg-#Sc zLQ%N2Srh3~^7KO*1Y(GtWS_2VuOWHZ-#EnnLP@3@ZZKo(mRi}c3p6`*NYJe(vP69L ze1Tn}k`3hBI>bJR1T{>a0zkk}Fn+Gej4+v~)ssb^Lq5Q1Ya8I011!%DW-5{d1p44= z2p~A5KJvhmn<@6DKnJSG0_Az)?eh?NSIAF$5p(xc$GG??N=+e~Zsg4-{X`7y8k%Zd zS;xsO&5%;#m##rOJUJ5-;7^&(8{gMZ!?GG7MbJ~X(vT@yMiVQ*rt&JgtHotb^wLLJvn zz#Vu};`NJpdD?mddMqN-E^OW$#mb?iLt{S?ja4z!vTRy+*|nzZW~U~)jNE1?n03UI zqGknqk;wqtG8NHQV;aDv*@>ohX%RE8rxB4307jTzka- z_LfJmrE}aHkJG4qS4WV;&fehmKI&C|fFChAM_ksk@#wq2Gju||tB>%uWd+C&p6Lruoxb5Yo)D-&Mypv}YT;bS z2i@lR&iHr3w{@npOeuI#bD>-!UoDtBDFmu+|L3l%-BldBrWCtVS9j{Vrgpw{Wg{FI z;Do_*DLWT%i;SuU^pWeJH3P{F+%6W)LuDw9=EkZ|-OgfCWFk2=LuU!j=_>kJQE#gX zsgW80v{s+>V#MT78d$k{s#@=E=K_HwrVJI^qo|!~>Jn93ITz=YL#4EBH+0;RcRJgO zv#mJW%A>Tc^m`Wb6Y{DyhOAm^FS!D7YfAaLqSn_<_p&vPIGiHy>O4fmhoi2>uga$S z#~k`78bDCwZ& zy@ZmLaeCvR43qRj!?{LxC-~Vt2SHm+K|d0)A0fz>G{VUy+JK+@sc@Rp?}nRK$^hUeTPjOu<3AcKBW;K z!yxDqBFw1V@m5A#(CN^zL&pvsKSp%?P~+BZZ#M;-(rmJOfB>Tbdk5&R->T1!?Lg|n zI0BW1!LHaXBWbU%vEdcX`khUEKjRX!lip5xJL!F|rT2r4h_b!Y6h|xx5fP7O zcsT*Cnpm0pm+j5T95t)BKv^8F^Zathb?&&%K^g~X9Hd!WNaH-eR_FQULI}7J0@h%B zw>RvKipwc9+BOhtCy3Vm_*3` z=jHg8>`wlAv9sgv(A^#WH`xxiad>+>jjp}vH5&Z*c4y{H7k#)VzWAahY^&PILGTe1 z6upCSz}tsdsc55?KaTK*%!@5^D%Y^buiu`@Ru=QcT%XM+4zf%KrdS-74P(rcl`uyb z1b|TT9NmUu4FUa{Pay}?^Wq5HU_QkJ1e9Klpmzn3n4|*xi2rJw_t@yX7S;w`X zsZI6~F$O27hHF1NCfC$k?9G_=){7IPNxKDWmi|YmR0276?p-@AgV{%DU+Z(+Jh5Yxn^|wy(+JIQJWGtfnGyL^530%veRzB{D8(-xjY1zy zuA?2i>rsYo_;k)DFK(}H!@tL5`)2I@vp2imp3dkMzZvVKpoY1yC+1qtnSuB(9*wtv*C5@(9f32$}i~UZ_g%0&B6+qAsOl4M=e`&+$KC;On z_RCDAYf$u$Y$6(a1pHHu^~{qW=j|=#htx-d{mtRvOp4uV0^URRI}=~{wPIR_l*tAX z>D1eINIR0#a{w87htPqdOFa2}jiR@V;~5ld$9N%;>M0^H;B)iQ1x_aa42@%ww0uE1 z4AdwFo9Z+Vd9i5oB7%xlx+P)1B;E?7naTlhEk{2b9K{h-dwg#*{ZB2RDa;)Y$0H90 zL6Vc8U4tzlLDq(iIMjrEFH5@eiunmdm{Zy9;PsPa&=pO46FcJ2ZGDeQM3f|VK)tTy z3RSC;+;=g_Lbw)Ro?yGvWt$^oW;rk1wwxtayte%y*R~X1+mUE>j;{K2$lM|Gj>z1c zzf>Bvv1+A)%kuLo>19(m5rds3zG{G(xXYMeX;W2IG@w_DsmZ~p4%;S~skXZy#fELt zaulIl>uyuj*S2OAwrtx*0y5jyGw^6fV{3l@IA-jaac|66YuYV$@xx}~5AFWjtD3YQ z%C0UA?Y{J0?RYeuYhpnvZh5$orRAQ%@T>X|-;~KsHnRA5!|bu)T)MjX_NUav5!#%D zT;*k!8T)@e#Wu7oU$l?}PIxjRPO> zDQ1AftKW^-=_4SYf60rk5$@H|V zwZyH4hXzGn*CZrTA`?em96*lAL`deKqZe_hnL0>P;W#|P8yEBn5q0ZmF%Btq)#N{% zZ@U8ssTf!NrTiNDOiyBT3q20JtPEhP5FLZ$%K*qr&T$);r^sif`9^-ZgY+MBJ=gB&>x)3=6?+$90vIe0>-Y)uXjGr%|sl_TE> zjcJ6y^-PUb&b)S@)2??YIW2vv+ES;dTCW9hIEkQ-#2_GqeM4|Q~N|aVDhALWET=|_4L(rS5l8NNXN{BLV zq(C%%19h{yGz*a@fS;dMxPg(cTa1wUF_-HiAwfTt#MX~O$VhWJ$Qcq}{&<}4IQM0y zcrrzzA|&P7L;2z6;xmYT2|{9lMo6IuP65L+fkq6k&8!wCz{le;l0zbh-_Ym^Tq_lmZPd@qC6WDAO^|v) zi#3ydDOPNLf-Xr+I98u49je&jVi1Z{=~|jiOtORI^P~olH7d%Y4_${RK_)-DQ%!ATQp{8C zKV>2}QRKUj+a6$K&MeHErSZSIIGeaQew~J$Z6oL67JYA){NT&MEpirdv5S~RSonF^ zYCJlN(D>)F9|OS0bQ6$Un-!9+^vWxIf1zhgC>qWRO(c#2k7yzDFU~JomYzMgJy&>7 z{F7RYfP3t#!UKV(+xu83`>bsJ-%xTJ#U@S;eAS!Pjb(#@5nVhGC*0tTc$z6uZ40~S zhn^O)-~earJ{jM16hkBw%s|YD1b4QhN9o+F4+QwYtpLsBFk4iLW~Sq~F(lDc%~*}T zv4bIf%{)oZ5*Lq3vCvDL(m(EOT>j8m#R;x{HPcQscA28v(jsI$}!x1mvNC zo1*QEOW<7M%?kK#Z}+0RwZbqF#K;~DeAoZcSGtelV{AXvd}UY;uE?zRXR6>;20`QG zhKbs;m5E6Lh-2RfqN}5_-fdPaWlMsG8@dvcUI|utQi2GB&B}>93eU1-n{-qeGdOnl zu}QFVMzM)e?4E^HLF|2%$ci6emilZDlZDjr0a z(jgk)Eo658dql3o;?oG!T5sRsP3(%PVNHpPqgo+0V3X2-x@{;!HEpLTOh59!L8o4#a9T9=r-}Iq9UVPt`Bf%KZ|Ju<^MYBnO-f#jTgl@buL|W@(HR=9 zvGilr{HnfocWkQaYFZ!ZuP_jN!Bmgcw4Q4)h7k>twA$YP&)h=xmNf^>6 z8K;#}o_OnZv2>*f+PD@i8hnOy0%}xNJW52^=(!eX=W*S|5Me*Qy9%q z!LT4U&?~;VDM(Oe29>9BJQ$87i`39qSb!r=*n#P_l8+ZuOZ_Ft2}d)8n(Sco4Oxw! zw>>Fl`v+pEU@`Ftzm8RPnvrWI?F@%BRw_XPSF?$rmqF8$sq!iTH9V8h6p^>8|H`=D zW0RLje%vV7hIJMO(R(IUsU4j>F}NN`qs9_(uMqXVK&rrQMf45g6VLh=k>S@xnL{>Z zir#dV$?ke&^%5dZL1FgZeb#W;HOX+EGNxe5@Kfk?{E)Tk>=T0d)B7yCUWbS@z{ZOIZNYfo>4B%M zB5m5&`X*`dZ;LJQyA->6;p19;M6xl%rkft^=s`;te?G%xn@FveiR~5>W)?#0ign*_ zQ6J;(vgZ8lm6|v}(q#h1R6~z>&8Ws^kXmbuZHEf<2Nc{~TXx+Ht)Vk4X&fJ(@KCz2 zr5TTOK&#ti+lD3XdRxi8E><;qz*M4DUIwf6KI~ekrYY3TD(3D=Wjn$T?Vuj5(sqG= zcgcVQsHtH0tUCMZ_X9{dY)*|JSioK&b z{qV%Br+UBrD>U^or>3KK&_zESzzRmlBOq%(HLZ1bsc!|81MSV(+@!jc7ju*R%B9}G z1B1I|h0sbwc5veltxL?htEKd;%sYc`zwb?wjC}|zo8~0BLGcqA43LrJN;tk)7jNeU zRq8W=2w`++HbD}x1et!N_fq5=B_-v>12#=wOzL-7W#P|G7yJV^MvL93;Bi20>@pwV2IGm)gtXDrFfEv^VzCakhzhU^O zem`W^+dcSoIes4jlogEb*YN8G7oZVZGy|^RjASXDLDN1l_nJ*KFhTnrT1a4^_1wHi1(; zUmBxcy^~Y;jv!tZ*0GjwF;J~BcFi=e{{FPkiiH)we{f_U|N93NLK;Ob8)&Cx5 zCxtM|7Jp%17WGl&*if#DP>wjWpyy(QT6m#RV4cwB|Bu>801w6N7OSzVsh{!k_ar6H z8K#=?NTy$EuDWz=aQ1pOdX3Rt@9MI5QZ)c2eUFaIHdTlpiP|utAw$yPfjyv5=5HCE z=;mwWGOKCu>y)x}c1wrJ31ePrhO-6hCUvGkqpfjf%WPmJhM~1TQg0DWkLonJ0n4c@ zZL#Tx4Yii)C8sI+`{lxjop0j?Kuy$H_%LJo7ETLtPo-@g@;*bnqa201q#64J7N}wd zXX9_6BywamCkr$mWfn9hJ%3d=X@Z9~C1w#aFd{c0zE|n%KPnJC&yNR~uhel$rx@U2 z_R|oY_c7ohJs-BxWbp=zGA=Gx3W9<>%Iut|wJ0PO80^0q7m z8`Qindohnq9znaA?Z2uqgkzkH%j5>q2TXQeYtjyU_SG}QV46(SH^;fkZGb^wDQAp z<|Zhg>ytPY*pPHnRbl@S?fwx(UjlnXTY5!HIh2+DeTevmSE-Z-(4L?w5{%;V+V(3p z5o!cgR(>^6Cw-x^vD-&l>J=H#-Ap)6Kh^=Nw8Ox~yw2sC96{?om-ns-)TTO3t;Q#| z2imtg&-^|Ota)0lKU%;=kJWMc&cF;;f2ek3XX92;cF53Zds4CU!s714Gvw&*#FvMS zv)v&Hu}QUi3g`-wJ|0H;mgTU*A(UOFSa!CySCmqWyJlL8%9A=Ei|aw@abw%hF3ie@ zvhi*ska$ym=Q}wZ>g4D66k`m`k;$GBJs$JM{Fz&7dVSnQB+R+2vx%3GNYxKN=j(L1 zV2aA#!h>A8sa8{3=`z()BeJj_fE@B-otv>%{>OY667FTAY+p+ zKSx2u6Ajr6fibXeRX%cm;lc{#T^$-TGfoAFnEW7`{!fqMZQ)my{;0teOj>kAuPMa`^YEM7!_99d@ol&6j5jPIjl-|vRcklIcTh`F^8P^-Q zXbn)$G`qBZt3jRyUL@yTp$l}&wlJFGGA0X=+dkeV1WpMClWN))(92c#$YXKf8~2;P zmK#xNQ)Du$RY@(tYO3~x%Fw#}L31eUzWAz)3GF+DK%=Thsg|OqzZm;BR<3Xi6Yjia z>eEMjMp0uujRp2zu|0{lQ33u06EcJ9K|>Za4zum{W;)G(qa?}O-1w&)D$Y4w1I`YdD_`Tnsqr^`? ziUq!TDo--*K+sZj+?&ZmmIEyT<9pnZ0Ns>HF9dF(`JU;C7XFNl{Py8@0Y=O{WJTfF z2g<-;Ts*Qheo!(iH_%|`VlFQv}nl>i%O96E7H} zg7ftEMsYrDSI)P0&ku0NZ^c>_1#m0@pK*pn+|n%15w1=VAF@5TuRtdz+zK#zn1S!Y{xnbie@#v@{^0cz>QY1mpfAhtrq!*)a%LH0*f5`(- zaQb~RO24?5eQXLIO+QdpM2R1xLd|)(eUb2a<0>$|C16f{%9&VkkZdx7mxl)In?sBJ zT$_OaE%1pVdCWx?M^PqJaQO;Z;Jlx&=QqMbv-H5zLluq;532&h1sm>-Etd<_{%K+P z%PXs!adn)=)V+_s(G;Ru5Izzg7F1;LrIUsQHF{{t)`E!+%WiWMlJg`=T#V%?cmYo^ zVUv>xSz!oVepyUnzDsA*aiEcMmmjH+vO{w*I-{mM3x8_=duOH$*E6&+e{OFDS`CI0 zfnQ}b`88c_P>qcC0_m5Z3EF~2(S&q(7@SquoImD*Cc`Ly>b@f2pGX5{tnHqNTabCi zRQKZz@pngs7`{2Z93|_IM;W0{ijq@9KO0_-l^N6jCl(0Cq`ost_gF#`92_V_HQ7LKh~IU^e*1rjd~%k^u-_^=?tk`)Y$oR9fsfDggdhTR4<=5n z0llVpb7VJcdKI|I5rXFgNqk)c6G!=ljxtGUroXV*V9{kyYXR~ZNzu?Wr33UZ@8oxC z`&}wKiuZ0z-<*5m&-Sj_TfUZ{GL~!;9^mv&Vu0wQ+cel#gnQUl4xWt|9R_Za_Jk7I zP_EQ=Hj_%xEdc34CqR(eioB@)E6C@K5KDz9BH~8UA3<`lI;9{ zNcVB-Z|f~2CtK-1t@x4b$wir_*+|rx=Gt4)gZw-yD>mz9b~1h2ZRH`MTYrm9!&b;u z=@Gfj{85^!uOwQqtaa%VGj}l5DPpy1%4Hlh{dV_im)^;Y8kUCD5tz{2vC-&ktE!?P z|5}-zvl^&`+a^z|Z0RN#{dP-R9}S`tJY0iKRd? zC$MGbD0rcV!^PVv(Y*2W{)95){)B_YMRa180+Xu8!Vuj_cgilu=2!ddb_ zq7Mj5h&iX|x#NeHqtUS;;%LL(ezNZZ$G5n+aLPOi6PlN(&wKe*ba^FGyuiW-)uh-s zTR`J4nZn2HDEBM!B#)PBp}Vo^Ayad@!;@b*FKP1-n+r%hzXo#L@fji{XzwyE`Zaes zEv%9@Z3><;=e!I|9K#QVWQerM0-NaD?u_Soc0A?3-Y$=?mi0vG<5r*eZ_$l_gz@sT zWB_!<5*8I(F|l;O!_?Jo^*Jy$t#c+$NhBwrO|Y9w==EsFNLsk* z#NKem(mBvfr**51_2a>=NKd^LR=%3Y*9ArD=_%`=p-TRR;BK<}AAL!JozV(Og{)5! zo}n*XflW_siM(*Erz4eXSQ@b;2KmVbhBV1Y&@)d*2rksCNzUgYM|OyxA}bl-4zLsv<>-tsle?0Gz~M5q?05+q_7O2n z8s^F8?~O^bw#waPY4k;jOi(q{bKO}wQ^=77y)@MY=A&rg5aibyl3mGbPvVFP1Lt{i zu&iiQ<*krt)aG49qiYrn-wnWYSH_493~Ls9lNGO*a4$P#VoF`#p9-#hwE)&)i4RY^Z>{aYi8zx=;5i^Erv-itPdL_9wDU8?o;rZ&a z@$Hof{qAUz=0fy{;>noSs~IvbW?W%jdSIPzO*zogigMU#IJ+(NZ)~pPh$JiJ0zum^ z?H2zlW~26Y-SMJ#1|c_Mp(h80X|Vbk{PRQR4feKF#LV{YEP^D)3sm3kUwhT#3nJX{z=}_SvZlu6%#re~!pB*xyNcg#|-b zItC@W{fUPeV}WQWFox%Y;8ZO{!@jN9Gv5Cdj&yZrXql0s*z{Wjf0}z*FN=`eYyy&Xkrczod^kbexRDJyG zTA`WOiWp0#|DXu>9RQS7yhe+0z%uyN;Q?@$flyglO#10wx>}F)eufZ*5#0xi^Tsn? zfn6wCGb+_3Lz{ra1wk-04b7)-a=7V@ni#%EBURn;e8(PC`{KE)GlDkr^g zg5qMn=LB&R+th3cF4e5<+xpOFvh?!(z+!p-b~Rj1s!el(k5PMk>&0)L)L)H} zf5xAxH07Yok`>Gc?Nr8sS{p((m$~);#`;2JA5^@tYL-$vML(0W-sZbG&a)2NKv(E0rDmX~5{XwGSfSx=wqs8+^Pgq*pOA0zy29J*Jcb1Q2GlB% zX)!D7?;Y4p-7N6W>0N5)nG$mz%m5=(b}i!&?Ef!iTf}_CP~j6$AU>fzMA~_Q?*ADy zLCtsCmFMLK8+vB=n%@~c$tB{UBrFxhBIW5%30Gw}!`AAU{kYa+*D;2HBsaS!LxGY7 zUD)~M>p-lz{^Z~Q!Bz9hfawv272d3%%aA?=#FMwF?k`THk~1KhIp@BIC()r~l(}am zgrLK%mm`SjxuyAPD2PKmY$%sT zqk5VA+(;e-k4{%r20UBG6HnE(UC{^52On}~OkG}R5W4aF(~vaunXz5nn%zjpy@Im6 zCwUi~F~u-R<^);-&jlQ!BH!D{MqdVq{|nSID@C+eI92iXVndU<#9B@VdG2l)SsI@f zYnSu5Vp=cVv~H8=zJ)N@mi3ofIZLIx;wE<`cTJ{pC!shrAfd^-xSBxiLm0VppURyQ zz@M(yc7yUz?h<-I>5PLY=B|tP!MtBQlS&1Pmb<^URbxkIou&ON{pG@vOg*1y8=p;` z^vvtzZtb$`I1LE?#=jv>r^63uIUX(fUvmzh`s!}CMJJmlnBNSBZ~z3g{v*)0uI-ro zrF=h<-+wUKcqltVsO~i^0@uvDcE}cRUVjSZsWhGZndny*|KhB^o$TQg$uR&B5{NzG zxI%ZV*_nB)ina8sz(Gv!b5XC4_V%bBeb%p?A!QA79Jmk;U$;H>AziWKq$fF3Ve2Xy z=VJTIadiTws~YIU{J5eXn*9Eoqbc-w$6aSQJ&%2C3P=9&NExakSR_kxL#t;6IAvx% zRWEt$v^&uCBb=!bH`RaJ*4$EZ0SAl~3wbbEP60Eud`l zDEA5Q)<1-zXp?>;Fh=;kjwbB9y|vd&2TaS98B;v=3glio-zoSLq;FJp_7dm9^D|Q9 z)kVIE8t5t&-rO=fTa{|g%`MBY*UY>qhr1nQ_I1RFCi8lQ)Ki)pP{jcVpdxx5A4WG; zQ!fvlGQ5PksCdyo>FtLaWeqYQS zz-1)T<*J8rWvgFa9<+-IlqR_EMpQG#dn4v4l}^iZ>}+bZ>d0N$zxYCm4REG8Y9JM7`asvyU*BW0Y_I-(E>B!v_*}pMofq$N%=z&{OvLOm2|5 zLkyqpS%q2f=Kco9GZ%ds=#QWz?_4kKHCE$k<^=VzqV|4jsY_$L154C?bGgT%tzGRJ6{ZpQ5e~W$ zATqC;V6z^cI-(seaS|MPD2Nl7>{_y~eQpYWgySfDJWh#~1CLN6Vz2NiVQg?5Y=aFqQVxpm6GEut<4}3Tgo&H7N3PC}A6=jGg*k?;4E%9T{w!e= d^iwFP!00000|LnbKbKAJGKm1itdR|PDQas+`B(6I3RBUJQ9VhX%J(GJ* zoO=f%Aqis&;1Hl~O)B60Usy)+k+p&!3^;! z_1R$m>-PbHGg0*&4v2>=nOFcuOSZLC_tBFFdT$1f;07H;z)eu(foNx8J6Etzs{|KaI5se^Peg= z5#on8MKfrwK@!hKC@MAcNj?Uc0SM9}=oZex00|PdHn%pnz6}Rr9SrurCe3{NF&sqb z?-)nOAMEoeMxx;`LLTJe$ruI<{rDydu{hv@5IvOgiYn1mS)^uo2C3f%XEY}MV1IXe zI5>hF4)zECCc)-^&JU&@`L8MZ?|=PkAZUWVFQ*y?rx6WN#IdL^NgfVDk8ZaJ-H$R36IThbP7uCOi{K)2)j{ZU(x18UK zXX4|jt#d>@IfVS&zQ=qTk3fWGlp_#eay1wZ;wTvG52l=lZ2#9^C$h+fM`yn#o8x&H zQ9;+Qf#77njsiORbp{zn(XTMXzlIULo&Vnik&Oxc|4z0xH+RLD$~;W2*8{Or7^e|B z7HqODBdchmf}1@BPi8Rus=mcHEV#)Sdg%L)CiYd)bTtoqM$k=7`%l|2x9YJ}bGItu z5*Ekk41p13*aJfJL^CKR6TlITx#E9my;l6EYX4RbyYv}ri`ndBIPwPjTiZKgvxbn1 z**eW_%Z+E^|Eu@0+AMm9>FxC3cG%X7h8=b|Mc!4mRJv`kLL-%XOm3yxom6O{dMmZu zEM=-1c1w|f5Jh5hFaQa70@<8+(})rpv!`H+V8Exq6Ey%OO1O(Qeq|i;{00(3P3Q%q zxhxwKA4S0&lL^3L9nTQqauaSWz2QE^K~N#KkzPq{f$HHFIwAaJH4!Gld5`rTj9L_>zl9B7_98YYkzoU^T zPGBG{EuslEZ3mE{cL>Q(*3zC+9L8Olg4B3hSb|c`wY0py4=_hFc9+z*H)I*)>jyB3 z;9L&JSO)iD`b(^-1<@Jf>PUFT2D=eo*h7mO$ylIGS(DE+3i8sxw5V7xo2Bs-7(ln` z6>PU1@fBjBO9NlhneH-*JS(`LNU7bd6*)Z#)~zIHEH( z3^+r8A>yM5K%PA!lz3GmNSneiM1&152_=D2$HzEgX`A4Q>|1H>H<(XBKyMJ^ zfJ-j;G#!jb3Bx{$#77jAqg&*~Vp+-={Cx3tA6$GmJ_jG)UVQj`1kOKv{{7?#eExLu zZ*cGy{C@uS2)z4z2HwBDxH$gw9(;Uze*WhD+jDUI3A_R4r*99B-yI)-&e8k3tC~pLkK_*+#2qw| zKN1(Pew1ppOdq*EP}soTHl42TwyN8z{cKffeo<)TJ{Y_npQiV6vsu%7j|gJ8yN;*p zS9_`Hvz7}So(qj-u|lU?>s6J@C~Q{XlD^HO#EE{Ul%nO`U2+prcQlp0wSjsWgww|7 z^jBi)++2w59@K(=wbi`f6A{>T!Rz|gN9nq}&Fa@hdtLn*xr1 z+!=CwokO6>%M>We2MPMy$`D)muy!~&JU%L)HIGK2k0#gA4&L=BLpOXnXOkDVSGVEc zW3qiS_Ws$MU2jik^ork%{M##dyUPYYTI$&jc{}9&0IyKI-nNp_?3i3g;I*uMIJ~``M%Ui- z8V!DYTM34)lB?+gDb1q!X7T(9CE(jIu@Zf4rJW0))!yl$lWl3qu9|dw<6{`WN9p?lkjH!3sO`O!2IaPpVHKl$+x)@ITAxwPBE=&0f_SO=Lau>xpyeHD|NobXjmM z;XtoYJDcn>&d$BFv>5c~Ir(|?m)wQzU~Q*Ouey4~_u{s;nr@z!4w*YMfP6EH4IQnZ zQoiw(0j1Iy7Q>_hWepx2Av8b|pkrnGDEo9c)5pU!eK?5bAlf2cz1?(&IpsE~m+o@B zI%&p+SLY3Lx~4tnPP%I3+?9PS!N-m9+4Av}&V-Lg$%8SCGNxX^%~gbyA~y#YQIRGQ0|>HDWiduRQ7`5r^1!Qsn_lmC9{X zA!F*wtybc^y~SL73~STy?+jVmchBU;Sk`;{;R=(Trl0|mb@1sDB7{#Z?V>{vZdck$ zpM5~kKb%5hs|4_AvjEB3>nJwln8X+a&5HyEpQd6$@GgnzBXo@-{woZ_U=GASkbbxf z5QKc>3&uS`TpoR162b2?ziCJ)pQ308l!LO|eEYKdO9Iq?oTh(*|Ggyg02KiK=8bs# zzsX~M@J1GXb8tz(|2}{I{Mqy8|EnwNfBD&&Zutw1178mV{P|Up|AZgBc{&7g5Ks7< z1LN;EPrv=?47@8g@Me29+;)?;oN&xoLX}9&yoQ%dvVQ!w4Td6`LDC~E>Erek#i=w}$X+|96+ zGn7{gu0pEWeKY1L(lfLiZ!uc3OG#35ywZ{L7~QXc3FQZ8chFL%E1>j>ff4ksBnnQW z&m_TQQdXt%mt2xucpO5L$TijFhen_oLdkP61z86W1dyXh6}==$gqh@!zCSj2&ybiq zsBnCIt@-%t1vh-v>>kW}Vd6lIrYnyh5cE5;5d{4{Vi$>a`h#hj zswTc6`ZJAt$<6Jlc%iN&DURWS7Ttr@z1?)P?+ih|vz*kGZEl8)=6tdDu5PcX~LLYoFcg?E=eXwrF2MdiNG5m$nWtO)=AejldkE(;u@Sc zt}8>@ZMt!Aj(B&8t1DX{yfvpP)UEZBs4$~!0Ru`p9n;7|<2VTBfFaIO8LW`Hki;9{ zcc!m`c~HhFcc*JVL(_k3$pp7wG&xvr?UW`rdv2rmp5uRX z%*qo?gwnga-7<2Hu4i+pR(1C1f(vf%HF;Glxb$U-lR>iud+#yzq<@3ur4-SU1uR>1MP&aYJO4&tHU2y%E4 zLBhrr2;G)<6dS5zB0l7h>oOZj;o~EzlZOaJ8}jcRFrqYQGO*QjyR@;bemLe;t7eu{ zBFdAGgzh1R50dd`ag@}#diwnMNGc&RREM0E-gr{Y^smgBXlEskM0%mvvDU5aqn+O< z{qp{w+kbxh&%dwHhyUT>`@J_T`u)ESyf3#O4&I$_e_(Iv`-|J?D58^)JwsgCnSNue2xt`Of4Wsi?6d0eiC zKABvR^u>UxOis$)2%uy_1&~Px3w%*x1R3%HB|r_jH+EJ%rz_)TFS>FwwoB-~*5 zAC$P=nN*(3inI#f@O&d1q)s&GNhy`2oC9i==&rS}Cd2J344ARY~Pf;e3V&mz?`rg$1_BU7D+OOuPs|)&@4T zSGHDr)HfXbP8bqjrNe@H__2|9UevkSOUeBnkwe(^xKLHDgF2$8Gc=Y^C-FI0U?f)! z_G1@MiL(JPy5k8VDAGLr@XeV-Diy9r;&Fe#M9-78=D?@vKGBW_!@)5-d~>GOW=q{c z*Gzd;a!4h4h3Klp#X9Q)O&DM;oGc!lDSxldg?hy zc6)S4%2T_@7G%<3-jbD8Ar3GRAW{bQ)c*X*wR<1Iz^OG4LanLv)T-Sx<{K+kAJLF9 z81$M=^_)Yl9mLc8c|~a=&752&_}u?KNd6N1PDq7_USnS%>A`q&YkOx`RDc``5w`z* zkT|1Um_j3MxnJiqg{H;qsGHq6E86z%aBv21`RWDh~Ws_NH=}h1FTRAwKhIqCR$=nq&$jKM_lzW`niPbDUd4-v>(S zC>JsGoQtOw%9XKU+t``Y{kGEcw&K3Es?kZu%rmQcq-$v1#iiY1`i!;Sj?CPeu0rbB z3a@%=q+~5MZLI8yx7iwPG0d!zwi&g{1S{4v@{{G<&gybx%G-+ZoX|;U!cORq|dSmWLn1!6!JY{&Fkrx2iv zZ*N27apY%U#BGj#H%D$}7p}1;j=Y3ZOCElU1yU@WG>4FjO~k1z(sNAa$8zvoc}kNmlkzc*`ReX()T`d*A;IDZwS_57 ztFFpq`oOf1-JQCS&vKWZV8%^*Z&yvE)J}Cc=&#?*LRxiQ%*9HrH@XE^bkV^-xN1aA z{7#h5=rfPYwZcNj00u#N@06!y=~&*YSUSRV<;W|%BdbfT)=knK4E$^Zsk41PqJx14 z>+89@+jz52GHnEdrNo%1Un{<>9k|k_nq`%4ud9I4v@Q}%ijYJol^wT)nDS+r8T3&S z_g(7wz>}>kp8z2nY?VxE<2SU7Aac$G&Y8er28S6OW^m2~&Y8eD6F6sr$Ky=!z*M0Z zjko*->{r&(Wt1V^LY+FKUfU@{x~WEWNR{cR3}v(~Qil>!0+ktZraDmv5b}_YPZ5ql zL@5V{$49IO-KXYc$at}0z30tY&6&fn_71aHQMHwRL-SRt8s{{QyhbJC;co1`#`~;d z0jE(7m)YA{BX!$5En#o+$Qo_j=((0V?)M!1i?+N$SG^e|$_mxlL3&^Xxv^JpgyQ=Z zTju8+u~UfscUmeh+|aVd8S)UmwpBlz72qCgLr&3ooK^r^G8(lr6}PK<1jD5?JHe?s zDR!xDR<*h9zbEA|5UjO54fj(ab74xFVBO2cPy{l5PeW8AJ6u<2rOug5J3Vgb;6G-b zL7CIQh}+gCYFnZA1_ZcN=(h48Z8IJe2~40MG~%-rqoH_UCTdB&u-~vKg|A@evaN5V zuO^+4%ci%c-not08eDX_exu7ZaN(Ab<#c?wJBSgH1c=B&HDnR!WR!-SY?e<-(bZ&t zhq~x#y2*T0j9k#UG?HBQUciv9;RG`Hr=kY5a};%P`FcXrE-v5Q#pS!t==N3PZAZyB z->|EWur{e)hi9{VT-!x#`xHER#yE}O1nJZ(=jzuRcC{GMCLQ;9gTfe#P29eef()xN zJR!&j**L&BqO-!i3JF^K!>acpkyRPAt{ud#ys1&QKFdh2p`=~BtxWtUr>EvKAsve; zGd{xG^0OikxWF^SIGlx|#Mb7P^r66l8vXMe{r!n{NY$J)V`YfSQEF8qH(tvcT~I(r z%%Nw^%Gi{B0V`8r{_8((+4Z{drtle>(QCBS)jqR{IvJ*K%57L=S~HvLCzNb~z(tq) zas)*3hrZ&cM$wzt$tGoWsnRxGuC(rZ=fzfI-qth0lOo^u zqB9wxMaC2;T9oBcbB~r@^>Iq3-uq$uO^9!+ZRMx9+IZ|tz|I6*cJgTdiGGIVxG_W3 zV-A(_=&;I8V-%xACSOEzt!5k(7LUi+lbP^h;&*jBwrJVXWyKoRG<4N3;AtMyVvEXR za;x+^#$ga3-*jE3Bu&H-DuxR@`M=NaDGBNP_@!6s0PWzN8#+ zeb-YTO1*=|#gH_2hCUgQ>%R+@NhaP!if9)pqVSDuh%*;PYi%$8@hk6ul$Y5`&j`z_ zw{08w#alI|WV_vs&QW>Xow+MIKgPcN7}phO>@{9emRHmR#Mp9RBWq(-fFtXnU(k`G z+yZzQbc}I?oE6%03z2oqD0y@uVIAYC_sQAF0c-xGbE$R z4|OOP$S;ZLO-7o}sJxjX0z4Q5qQ~4gF_RSN6Xp?Qs%~!p$z=ln89Vz`&Gp;&kiBIb z&mc$d5IThIw|A+9S}jCOC)>~$=B1a0OgJRH(bT&O9G)Zo8=5}_Pt=nGJUJ$fF_udG zH(b0m+iZ39wrY@zoz=>uA^nqq31nc55b$8wpYD;HVN18ihWZTt_>2*P{&G@addQUff>YhJTOA_RZM)XK!}BJ)O}jelzlK zui))28?<$xP@`^(<&1H6sH*4B2CteE+S(UG&%I4Q`eWO9HmL9TeK12lmP>4e35@1% ziAR0Gsl`WRXm8gD8)B#*v;%Zj>#qaiW|o@4N*oPVn_=yB56+)uFUkUIwqh$iT^Jvh z7(lqgraU6MJ6A6!J28on|If?uE!my?^fGJ5EEr3cHo@nS|g-enStC7iOM<8Mh zquJNAijq7KiJ8)y1>&EnVN3NP4Hm~YF3B+mV~7I=@Hj1`9&ifKE%IXCV|WmUWgM1q zSZ1BEjKc-?xFErO_X7>CCp_5OthuO~mv0F}Sq>oRR+`gFS4CWq){NxsZa;R7jGh(S zHgW?u?Hgh&HsB&5GlLg5Q^+O82qWwvz@{_~d@w=^bBt*O;3Y}m1gBsMuMwEy$rJ?m z3I%vdsSoHFVB!U_;CBEM@Fy9`lOFN#Pk=(|O<8}?V{P+b->+Z~jY{RZvc8PwGP`yH z&nd!pBk8tlu9X|iRx3vDVf)(%m94Z;hM(yl=ZN^{A@XVr_{Ex5qAnw-7gwXYp|-N! z8#LwBW_d0p&z(U`7~-i~ERFjZ1wGy*aQd**hn+sW&iZhXEn4o;kMQ;#QroTNVoqw_ z`2|XMMzEAeRgsfBM(-HCWAy9A=+{&+*r^G#@==CFeB=8EFo5Edx77)X4YY}!Uu6Ny zS);%ci`xc83K~pZNqqh`nn1+>7b^iJnxOA9bwwC(s*cNK5db|-`->X2&bFNUZh2Z8 z<3klTsB^Y{v*6(6XC2LAG2wbAqgipQY@XG^|A3D-6GNcvxi6fg#7D*;k^ZuB1v#3Z0{ zDQh{9Bpq@Fz_q5@9ztBf7{$3S?*W3I0^32Ljg00s_F>2B&jKps2ZLRm^7BL)LVDC!Bp!wtM-DyPW zxazQ9#`jS#zYo4(a!6yMoCy}xIzZ5)L>>jRBodW&en@}k13?+dzIL~VqBDZYb4LBwfy@bZ@M2xn;J3nm3HV(bd@=NE)0Q?6YqKjQ9=z9OV=6c&h%{wchEZDB{_N^H<3yh zC8q5FGL(92i*{KNs-7b+yvjdp3q{RF4PJ6TmH2j%NQ*Kk+u&^`u&`j(UmTYh$$eKq z%nf%RroSWv?vpZ9;8r&1ArUrK0dfsy)NVH~g&CQ0v zQA>dPs}($CjUbn$KL>ao^>Te^*G*p6M2(e<{XLRA`k0Jqw*v;FfmY|vBfN1qg_uYy zXWixVk638sN&5>AA`DvkJBY{+aPism#S}$Ix)l@3!5nb_$sBleHj`UMITm9ER7mNK z$9dMA`}!-3AR@JJ7f$nMUzN@8;)*NR#rM`{Z>RJ|8jLmv!@(!SZ)kL7J~~Gpr%`6o zq0tqJ#OE?hOsb4Z&atz*^Wyc(omV@1uY@E<*O@{$7X)bSYPZ?$P-#wj8{i2Z1?U}( z)NniHIeB0TX2qn`bQ4ogp1d1;=Ya;i43@Hr`Aor%HF`KrBiMi@^Ao1%reR^8+X&x_Qx47n-P@xYn&Kl-f<91*H(L5=!6C7}hmACtS3 z{C6euo%D9nyCyzUSC;#TWAjyu{TeXuFu&s(4}@zt%)iE1bEhVVbsqKnPIweE-X%y; zbvt)qB}zM6vAM_`l&#$;qs`WUr0%lDX+1{c$U{9QRB$rJ$rvYN?z4<>b|q(5YLfN4 zb#ZBhd^wyVFY^%VB<6EXG)Q<|$k7p^kdn|Ifp!E3uS$-$3`(<)qH!I zUmW2Aai1qIM3Gp;3wB05uGtY0}320-RM$xD)D5sNXN4{s#=OpG{1` zg=FP2w2FIFY_ytU9rjwMT_f#Bf0_PMFvGse9<%O2);|nh%&I_I1l~gZ})ke4%iLI0I zG9Y0PfKZiBrM%MWA(-H6L>^}_V#i$_cU>Fqx>pz5Io#ws8A)&dV~2CM5=)qBHSIrJH6;(=tWM;adP;9%i))Gk=3PW2oNk= zne7Cxs9Gm!#hf?gO-LJ9I$wfG$|5-^JM_f=vl{h52DlYvdlPYDCaku!SXai~;dH~NuA#s~9v2%SNWsd&DzGaQ^oF+qov20pzZgZ;hD^uG+(eZEGK zPLeH$AZoUBovUl=dj%NF57YJvT1h_Y2kE`8!boj|d&R6(5M1~KR#)C~U+B@LynOk( zF37Rox(d5@Wn!|nz4bB1gzxRz@G{wOH7ncf!pIUr7s&LqXPLT;pj!@z{GDVaVB-vIG14vMhHMoXV}{SzcZvJ&U9DDgmDD@{=9|mg=tYO zgc9xP0ax4YYlUu2Ps6uZuTYrZ84Y9=9rAZ1MUb&gplFH@c>A0&)& zD`RfuAV)?|PJ>8$O-0$&1^o+wku(*}fTj|Lo1Kx2H3D#cxLb z?G?P;Wpc0PxQk6_=RUh{c_q+ERwr4VWOZrMT$;4I#XH+gK`)k$cVQ9g!YO{+GtmRa7zI89Fhb-Po|!l=$tC$BDrK!P#06yA9F`54H#i8uBu0z@7z&OV zVaO2}BXmgwL-YY9=}C|`g_wwst+;M~j+Gr8fF1?ZYlpQQYI3M)nX@n#OQhe?rN&bJMdOZ$7W$a)XF!6#|Yy^Ob^l6oDuA_i@SI(hr#SU$amNC6JttM-0dt;}oGpqBe zbI{E}xBCv=9++3%UQ_g(^W|>aoj2UJ%bhT17sVFcHa%~?Zr57aX9O-VmSi0>#94O3 zR9~wDoR+TNu{aC^te|Y$n|C&6t?qiAyI!~I>vir%^2ye#mvu347@oZG{WoD4(d!O= zIJxSratW87?SSNtU$|TG`bEXFJ$=3ZNhum;qc)Z!x*zAA;yjoshsA)z00hA`>^V;n zRR0QfER4`KrZEfVKrj=^kPqJYzQoW`=D~B!0f$#eG4(MG0(v8qH^qzh!DYO;x#LL# z1;djxB$;@MhWf3#l$g8|DxhdflLBUJk}sZ8lNi~Lk92`ck}DBacSq2TGSf%-=QmTt zr%2tHR6Adgl59L(g#k9Dao~dy5;|#wAVa=t=iy$4Y);O+#?+QGF|Y4s&5Y{u71MQ| z;}`de+PyUjPEr*}x!UchU8v>9cc5p+^X-r)+gWOyrKVR)P5b!L_Zi{8u8TROu;n2n z9xCfRmH=PXUNOF30?RA<`h@c7h^vr%BZ}9wc=Dfh!0?KaE)d>~*lWBkX;>Sr?>Efw5DCak}DOU42>LTYk2?4BFLH^$B;gffn&@Bi2nQ(NL0! zkqXeNU9h9XPbh({D@3`P1Ow(e6zfpzT2os_uMQ77Jm~PC!-EbFcEy8Rbzw~fU|Gh? zp}mVkYVIrnz)rZYZ+C@CUxfy=*W{e=JhLSx&@C}4j^=P*d<79sfm7IRP9N! z@-9EXlVifAn`pVv%dFj3;On>1oTDXBnI2Z(;4GW1I)73z5;25@xGkZuC43v2G2LP& zVA_cCX#sZWyRB2vL1K;*Tmo?vF%?2i83Hef>InuL;KE3GLC2afC=brT2&r0}0z_CG zAuy-03P`61a7oZD^ms6ry_w{Ql6;EEmHZ1vXro`mSvoBTHvX;=@^FZaJIDFg*Mh@| z;mVPWQ&VMP!))oDtEZJy;K3kBtgyu)6zG?eA?nC$o<3@>=8&{Q(krrpt~0geGkjCn z*pa&V6C7;Uc}`#6%U$-W;)=6?5q48s(x$qGZg4uO(@C99>U7eFsFUv0#SdqAvV=o( zdvE3iI%q-PtiGz4w()WaeY0mr=SDB*M8B-pEgM{&>s89t+y7UpbJclMJC)0+T=!*; z%PQA8Dlzx{PUC%8w`JAKDKSooaY~F+Vw@7wlM?fyF7CGg&=G>Xn?sVSTBpRM%EmVM z`mNF>eS|j-rx263A@!#AT8vq!lL8~j?oWY9W}$t+6-|jJ|49S53XS6i1_9!hdP?dq zp1F`K#i5{WsIwaB9Iu1U77D~9pxzbm<4DGZN+7>_i3#Qy24DmOp?_Fi`&8pADJm1l zKp0`KZ>8csz@4&kQQ93Vh)7vtXI%sEHR>C=4ZX6@u(i3hxwVp;n@$DkUj(6IsZe_;up27C&6;(2z1`P7f#4FNO)EJTDq zQo}oUq4=%AOaW=FDGXaz7W%R-gtyw-rz#mmSI()cFUK&yetRaGyU5NPE!d{+xjE@a zq1i4xGaI25t4zpBIAoIS!#GS;2|onuoZxFjj2ryQIV{g6$VAd3e|*koOaijGm=cT0M2Mk zWWK9+$0te&xK^bwF;4{KFAqf=Vgf=GVe0pDtAueFaezYVP4h1h@y*9hIy&iSdlKL# z&8cm7BgkIwE)-;#OwPS2^5dYh;j7Tha%!AtQ#WWS#f+{S#F^1yIOHM@X)Ns0Jm%looXj07KZe8#vU66b)m`Tt zse-g>@OCjp5t2cq2<2doIDljhJUW{p!jrgEY3|sKo)FQ`^YLr=__Gs--5d!6lJBvFLpss<57Uw^dpqL)VyMu2i<)(WelPRjMygBYtC(AU zo?B2^J@ZzAqvB(BJ%w{``X&gdp!fum_O^pk z3zpV{r{GC)SXM7EN{v^`jmpdGSzH;wo8@o|oL0W0W=BY_Dnpj;fWHL=t`% z6Tdwot7yZ1!#z8kLPAiGufKQ$=8E@Xd#fIX+lJB}QTdh1Mv1y&Hc(F29qbQuM7UYV z=gJINVUft&D-J0c<7kHbH#4rS4Las)>A@F>`8gsS%f3h)1jE69$0#=I{y}4JilQ@w ze1wcv+oLu$qP99_emHGwce6g2^VP9#erhu=EI9z-;Mf;0$JoR>nGSD!gtq;6Qva*I z@$#WN@3WA2T@$CXf-@e>#VWg?eF%%BttHNQ`Vu4wDXS7F#!#E%ojp|Ha=(r}oG5gn z(22rFC@`GsWH%=s*=&pgd2!eI7#Z3i)X-V(y;m7#AN!sVQXBjl9{UpNOGd zLsP9QE7__E5-E4qd(@GQyhpYy#40?b0ich`m@Z^C?@4K5fSQf{%|2YR`YsZo9 z7lytc(F~iAzSt18_+Gzkhw4+XUWAE#@XxzK=F33bhXxn7YeI)5>`lzo8G`=2GqX=y zsN?zxxC2j0ynZn+Pg`$5k40qKh0U9zSUHq*XzVAVu_}gImQCv}yVjK5?9@b;k=yJ9 zvyPZj)U04HG8tf7rXt#EOar(yJJHlG%|fa(uPs`u_bQM6nl9trn(Nc@^L|1%r*JNi zeYeG&)n8Um`ua^9$j(FL2}Mb_Yo#bMn>Iib!*&E#6N4?4q@FOPYh|7959(@;hhEAw=^%35-tbjY` zOz9{GDwSM=nU$5?{L3{`a??W#rVg&|O6kpdwM~B7&(=#$6MetKW_ld^R=SE>rjd;% zsPiYZ@5lQ7OVx1ngEU8O%9cJLJegYF^l5Pe=Nx$v;-?Y9GkxKy(>FZF69N^;Xf>-# zEu0JapxZp(8UJqhw$7B6DFrWTE|g2;s|9l>g+SHq|J+rzyNYAilwx=4>P}tP)XulA zY~*Fl%|o@Zx?Mdq>b7ujH)<{BB@H(byI2Y=ZXZ4-4)Uz&>la>HDLa(#h-y@xDLh9w zLY`{1Z4S>|i><+T*6*Xs#kuvW={lKK+urzP>0!0$v-)j}iO)h&cSFV)^mP;3qBxp! zB!kctoG^GUW#TOjaHBtkB*6OofjF=os11ncgRqNgDTp*Cdl%ZmK6tz=LU7~6$=i;1lsFb$thK^hE zPG?(jwiRbvd6c%5e$QflLSEIzkX38#C08JBO(|bj)cU&VUbe;&hg0NTorj3{aMacK zRoPVEST@ZcKcY0SMX!01s)4NfULCP(Y0M7BIvDFz&*q=gC6=c<+ z?|w!+yfww4+nY_HA50)6<5w<^L1i<`;?JiFVp<_g*W*?1C~NtuAB(NE7(F@33hDHXRPm zr!?YY7zABHgc+4P-pXhTIvqN8=-8p-$B2#}YTUZ*?WSN;noV{O5MVT5?*RSvTlLwo z9Y|dmN1)O$*cH3#kvVT^B<=MzHoT%)zq6_DXIx@-(%VUIC%x~r^nS1rQMPxQ;)o?7 zBI3~uFDJlN6DxE7vb{N(qh=KsD2u~&o?q^`&K=h|NaG-lgEVUkX`JWR>O8+(2mu#D zz#5G2)W7p-$MQN2f-IOJV&BxyI{YCepeLgw>-LL=eQzOsznC) z6oD`v1=s^uXr9alpkw)Fg0B$)$4ANYOY$gDdtp6TQQOmQAC^+|hdXS_BeJ`5^>VTk zlL-0$yd2+>-N|1sc6R(7y1T>wCfngQ4sUO#(X}_dMuQ*U?#!I&q7V1P7hlwbZB;ut z2tHzhqIWP3c>5456>Ze=#}VF;d9h_q$Ca9L6+&j6pO>MVT^gQ z66Oel01!%^quWrdA)sILDdd29UL1iN%%_-ufYPfG^sWFBlT=`zT;}=ik9Fog$jV$t zq+;GVKdk*^IlD?J;{0wVTJpr75^4B z>$vtawaGpr#^40iaP4Qu-;BL~_GZ`H(;2Xd%JEci)Hd1yBZCaXcewnFs4T}DeO+;glfPc!do_X@)yuHQzkost_zd0P7NwHf^za%- zmM-flqd0q1}Ib zRg?BZ+0~_?-Iw009gn7SO)N;oEe|)cwA?coepMghn=-k{Miw7$m_0U}OIJ7F{*<~n zLYtG29Es)`HJ>5?)#IBfWk?-WFn#0!Mu^`aq|PAt4b_JzvJ5ypK4O>T;`7nxeQ-Xd zao__!#SCzGm7IWpD>P>S6UGtr|Nq{OESxjo&vXWCGF7`Tvt}9HtC>z|u4{|g*vR?j z*7nZcKqklWd$iGhK(I&4yJ0jvfB}?02Ak@jFN9oh*wY+F*m%}j{n5>~z8+FQB6h$h znVxpFmblgM(4ffcnuJ73Wa7w+1IRI%2+16D^dc@bQwK>Z9EV4Etl@qGOPJ831|7Id0>UTnN;m-6>)r1|XT= zOi_eV?}>d^pTE@a41a&gQ6CBa-s2#_pB@nu*%lV7+$4-0pG+rkGpzc4FZ81wI4 z%8CMC+u5v1S)q0zorQ6S_;_aJ77o8(zm@#ScB=fzbjz}r&oK{U3x21n^ypcZj&5;a zyc`A66LuV+TRaL7@aSwN7>xAwHJ!wA9%zF5R5LTf`wK=0L@@zSG(h9YRMz<8Be)UV zO>@IAqSx3*KA6g@h0;sy%M=md!5~2XF!$-e4Gx0+OY$6?Q0V9DD;kD?MuLsXcU~Mx z2R2W9RWL=+2Y4(QZBk1#m9(9?zG)Rvd$SdKkRzvI`quD~yCeWS2Tur$M;bClU0K7z8A9HI0I2_;DcQhMG{M zRxgc&{2*}d2%}^tDTgRBLy|$C;|*| zCbm$zP*Qq`4?IY~2q_f7DPVXe(1_u+nbpDs_;@@cP23(z=(A!lZ8=I)!T`UUk=y=(8inqw8blJf%^ky4LAbo$Y> zd_!DPDSHe>3FnOB`0s$}vEV|10BRm=H@R>{lMk2l( z+}@Os7<-+dxlzQVA+n=D_}lAKC^GrElULQQDWM$yVbswYRsm^=hZJDSvhG{-`_m<6 z0(}}tEo{@}1zrMD^XI=VhLs>5kpF1bNpsa=E|QZET6a7vJxWG^-eU~wg-(p!oc_{S zHBfQWrgii@EH*GKb@)Ju-ymV_-SE*4cO5U!)MsWv+Aus#LdW!66rDghVPC^|7fV?z zf|y~(K_tArM+p@M>3z?hUly%DO@BoNo!v;JV9SHi01+zsY6eC0S579ULpFt*g$KhI z3}uybn|`Q61V5RQIWxb`OJe7@@h~U?$6le*UAc<-si<`_y(k6t@{ZXx!XU zSWm6M+d1Lz1Ls?W^_RoHbzx$c6|A*nOHv7)2DhJU|bdq7g!--gw1EhZWV{hF&01&$Y3%uP%8O7%-UK(rcr?>S;iXK zKh?^p7|@tL0G&W9?2+}0;x~RNB8xieb6egA&8(D+sF`W(a$&eyS>#hFiUsYGvjsXx z>dU3*&iws;ZJC0mKkx;5a%D|Mwew6Zk_*AyZCdbrledZ=yic#S7kw| zbhHW3mb+$0V8p{`#~rC2wq+d!4@fKlw#A!Un2@^ZehQW>36qI6tyY8tYJ3xj{=>J= z@2?_c-e0It-w8MrP(W?Xfd_pTC~XPU}(mtIWb!iQ$&dCGIm>^`KG_I0}~uFv7o7UJsFaUaj{AAwE;m zodvJsx!gp|)VzN%PljUv=OC4@d63T0y^g_QR;LXn8SEWw*~Jx9UZudi$>XEzZDEY# z>+KDC+_iNl6v#cctZvMQifh$;&c%NBGtR|1NtB`6jy|i15JkM7M=j$E6Vy$Zm7hU&LQz2S|iu&6yl*xmP@D z6>9wc()l|*8|I0uUfVQuDSU{XZ+0g#lkV`{NM5_zh{=2W& zaOaTnh%b=D9J8QA{#QEAw}2w`U+U8M6mLY;b`0GXDgTa`AR~e{QaLFp; za$gS_IssfpX_lBvZ*}EQmAj6XuDO45z9y8_}~+ir>t(m%V0Ned(Q4 z&HEdprQ{zp8ONP$k$)_xF7t~x!>(p(ccWUi!ng`)j^n1;pc`#>a@L$}tv~$+3E#FA zn<*vh)gO;FewdZ!R8Z0Hyk2Rn!$&U&H%~hT6OvaW zSUDf@GF2~T-(*oo9IQD$VDgQzc;xstf=a$qszSANz)gRf7jvu|6M_G0%lzlOc2HHp zTd`AX=2BZBn99|)oyjf?@co^N1SHNmdFzZQowIsl{e8cijtAO{4W5s?&^D=}%S(p<@Um4tV;(S5z~*$2wqhu=d-c{D zKI>E&oW$4j+sCgFu{9ww@-Y@s^)O)d?F`=neJZOZ4*Rgh!$eKq==rx~1E z5=*E8&67?C`Y%>_?~3Wp&$(wyiVD5wZ}EW6j8_3D zBxvoJZNkj#7ySGw-%A(Hq9^Pw>JZtG$QVH}k!Tu%VkD34MP;j}8TwPUrrDnrj9BiD zl+;Iv*?^xp1z#-n%USJ*lL9N&`I*fWs*;Rm$@17hU?iSP)5`6$VYmnTSh~lmVppO1 zqmCWPb!L4_{Lb_%ht|$nY#VbhJbQBXv-*K@J5QA6;Naap*9cq@#{>p{&k_Zdlj1@c6Yd`4>{gSnEKHNRawQ}vEqCeUpA*tZrmb=$R z5g&Fl=aLCB+F9zb+~s%bY8f39VqsR)10Tk3FT|BN)-r(t=JD_(T+S5xN=2LT=Cdp_ zMt|q<+YB+vj4;Uc1muzDlu_id#i#S?kWufEtCL{@K2D7ubN-4L>y9eF=kNYd^hJJS zXcslH{#xx*ao)95V;wC?mqJO<_m5zO+dd{b+;s1sf-;Q4cZly^r2n63WB9iCU_JJj z$SEpr(MJA^2fO)gWd5=4v2QCxaA|qn_v&eXqNd=dE)a!t=Q@wRvW|QBkeVJ1n}7$| zWdngTJ$56#R9-|ZCAY$fGuYR`IgKC-{4&stw*k_0mdzOiVzJ!MzMlYnuh;9%OCNJaJK7!4*Cwla=d_326+@mvD<;hF(O*%AOS>UoXRXd^|W0<=-;1 z-glc(&<8gHe@&OQasc6d-=uzGCI|LQi{bRS*zXO`H#E`iAvj7MthO`m?gTAXaCg?@r|I{43f(tEaFqCU-T6x&!`c_vdhlvR)g#JOE-o#z1>%Z zSyKoRL3aHBeL>el9KWW}qc&s%N^G3M(@Pcza%gaD3AF-dX0|vF^YfpPYoPwTciv}A z9ADYc_%`-$XUy%NAEFT3NGXm%R6rd9N1D!vQqkV{FRe7i;jygHfAo!jvFA}B8A|6Q zgz4j2jBHDD%F1y50QCOMw7<(J89}(NHn5T*kuYOB)GybLvKfe>fk2K4JF0%?h!PH! zqHrf|Fpg=dI{#In$B6C@+{>2j7371odbgOQRk$t1}mlK@up#pM=(g-dPQ@ZdMsE9ZVjQ2;;y zhup$V04Mkp>AE4&i2SnR1{}0bzxQEzWabK|_Pdg-V!C3GU#w(~Cddn(ZGKHButK$~ z<>Las>^+U=2A;1j+EydjmVHBk*82KyiaU6xL@%d($?=f&u9^5#`M#sn)Ao)&t|)O4 zXJhr|mx)(*^C`Mk0qw3dYhas`^+-#-zGJ+W5h2J$@ywxR75njE$PP77o$;4r9u)SrSNblm)i_T+j^{))e>IYCc z6N`QSiaT#Ri@(M4iBz+DmjRKf{bR^Jxnzb|4X5qg+MXVJ*rQsEu}PAF%hx3q%S=Kr zX%(Cq>6RX`*r4DRBX=!>a)HJ>C6Yl(!0PEowV-_bdaGX9b#`Voa1aOZi@q>M^CApi zA29RgS_+2Y^;^eNI>+4+;O%^(+whc>m4(IcIb!nJVL|wkZWv>i(1adRvF7Sel~&me z4a%n5*VeldryR%9k$qJOq+pze$ z@mXt$TvRUjTa3I_LJ`pfG#e;!3qcLvUr(L0?3J}K#G1+}c>+3cW6n3j*8_Q%bfD0QZE zPcuOtET{{-mWwXG3!$K{y30y@I{EBQPY~Dp@*4`*nxclO=ju1X--6|9jy!GmODEPr z1xeZh`pl>AL#wjFH8!hVKbTbNc)A>}4IKdEBVzOIzDxI__g=Xcw8QaIH}xM)=UO8Q zQn&q=HU;~;%^?4Hs;xV$o~z%qMv;>VuFJr#^=8UTv~>>aKbce%6gR;nXATs&7u~9A zU$=lR3FgE&LkfYZ1L&r}{w~84e-UqLJVV;01A0PdK!?2zg>E*8tE>Qb zU@93iL8j#@MFpdgLZp}s{N7V;>hNKOuc0XPId}&**d3t}JUvX}5d$fz98vFRDjaxm za!JHRy!o35sZ+)ToYGJci1F!fP*AZ^ur?|_z#L&}lM7AS*8YH^Q5B={mz%=-h(JdU zEBiQ8HeC&sHzu|myU+|KJpCJSe!Nd;za)qe=BsEYJT2w=o-b;D#xeaT znSw@o*V4g2@*`s&+>N`dOuVKZGy|BKcdm$J!f+`mC}Y*c5CLc#QWZ0WJU|k5h0h7w z$e}PVXuXUFojFuc>1rBf-MBl97ALTA7e$;TauiSVatW3+=wJJkBpI)!)OF0HLOR;7 z=9pYr5ZDss)jaM8Nc79kCfe!S63p;ps2ioI%@~QqbggAAG<-VI(WBt|R18<4hK#O; z?VG+52+z=0!n_^X}8+Vmc(QMD9Zra2F|;i zM-WLb^LANp^r#Q_+YIwkoR#%!=wYA^g9xKqaVy>ea{p2{z|O zW)f=}$@w5Qv1$m$&s`_Om?&ecVb~J2`ZZ?v&=5RK8J#|Y@QE2?ZPQy`Bz4vUir6oD zDzrrD<6}T#NqfR>&fd>KR8LDBY{qq|COJaEoEIM6B!!u#1f){g;*#U8j2&bxcWjAr zybgNvUvwKNMp@M&iW?YF@0?pGe|1&)O$*fyrBop^eCHztGErG@yVDP6`RI=E*kXn< z8gmKXffqO$a8=8=P)emVMWQy}xyo6LR{NEKU2C6&_|N)1l!C_8HE*t~8Dh5XkBtfb z8u%ZpecUJhH|g$j_i=ufsCQ=SYNMUD(d2D*x}m1OadPzMTC$C<&P87ZCyr#T-lhL= z%?oM)|L82M9*`J1RNIR-G)ZET0gZeWMdc2Ng01JYrY6;UN_>APG30}3sN6o&d+a$*@5z9EemWD|0C-B+p6Hh#`z@+V{mZtwlS~*d;Cz5Yui$$DB zM~N7~qqm#_{g}~Ipi{`TZ<2xNbw}w`4}FS?7S(c=$i3U)r;D|rf@g?ZD-*|W-9u*J zd(mxPYA7C(~}pA_p`3sm#S5C0=^wg1CKD;Na-!tQsP8$_YA-Cxv5)7-9dh?N}e^ zMyg@s+?r0?Z~}oKkb%%AQwB8%wbX1wW$v{4^R~Tbjho;96tVQfX_yK&L0RXFwFbb8%plPfT&sjg<6%B;8V8q<6!DQs#a;qWkmB4k2%2 zee`d3r&>G=X%tz0FAz{bK@BC!kwhg|VoZE!!aET~W%HfH14^|Q?y6;nUSe5_mHnJ3r}lkukScX%UVw}b zaSbKe1}~B8N+sGDPDr1~7c#Mgy{H5a<&wO-HX7t6TzG&pQ=~Hp`5T zd>)~p%q8-h$IAf;KRSAASn;>OxM}A!w*AbZle3YEsgzl7{d%h{s&XEom*g|smioRT zs27Yqpj+w7w2QxMFqS>LYeUrsY|;<2(+yK##OZIf0%-${7*+?{W~gtxbZ4cmt&K~* zWF7h6e$HUl&A29T07b=v#`V2BdrlTrfLMPYd}3%bZnKr)1knzVG0qSgNJ&~SV+|ZE zsEu5X+MxNfPFjXW#&?aes9IxBcvP?gL88d!>3f3*CgKgFV-SlQB0bkE(9N#Pza z5QB#u(Mf<^eZ6wZ;37mfX`j2B2tVBe$I{)iZDI??PFcC^#2rRtn;D!}E93SIQkiPu zIW^hk;_AX~48F1Eh2oSw$4?H$?*c%k(ZDcl4A=xD!mm3?u_4t42HXerb5FPCls_e= zEv9uPq=FHN`Dj~W=Jgb^?BTDeqkF=a3xw!vQ++$>s+7<%pfWW%QWuMm;A8&S6|O}p zk?y$SeJcYhrM5yC&*fBm+5|NjT|n1vk}}Bg4ZnaTn7=9lyg^K3lE1Mhrr>xe#wQu) zQ9Y0s4DD)VHX>=n+V+|wG4gOY_WX~&8O3QNJeK@6~l-y+Rqm zl&=+F3=LVWF_qni zKUviJBOSOQTQF+ZU{KjfW`tqDq~nW1dbVY=h*QlSGGtF67+Pt|iK7mKf^b7QyKZW$d*m`#*TZOa86j45>NDg5M*+aGUz2_bxZ%n0%OtH!^ro#F+N7ZzMJtH zaT}nzLOnQ>j?m05j4pzravrqE(v8h-rNUJzs}-=;Zpi;OvC~ZF`%s$C5vv__qHas? z7A_=08jE@Sa=krftbJLOTBd%4%X#!1^h^DHpVJiBui|v>W2YATmjS0FVi8g4Daa3f zjJ@5wRl80g$NT}b3a_SnB>$uV$ImjO(X4Zm_DK?&qO^{oRDPF#F$SV~h1ijj>g{&=)aZe>bZz%n&9|FwS zDO>W%n0JVu_Kt*xc(koOjvbbmj0<<*)71L#*)V8b)VARh7|z+=B{hU3#>I@m*iJdx z-h&1{0CN-*=Y{o39Di1daZWKT`C`(^v6IE^a$A)CF>cCbD`*#Pk~3J5{bR>LHJe2W zIGIM_g0B`>!SB-iH+K>Jercz7 z%^m3SUV^Bh8d5Cy`VHN}BpieOwM|)$!H{Q0>|rL6g<}687zMI(k{WoW5DZTfp(Y zxQp<6)#925d9)j^#5Gvz^pFBlVTWY%NAZjj{GXs!ToxsTKt(m9QUKOGqMj>JpL0^g zkk$Dt0B{PZys&V7`k851rc^XlJ`QQuc2+%ZaRFAJO#`S`=6yQLr{sSs&Su(1OUeCUZusFEHUySFl9lJFQ|r zCgHRyCC(!AcjP^rcF&WO!SLa>7`;{0*Ga$F%~ z(;QW%yj1+8NooZFO>`CrOb&?{x& z3aVvw@q{X){#L9TeXC(sSFPxNs&;h`evobZ(e<1Z|1dLq;G@4=RTyvr<>@NV!(tfU zZVXwkMAuWK8+B?FSXcS4Eb{Joe=>l$hG9m-OQjhgD>)oV0(MtG>^tTl0S zJ~HW%k~1e(LKUPQQqyI>BJ?Xek?j;w-J|nXJmT~;S3A_fKOn?-`vB37RCxS1Af10X zZD5$r4Lcg^=jYYv>nEz9wU=IEn>fSMTbpqxni17Sh#akc% zDW3mZ1-&Fis(Briyqk=B$2NQ;$0kveq3K&@261xE2moBxeP5Xt$WC!GxyxCgx(H4Wi!#8Hq5A-3f%%QDB1R8qLChBqP6Jm%5P z(CZqGtax(H?vM*?bw}dO?4-8NXrF#Hd0pk(_;lhQEGa-v`1S!X8*u$dnrk||dwuu& z7PnKs%1Wn&1E(eo#ZxW1%3oyO!6h@(pw~F+gT)$Y*4{W@e<<1t3$L{h%d;8Y4{Ebv z)OOP|V`t*vPg${trAj43)O`}EK2bDhy;N1*@P&D;?Y$nZuI}tVJlkIUK6%em&Zzbv zxvf`ThNXpxUWKlcd|_@~n4HB8O**4;{KjGEwqPN4w?h^gf7d+?bZ@K{+(>^*!|wD{ zQ1k=iw|Swi<|M1Nng05I#X3`ipf;+o%yy4in9QF7`4vPu4#cXT?6RY9?{q7au{NeN zk(s7Y8OenlxIW5GqN&9Ii~GfiVscQ}G%?cO)CIIH)3t8{&tq7R`vOt6W}cWG@A2u+ z@LwuWOV~URH;>EP5Mfa7NCHdyKd9_{0vtMaM)IGj7$yM5&w7-3qXS--l4j{cd!Ma+ zmb0B6O(f+~Ug@_x$YE=nh;3>nqsr|rT|CoX!gAeEHvX@#WVZZ`x{t8>2<{DQU9<5%PR_uS|D0#8V)6h=pJTH*9TqCbO zd2CJ?%2TylEldTrAIk+h)vN|SiFjqu#%oPw$(Agdo;r+Jm=?@A2p&$j?R2givd(e$ z-_tHl^hqG(v4-2cd~~r0AQ=iL!#o)d2aAj!te6^pe^ZC8{uQ)*q+MVHZ7@;OIi*;D z^X-#bR$rJTB8#XXBc@FXb)&qoJ2a0+dgur+G_JgEH|lY?wEMa{Y6}6r*CQ}q1G7Y+ zZfl}1P=w_T#T!y1tLB6MhuW5*{JK&w? z{YLp@y;@O^BS(DlApYflW$5D7s`vVaJlv2!|NPVHSZuvqLT_W8SXRecK@Tp~AlIIl zvgu}TMH!Y;hy)6n>d`&Av}`&FlqQLIDrm!{y3Fq91G4>koz_ z>q|#`F42JQrGH0P$m3YFm_e7Jj>R`CB%0Idf050tFAoC0zt-48j&;JlH4@0IJY+*I zp2)8rG|xH~x>r+nMr|gLNsi$I=8N?dcxXvE0xl-ER>xXvk;d!)xR%F@YSVo}VG;UaqGuW{dP2%;3~TzkemjdkW zR~c1S zZ+7t;0{!s9q~yV2j+C4r`EUF;sxKlV7#jK50joYpYh>^WPH{K-u25)3P4o1A0%moQ znHYz_duy2)PWr0<^tHU!R7p%}b`0s)h9LyzD1TWmr^w5I`At3sm;ngFCb3};N5lQ& z!{O2J;OI*T}P>q{q4$e#-|a?*S{KPyz>$qyvmYp2lH?EdeE zjz5cK+CFFu1-XLP@@WMCF*zJtBV}z=UZP=Ui3C5ES`z_1hCpDZ)z=O=Jet8WzipYV zL4Po`PAnUe|KR}I5?|mU=m3}6x0XO~1%J8V`pX1ybbpGOrhbPn&c-`BHmDK0T&+0@ zBu@=35(8jTBA>rZ*VyHl_=|f^W>jhrvED-PT|wf|B~g}N)Hf*pMSi} zsP?`Z}YaYYtE+jWsNgLvkeyl7=WQ>ZugP$);~NTz$Mm4wlGFF@fIZ9kHn+ z=#D75^;0pxU3fV$xIY3N55R=#i*9&w*)KLiV34;N? zfLwkemt}7$rb=+MwG;=Am;ZTtI(he>%hT&$03vtT zqhu+h8`6-1s$ib^ZNVLM*T{;on-8PDSo>}5x*FjsAI3IMpX1|O`-=5V4_L)hTM?w zGbmZrri5X}8K5&TL)=~ny(0Ct_~L&Ua3F`^m4l!QR&e7|=)49qkAE(e_VoQ#fUT!& z!#G-Yz#I|eK`!7x0x)sVz0$cW0fU3)fSa%9&F%z$7_H8RWq7CR>gIpPzW3SO7Cf$CjO16bm@Y9AOS z!EfOC?nJSrkdpys)PDo$4tX0fxqqz@SYc!%Fg`!)DC5M1e{XK0c@N>PSx13j0D1@z z%0YZ_@KPGy9Jw2TDZHcDxgqDj188%6hxtY#k9cSVtvq^%$-E2B3F8PlK6D8@2Ka_Z zYi5Q$#sQQf2RQ;C%z$rv&8V2Z_>2UEL1*E(r<)t1J{K5ZE`L`ujJwY=}Fk494Yc0TMtd2&b ze06kz8J7f7FMlR03#ODssN8zR_Fx3Iyj>_@*Rl!|W60M|F}xH!A&qC$TPo&(Q@Z8= zx^5sBZwdWM1hY#S5m}Dlcj9gUyo1=4+c`?)J~P@C3VvQf?-p?uX`#jqPTyOYYi>S@ zN3n*nDa2Vxulx(MH23%OS^Emv^bUF3o0)MyTicj%V1G>+m?;E{t;+-wkaM(LaVGfF zQ!fCNDm7tR)>FBXq6Hj-+Vwl!L<$$2&tgv{79C-h1cFA25IN1QZhqbjd|-$e?htjErUVD-9N?A~*gbs=0mpR0wa!tP}Tu#@0a|6Kfg9F{*- z;ypBk0)Ofj$*0CKtAW}C*=oS_p-#v!x>{5S+WFdd!8SLvTSAzvNT28dS&c7GS7Ye2sx+{Yo@q3Hlxti$E&600d*|ARD~;y1@1VVB%m~ zMt`?Kuw1(w+v4rs3fi~G340Oj@mii%Lhw=rFo|E2eTt=1d5T>W>toT1HZIGW+%dULQ|qtW1QWIfdNCg#TIw!Y2p zA%#Z694T~xSvI_>wEPiYn@$-&%Cj=jtbb4~3NX2+iV>`8$B8iNa$BD{KTwfb&MT^UDHqT39Fcf@(OqV}R(`1l2!B3FCrc!`mXYGpFW zFJ*>n*$DPKVN+EfYVhSY(>3AH;}s^%XW2^++vpN`;g{8V4eUor!g)c2Nleu-aDN3d zynu{|#z1^wOnG36F%c9wL3~H2)J2d@ z8&6eFAb+b_1iO(9Xo&&ryei1|OMmA6;dVQRd667hT4=^ym=CvE7Af`_Zp|PmEHmPK9;iwyJPdM1cB=xNqLGZ#J!9K*#NQPSaDoegx@?ws~pr}D0x$}PWN439>J za42<5K8D0b?iu9p+Jl76G*nZD-A%wu-0naQx!YJI@B6=h{rA7_&@cbTS04^enfK`*Z|y(se|h_UGWdnPqaUvCy^j}n zzy2Se)sBFAqBUlJIN7&v2*Oe<`T_A%cDseVQvmeG=Rf(ib5!wy?tcW&NoZD|vfI2v z^*C_7BqP|Za(te`b|;7C1>?=ka&h}Ib&N$z8Ha^!fke-WqG#gIK4KD!JL>m_gO2qP z-e;ew;@82|03GWZFA?K#xe_hq2fg-{!ptFlkib36Q7fujZ$AE=CtG&^#Zx% zLROC5QY%vivDhk?X`Z66YKUorx8j6TVSyEC)hg`Tu_~8d&yB@;&RXKo5aSVw&G6u9 zYjqKaWY8O7g)Cn(mQ@yU(9LR%6wWa zc*M`PLC~$8Sfm5gNOqA9a5LNE46<#WQJZJf<{3S%WIFB{;wBW2USP)KKB#(!Tn1R? zN{3OS@d6Tpa(|PN4A2V-9%j0z6i{v+(T*a@H3(}94(eL%HizjgWc4z6&Y3DU%o7z0 zV;5GQvk4-8?oRgYN5mMM>q-}Ptl#+pd6x+3OCe4;oTK8aDN}c~gddf=*fN!|C9eu_ z#742Y9d#C8WzBdl=)5*!7j&+L>F4#-L0Gp#OCtEWT|fY?}$I`LfM~Z8KrF z_rAU`O)@k@@kLVgoTv*Q_!gmiMrbDOl031Ju*$2NR3EuY$Iwwt4U`?-j&zX$ZSy_2 znwGoOQh%q8^L|YnHpWhMd3_pGseezs&?Tbn&5JTRbvdpVtb55poO`P%Rm3D>lHl`mDhYsZM67q$`* zGjLS{G=9TKX@`mLyF4!z&br&`i~G?z9^-_>Ry5^!G*96VU{8+>A^(w$*g(p$37E;6 zPM_rmQdWE(SKtZ86BPEqg@_-icfGT-dh<_=`R*)xy@9c#Syyvi{e zzJEPxBV5lOEjiK)G>7))(xaT()Lg2#Hs*5k*nY-bqC>$)m#uB7a%c@R@& zi*td@K1Vps5M&8_sd=TH-Q z!E4z=D9WKb3ET;V%^MEddSRB(er__9@6k;$ZaFPpn1JO^{iTIW|rTZVh`T zh5Jq{nG}|pna;j16XEGgZ(*v0`_N0|Vd}`ew{>FmdcFRh{O7vYJCXnV+e)>yP7ZqE z|0>3JZlyn-sb8@5TeW_xr{K3LWzHlSz0~Au1OF${#MC_0UiSS-O!&E>a)z>DuJLMucF~6d!)PAou2|*Egh5OACj6Kzw|Drai1GL%C@n1%(|1EwAJ!oO-D1f0Rej=?)s9 zYYo;r*N|;>hwoV3K`VN)gnyV7K-xB?#E?2aYhuv;xtbJa7u1%?3cgUQXy(*E)Ju0> z?o!oZNv9LmKg&TK2C5Q3?u7Q)X;DTc6hv#KGEd#fCN zWaVIH22-n2+uoRPYeq}N!h{|(yr&HheW{@lqu$7nuB@cw1!jDV9e+Xe^xVPSoKcu&!d2-&fMAwREWL zrWpkqVEiaW`hQyu*=ool4cW@-R#yA6`q+@>;7cw{po{B(O*MiJUxb1 zp11P6mFKNIe?s!S-!tSKC=vFN-XUK|Zz0TMPMqpO_A3I_oEl4vuGM6%CVPUK47K~PR-?Ui zjdo~A9oC5IZMR|(pjsMDNun`!SVQWp!ChHmXn(CbYt`A4Q)dzPl%$gIJh-vaPm@OB zRV2Kq^J@8&@o9LJB1^5_ZuNEvy?vBhyTC8Ky=8=849f0fIbxkPqnDG|w=o>8LVgko zxs~Cq4EJUDu_;G>O*men$$H8*OtMZb8J>osFW{uU2^;0raLPc;Dddy_Td9_l4s*TS z&VOR0pfPzL9*Z9H1>^vF2p|HduIL>Tz!#VSOc;m6M%}FoL8XSAS+wl?Vy6FWsp}0a zWj+Ug37Hw?aH$JbnDyo9c%Pmo#|?UhOlN;?Pp8z&Uhq(c+2R1o+DbVlQ5@X1)=&zy zotKGjjiA;DYBju)H+@4UuFsPbdx4xY41ed_$ea*}N$#jSabIB}5CmU-d&pDrX{e19 ztkqGfBx_K;@S2{IO-)|Qz%j8KoZ{{$vdUb-8l7aEK@Q~^hI}nc(~}u}4S!y# zUQ|u_d>+kUlVggbS-5uxk( z0|#W?bz;qW{lRc#b*xK|-eE`B zY0al-o$HZ5+@-(He|A&tCD?+R2_(T#!^&3CRUfPjf)hd24e${=c%6hmeVjv3oquf{w_-ASBK5M0zu`E##77A0iXy7|{Xdn~>4jM5Lqh_( zACw>?XWqMOR<9&%28!u=5V>(wo+;V*E#&s%3g!B|Gr)5%3^Dak!|YCu$Fx&UBZrqu zs6z_aLM$jJY2 z0h({^FE>w@=1P;CrZplntH@({K&R8X?;&=Pqt-w+T|q9E@G|jz_ouvLvzQ?M$mZ4c zcdYkj-IqxhrA{Edu%m&IA)z|XW0#0H>Ih~#Ddod4$*Hn;s%SvwN~hYFtLSkrmPr9p z!J!-kE@m9i8Cdyme1F*#h$BwL{#-~GAkXIzAn2Y)QYw%`4alC{Yg;m}cPnEa?Y5Q| z#r44ikIO6UF7+?yDAWw25*MSvu_2~iEnS#nwXLTp38>gv6t*w#FG_Y% z(q)wCr-pXQj4e+;rLffbj>0B-_t8{f>idqurr*JRl$p9*50b9+_i`e&UZ3wNa)v!a z2zH7=ws-ubK{ez1NkiSG`$sc^Qo^O!2^0yL0zZ%xH-D`UsPzHGIJj>N=@tujg_iVg z8@pNoXw05g;F__cL)7v@DPx^_@;`oRgmTEtJh}|S(!ej{(4kf-lp!&HEKI#J5rQmHy96)FUP&{+-9g0POxh}BbnjsKzix3Ua z6|B*0kbhRY33&4SJTQh#%cPgaeYysSCXP?KkBZpc0K6IgH)CET5KL&X9rPEbtB2V7@qxB{(iZfIS6QaLbb~g(pY3(N!`+Fv=aR z&66=OjakESpbfEQ63s%kj3W?a2SC?F4xl77QGYQ3@0KgR0n`J3K+Ml17s{j~c0)J? z+{5!Z^1{p{1U+}t8m>PU8}8=@5QTfAEqE}5(HH}U5S!t?ID$p27j+%(H4|IYVABa+ ziESa73w6gSfYDBp65k;-!ye5j2e?A=X5YbX&{i)JZCHJ=hi-lD=&q8Rr+(m7Eu-`Pq$(Tf6> z)t<^EfsL^PJVE*bXC}AH?rcxBnM&)zhXEbOLyRE@;1HU0yT&hD}QL;A}8!cuWO8sMzwPl*9^U9lsbhrT1$C^!A4H(Iq#N`F+f z>JNsU{$SJ=tSaDzQ7<wmcEQF>NkCe+hji9BsobK}V0mHL+2dcchYo zV&0w=^f#p>dFz4}|i)n`Ri zUj&dcmGR)VPo$Q)+Y!>z;6K7a08#|rC6Uyo&Grj5{n8GvAp?|;H#Q((FQ z=Vw2Vt2ej0)AuWD7ZHP@a7TsePLU)!meo(V=s*^ik?x!^T`tdpx=-TARq#XIOn74b zi@3diPu?zU@{a}j-=BZBRJ9fsw7bUktrCm>l*N|($En&z6Qru8i!uyxTB7BYIA(2&h5j>O!q77B_D|q z|AFv)!TrKd@gg^g7v}_X4Bbl?IkMomc=kKF#!D2zhn~9$hFz_EN*voVn#EtY_9>#NIsqZoYw{%|;eXdNcz(si(dS?o z%i9Zautbc*<*MAsuRUnz*2y=TIuToyE5wDipiW<0e6!?Hj`(AW3G_Dah)tzm{KT3< zh7LwCG^4LWkyXxe45iZ!3{77OSINXFUt7zU?T?gWldN;bP1G1Drx!NlnC8=!Ak(R* zYEtE;?Ieb|VbW~kn}1TYP7&u zpttjDC=xSVlEIYiVZ4Jv+A`OYCyr{}GVx>%kdwt(gF)@EIAu}kX#?f&u#WbqH#};h zlyNpqFhS@nO#j;5lX5(KhS{`dA z;cU&E8MGeZ5;#vC$dn-K#L-4e+gs4~ktxf;Cjic&T{FEQ4k2$-i&)T`I!ay*z>KXq zcDwK8v2F>fmwhxv^8v#73Ms(cKaF(IePgG_*-5Fe5r4G~4`%)2qoe5_nhkq`e{?kHSRdhia80QEJ%(fwzk>!6@fy{-oh5{& zbJ#|Zb#HzDe&!q|hHaTmuNrmCS)GBHK4OV{$KPd_o8W}9mp;Q4v@zev1Mky2h+Q}p zm>+kn_kWY*?<>TRcPDT;mXj&}`-#a1RS#w(z@^S*LnO&G)*URIR+e$SL7rqqH6Xb|C=HA464E;Cx+zf| zAIqZ}_N|O=W%Q%U=vF{pjP?hn98e_=-eclyFCZf*#iz@@jLflQhgm;LVBE&s8~%}J z75_K@t05qpCQ{VATyQ!~9g3Db*t~?3Ngtm7qO^vjQy24a% zD!{dko!>Hce(Op+t;oI@?H}i7c=>rHwMDh~zKn-Dk;qbF()zVt+L@dp_Pj zyk9zn;1MDWzqc**-dY0jSocy2y*h*zV)o zeSEu*kCdPvlkzf)@!W+iu>|D4DIoWVal- zuDXJhPzM1{#aPrE3ckvw41Zi*jvFiu&=$#fd|ntBk`ELy{DV&GUBD21Zaywsud&np z^eH^sRWdgGGS8HVz!#jI74%VQca<2^&JNNFFxH-{6@OF4Izh7|=lB>7_708?_V-5p zqvO4!*$nO-&(N$lJL(-EgknV@{g7)@dB}dR=f}8MhX=i*{uK814uASnXK%C*_xGlD z?`RLsdi%4!Jvc!7PE_u?0OB=dw?bMV=)Sq@y%9VmOMkx+_Q%zl`~fkyPI}T;<#Fr8 z8uSLey?%eMKe+B4p9}^ky~BT79qSj$xIgU+%DAF@cvu@ z>>qTjB_^?7>A0b2eSe;extjH(#ey9|YA9c8{b>#^B<63{jCxBb$l8G%?Qy(Bx{~&a zNov&He`&kxp&@ld$;JtXd>j2Hzb~WU(n48&Sghb=v(g$)+er-#7mVr=RGb#&0u^Wa zra2Y&&5{AC3Hhy*M8`Ux6Y8NW#OT_yV{#$(~ldo`Po%9DsN2B9j|LEwbCm%=dvO#}zI64|0jE*|i`0^98P7X#L>x2C3vjsm~ zegggB@X-1q*!3NOQ#WGGk7)UcA?G6|QV9k>;l2F%VYOC%HXrM;{B51|9txCSm55j$ zW~r-G0_1h^u}~qh+TdA#g&I@F>2=k0ns{AhO61a&nUD{D%ksgz30f=Vzm1bx$qy9C pHl>&2L|GDnkftB=jP0o^wb8!y@bKl~{|5j7|NpjO!>=dS0RW%KG!*~< delta 10330 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 diff --git a/build/openrpc/worker.json.gz b/build/openrpc/worker.json.gz index 17b5b1c187760f0c2819278f62ad69b46c1a4dea..a71f29c26ae04ee05681f1af01a37ecb71c7d079 100644 GIT binary patch delta 2606 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 Date: Mon, 6 Sep 2021 19:50:59 -0400 Subject: [PATCH 17/17] add dag bulk initialization note in changelog --- CHANGELOG.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0bd1c6b13..72584e87a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,12 +2,11 @@ # v1.11.2 / 2021-09-06 -lotus v1.11.2 is a feature release that's **highly recommend ALL lotus users to upgrade**, including node operators, +lotus v1.11.2 is a feature release that's **highly recommended ALL lotus users to upgrade**, including node operators, storage providers and clients. ## Highlights -- 🌟🌟🌟 Introduce Dagstore and CARv2 for deal-making (#6671) ([filecoin-project/lotus#6671](https://github. - com/filecoin-project/lotus/pull/6671)) +- 🌟🌟🌟 Introduce Dagstore and CARv2 for deal-making (#6671) ([filecoin-project/lotus#6671](https://github.com/filecoin-project/lotus/pull/6671)) - **[lotus miner markets' Dagstore](https://docs.filecoin.io/mine/lotus/dagstore/#conceptual-overview)** is a component of the `markets` subsystem in lotus-miner. It is a sharded store to hold large IPLD graphs efficiently, packaged as location-transparent attachable CAR files and it replaces the former Badger staging blockstore. It @@ -19,12 +18,15 @@ storage providers and clients. making, therefore, it's highly recommended to lotus users to go through [Lotus Miner: About the markets dagstore](https://docs.filecoin.io/mine/lotus/dagstore/#conceptual-overview) thoroughly to learn more about Dagstore's conceptual overview, terminology, directory structure, configuration and so on. - **Note**: - - When you first start your lotus-miner or market subsystem with this release, a one-time/first-time **dagstore - migration** will be triggered which replaces the former Badger staging blockstore with dagstore. We highly - recommend storage providers to read this [section](https://docs.filecoin. io/mine/lotus/dagstore/#first-time-migration) to learn more about + - When you first start your lotus-miner or market subsystem with this release, a one-time/first-time **dagstore migration** will be triggered which replaces the former Badger staging blockstore with dagstore. We highly + recommend storage providers to read this [section](https://docs.filecoin.io/mine/lotus/dagstore/#first-time-migration) to learn more about what the process does, what to expect and how monitor it. - It is highly recommended to **wait all ongoing data transfer to finish or cancel inbound storage deals that are still transferring**, using the `lotus-miner data-transfers cancel` command before upgrade your market nodes. Reason being that the new dagstore changes attributes in the internal deal state objects, and the paths to the staging CARs where the deal data was being placed will be lost. + - ‼️Having your dags initialized will become important in the near feature for you to provide a better storage + and retrieval service. We'd suggest you to start [forced bulk initialization] soon if possible as this process + places relatively high IP workload on your storage system and is better to be carried out gradually and over a + longer timeframe. Read how to do properly perform a force bulk initialization [here](https://docs.filecoin.io/mine/lotus/dagstore/#forcing-bulk-initialization). - ⏮ Rollback Alert(from v1.11.2-rcX to any version lower): If a storages deal is initiated with M1/v1.11.2(-rcX) release, it needs to get to the `StorageDealAwaitingPrecommit` state before you can do a version rollback or the markets process may panic. - 💙 **Special thanks to [MinerX fellows for testing and providing valuable feedbacks](https://github.com/filecoin-project/lotus/discussions/6852) for Dagstore in the past month!**