From 9cce5d26f1803aa067a875e319da241cc5605b79 Mon Sep 17 00:00:00 2001 From: Wen Date: Wed, 24 Jun 2026 10:32:49 -0700 Subject: [PATCH 1/3] feat(autobahn): introduce epoch.Registry as single source of truth for committee/stake MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add epoch.Registry holding the genesis committee, firstBlock, and genesisTimestamp - Wire Registry into data.State, avail.State, and consensus.State, replacing the ad-hoc committee/election fields - Drop EpochWindowCommittee in favour of direct EpochWindow() usage - Drop Activate and the committees map; Registry holds a single genesis committee for now — dynamic committee support deferred until execution layer is ready - Add EpochFor(RoadIndex) and VerifyInWindow for epoch-transition message acceptance - Per-epoch vote accumulation in avail: laneQCs returns one QC per epoch in window; WaitForLaneQCs takes an epoch.Index so consensus always gets the matching QC - Fix sei-db blocksim and block_db_test to match updated autobahn type signatures (GlobalRange, NewProposal, NewRoundRobinElection) introduced by concurrent main commits Co-Authored-By: Claude Sonnet 4.6 --- sei-db/ledger_db/block/block_db_test.go | 24 +- .../block/blocksim/block_generator.go | 6 +- sei-db/ledger_db/block/blocksim/blocksim.go | 4 +- .../ledger_db/block/blocksim/resume_test.go | 4 +- sei-tendermint/autobahn/types/app_proposal.go | 4 +- sei-tendermint/autobahn/types/commit_qc.go | 8 +- sei-tendermint/autobahn/types/committee.go | 31 +- .../autobahn/types/committee_test.go | 19 +- sei-tendermint/autobahn/types/opt.go | 8 +- sei-tendermint/autobahn/types/proposal.go | 32 +- .../autobahn/types/proposal_test.go | 231 +++++++----- sei-tendermint/autobahn/types/testonly.go | 2 +- sei-tendermint/autobahn/types/types_test.go | 19 - .../autobahn/types/wireguard_test.go | 2 + .../internal/autobahn/avail/block_votes.go | 56 ++- .../internal/autobahn/avail/conv_test.go | 7 +- .../internal/autobahn/avail/inner.go | 58 ++- .../internal/autobahn/avail/inner_test.go | 155 ++++---- .../internal/autobahn/avail/state.go | 88 +++-- .../internal/autobahn/avail/state_test.go | 97 ++--- .../internal/autobahn/consensus/inner.go | 13 +- .../internal/autobahn/consensus/inner_test.go | 130 +++---- .../consensus/persist/commitqcs_test.go | 42 ++- .../consensus/persist/fullcommitqcs.go | 26 +- .../consensus/persist/fullcommitqcs_test.go | 99 +++--- .../consensus/persist/globalblocks.go | 18 +- .../consensus/persist/globalblocks_test.go | 93 +++-- .../autobahn/consensus/persisted_inner.go | 21 +- .../internal/autobahn/consensus/state.go | 23 +- .../internal/autobahn/consensus/state_test.go | 13 +- .../internal/autobahn/data/state.go | 85 +++-- .../internal/autobahn/data/state_test.go | 331 ++++++++++-------- .../internal/autobahn/data/testonly.go | 6 +- .../internal/autobahn/epoch/registry.go | 92 +++++ .../internal/autobahn/epoch/registry_test.go | 42 +++ .../internal/autobahn/epoch/testonly.go | 22 ++ .../autobahn/producer/mempool_test.go | 12 +- .../internal/p2p/giga/avail_test.go | 8 +- .../internal/p2p/giga/consensus_test.go | 10 +- sei-tendermint/internal/p2p/giga/data_test.go | 21 +- .../internal/p2p/giga_router_common.go | 21 +- .../internal/p2p/giga_router_fullnode_test.go | 2 +- .../internal/p2p/giga_router_validator.go | 2 +- .../p2p/giga_router_validator_test.go | 2 +- 44 files changed, 1163 insertions(+), 826 deletions(-) create mode 100644 sei-tendermint/internal/autobahn/epoch/registry.go create mode 100644 sei-tendermint/internal/autobahn/epoch/registry_test.go create mode 100644 sei-tendermint/internal/autobahn/epoch/testonly.go diff --git a/sei-db/ledger_db/block/block_db_test.go b/sei-db/ledger_db/block/block_db_test.go index 3b905cd4f5..33ccf33f0d 100644 --- a/sei-db/ledger_db/block/block_db_test.go +++ b/sei-db/ledger_db/block/block_db_test.go @@ -253,7 +253,7 @@ func testPruneStraddleRetainsQC(t *testing.T, build builder) { require.NoError(t, err) got, ok := opt.Get() require.True(t, ok, "straddling QC must be retained") - require.Equal(t, straddled.first, got.QC().GlobalRange(committee).First) + require.Equal(t, straddled.first, got.QC().GlobalRange(0).First) } // testPruneIdempotentMonotonic asserts PruneBefore is idempotent and the @@ -485,7 +485,7 @@ func testReverseIteratorOrdering(t *testing.T, build builder) { } qc, err := qcIt.QC() require.NoError(t, err) - first := qc.QC().GlobalRange(committee).First + first := qc.QC().GlobalRange(0).First if qcCount == 0 { require.Equal(t, lastFirst, first, "reverse QCs must surface the last QC first") } @@ -525,8 +525,8 @@ func testResumeAfterRestart(t *testing.T, build builder) { prevQC, ok := recoverLastQC(t, db) require.True(t, ok) - require.Equal(t, last.first, prevQC.GlobalRange(committee).First, "recovered QC must be the last persisted QC") - require.Equal(t, last.next, prevQC.GlobalRange(committee).Next) + require.Equal(t, last.first, prevQC.GlobalRange(0).First, "recovered QC must be the last persisted QC") + require.Equal(t, last.next, prevQC.GlobalRange(0).Next) // The recovered QC's upper bound is exactly where the continuation begins; // writing the next contiguous batch must be accepted. @@ -712,7 +712,7 @@ func TestMemblockPruneRemovesBelowWatermark(t *testing.T) { } fqc, err := qcIt.QC() require.NoError(t, err) - require.GreaterOrEqual(t, fqc.QC().GlobalRange(committee).First, watermark, + require.GreaterOrEqual(t, fqc.QC().GlobalRange(0).First, watermark, "QC iterator must not surface pruned QCs") } require.NoError(t, qcIt.Close()) @@ -842,13 +842,13 @@ func assertBlocksReadable(t *testing.T, db types.BlockDB, batches []batch) { func assertQCsReadable(t *testing.T, db types.BlockDB, committee *types.Committee, batches []batch) { for _, b := range batches { - r := b.qc.QC().GlobalRange(committee) + r := b.qc.QC().GlobalRange(0) for n := r.First; n < r.Next; n++ { opt, err := db.ReadQCByBlockNumber(n) require.NoError(t, err) got, ok := opt.Get() require.True(t, ok, "QC covering %d should exist", n) - gr := got.QC().GlobalRange(committee) + gr := got.QC().GlobalRange(0) require.Equal(t, r.First, gr.First) require.Equal(t, r.Next, gr.Next) require.Len(t, got.Headers(), len(b.qc.Headers()), "QC must round-trip its full header set") @@ -902,7 +902,7 @@ func assertIterators(t *testing.T, db types.BlockDB, committee *types.Committee, } qc, err := qcIt.QC() require.NoError(t, err) - first := qc.QC().GlobalRange(committee).First + first := qc.QC().GlobalRange(0).First if haveQC { require.Greater(t, first, prevFirst, "QCs must iterate ascending by First") } @@ -960,7 +960,7 @@ func buildCommittee() (*types.Committee, []types.SecretKey) { keys[i] = types.GenSecretKey(rng) replicas[i] = keys[i].Public() } - committee := utils.OrPanic1(types.NewRoundRobinElection(replicas, 0, genesisTime)) + committee := utils.OrPanic1(types.NewRoundRobinElection(replicas)) return committee, keys } @@ -972,7 +972,7 @@ func generateBatches(committee *types.Committee, keys []types.SecretKey) []batch batches := make([]batch, 0, numBatches) for range numBatches { fqc, blocks := buildFullCommitQC(rng, committee, keys, prev) - r := fqc.QC().GlobalRange(committee) + r := fqc.QC().GlobalRange(0) batches = append(batches, batch{first: r.First, next: r.Next, blocks: blocks, qc: fqc}) prev = utils.Some(fqc.QC()) } @@ -1029,10 +1029,12 @@ func buildFullCommitQC( leaderKey, committee, viewSpec, + 0, genesisTime, + time.Now(), laneQCs, func() utils.Option[*types.AppQC] { - if n := types.GlobalRangeOpt(prev, committee).Next; n > 0 { + if n := types.GlobalRangeOpt(prev, 0).Next; n > 0 { p := types.NewAppProposal(n-1, viewSpec.View().Index, types.GenAppHash(rng)) return utils.Some(testAppQC(keys, p)) } diff --git a/sei-db/ledger_db/block/blocksim/block_generator.go b/sei-db/ledger_db/block/blocksim/block_generator.go index 6d0b1d048f..ff033c115a 100644 --- a/sei-db/ledger_db/block/blocksim/block_generator.go +++ b/sei-db/ledger_db/block/blocksim/block_generator.go @@ -74,7 +74,7 @@ func (g *BlockGenerator) mainLoop() { func (g *BlockGenerator) buildBatch() *generatedBatch { fqc, blocks := g.buildFullCommitQC() - r := fqc.QC().GlobalRange(g.committee) + r := fqc.QC().GlobalRange(0) g.prev = utils.Some(fqc.QC()) return &generatedBatch{first: r.First, next: r.Next, blocks: blocks, qc: fqc} } @@ -145,10 +145,12 @@ func (g *BlockGenerator) buildFullCommitQC() (*types.FullCommitQC, []*types.Bloc leaderKey, committee, viewSpec, + 0, + genesisTime, time.Now(), laneQCs, func() utils.Option[*types.AppQC] { - if n := types.GlobalRangeOpt(prev, committee).Next; n > 0 { + if n := types.GlobalRangeOpt(prev, 0).Next; n > 0 { p := types.NewAppProposal(n-1, viewSpec.View().Index, types.GenAppHash(rng)) return utils.Some(testAppQC(keys, p)) } diff --git a/sei-db/ledger_db/block/blocksim/blocksim.go b/sei-db/ledger_db/block/blocksim/blocksim.go index 38eebfca5f..4a0dc7dcd4 100644 --- a/sei-db/ledger_db/block/blocksim/blocksim.go +++ b/sei-db/ledger_db/block/blocksim/blocksim.go @@ -121,7 +121,7 @@ func NewBlockSim( // last QC's range — the next batch then appends contiguously. Block bytes // are irrelevant here (this is a DB stress test), so the backfill writes // freshly generated blocks under the already-persisted QC. - qcRange := prevQC.GlobalRange(committee) + qcRange := prevQC.GlobalRange(0) lastQCNext := uint64(qcRange.Next) firstMissing := uint64(qcRange.First) if h, ok := highestOpt.Get(); ok { @@ -263,7 +263,7 @@ func buildCommittee(rng tmutils.Rng, size int) (*types.Committee, []types.Secret keys[i] = types.GenSecretKey(rng) replicas[i] = keys[i].Public() } - committee, err := types.NewRoundRobinElection(replicas, 0, genesisTime) + committee, err := types.NewRoundRobinElection(replicas) if err != nil { return nil, nil, fmt.Errorf("failed to build committee: %w", err) } diff --git a/sei-db/ledger_db/block/blocksim/resume_test.go b/sei-db/ledger_db/block/blocksim/resume_test.go index da982d6a9b..5cc41d9abb 100644 --- a/sei-db/ledger_db/block/blocksim/resume_test.go +++ b/sei-db/ledger_db/block/blocksim/resume_test.go @@ -67,8 +67,8 @@ func TestRecoverResumeState(t *testing.T) { prevQC, ok := prev.Get() require.True(t, ok, "recovered prev QC must be present") - require.Equal(t, last.first, prevQC.GlobalRange(committee).First, "recovered QC must be the last persisted QC") - require.Equal(t, last.next, prevQC.GlobalRange(committee).Next) + require.Equal(t, last.first, prevQC.GlobalRange(0).First, "recovered QC must be the last persisted QC") + require.Equal(t, last.next, prevQC.GlobalRange(0).Next) // Empty-store sanity: a fresh dir recovers nothing. empty, err := openBlockDB(&BlocksimConfig{Backend: "litt", DataDir: t.TempDir(), LittRetentionSeconds: 1}) diff --git a/sei-tendermint/autobahn/types/app_proposal.go b/sei-tendermint/autobahn/types/app_proposal.go index 5566acc7fe..e79b4bdbd8 100644 --- a/sei-tendermint/autobahn/types/app_proposal.go +++ b/sei-tendermint/autobahn/types/app_proposal.go @@ -40,11 +40,11 @@ func (m *AppProposal) Next() RoadIndex { } // Verify verifies that the AppProposal is consistent with the CommitQC. -func (m *AppProposal) Verify(c *Committee, qc *CommitQC) error { +func (m *AppProposal) Verify(c *Committee, qc *CommitQC, firstBlock GlobalBlockNumber) error { if got, want := m.RoadIndex(), qc.Proposal().Index(); got != want { return fmt.Errorf("roadIndex() = %v, want %v", got, want) } - if got, want := m.GlobalNumber(), qc.GlobalRange(c); got < want.First || got >= want.Next { + if got, want := m.GlobalNumber(), qc.GlobalRange(firstBlock); got < want.First || got >= want.Next { return fmt.Errorf("globalNumber() = %v, want in range [%v,%v)", got, want.First, want.Next) } return nil diff --git a/sei-tendermint/autobahn/types/commit_qc.go b/sei-tendermint/autobahn/types/commit_qc.go index 3f2562cc78..382b72fc55 100644 --- a/sei-tendermint/autobahn/types/commit_qc.go +++ b/sei-tendermint/autobahn/types/commit_qc.go @@ -41,8 +41,8 @@ func (m *CommitQC) LaneRange(lane LaneID) *LaneRange { } // GlobalRange returns the finalized global block range. -func (m *CommitQC) GlobalRange(c *Committee) GlobalRange { - return m.Proposal().GlobalRange(c) +func (m *CommitQC) GlobalRange(firstBlock GlobalBlockNumber) GlobalRange { + return m.Proposal().GlobalRange(firstBlock) } // Verify verifies the CommitQC against the committee. @@ -78,12 +78,12 @@ func (m *FullCommitQC) Index() RoadIndex { } // Verify verifies the FullCommitQC against the committee. -func (m *FullCommitQC) Verify(c *Committee) error { +func (m *FullCommitQC) Verify(c *Committee, firstBlock GlobalBlockNumber) error { if err := m.qc.Verify(c); err != nil { return fmt.Errorf("qC: %w", err) } n := uint64(0) - if want, got := int(m.qc.GlobalRange(c).Len()), len(m.headers); want != got { //nolint:gosec // global range len is a small bounded value representing block count in a QC + if want, got := int(m.qc.GlobalRange(firstBlock).Len()), len(m.headers); want != got { //nolint:gosec // global range len is a small bounded value representing block count in a QC return fmt.Errorf("len(headers) = %d, want %d", got, want) } for lane := range c.Lanes().All() { diff --git a/sei-tendermint/autobahn/types/committee.go b/sei-tendermint/autobahn/types/committee.go index 5984febda9..34da1345b3 100644 --- a/sei-tendermint/autobahn/types/committee.go +++ b/sei-tendermint/autobahn/types/committee.go @@ -8,7 +8,6 @@ import ( "iter" "maps" "slices" - "time" "github.com/ethereum/go-ethereum/common" "github.com/holiman/uint256" @@ -27,14 +26,6 @@ type Committee struct { replicas ImSlice[PublicKey] weights map[PublicKey]uint64 totalWeight uint64 - // Number of the first block of the chain. - // TODO: firstBlock is not really a part of the committee, - // but it does belong to a chain spec (or epoch spec/genesis/etc.), - // which should be passed around to verify autobahn messages. - // Once we introduce the chain spec it should wrap Committee and firstBlock. - firstBlock GlobalBlockNumber - // timestamp at genesis. All blocks need to have a timestamp later than genesis. - genesisTimestamp time.Time } const MaxValidators = 100 @@ -55,12 +46,6 @@ func (c *Committee) Lanes() ImSlice[LaneID] { return c.replicas } // Replicas is the list of nodes which are eligible to participate in the consensus. func (c *Committee) Replicas() ImSlice[PublicKey] { return c.replicas } -// FirstBlock is the index of the first global block finalized by this committee. -func (c *Committee) FirstBlock() GlobalBlockNumber { return c.firstBlock } - -// GenesisTimestamp is the timestamp at genesis. -func (c *Committee) GenesisTimestamp() time.Time { return c.genesisTimestamp } - // Deterministic random oracle selecting a replica with probability proportional to the weight. func (c *Committee) randomReplica(seed []byte) PublicKey { h := sha256.Sum256(seed[:]) @@ -131,7 +116,7 @@ func (c *Committee) LaneQuorum() uint64 { return c.Faulty() + 1 } -func NewCommittee(weights map[PublicKey]uint64, firstBlock GlobalBlockNumber, genesisTimestamp time.Time) (*Committee, error) { +func NewCommittee(weights map[PublicKey]uint64) (*Committee, error) { weights = maps.Clone(weights) totalWeight := uint64(0) for k, w := range weights { @@ -151,19 +136,17 @@ func NewCommittee(weights map[PublicKey]uint64, firstBlock GlobalBlockNumber, ge } replicas := slices.SortedFunc(maps.Keys(weights), func(a, b PublicKey) int { return a.Compare(b) }) return &Committee{ - replicas: ImSlice[PublicKey]{replicas}, - weights: weights, - totalWeight: totalWeight, - firstBlock: firstBlock, - genesisTimestamp: genesisTimestamp, + replicas: ImSlice[PublicKey]{replicas}, + weights: weights, + totalWeight: totalWeight, }, nil } -// NewRoundRobinElection creates a Committee with round robin election starting at firstBlock. -func NewRoundRobinElection(replicas []PublicKey, firstBlock GlobalBlockNumber, genesisTimestamp time.Time) (*Committee, error) { +// NewRoundRobinElection creates a Committee with equal weights for each replica. +func NewRoundRobinElection(replicas []PublicKey) (*Committee, error) { weights := map[PublicKey]uint64{} for _, k := range replicas { weights[k] = 1 } - return NewCommittee(weights, firstBlock, genesisTimestamp) + return NewCommittee(weights) } diff --git a/sei-tendermint/autobahn/types/committee_test.go b/sei-tendermint/autobahn/types/committee_test.go index c893c064d3..3543e63c59 100644 --- a/sei-tendermint/autobahn/types/committee_test.go +++ b/sei-tendermint/autobahn/types/committee_test.go @@ -3,7 +3,6 @@ package types import ( "math" "testing" - "time" "github.com/sei-protocol/sei-chain/sei-tendermint/libs/utils" "github.com/sei-protocol/sei-chain/sei-tendermint/libs/utils/require" @@ -11,15 +10,13 @@ import ( func TestNewCommittee_FiltersOutZeroWeightValidators(t *testing.T) { rng := utils.TestRng() - firstBlock := GenGlobalBlockNumber(rng) - genesisTimestamp := time.Now() zeroWeightKey := GenPublicKey(rng) nonZeroWeightKey := GenPublicKey(rng) committee, err := NewCommittee(map[PublicKey]uint64{ zeroWeightKey: 0, nonZeroWeightKey: 7, - }, firstBlock, genesisTimestamp) + }) if err != nil { t.Fatalf("NewCommittee(): %v", err) } @@ -40,13 +37,11 @@ func TestNewCommittee_FiltersOutZeroWeightValidators(t *testing.T) { func TestNewCommittee_RejectsZeroTotalWeight(t *testing.T) { rng := utils.TestRng() - firstBlock := GenGlobalBlockNumber(rng) - genesisTimestamp := time.Now() _, err := NewCommittee(map[PublicKey]uint64{ GenPublicKey(rng): 0, GenPublicKey(rng): 0, - }, firstBlock, genesisTimestamp) + }) if err == nil { t.Fatal("NewCommittee() succeeded, want error") } @@ -54,13 +49,11 @@ func TestNewCommittee_RejectsZeroTotalWeight(t *testing.T) { func TestNewCommittee_RejectsWeightOverflow(t *testing.T) { rng := utils.TestRng() - firstBlock := GenGlobalBlockNumber(rng) - genesisTimestamp := time.Now() _, err := NewCommittee(map[PublicKey]uint64{ GenPublicKey(rng): math.MaxUint64, GenPublicKey(rng): 1, - }, firstBlock, genesisTimestamp) + }) if err == nil { t.Fatal("NewCommittee() succeeded, want error") } @@ -68,15 +61,13 @@ func TestNewCommittee_RejectsWeightOverflow(t *testing.T) { func TestNewCommittee_RejectsTooManyValidators(t *testing.T) { rng := utils.TestRng() - firstBlock := GenGlobalBlockNumber(rng) - genesisTimestamp := time.Now() weights := map[PublicKey]uint64{} for range MaxValidators + 1 { weights[GenPublicKey(rng)] = 1 } - _, err := NewCommittee(weights, firstBlock, genesisTimestamp) + _, err := NewCommittee(weights) if err == nil { t.Fatal("NewCommittee() succeeded, want error") } @@ -92,7 +83,7 @@ func makeCommittee() (*Committee, []SecretKey) { keys[0].Public(): 5, keys[1].Public(): 1, keys[2].Public(): 1, - }, 0, time.Now())), keys + })), keys } func TestLaneQCVerifyChecksWeight(t *testing.T) { diff --git a/sei-tendermint/autobahn/types/opt.go b/sei-tendermint/autobahn/types/opt.go index b6da4556ea..d85d2077e7 100644 --- a/sei-tendermint/autobahn/types/opt.go +++ b/sei-tendermint/autobahn/types/opt.go @@ -48,12 +48,12 @@ func LaneRangeOpt[T interface { // GlobalRangeOpt defaults to an empty initial range. func GlobalRangeOpt[T interface { - GlobalRange(c *Committee) GlobalRange -}](mv utils.Option[T], c *Committee) GlobalRange { + GlobalRange(firstBlock GlobalBlockNumber) GlobalRange +}](mv utils.Option[T], firstBlock GlobalBlockNumber) GlobalRange { if v, ok := mv.Get(); ok { - return v.GlobalRange(c) + return v.GlobalRange(firstBlock) } - return GlobalRange{First: c.FirstBlock(), Next: c.FirstBlock()} + return GlobalRange{First: firstBlock, Next: firstBlock} } // AppOpt defaults to None. diff --git a/sei-tendermint/autobahn/types/proposal.go b/sei-tendermint/autobahn/types/proposal.go index a0e8bee0a7..d40975d667 100644 --- a/sei-tendermint/autobahn/types/proposal.go +++ b/sei-tendermint/autobahn/types/proposal.go @@ -121,11 +121,11 @@ func (vs *ViewSpec) View() View { return View{Index: idx, Number: 0} } -func (vs *ViewSpec) NextTimestamp(c *Committee) time.Time { +func (vs *ViewSpec) NextTimestamp(genesisTimestamp time.Time) time.Time { if cQC, ok := vs.CommitQC.Get(); ok { return cQC.Proposal().NextTimestamp() } - return c.GenesisTimestamp() + return genesisTimestamp } // Proposal is the road tipcut proposal. @@ -178,11 +178,11 @@ func (m *Proposal) App() utils.Option[*AppProposal] { return m.app } // GlobalRange returns the proposed global block range. // To compute GlobalRange from lane ranges in proposal, // we need to know the global number of the first block -// of the chain (c.FirstBlock()). -func (m *Proposal) GlobalRange(c *Committee) GlobalRange { +// of the chain (firstBlock). +func (m *Proposal) GlobalRange(firstBlock GlobalBlockNumber) GlobalRange { gr := m.globalRangeWithoutOffset - gr.First += c.FirstBlock() - gr.Next += c.FirstBlock() + gr.First += firstBlock + gr.Next += firstBlock return gr } @@ -190,9 +190,9 @@ func (m *Proposal) GlobalRange(c *Committee) GlobalRange { const minTimestampDiff = time.Microsecond // Monotone timestamp assigned to each block of the proposal. -// Returns None, if n doed not belong to the proposal's global range. -func (m *Proposal) BlockTimestamp(c *Committee, n GlobalBlockNumber) utils.Option[time.Time] { - gr := m.GlobalRange(c) +// Returns None, if n does not belong to the proposal's global range. +func (m *Proposal) BlockTimestamp(firstBlock GlobalBlockNumber, n GlobalBlockNumber) utils.Option[time.Time] { + gr := m.GlobalRange(firstBlock) if !gr.Has(n) { return utils.None[time.Time]() } @@ -261,6 +261,8 @@ func NewProposal( key SecretKey, committee *Committee, viewSpec ViewSpec, + firstBlock GlobalBlockNumber, + genesisTimestamp time.Time, timestamp time.Time, laneQCs map[LaneID]*LaneQC, appQC utils.Option[*AppQC], @@ -291,12 +293,12 @@ func NewProposal( } // If the new appProposal is from the future (which may happen if this node is behind), then clear appQC. // The proposal will be useless in this case, but at least it will be valid. - if a, ok := app.Get(); ok && a.GlobalNumber() >= GlobalRangeOpt(viewSpec.CommitQC, committee).Next { + if a, ok := app.Get(); ok && a.GlobalNumber() >= GlobalRangeOpt(viewSpec.CommitQC, firstBlock).Next { app = utils.None[*AppProposal]() appQC = utils.None[*AppQC]() } // Normalize the creation timestamp. - if wantMin := viewSpec.NextTimestamp(committee); timestamp.Before(wantMin) { + if wantMin := viewSpec.NextTimestamp(genesisTimestamp); timestamp.Before(wantMin) { timestamp = wantMin } proposal := newProposal(viewSpec.View(), timestamp, laneRanges, app) @@ -329,17 +331,17 @@ func (m *FullProposal) TimeoutQC() utils.Option[*TimeoutQC] { } // Verify verifies the FullProposal against the current view. -func (m *FullProposal) Verify(c *Committee, vs ViewSpec) error { +func (m *FullProposal) Verify(c *Committee, vs ViewSpec, firstBlock GlobalBlockNumber, genesisTimestamp time.Time) error { return scope.Parallel(func(s scope.ParallelScope) error { // Does the view match? if got, want := m.proposal.Msg().View(), vs.View(); got != want { return fmt.Errorf("view = %v, want %v", m.View(), vs.View()) } - if got, want := m.proposal.Msg().GlobalRange(c).First, GlobalRangeOpt(vs.CommitQC, c).Next; got != want { + if got, want := m.proposal.Msg().GlobalRange(firstBlock).First, GlobalRangeOpt(vs.CommitQC, firstBlock).Next; got != want { return fmt.Errorf("proposal.GlobalRange().First = %v, want %v", got, want) } // Is the timestamp monotone? - if got, wantMin := m.proposal.Msg().Timestamp(), vs.NextTimestamp(c); got.Before(wantMin) { + if got, wantMin := m.proposal.Msg().Timestamp(), vs.NextTimestamp(genesisTimestamp); got.Before(wantMin) { return fmt.Errorf("proposal.Timestamp() = %v, want >= %v", got, wantMin) } // Is proposer valid? @@ -428,7 +430,7 @@ func (m *FullProposal) Verify(c *Committee, vs ViewSpec) error { } return nil }) - if got, want := appQC.Proposal().GlobalNumber(), GlobalRangeOpt(vs.CommitQC, c).Next; got >= want { + if got, want := appQC.Proposal().GlobalNumber(), GlobalRangeOpt(vs.CommitQC, firstBlock).Next; got >= want { return fmt.Errorf("appQC for block %v, while only %v blocks were finalized", got, want) } } diff --git a/sei-tendermint/autobahn/types/proposal_test.go b/sei-tendermint/autobahn/types/proposal_test.go index bbc856c773..da70d06f85 100644 --- a/sei-tendermint/autobahn/types/proposal_test.go +++ b/sei-tendermint/autobahn/types/proposal_test.go @@ -1,7 +1,6 @@ package types import ( - "slices" "testing" "time" @@ -62,16 +61,20 @@ func makeAppQCFor(keys []SecretKey, globalNum GlobalBlockNumber, roadIdx RoadInd func TestProposalVerifyFreshEmptyRanges(t *testing.T) { rng := utils.TestRng() committee, keys := GenCommittee(rng, 4) + firstBlock := GlobalBlockNumber(0) + genesisTimestamp := time.Time{} vs := ViewSpec{} proposerKey := leaderKey(committee, keys, vs.View()) - fp := utils.OrPanic1(NewProposal(proposerKey, committee, vs, time.Now(), nil, utils.None[*AppQC]())) - require.NoError(t, fp.Verify(committee, vs)) + fp := utils.OrPanic1(NewProposal(proposerKey, committee, vs, firstBlock, genesisTimestamp, time.Now(), nil, utils.None[*AppQC]())) + require.NoError(t, fp.Verify(committee, vs, firstBlock, genesisTimestamp)) } func TestProposalVerifyFreshWithBlocks(t *testing.T) { rng := utils.TestRng() committee, keys := GenCommittee(rng, 4) + firstBlock := GlobalBlockNumber(0) + genesisTimestamp := time.Time{} vs := ViewSpec{} proposerKey := leaderKey(committee, keys, vs.View()) @@ -79,14 +82,16 @@ func TestProposalVerifyFreshWithBlocks(t *testing.T) { lane := proposerKey.Public() laneQC := makeLaneQC(rng, committee, keys, lane, 0, GenBlockHeaderHash(rng)) - fp := utils.OrPanic1(NewProposal(proposerKey, committee, vs, time.Now(), + fp := utils.OrPanic1(NewProposal(proposerKey, committee, vs, firstBlock, genesisTimestamp, time.Now(), map[LaneID]*LaneQC{lane: laneQC}, utils.None[*AppQC]())) - require.NoError(t, fp.Verify(committee, vs)) + require.NoError(t, fp.Verify(committee, vs, firstBlock, genesisTimestamp)) } func TestProposalBlockTimestampStrictlyMonotone(t *testing.T) { rng := utils.TestRng() committee, keys := GenCommittee(rng, 4) + firstBlock := GlobalBlockNumber(0) + genesisTimestamp := time.Time{} vs0 := ViewSpec{} proposer0 := leaderKey(committee, keys, vs0.View()) lane := proposer0.Public() @@ -95,6 +100,8 @@ func TestProposalBlockTimestampStrictlyMonotone(t *testing.T) { proposer0, committee, vs0, + firstBlock, + genesisTimestamp, time.Now(), map[LaneID]*LaneQC{ lane: makeLaneQC(rng, committee, keys, lane, 2, GenBlockHeaderHash(rng)), @@ -102,12 +109,12 @@ func TestProposalBlockTimestampStrictlyMonotone(t *testing.T) { utils.None[*AppQC](), )) p0 := firstProposal.Proposal().Msg() - gr0 := p0.GlobalRange(committee) - require.Equal(t, committee.FirstBlock(), gr0.First) - require.Equal(t, committee.FirstBlock()+3, gr0.Next) - first0 := p0.BlockTimestamp(committee, gr0.First).OrPanic("missing first block timestamp") - second0 := p0.BlockTimestamp(committee, gr0.First+1).OrPanic("missing second block timestamp") - third0 := p0.BlockTimestamp(committee, gr0.First+2).OrPanic("missing third block timestamp") + gr0 := p0.GlobalRange(firstBlock) + require.Equal(t, firstBlock, gr0.First) + require.Equal(t, firstBlock+3, gr0.Next) + first0 := p0.BlockTimestamp(firstBlock, gr0.First).OrPanic("missing first block timestamp") + second0 := p0.BlockTimestamp(firstBlock, gr0.First+1).OrPanic("missing second block timestamp") + third0 := p0.BlockTimestamp(firstBlock, gr0.First+2).OrPanic("missing third block timestamp") require.True(t, first0.Before(second0), "block timestamps within one proposal must be strictly increasing") require.True(t, second0.Before(third0), "block timestamps within one proposal must be strictly increasing") @@ -119,6 +126,8 @@ func TestProposalBlockTimestampStrictlyMonotone(t *testing.T) { proposer1, committee, vs1, + firstBlock, + genesisTimestamp, time.Now(), map[LaneID]*LaneQC{ lane: makeLaneQC(rng, committee, keys, lane, 3, GenBlockHeaderHash(rng)), @@ -126,10 +135,10 @@ func TestProposalBlockTimestampStrictlyMonotone(t *testing.T) { utils.None[*AppQC](), )) p1 := secondProposal.Proposal().Msg() - gr1 := p1.GlobalRange(committee) + gr1 := p1.GlobalRange(firstBlock) require.Equal(t, gr0.Next, gr1.First) - last0 := p0.BlockTimestamp(committee, gr0.Next-1).OrPanic("missing last block timestamp") - first1 := p1.BlockTimestamp(committee, gr1.First).OrPanic("missing first timestamp of next proposal") + last0 := p0.BlockTimestamp(firstBlock, gr0.Next-1).OrPanic("missing last block timestamp") + first1 := p1.BlockTimestamp(firstBlock, gr1.First).OrPanic("missing first timestamp of next proposal") require.True(t, last0.Before(first1), "block timestamps across consecutive proposals must be strictly increasing") } @@ -137,22 +146,22 @@ func TestProposalVerifyRejectsNonMonotoneTimestamp(t *testing.T) { t.Run("wrt genesis timestamp", func(t *testing.T) { rng := utils.TestRng() committee, keys := GenCommittee(rng, 4) + firstBlock := GlobalBlockNumber(0) + genesisTimestamp := time.Now() vs := ViewSpec{} k := leaderKey(committee, keys, vs.View()) - fp := utils.OrPanic1(NewProposal(k, committee, vs, committee.GenesisTimestamp(), nil, utils.None[*AppQC]())) - require.NoError(t, fp.Verify(committee, vs)) - - committee = utils.OrPanic1(NewRoundRobinElection( - slices.Collect(committee.Replicas().All()), - committee.FirstBlock(), - fp.Proposal().Msg().Timestamp().Add(time.Nanosecond)), - ) - require.Error(t, fp.Verify(committee, vs)) + fp := utils.OrPanic1(NewProposal(k, committee, vs, firstBlock, genesisTimestamp, genesisTimestamp, nil, utils.None[*AppQC]())) + require.NoError(t, fp.Verify(committee, vs, firstBlock, genesisTimestamp)) + + laterGenesis := fp.Proposal().Msg().Timestamp().Add(time.Nanosecond) + require.Error(t, fp.Verify(committee, vs, firstBlock, laterGenesis)) }) t.Run("wrt previous proposal", func(t *testing.T) { rng := utils.TestRng() committee, keys := GenCommittee(rng, 4) + firstBlock := GlobalBlockNumber(0) + genesisTimestamp := time.Time{} vs0 := ViewSpec{} proposer0 := leaderKey(committee, keys, vs0.View()) lane := proposer0.Public() @@ -162,6 +171,8 @@ func TestProposalVerifyRejectsNonMonotoneTimestamp(t *testing.T) { proposer0, committee, vs0, + firstBlock, + genesisTimestamp, time.Now(), map[LaneID]*LaneQC{lane: lQC}, utils.None[*AppQC](), @@ -170,6 +181,8 @@ func TestProposalVerifyRejectsNonMonotoneTimestamp(t *testing.T) { proposer0, committee, vs0, + firstBlock, + genesisTimestamp, fp0a.Proposal().Msg().NextTimestamp().Add(time.Hour), map[LaneID]*LaneQC{lane: lQC}, utils.None[*AppQC](), @@ -183,55 +196,63 @@ func TestProposalVerifyRejectsNonMonotoneTimestamp(t *testing.T) { proposer1, committee, vs1a, + firstBlock, + genesisTimestamp, fp0a.Proposal().Msg().NextTimestamp(), nil, utils.None[*AppQC](), )) - require.NoError(t, fp1a.Verify(committee, vs1a)) - require.Error(t, fp1a.Verify(committee, vs1b)) + require.NoError(t, fp1a.Verify(committee, vs1a, firstBlock, genesisTimestamp)) + require.Error(t, fp1a.Verify(committee, vs1b, firstBlock, genesisTimestamp)) }) } func TestProposalVerifyRejectsViewMismatch(t *testing.T) { rng := utils.TestRng() committee, keys := GenCommittee(rng, 4) + firstBlock := GlobalBlockNumber(0) + genesisTimestamp := time.Time{} // Build a valid proposal at genesis view (0, 0). vs0 := ViewSpec{} leader0 := leaderKey(committee, keys, vs0.View()) - fp := utils.OrPanic1(NewProposal(leader0, committee, vs0, time.Now(), nil, utils.None[*AppQC]())) + fp := utils.OrPanic1(NewProposal(leader0, committee, vs0, firstBlock, genesisTimestamp, time.Now(), nil, utils.None[*AppQC]())) // Verify it against a different ViewSpec (view 1, 0). commitQC := makeCommitQCFromProposal(keys, fp) vs1 := ViewSpec{CommitQC: utils.Some(commitQC)} - err := fp.Verify(committee, vs1) + err := fp.Verify(committee, vs1, firstBlock, genesisTimestamp) require.Error(t, err) } func TestProposalVerifyRejectsForgedSignature(t *testing.T) { rng := utils.TestRng() committee, keys := GenCommittee(rng, 4) + firstBlock := GlobalBlockNumber(0) + genesisTimestamp := time.Time{} vs := ViewSpec{} proposerKey := leaderKey(committee, keys, vs.View()) // Build two valid proposals with different timestamps. - fp1 := utils.OrPanic1(NewProposal(proposerKey, committee, vs, time.Now(), nil, utils.None[*AppQC]())) - fp2 := utils.OrPanic1(NewProposal(proposerKey, committee, vs, time.Now().Add(time.Hour), nil, utils.None[*AppQC]())) + fp1 := utils.OrPanic1(NewProposal(proposerKey, committee, vs, firstBlock, genesisTimestamp, time.Now(), nil, utils.None[*AppQC]())) + fp2 := utils.OrPanic1(NewProposal(proposerKey, committee, vs, firstBlock, genesisTimestamp, time.Now().Add(time.Hour), nil, utils.None[*AppQC]())) // Graft fp1's signature onto fp2 (different content). fp2.proposal.sig = fp1.proposal.sig - err := fp2.Verify(committee, vs) + err := fp2.Verify(committee, vs, firstBlock, genesisTimestamp) require.Error(t, err) } func TestProposalVerifyRejectsWrongProposer(t *testing.T) { rng := utils.TestRng() committee, keys := GenCommittee(rng, 4) + firstBlock := GlobalBlockNumber(0) + genesisTimestamp := time.Time{} vs := ViewSpec{} correctLeader := leaderKey(committee, keys, vs.View()) - fp := utils.OrPanic1(NewProposal(correctLeader, committee, vs, time.Now(), nil, utils.None[*AppQC]())) + fp := utils.OrPanic1(NewProposal(correctLeader, committee, vs, firstBlock, genesisTimestamp, time.Now(), nil, utils.None[*AppQC]())) // Re-sign the same proposal with a different (non-leader) key. var wrongKey SecretKey @@ -247,17 +268,19 @@ func TestProposalVerifyRejectsWrongProposer(t *testing.T) { appQC: fp.appQC, timeoutQC: fp.timeoutQC, } - err := tamperedFP.Verify(committee, vs) + err := tamperedFP.Verify(committee, vs, firstBlock, genesisTimestamp) require.Error(t, err) } func TestProposalVerifyRejectsInconsistentTimeoutQC(t *testing.T) { rng := utils.TestRng() committee, keys := GenCommittee(rng, 4) + firstBlock := GlobalBlockNumber(0) + genesisTimestamp := time.Time{} vs := ViewSpec{} // no timeoutQC proposerKey := leaderKey(committee, keys, vs.View()) - fp := utils.OrPanic1(NewProposal(proposerKey, committee, vs, time.Now(), nil, utils.None[*AppQC]())) + fp := utils.OrPanic1(NewProposal(proposerKey, committee, vs, firstBlock, genesisTimestamp, time.Now(), nil, utils.None[*AppQC]())) // Attach a timeoutQC that the ViewSpec doesn't expect. var timeoutVotes []*FullTimeoutVote @@ -272,17 +295,19 @@ func TestProposalVerifyRejectsInconsistentTimeoutQC(t *testing.T) { appQC: fp.appQC, timeoutQC: utils.Some(tQC), } - err := tamperedFP.Verify(committee, vs) + err := tamperedFP.Verify(committee, vs, firstBlock, genesisTimestamp) require.Error(t, err) } func TestProposalVerifyRejectsNonCommitteeLane(t *testing.T) { rng := utils.TestRng() committee, keys := GenCommittee(rng, 4) + firstBlock := GlobalBlockNumber(0) + genesisTimestamp := time.Time{} vs := ViewSpec{} proposerKey := leaderKey(committee, keys, vs.View()) - fp := utils.OrPanic1(NewProposal(proposerKey, committee, vs, time.Now(), nil, utils.None[*AppQC]())) + fp := utils.OrPanic1(NewProposal(proposerKey, committee, vs, firstBlock, genesisTimestamp, time.Now(), nil, utils.None[*AppQC]())) // Replace one committee lane with a non-committee lane. // E.g. committee = {A, B, C, D}, proposal = {A, B, C, X}. @@ -312,17 +337,19 @@ func TestProposalVerifyRejectsNonCommitteeLane(t *testing.T) { appQC: fp.appQC, timeoutQC: fp.timeoutQC, } - err := maliciousFP.Verify(committee, vs) + err := maliciousFP.Verify(committee, vs, firstBlock, genesisTimestamp) require.Error(t, err) } func TestProposalVerifyAcceptsImplicitLaneRange(t *testing.T) { rng := utils.TestRng() committee, keys := GenCommittee(rng, 4) + firstBlock := GlobalBlockNumber(0) + genesisTimestamp := time.Time{} vs := ViewSpec{} proposerKey := leaderKey(committee, keys, vs.View()) - fp := utils.OrPanic1(NewProposal(proposerKey, committee, vs, time.Now(), nil, utils.None[*AppQC]())) + fp := utils.OrPanic1(NewProposal(proposerKey, committee, vs, firstBlock, genesisTimestamp, time.Now(), nil, utils.None[*AppQC]())) // Drop one lane — the omitted lane gets an implicit [0, 0) range, // which matches the expected first=0 at genesis. @@ -341,16 +368,18 @@ func TestProposalVerifyAcceptsImplicitLaneRange(t *testing.T) { shortFP := &FullProposal{ proposal: Sign(proposerKey, shortProposal), } - require.NoError(t, shortFP.Verify(committee, vs)) + require.NoError(t, shortFP.Verify(committee, vs, firstBlock, genesisTimestamp)) } func TestProposalVerifyAcceptsNonContiguousImplicitRanges(t *testing.T) { rng := utils.TestRng() committee, keys := GenCommittee(rng, 4) + firstBlock := GlobalBlockNumber(0) + genesisTimestamp := time.Time{} vs := ViewSpec{} proposerKey := leaderKey(committee, keys, vs.View()) - fp := utils.OrPanic1(NewProposal(proposerKey, committee, vs, time.Now(), nil, utils.None[*AppQC]())) + fp := utils.OrPanic1(NewProposal(proposerKey, committee, vs, firstBlock, genesisTimestamp, time.Now(), nil, utils.None[*AppQC]())) // Keep only every other lane (e.g. {A, C} out of {A, B, C, D}). origP := fp.Proposal().Msg() @@ -367,16 +396,18 @@ func TestProposalVerifyAcceptsNonContiguousImplicitRanges(t *testing.T) { shortFP := &FullProposal{ proposal: Sign(proposerKey, shortProposal), } - require.NoError(t, shortFP.Verify(committee, vs)) + require.NoError(t, shortFP.Verify(committee, vs, firstBlock, genesisTimestamp)) } func TestProposalVerifyRejectsLaneRangeFirstMismatch(t *testing.T) { rng := utils.TestRng() committee, keys := GenCommittee(rng, 4) + firstBlock := GlobalBlockNumber(0) + genesisTimestamp := time.Time{} vs := ViewSpec{} proposerKey := leaderKey(committee, keys, vs.View()) - fp := utils.OrPanic1(NewProposal(proposerKey, committee, vs, time.Now(), nil, utils.None[*AppQC]())) + fp := utils.OrPanic1(NewProposal(proposerKey, committee, vs, firstBlock, genesisTimestamp, time.Now(), nil, utils.None[*AppQC]())) // Tamper: change one lane's first to 5 (genesis expects 0). origP := fp.Proposal().Msg() @@ -393,13 +424,15 @@ func TestProposalVerifyRejectsLaneRangeFirstMismatch(t *testing.T) { tamperedFP := &FullProposal{ proposal: Sign(proposerKey, tamperedProposal), } - err := tamperedFP.Verify(committee, vs) + err := tamperedFP.Verify(committee, vs, firstBlock, genesisTimestamp) require.Error(t, err) } func TestProposalVerifyRejectsMissingLaneQC(t *testing.T) { rng := utils.TestRng() committee, keys := GenCommittee(rng, 4) + firstBlock := GlobalBlockNumber(0) + genesisTimestamp := time.Time{} vs := ViewSpec{} proposerKey := leaderKey(committee, keys, vs.View()) @@ -407,20 +440,22 @@ func TestProposalVerifyRejectsMissingLaneQC(t *testing.T) { laneQC := makeLaneQC(rng, committee, keys, lane, 0, GenBlockHeaderHash(rng)) // Build a valid proposal with a block, then strip the laneQC. - fp := utils.OrPanic1(NewProposal(proposerKey, committee, vs, time.Now(), + fp := utils.OrPanic1(NewProposal(proposerKey, committee, vs, firstBlock, genesisTimestamp, time.Now(), map[LaneID]*LaneQC{lane: laneQC}, utils.None[*AppQC]())) tamperedFP := &FullProposal{ proposal: fp.proposal, laneQCs: map[LaneID]*LaneQC{}, } - err := tamperedFP.Verify(committee, vs) + err := tamperedFP.Verify(committee, vs, firstBlock, genesisTimestamp) require.Error(t, err) } func TestProposalVerifyRejectsLaneQCBlockNumberMismatch(t *testing.T) { rng := utils.TestRng() committee, keys := GenCommittee(rng, 4) + firstBlock := GlobalBlockNumber(0) + genesisTimestamp := time.Time{} vs := ViewSpec{} proposerKey := leaderKey(committee, keys, vs.View()) @@ -428,7 +463,7 @@ func TestProposalVerifyRejectsLaneQCBlockNumberMismatch(t *testing.T) { // Build a valid proposal with a QC certifying block 1 (range [0, 2)). goodQC := makeLaneQC(rng, committee, keys, lane, 1, GenBlockHeaderHash(rng)) - fp := utils.OrPanic1(NewProposal(proposerKey, committee, vs, time.Now(), + fp := utils.OrPanic1(NewProposal(proposerKey, committee, vs, firstBlock, genesisTimestamp, time.Now(), map[LaneID]*LaneQC{lane: goodQC}, utils.None[*AppQC]())) // Swap in a QC certifying block 0 — range expects block 1. @@ -437,13 +472,15 @@ func TestProposalVerifyRejectsLaneQCBlockNumberMismatch(t *testing.T) { proposal: fp.proposal, laneQCs: map[LaneID]*LaneQC{lane: wrongQC}, } - err := tamperedFP.Verify(committee, vs) + err := tamperedFP.Verify(committee, vs, firstBlock, genesisTimestamp) require.Error(t, err) } func TestProposalVerifyRejectsInvalidLaneQCSignature(t *testing.T) { rng := utils.TestRng() committee, keys := GenCommittee(rng, 4) + firstBlock := GlobalBlockNumber(0) + genesisTimestamp := time.Time{} vs := ViewSpec{} proposerKey := leaderKey(committee, keys, vs.View()) @@ -462,10 +499,10 @@ func TestProposalVerifyRejectsInvalidLaneQCSignature(t *testing.T) { } badLaneQC := NewLaneQC(badVotes) - fp := utils.OrPanic1(NewProposal(proposerKey, committee, vs, time.Now(), + fp := utils.OrPanic1(NewProposal(proposerKey, committee, vs, firstBlock, genesisTimestamp, time.Now(), map[LaneID]*LaneQC{lane: badLaneQC}, utils.None[*AppQC]())) - err := fp.Verify(committee, vs) + err := fp.Verify(committee, vs, firstBlock, genesisTimestamp) require.Error(t, err) } @@ -484,6 +521,8 @@ func TestProposalConvDecode_RejectsDuplicateLaneRanges(t *testing.T) { func makeFullProposal( committee *Committee, keys []SecretKey, + firstBlock GlobalBlockNumber, + genesisTimestamp time.Time, prev utils.Option[*CommitQC], laneQCs map[LaneID]*LaneQC, appQC utils.Option[*AppQC], @@ -493,6 +532,8 @@ func makeFullProposal( leaderKey(committee, keys, vs.View()), committee, vs, + firstBlock, + genesisTimestamp, time.Now(), laneQCs, appQC, @@ -511,112 +552,120 @@ func makeCommitQC(keys []SecretKey, fullProposal *FullProposal) *CommitQC { func TestProposalVerifyRejectsAppProposalLowerThanPrevious(t *testing.T) { rng := utils.TestRng() committee, keys := GenCommittee(rng, 4) + firstBlock := GlobalBlockNumber(0) + genesisTimestamp := time.Time{} // Construct commitQC for index 1 with AppProposal // and Proposal for index 2 without any app proposal. // Such a proposal should fail validation, because app proposals need to be monotone. l := keys[0].Public() lQCs := map[LaneID]*LaneQC{l: makeLaneQC(rng, committee, keys, l, 0, GenBlockHeaderHash(rng))} - commitQC0 := makeCommitQC(keys, makeFullProposal(committee, keys, utils.None[*CommitQC](), lQCs, utils.None[*AppQC]())) - appQC0 := makeAppQCFor(keys, commitQC0.GlobalRange(committee).First, 0, GenAppHash(rng)) - commitQC1a := makeCommitQC(keys, makeFullProposal(committee, keys, utils.Some(commitQC0), nil, utils.Some(appQC0))) - commitQC1b := makeCommitQC(keys, makeFullProposal(committee, keys, utils.Some(commitQC0), nil, utils.None[*AppQC]())) - fp2a := makeFullProposal(committee, keys, utils.Some(commitQC1a), nil, utils.None[*AppQC]()) - fp2b := makeFullProposal(committee, keys, utils.Some(commitQC1b), nil, utils.None[*AppQC]()) + commitQC0 := makeCommitQC(keys, makeFullProposal(committee, keys, firstBlock, genesisTimestamp, utils.None[*CommitQC](), lQCs, utils.None[*AppQC]())) + appQC0 := makeAppQCFor(keys, commitQC0.GlobalRange(firstBlock).First, 0, GenAppHash(rng)) + commitQC1a := makeCommitQC(keys, makeFullProposal(committee, keys, firstBlock, genesisTimestamp, utils.Some(commitQC0), nil, utils.Some(appQC0))) + commitQC1b := makeCommitQC(keys, makeFullProposal(committee, keys, firstBlock, genesisTimestamp, utils.Some(commitQC0), nil, utils.None[*AppQC]())) + fp2a := makeFullProposal(committee, keys, firstBlock, genesisTimestamp, utils.Some(commitQC1a), nil, utils.None[*AppQC]()) + fp2b := makeFullProposal(committee, keys, firstBlock, genesisTimestamp, utils.Some(commitQC1b), nil, utils.None[*AppQC]()) // We construct the invalid proposal by constructing 2 alternative futures: one with appQC, one without. vs := ViewSpec{CommitQC: utils.Some(commitQC1a)} - require.NoError(t, fp2a.Verify(committee, vs)) - require.Error(t, fp2b.Verify(committee, vs)) + require.NoError(t, fp2a.Verify(committee, vs, firstBlock, genesisTimestamp)) + require.Error(t, fp2b.Verify(committee, vs, firstBlock, genesisTimestamp)) } func TestProposalVerifyRejectsUnnecessaryAppQC(t *testing.T) { rng := utils.TestRng() committee, keys := GenCommittee(rng, 4) + firstBlock := GlobalBlockNumber(0) + genesisTimestamp := time.Time{} vs := ViewSpec{} // no previous commitQC, so app starts at None - initialBlock := committee.FirstBlock() leader := leaderKey(committee, keys, vs.View()) - fp := utils.OrPanic1(NewProposal(leader, committee, vs, time.Now(), nil, utils.None[*AppQC]())) + fp := utils.OrPanic1(NewProposal(leader, committee, vs, firstBlock, genesisTimestamp, time.Now(), nil, utils.None[*AppQC]())) // Attach an unrequested AppQC. - appQC := makeAppQCFor(keys, initialBlock, 0, GenAppHash(rng)) + appQC := makeAppQCFor(keys, firstBlock, 0, GenAppHash(rng)) tamperedFP := &FullProposal{ proposal: fp.proposal, laneQCs: fp.laneQCs, appQC: utils.Some(appQC), timeoutQC: fp.timeoutQC, } - err := tamperedFP.Verify(committee, vs) + err := tamperedFP.Verify(committee, vs, firstBlock, genesisTimestamp) require.Error(t, err) } func TestProposalVerifyRejectsMissingAppQC(t *testing.T) { rng := utils.TestRng() committee, keys := GenCommittee(rng, 4) + firstBlock := GlobalBlockNumber(1) // non-zero so firstBlock-1 is valid + genesisTimestamp := time.Time{} vs := ViewSpec{} // no previous commitQC leader := leaderKey(committee, keys, vs.View()) - initialBlock := committee.FirstBlock() // Build a valid proposal with an AppQC, then strip it. - goodAppQC := makeAppQCFor(keys, initialBlock-1, 0, GenAppHash(rng)) - fp := utils.OrPanic1(NewProposal(leader, committee, vs, time.Now(), nil, utils.Some(goodAppQC))) + goodAppQC := makeAppQCFor(keys, firstBlock-1, 0, GenAppHash(rng)) + fp := utils.OrPanic1(NewProposal(leader, committee, vs, firstBlock, genesisTimestamp, time.Now(), nil, utils.Some(goodAppQC))) tamperedFP := &FullProposal{ proposal: fp.proposal, } - err := tamperedFP.Verify(committee, vs) + err := tamperedFP.Verify(committee, vs, firstBlock, genesisTimestamp) require.Error(t, err) } func TestProposalVerifyRejectsAppQCMismatch(t *testing.T) { rng := utils.TestRng() committee, keys := GenCommittee(rng, 4) + firstBlock := GlobalBlockNumber(0) + genesisTimestamp := time.Time{} vs := ViewSpec{} leader := leaderKey(committee, keys, vs.View()) - initialBlock := committee.FirstBlock() // Build a valid proposal with an AppQC, then swap in a different one. - goodAppQC := makeAppQCFor(keys, initialBlock, 0, GenAppHash(rng)) - fp := utils.OrPanic1(NewProposal(leader, committee, vs, time.Now(), nil, utils.Some(goodAppQC))) + goodAppQC := makeAppQCFor(keys, firstBlock, 0, GenAppHash(rng)) + fp := utils.OrPanic1(NewProposal(leader, committee, vs, firstBlock, genesisTimestamp, time.Now(), nil, utils.Some(goodAppQC))) - differentAppQC := makeAppQCFor(keys, initialBlock, 0, GenAppHash(rng)) + differentAppQC := makeAppQCFor(keys, firstBlock, 0, GenAppHash(rng)) tamperedFP := &FullProposal{ proposal: fp.proposal, appQC: utils.Some(differentAppQC), } - err := tamperedFP.Verify(committee, vs) + err := tamperedFP.Verify(committee, vs, firstBlock, genesisTimestamp) require.Error(t, err) } func TestProposalVerifyRejectsInvalidAppQCSignature(t *testing.T) { rng := utils.TestRng() committee, keys := GenCommittee(rng, 4) + firstBlock := GlobalBlockNumber(0) + genesisTimestamp := time.Time{} vs := ViewSpec{} leader := leaderKey(committee, keys, vs.View()) - initialBlock := committee.FirstBlock() appHash := GenAppHash(rng) - goodAppQC := makeAppQCFor(keys, initialBlock, 0, appHash) - fp := utils.OrPanic1(NewProposal(leader, committee, vs, time.Now(), nil, utils.Some(goodAppQC))) + goodAppQC := makeAppQCFor(keys, firstBlock, 0, appHash) + fp := utils.OrPanic1(NewProposal(leader, committee, vs, firstBlock, genesisTimestamp, time.Now(), nil, utils.Some(goodAppQC))) // Swap in an AppQC signed by NON-committee keys (same hash). otherKeys := make([]SecretKey, len(keys)) for i := range otherKeys { otherKeys[i] = GenSecretKey(rng) } - badAppQC := makeAppQCFor(otherKeys, initialBlock, 0, appHash) + badAppQC := makeAppQCFor(otherKeys, firstBlock, 0, appHash) tamperedFP := &FullProposal{ proposal: fp.proposal, appQC: utils.Some(badAppQC), } - err := tamperedFP.Verify(committee, vs) + err := tamperedFP.Verify(committee, vs, firstBlock, genesisTimestamp) require.Error(t, err) } func TestProposalVerifyRejectsLaneQCHeaderHashMismatch(t *testing.T) { rng := utils.TestRng() committee, keys := GenCommittee(rng, 4) + firstBlock := GlobalBlockNumber(0) + genesisTimestamp := time.Time{} vs := ViewSpec{} proposerKey := leaderKey(committee, keys, vs.View()) @@ -624,7 +673,7 @@ func TestProposalVerifyRejectsLaneQCHeaderHashMismatch(t *testing.T) { // Build a valid proposal with a QC for block 0. realQC := makeLaneQC(rng, committee, keys, lane, 0, GenBlockHeaderHash(rng)) - fp := utils.OrPanic1(NewProposal(proposerKey, committee, vs, time.Now(), + fp := utils.OrPanic1(NewProposal(proposerKey, committee, vs, firstBlock, genesisTimestamp, time.Now(), map[LaneID]*LaneQC{lane: realQC}, utils.None[*AppQC]())) // Swap in a different QC for block 0 (different payload → different hash). @@ -635,18 +684,20 @@ func TestProposalVerifyRejectsLaneQCHeaderHashMismatch(t *testing.T) { proposal: fp.proposal, laneQCs: map[LaneID]*LaneQC{lane: differentQC}, } - err := tamperedFP.Verify(committee, vs) + err := tamperedFP.Verify(committee, vs, firstBlock, genesisTimestamp) require.Error(t, err) } func TestProposalVerifyValidReproposal(t *testing.T) { rng := utils.TestRng() committee, keys := GenCommittee(rng, 4) + firstBlock := GlobalBlockNumber(0) + genesisTimestamp := time.Time{} // First, create a valid proposal at view (0, 0) with a PrepareQC. vs0 := ViewSpec{} leader0 := leaderKey(committee, keys, vs0.View()) - fp0 := utils.OrPanic1(NewProposal(leader0, committee, vs0, time.Now(), nil, utils.None[*AppQC]())) + fp0 := utils.OrPanic1(NewProposal(leader0, committee, vs0, firstBlock, genesisTimestamp, time.Now(), nil, utils.None[*AppQC]())) // Build a PrepareQC for the proposal at (0, 0). var prepareVotes []*Signed[*PrepareVote] @@ -666,19 +717,21 @@ func TestProposalVerifyValidReproposal(t *testing.T) { require.Equal(t, View{Index: 0, Number: 1}, vs1.View()) leader1 := leaderKey(committee, keys, vs1.View()) - reproposal := utils.OrPanic1(NewProposal(leader1, committee, vs1, time.Now(), nil, utils.None[*AppQC]())) + reproposal := utils.OrPanic1(NewProposal(leader1, committee, vs1, firstBlock, genesisTimestamp, time.Now(), nil, utils.None[*AppQC]())) - require.NoError(t, reproposal.Verify(committee, vs1)) + require.NoError(t, reproposal.Verify(committee, vs1, firstBlock, genesisTimestamp)) } func TestProposalVerifyRejectsReproposalWithUnnecessaryData(t *testing.T) { rng := utils.TestRng() committee, keys := GenCommittee(rng, 4) + firstBlock := GlobalBlockNumber(0) + genesisTimestamp := time.Time{} // Build a PrepareQC at (0, 0). vs0 := ViewSpec{} leader0 := leaderKey(committee, keys, vs0.View()) - fp0 := utils.OrPanic1(NewProposal(leader0, committee, vs0, time.Now(), nil, utils.None[*AppQC]())) + fp0 := utils.OrPanic1(NewProposal(leader0, committee, vs0, firstBlock, genesisTimestamp, time.Now(), nil, utils.None[*AppQC]())) var prepareVotes []*Signed[*PrepareVote] for _, k := range keys { @@ -696,7 +749,7 @@ func TestProposalVerifyRejectsReproposalWithUnnecessaryData(t *testing.T) { leader1 := leaderKey(committee, keys, vs1.View()) // Create a valid reproposal, then tamper it with unnecessary laneQCs. - reproposal := utils.OrPanic1(NewProposal(leader1, committee, vs1, time.Now(), nil, utils.None[*AppQC]())) + reproposal := utils.OrPanic1(NewProposal(leader1, committee, vs1, firstBlock, genesisTimestamp, time.Now(), nil, utils.None[*AppQC]())) lane := keys[0].Public() laneQC := makeLaneQC(rng, committee, keys, lane, 0, GenBlockHeaderHash(rng)) @@ -705,18 +758,20 @@ func TestProposalVerifyRejectsReproposalWithUnnecessaryData(t *testing.T) { laneQCs: map[LaneID]*LaneQC{lane: laneQC}, timeoutQC: reproposal.timeoutQC, } - err := tamperedFP.Verify(committee, vs1) + err := tamperedFP.Verify(committee, vs1, firstBlock, genesisTimestamp) require.Error(t, err) } func TestProposalVerifyRejectsReproposalHashMismatch(t *testing.T) { rng := utils.TestRng() committee, keys := GenCommittee(rng, 4) + firstBlock := GlobalBlockNumber(0) + genesisTimestamp := time.Time{} // Build a PrepareQC at (0, 0). vs0 := ViewSpec{} leader0 := leaderKey(committee, keys, vs0.View()) - fp0 := utils.OrPanic1(NewProposal(leader0, committee, vs0, time.Now(), nil, utils.None[*AppQC]())) + fp0 := utils.OrPanic1(NewProposal(leader0, committee, vs0, firstBlock, genesisTimestamp, time.Now(), nil, utils.None[*AppQC]())) var prepareVotes []*Signed[*PrepareVote] for _, k := range keys { @@ -734,7 +789,7 @@ func TestProposalVerifyRejectsReproposalHashMismatch(t *testing.T) { leader1 := leaderKey(committee, keys, vs1.View()) // Build the valid reproposal, then tamper its timestamp to get a different hash. - reproposal := utils.OrPanic1(NewProposal(leader1, committee, vs1, time.Now(), nil, utils.None[*AppQC]())) + reproposal := utils.OrPanic1(NewProposal(leader1, committee, vs1, firstBlock, genesisTimestamp, time.Now(), nil, utils.None[*AppQC]())) origP := reproposal.Proposal().Msg() var ranges []*LaneRange @@ -746,13 +801,15 @@ func TestProposalVerifyRejectsReproposalHashMismatch(t *testing.T) { proposal: Sign(leader1, wrongP), timeoutQC: reproposal.timeoutQC, } - err := wrongFP.Verify(committee, vs1) + err := wrongFP.Verify(committee, vs1, firstBlock, genesisTimestamp) require.Error(t, err) } func TestProposalVerifyRejectsInvalidTimeoutQCSignature(t *testing.T) { rng := utils.TestRng() committee, keys := GenCommittee(rng, 4) + firstBlock := GlobalBlockNumber(0) + genesisTimestamp := time.Time{} // Build a TimeoutQC signed by NON-committee keys. otherKeys := make([]SecretKey, len(keys)) @@ -768,8 +825,8 @@ func TestProposalVerifyRejectsInvalidTimeoutQCSignature(t *testing.T) { vs := ViewSpec{TimeoutQC: utils.Some(badTimeoutQC)} leader := leaderKey(committee, keys, vs.View()) - fp := utils.OrPanic1(NewProposal(leader, committee, vs, time.Now(), nil, utils.None[*AppQC]())) + fp := utils.OrPanic1(NewProposal(leader, committee, vs, firstBlock, genesisTimestamp, time.Now(), nil, utils.None[*AppQC]())) - err := fp.Verify(committee, vs) + err := fp.Verify(committee, vs, firstBlock, genesisTimestamp) require.Error(t, err) } diff --git a/sei-tendermint/autobahn/types/testonly.go b/sei-tendermint/autobahn/types/testonly.go index f7ea9e03e3..121be2b71c 100644 --- a/sei-tendermint/autobahn/types/testonly.go +++ b/sei-tendermint/autobahn/types/testonly.go @@ -37,7 +37,7 @@ func GenCommittee(rng utils.Rng, size int) (*Committee, []SecretKey) { slices.SortStableFunc(sks, func(a, b SecretKey) int { return -cmp.Compare(pks[a.Public()], pks[b.Public()]) }) - return utils.OrPanic1(NewCommittee(pks, GenGlobalBlockNumber(rng)%1000000, time.Now())), sks + return utils.OrPanic1(NewCommittee(pks)), sks } // TestKeysWithWeight returns a deterministic subset of keys whose committee weight reaches the requested threshold. diff --git a/sei-tendermint/autobahn/types/types_test.go b/sei-tendermint/autobahn/types/types_test.go index 79f48a7773..b9837f4c0d 100644 --- a/sei-tendermint/autobahn/types/types_test.go +++ b/sei-tendermint/autobahn/types/types_test.go @@ -96,25 +96,6 @@ func TestMarshal(t *testing.T) { } } -func TestNewRoundRobinElection_GenesisTimestamp(t *testing.T) { - rng := utils.TestRng() - replicas := []PublicKey{GenPublicKey(rng), GenPublicKey(rng)} - firstBlock := GenGlobalBlockNumber(rng) - genesisTimestamp := time.Now() - - committee, err := NewRoundRobinElection(replicas, firstBlock, genesisTimestamp) - if err != nil { - t.Fatalf("NewRoundRobinElection(): %v", err) - } - - if got := committee.FirstBlock(); got != firstBlock { - t.Fatalf("FirstBlock() = %v, want %v", got, firstBlock) - } - if got := committee.GenesisTimestamp(); !got.Equal(genesisTimestamp) { - t.Fatalf("GenesisTimestamp() = %v, want %v", got, genesisTimestamp) - } -} - func makePrepareQC(keys []SecretKey, vote *PrepareVote) *PrepareQC { var votes []*Signed[*PrepareVote] for _, k := range keys { diff --git a/sei-tendermint/autobahn/types/wireguard_test.go b/sei-tendermint/autobahn/types/wireguard_test.go index 7ac3fe0755..f5c296c92d 100644 --- a/sei-tendermint/autobahn/types/wireguard_test.go +++ b/sei-tendermint/autobahn/types/wireguard_test.go @@ -154,6 +154,8 @@ func TestFullProposalWireguardAcceptsMaxValidators(t *testing.T) { secretKeyFor(keys, committee.Leader(View{})), committee, ViewSpec{}, + 0, + time.Time{}, time.Unix(1, 2), laneQCs, utils.None[*AppQC](), diff --git a/sei-tendermint/internal/autobahn/avail/block_votes.go b/sei-tendermint/internal/autobahn/avail/block_votes.go index ae64772803..4ab0f55bff 100644 --- a/sei-tendermint/internal/autobahn/avail/block_votes.go +++ b/sei-tendermint/internal/autobahn/avail/block_votes.go @@ -2,40 +2,62 @@ package avail import ( "github.com/sei-protocol/sei-chain/sei-tendermint/autobahn/types" + "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/epoch" ) +// blockHashEntry accumulates votes for a single block hash across epochs. +// votes holds every accepted vote (deduped by key across all epochs). +// epochWeight tracks the accumulated weight per epoch independently, so +// that quorum can be reached separately for each epoch's committee. +type blockHashEntry struct { + votes []*types.Signed[*types.LaneVote] + epochWeight map[epoch.Index]uint64 +} + type blockVotes struct { byKey map[types.PublicKey]*types.Signed[*types.LaneVote] - byHash map[types.BlockHeaderHash]*voteSet[*types.Signed[*types.LaneVote]] + byHash map[types.BlockHeaderHash]*blockHashEntry } func newBlockVotes() blockVotes { return blockVotes{ byKey: map[types.PublicKey]*types.Signed[*types.LaneVote]{}, - byHash: map[types.BlockHeaderHash]*voteSet[*types.Signed[*types.LaneVote]]{}, + byHash: map[types.BlockHeaderHash]*blockHashEntry{}, } } -// Returns true iff a new QC has been constructed. -func (bv blockVotes) pushVote(c *types.Committee, vote *types.Signed[*types.LaneVote]) (*types.LaneQC, bool) { +// pushVote records vote in every epoch where the voter is a member. +// Returns true the first time any epoch's accumulated weight reaches its LaneQuorum. +func (bv blockVotes) pushVote(window map[epoch.Index]*types.Committee, vote *types.Signed[*types.LaneVote]) bool { k := vote.Key() - h := vote.Msg().Header().Hash() if _, ok := bv.byKey[k]; ok { - return nil, false + return false } bv.byKey[k] = vote - byHash, ok := bv.byHash[h] + + h := vote.Msg().Header().Hash() + entry, ok := bv.byHash[h] if !ok { - byHash = &voteSet[*types.Signed[*types.LaneVote]]{} - bv.byHash[h] = byHash - } - if byHash.weight >= c.LaneQuorum() { - return nil, false + entry = &blockHashEntry{epochWeight: map[epoch.Index]uint64{}} + bv.byHash[h] = entry } - byHash.weight += c.Weight(k) - byHash.votes = append(byHash.votes, vote) - if byHash.weight >= c.LaneQuorum() { - return types.NewLaneQC(byHash.votes), true + entry.votes = append(entry.votes, vote) + + quorumReached := false + for e, c := range window { + w := c.Weight(k) + if w == 0 { + continue + } + prev := entry.epochWeight[e] + quorum := c.LaneQuorum() + if prev >= quorum { + continue + } + entry.epochWeight[e] = prev + w + if prev+w >= quorum { + quorumReached = true + } } - return nil, false + return quorumReached } diff --git a/sei-tendermint/internal/autobahn/avail/conv_test.go b/sei-tendermint/internal/autobahn/avail/conv_test.go index 2bec6a4042..731dead49f 100644 --- a/sei-tendermint/internal/autobahn/avail/conv_test.go +++ b/sei-tendermint/internal/autobahn/avail/conv_test.go @@ -4,21 +4,22 @@ import ( "testing" "github.com/sei-protocol/sei-chain/sei-tendermint/autobahn/types" + "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/epoch" "github.com/sei-protocol/sei-chain/sei-tendermint/libs/utils" "github.com/stretchr/testify/require" ) func TestPruneAnchorConv(t *testing.T) { rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 4) + registry, keys := epoch.GenRegistry(rng, 4) lane := keys[0].Public() block := types.NewBlock(lane, 0, types.BlockHeaderHash{}, types.GenPayload(rng)) laneQCs := map[types.LaneID]*types.LaneQC{ lane: types.NewLaneQC(makeLaneVotes(keys, block.Header())), } - commitQC := makeCommitQC(committee, keys, utils.None[*types.CommitQC](), laneQCs, utils.None[*types.AppQC]()) - appProposal := types.NewAppProposal(commitQC.GlobalRange(committee).First, commitQC.Proposal().Index(), types.GenAppHash(rng)) + commitQC := makeCommitQC(registry, keys, utils.None[*types.CommitQC](), laneQCs, utils.None[*types.AppQC]()) + appProposal := types.NewAppProposal(commitQC.GlobalRange(registry.FirstBlock()).First, commitQC.Proposal().Index(), types.GenAppHash(rng)) appQC := types.NewAppQC(makeAppVotes(keys, appProposal)) require.NoError(t, PruneAnchorConv.Test(&PruneAnchor{ diff --git a/sei-tendermint/internal/autobahn/avail/inner.go b/sei-tendermint/internal/autobahn/avail/inner.go index 601ca4611c..8d1ad738cf 100644 --- a/sei-tendermint/internal/autobahn/avail/inner.go +++ b/sei-tendermint/internal/autobahn/avail/inner.go @@ -6,6 +6,7 @@ import ( "github.com/sei-protocol/sei-chain/sei-tendermint/autobahn/types" "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/consensus/persist" + "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/epoch" "github.com/sei-protocol/sei-chain/sei-tendermint/libs/utils" ) @@ -55,12 +56,25 @@ type loadedAvailState struct { blocks map[types.LaneID][]persist.LoadedBlock } -func newInner(c *types.Committee, loaded utils.Option[*loadedAvailState]) (*inner, error) { +func newInner(registry *epoch.Registry, firstBlock types.GlobalBlockNumber, loaded utils.Option[*loadedAvailState]) (*inner, error) { + // Use the anchor's own committee for prune() so range calculations use the + // correct epoch's lane boundaries. Fall back to the latest known committee. + pruneCommittee := registry.LatestCommittee() + if l, ok := loaded.Get(); ok { + if anchor, ok := l.pruneAnchor.Get(); ok { + pruneCommittee = registry.CommitteeFor(anchor.CommitQC.Proposal().Index()) + } + } + votes := map[types.LaneID]*queue[types.BlockNumber, blockVotes]{} blocks := map[types.LaneID]*queue[types.BlockNumber, *types.Signed[*types.LaneProposal]]{} - for lane := range c.Lanes().All() { - votes[lane] = newQueue[types.BlockNumber, blockVotes]() - blocks[lane] = newQueue[types.BlockNumber, *types.Signed[*types.LaneProposal]]() + for _, c := range registry.EpochWindow() { + for lane := range c.Lanes().All() { + if _, ok := votes[lane]; !ok { + votes[lane] = newQueue[types.BlockNumber, blockVotes]() + blocks[lane] = newQueue[types.BlockNumber, *types.Signed[*types.LaneProposal]]() + } + } } i := &inner{ @@ -70,10 +84,10 @@ func newInner(c *types.Committee, loaded utils.Option[*loadedAvailState]) (*inne commitQCs: newQueue[types.RoadIndex, *types.CommitQC](), blocks: blocks, votes: votes, - nextBlockToPersist: make(map[types.LaneID]types.BlockNumber, c.Lanes().Len()), - persistedBlockStart: make(map[types.LaneID]types.BlockNumber, c.Lanes().Len()), + nextBlockToPersist: make(map[types.LaneID]types.BlockNumber, len(votes)), + persistedBlockStart: make(map[types.LaneID]types.BlockNumber, len(votes)), } - i.appVotes.prune(c.FirstBlock()) + i.appVotes.prune(firstBlock) l, ok := loaded.Get() if !ok { @@ -88,7 +102,7 @@ func newInner(c *types.Committee, loaded utils.Option[*loadedAvailState]) (*inne slog.Uint64("roadIndex", uint64(anchor.AppQC.Proposal().RoadIndex())), slog.Uint64("globalNumber", uint64(anchor.AppQC.Proposal().GlobalNumber())), ) - if _, err := i.prune(c, anchor.AppQC, anchor.CommitQC); err != nil { + if _, err := i.prune(pruneCommittee, firstBlock, anchor.AppQC, anchor.CommitQC); err != nil { return nil, fmt.Errorf("prune: %w", err) } for lane := range i.blocks { @@ -143,18 +157,32 @@ func newInner(c *types.Committee, loaded utils.Option[*loadedAvailState]) (*inne return i, nil } -func (i *inner) laneQC(c *types.Committee, lane types.LaneID, n types.BlockNumber) (*types.LaneQC, bool) { - for _, byHash := range i.votes[lane].q[n].byHash { - if byHash.weight >= c.LaneQuorum() { - return types.NewLaneQC(byHash.votes[:]), true +// laneQCs returns one LaneQC per epoch that has accumulated sufficient weight, +// filtering each QC to only the votes from that epoch's committee members. +func (i *inner) laneQCs(window map[epoch.Index]*types.Committee, lane types.LaneID, n types.BlockNumber) map[epoch.Index]*types.LaneQC { + result := map[epoch.Index]*types.LaneQC{} + for _, entry := range i.votes[lane].q[n].byHash { + for e, c := range window { + if _, ok := result[e]; ok { + continue // already found a quorum hash for this epoch + } + if entry.epochWeight[e] >= c.LaneQuorum() { + var qualified []*types.Signed[*types.LaneVote] + for _, v := range entry.votes { + if c.Weight(v.Key()) > 0 { + qualified = append(qualified, v) + } + } + result[e] = types.NewLaneQC(qualified) + } } } - return nil, false + return result } // prune advances the state to account for a new AppQC/CommitQC pair. // Returns true if pruning occurred, false if the QC was stale. -func (i *inner) prune(c *types.Committee, appQC *types.AppQC, commitQC *types.CommitQC) (bool, error) { +func (i *inner) prune(c *types.Committee, firstBlock types.GlobalBlockNumber, appQC *types.AppQC, commitQC *types.CommitQC) (bool, error) { idx := appQC.Proposal().RoadIndex() if idx != commitQC.Proposal().Index() { return false, fmt.Errorf("mismatched QCs: appQC index %v, commitQC index %v", idx, commitQC.Proposal().Index()) @@ -167,7 +195,7 @@ func (i *inner) prune(c *types.Committee, appQC *types.AppQC, commitQC *types.Co if i.commitQCs.next == idx { i.commitQCs.pushBack(commitQC) } - i.appVotes.prune(commitQC.GlobalRange(c).First) + i.appVotes.prune(commitQC.GlobalRange(firstBlock).First) for lane := range i.votes { lr := commitQC.LaneRange(lane) i.votes[lr.Lane()].prune(lr.First()) diff --git a/sei-tendermint/internal/autobahn/avail/inner_test.go b/sei-tendermint/internal/autobahn/avail/inner_test.go index 257641de63..121e6143f8 100644 --- a/sei-tendermint/internal/autobahn/avail/inner_test.go +++ b/sei-tendermint/internal/autobahn/avail/inner_test.go @@ -7,13 +7,14 @@ import ( "github.com/sei-protocol/sei-chain/sei-tendermint/autobahn/types" "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/consensus/persist" "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/data" + "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/epoch" "github.com/sei-protocol/sei-chain/sei-tendermint/libs/utils" "github.com/stretchr/testify/require" ) func TestPruneMismatchedIndices(t *testing.T) { rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 4) + registry, keys := epoch.GenRegistry(rng, 4) makeCommitQC := func(prev utils.Option[*types.CommitQC]) *types.CommitQC { l := keys[0].Public() @@ -22,10 +23,10 @@ func TestPruneMismatchedIndices(t *testing.T) { lqcs := map[types.LaneID]*types.LaneQC{ l: types.NewLaneQC(makeLaneVotes(keys, b.Header())), } - return makeCommitQC(committee, keys, prev, lqcs, utils.None[*types.AppQC]()) + return makeCommitQC(registry, keys, prev, lqcs, utils.None[*types.AppQC]()) } makeAppQC := func(qcForRange *types.CommitQC, qcForIndex *types.CommitQC) *types.AppQC { - gr := qcForRange.GlobalRange(committee) + gr := qcForRange.GlobalRange(registry.FirstBlock()) require.True(t, gr.Len() > 0) ap := types.NewAppProposal(gr.First, qcForIndex.Index(), types.GenAppHash(rng)) return types.NewAppQC(makeAppVotes(keys, ap)) @@ -35,7 +36,7 @@ func TestPruneMismatchedIndices(t *testing.T) { qc1 := makeCommitQC(utils.Some(qc0)) t.Logf("test State.PushAppQC") - ds := utils.OrPanic1(data.NewState(&data.Config{Committee: committee}, utils.OrPanic1(data.NewDataWAL(utils.None[string](), committee)))) + ds := utils.OrPanic1(data.NewState(&data.Config{Registry: registry}, utils.OrPanic1(data.NewDataWAL(utils.None[string](), registry.FirstBlock())))) state, err := NewState(keys[0], ds, utils.None[string]()) require.NoError(t, err) require.Error(t, state.PushAppQC(makeAppQC(qc0, qc0), qc1), "bad range, bad index should fail") @@ -44,14 +45,14 @@ func TestPruneMismatchedIndices(t *testing.T) { require.NoError(t, state.PushAppQC(makeAppQC(qc1, qc1), qc1), "good range, good index should succeed") t.Logf("test inner.prune") - ds = utils.OrPanic1(data.NewState(&data.Config{Committee: committee}, utils.OrPanic1(data.NewDataWAL(utils.None[string](), committee)))) + ds = utils.OrPanic1(data.NewState(&data.Config{Registry: registry}, utils.OrPanic1(data.NewDataWAL(utils.None[string](), registry.FirstBlock())))) state, err = NewState(keys[0], ds, utils.None[string]()) require.NoError(t, err) for inner := range state.inner.Lock() { - _, err := inner.prune(committee, makeAppQC(qc1, qc0), qc1) + _, err := inner.prune(registry.LatestCommittee(), registry.FirstBlock(), makeAppQC(qc1, qc0), qc1) require.Error(t, err, "good range, bad index should fail") require.False(t, inner.latestAppQC.IsPresent(), "latestAppQC should not have been updated") - _, err = inner.prune(committee, makeAppQC(qc1, qc1), qc1) + _, err = inner.prune(registry.LatestCommittee(), registry.FirstBlock(), makeAppQC(qc1, qc1), qc1) require.NoError(t, err, "good range, good index should succeed") } } @@ -64,18 +65,18 @@ func testSignedBlock(key types.SecretKey, lane types.LaneID, n types.BlockNumber func TestNewInnerFreshStart(t *testing.T) { rng := utils.TestRng() - committee, _ := types.GenCommittee(rng, 4) + registry, _ := epoch.GenRegistry(rng, 4) - i, err := newInner(committee, utils.None[*loadedAvailState]()) + i, err := newInner(registry, registry.FirstBlock(), utils.None[*loadedAvailState]()) require.NoError(t, err) require.False(t, i.latestAppQC.IsPresent()) require.NotNil(t, i.nextBlockToPersist) require.Equal(t, types.RoadIndex(0), i.commitQCs.first) require.Equal(t, types.RoadIndex(0), i.commitQCs.next) - require.Equal(t, committee.FirstBlock(), i.appVotes.first) - require.Equal(t, committee.FirstBlock(), i.appVotes.next) - for lane := range committee.Lanes().All() { + require.Equal(t, registry.FirstBlock(), i.appVotes.first) + require.Equal(t, registry.FirstBlock(), i.appVotes.next) + for lane := range registry.LatestCommittee().Lanes().All() { require.Equal(t, types.BlockNumber(0), i.blocks[lane].first) require.Equal(t, types.BlockNumber(0), i.blocks[lane].next) require.Equal(t, types.BlockNumber(0), i.votes[lane].first) @@ -85,7 +86,7 @@ func TestNewInnerFreshStart(t *testing.T) { func TestDecodePruneAnchorIncomplete(t *testing.T) { rng := utils.TestRng() - _, keys := types.GenCommittee(rng, 4) + _, keys := epoch.GenRegistry(rng, 4) appProposal := types.NewAppProposal(42, 5, types.GenAppHash(rng)) appQC := types.NewAppQC(makeAppVotes(keys, appProposal)) @@ -99,22 +100,22 @@ func TestDecodePruneAnchorIncomplete(t *testing.T) { func TestNewInnerLoadedNoAnchor(t *testing.T) { rng := utils.TestRng() - committee, _ := types.GenCommittee(rng, 4) + registry, _ := epoch.GenRegistry(rng, 4) loaded := &loadedAvailState{} - i, err := newInner(committee, utils.Some(loaded)) + i, err := newInner(registry, registry.FirstBlock(), utils.Some(loaded)) require.NoError(t, err) - // No anchor loaded, app votes should start at the committee's first block. + // No anchor loaded, app votes should start at the registry's first block. require.False(t, i.latestAppQC.IsPresent()) require.Equal(t, types.RoadIndex(0), i.commitQCs.first) - require.Equal(t, committee.FirstBlock(), i.appVotes.first) + require.Equal(t, registry.FirstBlock(), i.appVotes.first) } func TestNewInnerLoadedBlocksContiguous(t *testing.T) { rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 4) + registry, keys := epoch.GenRegistry(rng, 4) lane := keys[0].Public() // Build 3 contiguous blocks: 0, 1, 2. @@ -130,7 +131,7 @@ func TestNewInnerLoadedBlocksContiguous(t *testing.T) { blocks: map[types.LaneID][]persist.LoadedBlock{lane: bs}, } - i, err := newInner(committee, utils.Some(loaded)) + i, err := newInner(registry, registry.FirstBlock(), utils.Some(loaded)) require.NoError(t, err) q := i.blocks[lane] @@ -143,7 +144,7 @@ func TestNewInnerLoadedBlocksContiguous(t *testing.T) { // nextBlockToPersist: loaded lane at q.next, other lanes at 0 (map zero-value). require.NotNil(t, i.nextBlockToPersist) require.Equal(t, types.BlockNumber(3), i.nextBlockToPersist[lane]) - for other := range committee.Lanes().All() { + for other := range registry.LatestCommittee().Lanes().All() { if other != lane { require.Equal(t, types.BlockNumber(0), i.nextBlockToPersist[other]) } @@ -152,14 +153,14 @@ func TestNewInnerLoadedBlocksContiguous(t *testing.T) { func TestNewInnerLoadedBlocksEmptySlice(t *testing.T) { rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 4) + registry, keys := epoch.GenRegistry(rng, 4) lane := keys[0].Public() loaded := &loadedAvailState{ blocks: map[types.LaneID][]persist.LoadedBlock{lane: {}}, } - i, err := newInner(committee, utils.Some(loaded)) + i, err := newInner(registry, registry.FirstBlock(), utils.Some(loaded)) require.NoError(t, err) q := i.blocks[lane] @@ -169,7 +170,7 @@ func TestNewInnerLoadedBlocksEmptySlice(t *testing.T) { func TestNewInnerLoadedBlocksUnknownLane(t *testing.T) { rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 4) + registry, keys := epoch.GenRegistry(rng, 4) unknownKey := types.GenSecretKey(rng) unknownLane := unknownKey.Public() @@ -179,10 +180,10 @@ func TestNewInnerLoadedBlocksUnknownLane(t *testing.T) { blocks: map[types.LaneID][]persist.LoadedBlock{unknownLane: {{Number: 0, Proposal: b}}}, } - i, err := newInner(committee, utils.Some(loaded)) + i, err := newInner(registry, registry.FirstBlock(), utils.Some(loaded)) require.NoError(t, err) - for lane := range committee.Lanes().All() { + for lane := range registry.LatestCommittee().Lanes().All() { q := i.blocks[lane] require.Equal(t, types.BlockNumber(0), q.first) require.Equal(t, types.BlockNumber(0), q.next) @@ -192,7 +193,7 @@ func TestNewInnerLoadedBlocksUnknownLane(t *testing.T) { func TestNewInnerLoadedBlocksMultipleLanes(t *testing.T) { rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 4) + registry, keys := epoch.GenRegistry(rng, 4) lane0 := keys[0].Public() lane1 := keys[1].Public() @@ -216,7 +217,7 @@ func TestNewInnerLoadedBlocksMultipleLanes(t *testing.T) { blocks: map[types.LaneID][]persist.LoadedBlock{lane0: bs0, lane1: bs1}, } - i, err := newInner(committee, utils.Some(loaded)) + i, err := newInner(registry, registry.FirstBlock(), utils.Some(loaded)) require.NoError(t, err) q0 := i.blocks[lane0] @@ -234,13 +235,13 @@ func TestNewInnerLoadedBlocksMultipleLanes(t *testing.T) { func TestNewInnerLoadedCommitQCsNoAppQC(t *testing.T) { rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 4) + registry, keys := epoch.GenRegistry(rng, 4) // Create 3 sequential CommitQCs. qcs := make([]*types.CommitQC, 3) prev := utils.None[*types.CommitQC]() for i := range qcs { - qcs[i] = makeCommitQC(committee, keys, prev, nil, utils.None[*types.AppQC]()) + qcs[i] = makeCommitQC(registry, keys, prev, nil, utils.None[*types.AppQC]()) prev = utils.Some(qcs[i]) } @@ -253,7 +254,7 @@ func TestNewInnerLoadedCommitQCsNoAppQC(t *testing.T) { commitQCs: loadedQCs, } - inner, err := newInner(committee, utils.Some(loaded)) + inner, err := newInner(registry, registry.FirstBlock(), utils.Some(loaded)) require.NoError(t, err) // Without anchor, commitQCs.first = 0. All 3 should be restored. @@ -271,7 +272,7 @@ func TestNewInnerLoadedCommitQCsNoAppQC(t *testing.T) { func TestNewInnerLoadedCommitQCsWithAppQC(t *testing.T) { rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 4) + registry, keys := epoch.GenRegistry(rng, 4) // AppQC at road index 2. roadIdx := types.RoadIndex(2) @@ -283,7 +284,7 @@ func TestNewInnerLoadedCommitQCsWithAppQC(t *testing.T) { qcs := make([]*types.CommitQC, 5) prev := utils.None[*types.CommitQC]() for i := range qcs { - qcs[i] = makeCommitQC(committee, keys, prev, nil, utils.None[*types.AppQC]()) + qcs[i] = makeCommitQC(registry, keys, prev, nil, utils.None[*types.AppQC]()) prev = utils.Some(qcs[i]) } @@ -299,7 +300,7 @@ func TestNewInnerLoadedCommitQCsWithAppQC(t *testing.T) { commitQCs: loadedQCs, } - inner, err := newInner(committee, utils.Some(loaded)) + inner, err := newInner(registry, registry.FirstBlock(), utils.Some(loaded)) require.NoError(t, err) // latestAppQC should be set by prune. @@ -323,7 +324,7 @@ func TestNewInnerLoadedCommitQCsWithAppQC(t *testing.T) { func TestNewInnerLoadedAllThree(t *testing.T) { rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 4) + registry, keys := epoch.GenRegistry(rng, 4) lane := keys[0].Public() // AppQC at road index 2. @@ -335,7 +336,7 @@ func TestNewInnerLoadedAllThree(t *testing.T) { qcs := make([]*types.CommitQC, 5) prev := utils.None[*types.CommitQC]() for i := range qcs { - qcs[i] = makeCommitQC(committee, keys, prev, nil, utils.None[*types.AppQC]()) + qcs[i] = makeCommitQC(registry, keys, prev, nil, utils.None[*types.AppQC]()) prev = utils.Some(qcs[i]) } // Pre-filtered: only commitQCs >= anchor road index (2). @@ -360,7 +361,7 @@ func TestNewInnerLoadedAllThree(t *testing.T) { blocks: map[types.LaneID][]persist.LoadedBlock{lane: bs}, } - inner, err := newInner(committee, utils.Some(loaded)) + inner, err := newInner(registry, registry.FirstBlock(), utils.Some(loaded)) require.NoError(t, err) // AppQC restored. @@ -386,10 +387,10 @@ func TestNewInnerLoadedAllThree(t *testing.T) { func TestPruneAdvancesNextBlockToPersist(t *testing.T) { rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 4) + registry, keys := epoch.GenRegistry(rng, 4) lane := keys[0].Public() - i, err := newInner(committee, utils.None[*loadedAvailState]()) + i, err := newInner(registry, registry.FirstBlock(), utils.None[*loadedAvailState]()) require.NoError(t, err) // Push blocks 0-4 on one lane. @@ -411,11 +412,11 @@ func TestPruneAdvancesNextBlockToPersist(t *testing.T) { h := i.blocks[lane].q[bn].Msg().Block().Header() laneQCs := map[types.LaneID]*types.LaneQC{ lane: types.NewLaneQC(makeLaneVotes( - types.TestKeysWithWeight(committee, keys, committee.LaneQuorum()), + types.TestKeysWithWeight(registry.LatestCommittee(), keys, registry.LatestCommittee().LaneQuorum()), h, )), } - qcs[j] = makeCommitQC(committee, keys, prev, laneQCs, utils.None[*types.AppQC]()) + qcs[j] = makeCommitQC(registry, keys, prev, laneQCs, utils.None[*types.AppQC]()) prev = utils.Some(qcs[j]) i.commitQCs.pushBack(qcs[j]) } @@ -429,7 +430,7 @@ func TestPruneAdvancesNextBlockToPersist(t *testing.T) { appProposal := types.NewAppProposal(10, 2, types.GenAppHash(rng)) appQC := types.NewAppQC(makeAppVotes(keys, appProposal)) - updated, err := i.prune(committee, appQC, qcs[2]) + updated, err := i.prune(registry.LatestCommittee(), 0, appQC, qcs[2]) require.NoError(t, err) require.True(t, updated) @@ -445,7 +446,7 @@ func TestPruneAdvancesNextBlockToPersist(t *testing.T) { func TestNewInnerLoadedCommitQCsAllBeforeAppQCArePruned(t *testing.T) { rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 4) + registry, keys := epoch.GenRegistry(rng, 4) // Build 6 CommitQCs (indices 0-5). Anchor at index 5. // All stale commitQCs (0-4) were already filtered by loadPersistedState, @@ -453,7 +454,7 @@ func TestNewInnerLoadedCommitQCsAllBeforeAppQCArePruned(t *testing.T) { qcs := make([]*types.CommitQC, 6) prev := utils.None[*types.CommitQC]() for i := range qcs { - qcs[i] = makeCommitQC(committee, keys, prev, nil, utils.None[*types.AppQC]()) + qcs[i] = makeCommitQC(registry, keys, prev, nil, utils.None[*types.AppQC]()) prev = utils.Some(qcs[i]) } @@ -464,7 +465,7 @@ func TestNewInnerLoadedCommitQCsAllBeforeAppQCArePruned(t *testing.T) { pruneAnchor: utils.Some(&PruneAnchor{AppQC: appQC, CommitQC: qcs[5]}), } - inner, err := newInner(committee, utils.Some(loaded)) + inner, err := newInner(registry, registry.FirstBlock(), utils.Some(loaded)) require.NoError(t, err) // prune() pushes the anchor's CommitQC into the queue. @@ -475,14 +476,14 @@ func TestNewInnerLoadedCommitQCsAllBeforeAppQCArePruned(t *testing.T) { func TestNewInnerAnchorWithNoCommitQCFiles(t *testing.T) { rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 4) + registry, keys := epoch.GenRegistry(rng, 4) // Simulate crash between anchor write and CommitQC file write: // anchor has AppQC@3 + CommitQC@3, but no CommitQC files on disk. qcs := make([]*types.CommitQC, 4) prev := utils.None[*types.CommitQC]() for i := range qcs { - qcs[i] = makeCommitQC(committee, keys, prev, nil, utils.None[*types.AppQC]()) + qcs[i] = makeCommitQC(registry, keys, prev, nil, utils.None[*types.AppQC]()) prev = utils.Some(qcs[i]) } @@ -493,7 +494,7 @@ func TestNewInnerAnchorWithNoCommitQCFiles(t *testing.T) { pruneAnchor: utils.Some(&PruneAnchor{AppQC: appQC, CommitQC: qcs[3]}), } - inner, err := newInner(committee, utils.Some(loaded)) + inner, err := newInner(registry, registry.FirstBlock(), utils.Some(loaded)) require.NoError(t, err) // prune() should push the anchor's CommitQC into the queue. @@ -507,7 +508,7 @@ func TestNewInnerAnchorWithNoCommitQCFiles(t *testing.T) { require.Equal(t, types.RoadIndex(3), aq.Proposal().RoadIndex()) // persistedBlockStart should be initialized from the anchor's CommitQC. - for lane := range committee.Lanes().All() { + for lane := range registry.LatestCommittee().Lanes().All() { expected := qcs[3].LaneRange(lane).First() require.Equal(t, expected, inner.persistedBlockStart[lane]) } @@ -515,12 +516,12 @@ func TestNewInnerAnchorWithNoCommitQCFiles(t *testing.T) { func TestNewInnerLoadedCommitQCsGapReturnsError(t *testing.T) { rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 4) + registry, keys := epoch.GenRegistry(rng, 4) qcs := make([]*types.CommitQC, 3) prev := utils.None[*types.CommitQC]() for i := range qcs { - qcs[i] = makeCommitQC(committee, keys, prev, nil, utils.None[*types.AppQC]()) + qcs[i] = makeCommitQC(registry, keys, prev, nil, utils.None[*types.AppQC]()) prev = utils.Some(qcs[i]) } @@ -536,20 +537,20 @@ func TestNewInnerLoadedCommitQCsGapReturnsError(t *testing.T) { commitQCs: loadedQCs, } - _, err := newInner(committee, utils.Some(loaded)) + _, err := newInner(registry, registry.FirstBlock(), utils.Some(loaded)) require.Error(t, err) require.Contains(t, err.Error(), "non-contiguous") } func TestNewInnerLoadedCommitQCsEmpty(t *testing.T) { rng := utils.TestRng() - committee, _ := types.GenCommittee(rng, 4) + registry, _ := epoch.GenRegistry(rng, 4) loaded := &loadedAvailState{ commitQCs: nil, } - inner, err := newInner(committee, utils.Some(loaded)) + inner, err := newInner(registry, registry.FirstBlock(), utils.Some(loaded)) require.NoError(t, err) require.Equal(t, types.RoadIndex(0), inner.commitQCs.first) @@ -560,7 +561,7 @@ func TestNewInnerLoadedCommitQCsEmpty(t *testing.T) { func TestNewInnerLoadedCommitQCsGapWithAppQCAnchor(t *testing.T) { rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 4) + registry, keys := epoch.GenRegistry(rng, 4) // Simulate crash scenario: disk had stale QCs [0,1,2] and a new QC at // index 10. loadPersistedState pre-filters stale entries, so newInner @@ -568,7 +569,7 @@ func TestNewInnerLoadedCommitQCsGapWithAppQCAnchor(t *testing.T) { qcs := make([]*types.CommitQC, 11) prev := utils.None[*types.CommitQC]() for i := range qcs { - qcs[i] = makeCommitQC(committee, keys, prev, nil, utils.None[*types.AppQC]()) + qcs[i] = makeCommitQC(registry, keys, prev, nil, utils.None[*types.AppQC]()) prev = utils.Some(qcs[i]) } @@ -584,7 +585,7 @@ func TestNewInnerLoadedCommitQCsGapWithAppQCAnchor(t *testing.T) { commitQCs: loadedQCs, } - inner, err := newInner(committee, utils.Some(loaded)) + inner, err := newInner(registry, registry.FirstBlock(), utils.Some(loaded)) require.NoError(t, err) // Only QC@10 loaded. @@ -604,7 +605,7 @@ func TestNewInnerLoadedCommitQCsGapWithAppQCAnchor(t *testing.T) { func TestNewInnerLoadedCommitQCsBelowAnchorSkipped(t *testing.T) { rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 4) + registry, keys := epoch.GenRegistry(rng, 4) // Build 6 CommitQCs (0-5). Anchor at index 3. // Loaded list includes stale entries [1, 2] below the anchor plus [3, 4, 5]. @@ -613,7 +614,7 @@ func TestNewInnerLoadedCommitQCsBelowAnchorSkipped(t *testing.T) { qcs := make([]*types.CommitQC, 6) prev := utils.None[*types.CommitQC]() for i := range qcs { - qcs[i] = makeCommitQC(committee, keys, prev, nil, utils.None[*types.AppQC]()) + qcs[i] = makeCommitQC(registry, keys, prev, nil, utils.None[*types.AppQC]()) prev = utils.Some(qcs[i]) } @@ -633,7 +634,7 @@ func TestNewInnerLoadedCommitQCsBelowAnchorSkipped(t *testing.T) { commitQCs: loadedQCs, } - inner, err := newInner(committee, utils.Some(loaded)) + inner, err := newInner(registry, registry.FirstBlock(), utils.Some(loaded)) require.NoError(t, err) // prune(3) pushes QC@3 (next=4). Indices 1,2,3 are skipped. 4,5 pushed. @@ -646,7 +647,7 @@ func TestNewInnerLoadedCommitQCsBelowAnchorSkipped(t *testing.T) { func TestNewInnerLoadedCommitQCsGapAfterAnchorReturnsError(t *testing.T) { rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 4) + registry, keys := epoch.GenRegistry(rng, 4) // Anchor at index 2. Loaded commitQCs are [2, 3, 5] — gap at 4. // After prune(2), next=3. Index 2 is skipped, 3 pushed (next=4), @@ -654,7 +655,7 @@ func TestNewInnerLoadedCommitQCsGapAfterAnchorReturnsError(t *testing.T) { qcs := make([]*types.CommitQC, 6) prev := utils.None[*types.CommitQC]() for i := range qcs { - qcs[i] = makeCommitQC(committee, keys, prev, nil, utils.None[*types.AppQC]()) + qcs[i] = makeCommitQC(registry, keys, prev, nil, utils.None[*types.AppQC]()) prev = utils.Some(qcs[i]) } @@ -672,14 +673,14 @@ func TestNewInnerLoadedCommitQCsGapAfterAnchorReturnsError(t *testing.T) { commitQCs: loadedQCs, } - _, err := newInner(committee, utils.Some(loaded)) + _, err := newInner(registry, registry.FirstBlock(), utils.Some(loaded)) require.Error(t, err) require.Contains(t, err.Error(), "non-contiguous") } func TestNewInnerLoadedBlocksGapReturnsError(t *testing.T) { rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 4) + registry, keys := epoch.GenRegistry(rng, 4) lane := keys[0].Public() // Blocks 3, 4, 6, 7 with no anchor — queue starts at 0, so block 3 @@ -696,14 +697,14 @@ func TestNewInnerLoadedBlocksGapReturnsError(t *testing.T) { blocks: map[types.LaneID][]persist.LoadedBlock{lane: bs}, } - _, err := newInner(committee, utils.Some(loaded)) + _, err := newInner(registry, registry.FirstBlock(), utils.Some(loaded)) require.Error(t, err) require.Contains(t, err.Error(), "non-contiguous") } func TestNewInnerLoadedBlocksParentHashMismatchReturnsError(t *testing.T) { rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 4) + registry, keys := epoch.GenRegistry(rng, 4) lane := keys[0].Public() // Build blocks 0, 1 with correct chaining, then block 2 with wrong parent. @@ -724,14 +725,14 @@ func TestNewInnerLoadedBlocksParentHashMismatchReturnsError(t *testing.T) { blocks: map[types.LaneID][]persist.LoadedBlock{lane: bs}, } - _, err := newInner(committee, utils.Some(loaded)) + _, err := newInner(registry, registry.FirstBlock(), utils.Some(loaded)) require.Error(t, err) require.Contains(t, err.Error(), "parent hash mismatch") } func TestNewInnerLoadedBlocksOverCapacityReturnsError(t *testing.T) { rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 4) + registry, keys := epoch.GenRegistry(rng, 4) lane := keys[0].Public() // Build BlocksPerLane + 5 contiguous blocks — more than the lane capacity. @@ -750,21 +751,21 @@ func TestNewInnerLoadedBlocksOverCapacityReturnsError(t *testing.T) { blocks: map[types.LaneID][]persist.LoadedBlock{lane: bs}, } - _, err := newInner(committee, utils.Some(loaded)) + _, err := newInner(registry, registry.FirstBlock(), utils.Some(loaded)) require.Error(t, err) require.Contains(t, err.Error(), "exceeds capacity") } func TestNewInnerPruneAnchorPrunesBlockQueues(t *testing.T) { rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 4) - initialBlock := committee.FirstBlock() + registry, keys := epoch.GenRegistry(rng, 4) + initialBlock := types.GlobalBlockNumber(0) // Build CommitQCs 0-2. qcs := make([]*types.CommitQC, 3) prev := utils.None[*types.CommitQC]() for i := range qcs { - qcs[i] = makeCommitQC(committee, keys, prev, nil, utils.None[*types.AppQC]()) + qcs[i] = makeCommitQC(registry, keys, prev, nil, utils.None[*types.AppQC]()) prev = utils.Some(qcs[i]) } @@ -793,11 +794,11 @@ func TestNewInnerPruneAnchorPrunesBlockQueues(t *testing.T) { blocks: map[types.LaneID][]persist.LoadedBlock{lane: bs}, } - i, err := newInner(committee, utils.Some(loaded)) + i, err := newInner(registry, registry.FirstBlock(), utils.Some(loaded)) require.NoError(t, err) // prune() should advance block queue first to the prune anchor's lane range. - for l := range committee.Lanes().All() { + for l := range registry.LatestCommittee().Lanes().All() { expected := pruneQC.LaneRange(l).First() require.Equal(t, expected, i.blocks[l].first, "blocks[%v].first should be advanced by prune to prune anchor lane range", l) @@ -806,14 +807,14 @@ func TestNewInnerPruneAnchorPrunesBlockQueues(t *testing.T) { func TestNewInnerPruneAnchorCommitQCUsedForPrune(t *testing.T) { rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 4) - initialBlock := committee.FirstBlock() + registry, keys := epoch.GenRegistry(rng, 4) + initialBlock := types.GlobalBlockNumber(0) // Build CommitQCs 0-2. qcs := make([]*types.CommitQC, 3) prev := utils.None[*types.CommitQC]() for i := range qcs { - qcs[i] = makeCommitQC(committee, keys, prev, nil, utils.None[*types.AppQC]()) + qcs[i] = makeCommitQC(registry, keys, prev, nil, utils.None[*types.AppQC]()) prev = utils.Some(qcs[i]) } @@ -829,7 +830,7 @@ func TestNewInnerPruneAnchorCommitQCUsedForPrune(t *testing.T) { }, } - i, err := newInner(committee, utils.Some(loaded)) + i, err := newInner(registry, registry.FirstBlock(), utils.Some(loaded)) require.NoError(t, err) // prune(appQC@1, pruneQC@1) should advance commitQCs.first to 1. diff --git a/sei-tendermint/internal/autobahn/avail/state.go b/sei-tendermint/internal/autobahn/avail/state.go index 383c4874bd..3b02fe3da3 100644 --- a/sei-tendermint/internal/autobahn/avail/state.go +++ b/sei-tendermint/internal/autobahn/avail/state.go @@ -9,6 +9,7 @@ import ( "github.com/sei-protocol/sei-chain/sei-tendermint/autobahn/types" "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/consensus/persist" "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/data" + "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/epoch" pb "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/pb" "github.com/sei-protocol/sei-chain/sei-tendermint/internal/protoutils" "github.com/sei-protocol/sei-chain/sei-tendermint/libs/utils" @@ -156,7 +157,7 @@ func NewState(key types.SecretKey, data *data.State, stateDir utils.Option[strin return nil, err } - inner, err := newInner(data.Committee(), loaded) + inner, err := newInner(data.Registry(), data.Registry().FirstBlock(), loaded) if err != nil { return nil, err } @@ -165,7 +166,7 @@ func NewState(key types.SecretKey, data *data.State, stateDir utils.Option[strin // loadPersistedState. if ls, ok := loaded.Get(); ok { if anchor, ok := ls.pruneAnchor.Get(); ok { - for lane := range data.Committee().Lanes().All() { + for lane := range data.Registry().LatestCommittee().Lanes().All() { if err := pers.blocks.MaybePruneAndPersistLane(lane, utils.Some(anchor.CommitQC), nil, utils.None[func(*types.Signed[*types.LaneProposal])]()); err != nil { return nil, fmt.Errorf("prune stale block WAL entries: %w", err) } @@ -261,7 +262,7 @@ func (s *State) PushCommitQC(ctx context.Context, qc *types.CommitQC) error { return err } } - if err := qc.Verify(s.data.Committee()); err != nil { + if err := qc.Verify(s.data.Registry().CommitteeFor(qc.Proposal().Index())); err != nil { return fmt.Errorf("qc.Verify(): %w", err) } for inner, ctrl := range s.inner.Lock() { @@ -280,10 +281,11 @@ func (s *State) PushCommitQC(ctx context.Context, qc *types.CommitQC) error { // PushAppVote pushes an AppVote to the state. func (s *State) PushAppVote(ctx context.Context, v *types.Signed[*types.AppVote]) error { - if err := v.VerifySig(s.data.Committee()); err != nil { + idx := v.Msg().Proposal().RoadIndex() + committee := s.data.Registry().CommitteeFor(idx) + if err := v.VerifySig(committee); err != nil { return fmt.Errorf("v.VerifySig(): %w", err) } - idx := v.Msg().Proposal().RoadIndex() // Wait for the corresponding commitQC. if err := s.waitForCommitQC(ctx, idx); err != nil { return err @@ -295,7 +297,7 @@ func (s *State) PushAppVote(ctx context.Context, v *types.Signed[*types.AppVote] } // Verify the vote against the CommitQC. qc := inner.commitQCs.q[idx] - if err := v.Msg().Proposal().Verify(s.data.Committee(), qc); err != nil { + if err := v.Msg().Proposal().Verify(committee, qc, s.data.Registry().FirstBlock()); err != nil { return fmt.Errorf("invalid vote: %w", err) } // Push the vote. @@ -304,11 +306,11 @@ func (s *State) PushAppVote(ctx context.Context, v *types.Signed[*types.AppVote] for q.next <= n { q.pushBack(newAppVotes()) } - appQC, ok := q.q[n].pushVote(s.data.Committee(), v) + appQC, ok := q.q[n].pushVote(committee, v) if !ok { return nil } - updated, err := inner.prune(s.data.Committee(), appQC, qc) + updated, err := inner.prune(committee, s.data.Registry().FirstBlock(), appQC, qc) if err != nil { return err } @@ -328,7 +330,7 @@ func (s *State) PushAppQC(appQC *types.AppQC, commitQC *types.CommitQC) error { return nil } } - c := s.data.Committee() + c := s.data.Registry().CommitteeFor(commitQC.Proposal().Index()) if err := appQC.Verify(c); err != nil { return fmt.Errorf("appQC.Verify(): %w", err) } @@ -340,11 +342,11 @@ func (s *State) PushAppQC(appQC *types.AppQC, commitQC *types.CommitQC) error { } // Defense-in-depth check, it should never happen that >f validators sign // a proposal which does not match the commitQC's global range. - if !commitQC.GlobalRange(c).Has(appQC.Proposal().GlobalNumber()) { + if !commitQC.GlobalRange(s.data.Registry().FirstBlock()).Has(appQC.Proposal().GlobalNumber()) { return fmt.Errorf("appQC GlobalNumber not in commitQC range") } for inner, ctrl := range s.inner.Lock() { - updated, err := inner.prune(s.data.Committee(), appQC, commitQC) + updated, err := inner.prune(c, s.data.Registry().FirstBlock(), appQC, commitQC) if err != nil { return err } @@ -392,12 +394,14 @@ func (s *State) PushBlock(ctx context.Context, p *types.Signed[*types.LanePropos if p.Key() != h.Lane() { return fmt.Errorf("signer %v does not match lane %v", p.Key(), h.Lane()) } - if err := p.Msg().Verify(s.data.Committee()); err != nil { + if err := s.data.Registry().VerifyInWindow(func(c *types.Committee) error { + if err := p.Msg().Verify(c); err != nil { + return err + } + return p.VerifySig(c) + }); err != nil { return fmt.Errorf("block.Verify(): %w", err) } - if err := p.VerifySig(s.data.Committee()); err != nil { - return fmt.Errorf("p.VerifySig(): %w", err) - } for inner, ctrl := range s.inner.Lock() { q, ok := inner.blocks[h.Lane()] if !ok { @@ -442,12 +446,15 @@ func (s *State) PushBlock(ctx context.Context, p *types.Signed[*types.LanePropos // Waits until the lane has enough capacity for the new vote. // It does NOT wait for the previous votes. func (s *State) PushVote(ctx context.Context, vote *types.Signed[*types.LaneVote]) error { - if err := vote.Msg().Verify(s.data.Committee()); err != nil { - return fmt.Errorf("vote.Msg().Verify(): %w", err) - } - if err := vote.VerifySig(s.data.Committee()); err != nil { - return fmt.Errorf("vote.VerifySig(): %w", err) + if err := s.data.Registry().VerifyInWindow(func(c *types.Committee) error { + if err := vote.Msg().Verify(c); err != nil { + return err + } + return vote.VerifySig(c) + }); err != nil { + return fmt.Errorf("vote.Verify(): %w", err) } + window := s.data.Registry().EpochWindow() h := vote.Msg().Header() for inner, ctrl := range s.inner.Lock() { q, ok := inner.votes[h.Lane()] @@ -465,7 +472,7 @@ func (s *State) PushVote(ctx context.Context, vote *types.Signed[*types.LaneVote for q.next <= h.BlockNumber() { q.pushBack(newBlockVotes()) } - if _, ok := q.q[h.BlockNumber()].pushVote(s.data.Committee(), vote); ok { + if q.q[h.BlockNumber()].pushVote(window, vote) { ctrl.Updated() } } @@ -490,8 +497,8 @@ func (s *State) headers(ctx context.Context, lr *types.LaneRange) ([]*types.Bloc return nil, data.ErrPruned } // Check if we have the header. - if byHash, ok := q.q[n].byHash[want]; ok { - h := byHash.votes[0].Msg().Header() + if entry, ok := q.q[n].byHash[want]; ok { + h := entry.votes[0].Msg().Header() want = h.ParentHash() headers[len(headers)-i-1] = h break @@ -514,7 +521,7 @@ func (s *State) fullCommitQC(ctx context.Context, n types.RoadIndex) (*types.Ful } // Collect the headers from the votes. var commitHeaders []*types.BlockHeader - for lane := range s.data.Committee().Lanes().All() { + for lane := range s.data.Registry().CommitteeFor(qc.Proposal().Index()).Lanes().All() { headers, err := s.headers(ctx, qc.LaneRange(lane)) if err != nil { return nil, err @@ -537,18 +544,20 @@ func (s *State) WaitForLocalCapacity(ctx context.Context, toProduce types.BlockN return nil } -// WaitForLaneQCs waits until there is at least 1 LaneQC with a block not finalized by prev. +// WaitForLaneQCs waits until there is at least 1 LaneQC (for the given epoch) +// with a block not finalized by prev. func (s *State) WaitForLaneQCs( - ctx context.Context, prev utils.Option[*types.CommitQC], + ctx context.Context, prev utils.Option[*types.CommitQC], e epoch.Index, ) (map[types.LaneID]*types.LaneQC, error) { - c := s.data.Committee() + window := s.data.Registry().EpochWindow() for inner, ctrl := range s.inner.Lock() { laneQCs := map[types.LaneID]*types.LaneQC{} for { - for lane := range c.Lanes().All() { + for lane := range inner.blocks { first := types.LaneRangeOpt(prev, lane).Next() for i := range types.BlockNumber(BlocksPerLanePerCommit) { - if qc, ok := inner.laneQC(c, lane, first+i); ok { + qcs := inner.laneQCs(window, lane, first+i) + if qc, ok := qcs[e]; ok { laneQCs[lane] = qc } else { break @@ -612,7 +621,6 @@ func (s *State) Run(ctx context.Context) error { }) // Task inserting FullCommitQCs and local blocks to data state. scope.SpawnNamed("s.data.PushQC", func() error { - c := s.data.Committee() for n := types.RoadIndex(0); ; n = max(n+1, s.FirstCommitQC()) { qc, err := s.fullCommitQC(ctx, n) if err != nil { @@ -623,6 +631,7 @@ func (s *State) Run(ctx context.Context) error { } // Collect the blocks we have locally. + c := s.data.Registry().CommitteeFor(qc.QC().Proposal().Index()) var blocks []*types.Block for inner := range s.inner.Lock() { for lane := range c.Lanes().All() { @@ -685,7 +694,7 @@ func (s *State) runPersist(ctx context.Context, pers persisters) error { s.markBlockPersisted(header.Lane(), header.BlockNumber()+1) } - blocksByLane := make(map[types.LaneID][]*types.Signed[*types.LaneProposal], s.data.Committee().Lanes().Len()) + blocksByLane := make(map[types.LaneID][]*types.Signed[*types.LaneProposal]) for _, proposal := range batch.blocks { lane := proposal.Msg().Block().Header().Lane() blocksByLane[lane] = append(blocksByLane[lane], proposal) @@ -699,11 +708,18 @@ func (s *State) runPersist(ctx context.Context, pers persisters) error { s.markCommitQCsPersisted(qc) })) }) - for lane := range s.data.Committee().Lanes().All() { - proposals := blocksByLane[lane] - ps.Spawn(func() error { - return pers.blocks.MaybePruneAndPersistLane(lane, anchorQC, proposals, utils.Some(markBlock)) - }) + seenLane := map[types.LaneID]struct{}{} + for _, c := range s.data.Registry().EpochWindow() { + for lane := range c.Lanes().All() { + if _, ok := seenLane[lane]; ok { + continue + } + seenLane[lane] = struct{}{} + proposals := blocksByLane[lane] + ps.Spawn(func() error { + return pers.blocks.MaybePruneAndPersistLane(lane, anchorQC, proposals, utils.Some(markBlock)) + }) + } } return nil }); err != nil { diff --git a/sei-tendermint/internal/autobahn/avail/state_test.go b/sei-tendermint/internal/autobahn/avail/state_test.go index 4bb2d3e2fa..d3448f9bfe 100644 --- a/sei-tendermint/internal/autobahn/avail/state_test.go +++ b/sei-tendermint/internal/autobahn/avail/state_test.go @@ -12,6 +12,7 @@ import ( "github.com/sei-protocol/sei-chain/sei-tendermint/autobahn/types" "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/consensus/persist" "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/data" + "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/epoch" pb "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/pb" "github.com/sei-protocol/sei-chain/sei-tendermint/libs/utils" "github.com/sei-protocol/sei-chain/sei-tendermint/libs/utils/scope" @@ -53,17 +54,20 @@ func leaderKey(committee *types.Committee, keys []types.SecretKey, view types.Vi } func makeCommitQC( - committee *types.Committee, + registry *epoch.Registry, keys []types.SecretKey, prev utils.Option[*types.CommitQC], laneQCs map[types.LaneID]*types.LaneQC, appQC utils.Option[*types.AppQC], ) *types.CommitQC { vs := types.ViewSpec{CommitQC: prev} + committee := registry.CommitteeFor(vs.View().Index) fullProposal := utils.OrPanic1(types.NewProposal( leaderKey(committee, keys, vs.View()), committee, vs, + 0, + time.Time{}, time.Now(), laneQCs, appQC, @@ -102,12 +106,13 @@ func testState(t *testing.T, stateDir utils.Option[string]) { t.Helper() ctx := t.Context() rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 3) + registry, keys := epoch.GenRegistry(rng, 3) + committee := registry.LatestCommittee() if err := scope.Run(ctx, func(ctx context.Context, s scope.Scope) error { ds := utils.OrPanic1(data.NewState(&data.Config{ - Committee: committee, - }, utils.OrPanic1(data.NewDataWAL(utils.None[string](), committee)))) + Registry: registry, + }, utils.OrPanic1(data.NewDataWAL(utils.None[string](), registry.FirstBlock())))) s.SpawnBgNamed("data.State.Run()", func() error { return utils.IgnoreCancel(ds.Run(ctx)) }) @@ -154,17 +159,17 @@ func testState(t *testing.T, stateDir utils.Option[string]) { } t.Logf("Push a commit QC.") - laneQCs, err := state.WaitForLaneQCs(ctx, prev) + laneQCs, err := state.WaitForLaneQCs(ctx, prev, 0) if err != nil { return fmt.Errorf("state.WaitForNewLaneQCs(): %w", err) } - qc := makeCommitQC(committee, keys, prev, laneQCs, state.LastAppQC()) + qc := makeCommitQC(registry, keys, prev, laneQCs, state.LastAppQC()) if err := state.PushCommitQC(ctx, qc); err != nil { return fmt.Errorf("state.PushCommitQC(): %w", err) } t.Logf("Push app votes.") - appProposal := types.NewAppProposal(qc.GlobalRange(committee).Next-1, qc.Proposal().Index(), types.GenAppHash(rng)) + appProposal := types.NewAppProposal(qc.GlobalRange(registry.FirstBlock()).Next-1, qc.Proposal().Index(), types.GenAppHash(rng)) for _, vote := range makeAppVotes(keys, appProposal) { if err := state.PushAppVote(ctx, vote); err != nil { return fmt.Errorf("state.PushAppVote(): %w", err) @@ -200,7 +205,7 @@ func testState(t *testing.T, stateDir utils.Option[string]) { } t.Logf("Check that the blocks were successfully pushed to data state.") - gr := got.QC().GlobalRange(committee) + gr := got.QC().GlobalRange(registry.FirstBlock()) for i := gr.First; i < gr.Next; i++ { b, err := ds.Block(ctx, i) if err != nil { @@ -228,7 +233,8 @@ func testState(t *testing.T, stateDir utils.Option[string]) { // loadPersistedState (stale entries below the prune anchor are discarded). func TestStateRestartFromPersisted(t *testing.T) { rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 3) + registry, keys := epoch.GenRegistry(rng, 3) + committee := registry.LatestCommittee() dir := t.TempDir() // Phase 1: Run state with persistence through 2 iterations. @@ -236,7 +242,7 @@ func TestStateRestartFromPersisted(t *testing.T) { var wantNextBlocks map[types.LaneID]types.BlockNumber require.NoError(t, scope.Run(t.Context(), func(ctx context.Context, s scope.Scope) error { - ds := utils.OrPanic1(data.NewState(&data.Config{Committee: committee}, utils.OrPanic1(data.NewDataWAL(utils.None[string](), committee)))) + ds := utils.OrPanic1(data.NewState(&data.Config{Registry: registry}, utils.OrPanic1(data.NewDataWAL(utils.None[string](), registry.FirstBlock())))) s.SpawnBgNamed("data.Run", func() error { return utils.IgnoreCancel(ds.Run(ctx)) }) @@ -274,16 +280,16 @@ func TestStateRestartFromPersisted(t *testing.T) { } } - laneQCs, err := state.WaitForLaneQCs(ctx, prev) + laneQCs, err := state.WaitForLaneQCs(ctx, prev, 0) if err != nil { return fmt.Errorf("WaitForLaneQCs: %w", err) } - qc := makeCommitQC(committee, keys, prev, laneQCs, state.LastAppQC()) + qc := makeCommitQC(registry, keys, prev, laneQCs, state.LastAppQC()) if err := state.PushCommitQC(ctx, qc); err != nil { return fmt.Errorf("PushCommitQC: %w", err) } - appProposal := types.NewAppProposal(qc.GlobalRange(committee).Next-1, qc.Proposal().Index(), types.GenAppHash(rng)) + appProposal := types.NewAppProposal(qc.GlobalRange(registry.FirstBlock()).Next-1, qc.Proposal().Index(), types.GenAppHash(rng)) for _, vote := range makeAppVotes(keys, appProposal) { if err := state.PushAppVote(ctx, vote); err != nil { return fmt.Errorf("PushAppVote: %w", err) @@ -311,7 +317,7 @@ func TestStateRestartFromPersisted(t *testing.T) { })) // Phase 2: Restart from the same directory. - ds2 := utils.OrPanic1(data.NewState(&data.Config{Committee: committee}, utils.OrPanic1(data.NewDataWAL(utils.None[string](), committee)))) + ds2 := utils.OrPanic1(data.NewState(&data.Config{Registry: registry}, utils.OrPanic1(data.NewDataWAL(utils.None[string](), registry.FirstBlock())))) state2, err := NewState(keys[0], ds2, utils.Some(dir)) require.NoError(t, err) @@ -332,12 +338,13 @@ func TestStateRestartFromPersisted(t *testing.T) { func TestStateMismatchedQCs(t *testing.T) { rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 4) - initialBlock := committee.FirstBlock() + registry, keys := epoch.GenRegistry(rng, 4) + committee := registry.LatestCommittee() + initialBlock := registry.FirstBlock() ds := utils.OrPanic1(data.NewState(&data.Config{ - Committee: committee, - }, utils.OrPanic1(data.NewDataWAL(utils.None[string](), committee)))) + Registry: registry, + }, utils.OrPanic1(data.NewDataWAL(utils.None[string](), registry.FirstBlock())))) state, err := NewState(keys[0], ds, utils.None[string]()) require.NoError(t, err) @@ -348,6 +355,8 @@ func TestStateMismatchedQCs(t *testing.T) { leaderKey(committee, keys, vs.View()), committee, vs, + 0, + time.Time{}, time.Now(), laneQCs, utils.None[*types.AppQC](), @@ -374,8 +383,8 @@ func TestStateMismatchedQCs(t *testing.T) { // 3. Create CommitQC for index 0 (finalizes block 0) qc0 := makeQC(utils.None[*types.CommitQC](), map[types.LaneID]*types.LaneQC{lane: laneQC}) - require.Equal(t, initialBlock, qc0.GlobalRange(committee).First) - require.Equal(t, initialBlock+1, qc0.GlobalRange(committee).Next) + require.Equal(t, initialBlock, qc0.GlobalRange(registry.FirstBlock()).First) + require.Equal(t, initialBlock+1, qc0.GlobalRange(registry.FirstBlock()).Next) t.Run("PushAppQC mismatch", func(t *testing.T) { require := require.New(t) @@ -391,11 +400,11 @@ func TestStateMismatchedQCs(t *testing.T) { func TestPushBlockRejectsBadParentHash(t *testing.T) { ctx := t.Context() rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 3) + registry, keys := epoch.GenRegistry(rng, 3) ds := utils.OrPanic1(data.NewState(&data.Config{ - Committee: committee, - }, utils.OrPanic1(data.NewDataWAL(utils.None[string](), committee)))) + Registry: registry, + }, utils.OrPanic1(data.NewDataWAL(utils.None[string](), registry.FirstBlock())))) state := utils.OrPanic1(NewState(keys[0], ds, utils.None[string]())) // Produce a valid first block on our lane. @@ -416,11 +425,11 @@ func TestPushBlockRejectsBadParentHash(t *testing.T) { func TestPushBlockRejectsWrongSigner(t *testing.T) { ctx := t.Context() rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 3) + registry, keys := epoch.GenRegistry(rng, 3) ds := utils.OrPanic1(data.NewState(&data.Config{ - Committee: committee, - }, utils.OrPanic1(data.NewDataWAL(utils.None[string](), committee)))) + Registry: registry, + }, utils.OrPanic1(data.NewDataWAL(utils.None[string](), registry.FirstBlock())))) state := utils.OrPanic1(NewState(keys[0], ds, utils.None[string]())) // Create a block on keys[0]'s lane but sign it with keys[1]. @@ -434,12 +443,12 @@ func TestPushBlockRejectsWrongSigner(t *testing.T) { func TestNewStateWithPersistence(t *testing.T) { rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 4) - initialBlock := committee.FirstBlock() + registry, keys := epoch.GenRegistry(rng, 4) + initialBlock := types.GlobalBlockNumber(0) t.Run("empty dir loads fresh state", func(t *testing.T) { dir := t.TempDir() - ds := utils.OrPanic1(data.NewState(&data.Config{Committee: committee}, utils.OrPanic1(data.NewDataWAL(utils.None[string](), committee)))) + ds := utils.OrPanic1(data.NewState(&data.Config{Registry: registry}, utils.OrPanic1(data.NewDataWAL(utils.None[string](), registry.FirstBlock())))) state, err := NewState(keys[0], ds, utils.Some(dir)) require.NoError(t, err) @@ -452,7 +461,7 @@ func TestNewStateWithPersistence(t *testing.T) { t.Run("loads persisted AppQC", func(t *testing.T) { dir := t.TempDir() - ds := utils.OrPanic1(data.NewState(&data.Config{Committee: committee}, utils.OrPanic1(data.NewDataWAL(utils.None[string](), committee)))) + ds := utils.OrPanic1(data.NewState(&data.Config{Registry: registry}, utils.OrPanic1(data.NewDataWAL(utils.None[string](), registry.FirstBlock())))) roadIdx := types.RoadIndex(7) globalNum := types.GlobalBlockNumber(50) @@ -465,7 +474,7 @@ func TestNewStateWithPersistence(t *testing.T) { prev := utils.None[*types.CommitQC]() var pruneQC *types.CommitQC for i := types.RoadIndex(0); i <= roadIdx; i++ { - qc := makeCommitQC(committee, keys, prev, nil, utils.None[*types.AppQC]()) + qc := makeCommitQC(registry, keys, prev, nil, utils.None[*types.AppQC]()) prev = utils.Some(qc) require.NoError(t, cp.MaybePruneAndPersist(utils.None[*types.CommitQC](), []*types.CommitQC{qc}, noCommitQCCB)) pruneQC = qc @@ -493,7 +502,7 @@ func TestNewStateWithPersistence(t *testing.T) { t.Run("loads persisted blocks", func(t *testing.T) { dir := t.TempDir() - ds := utils.OrPanic1(data.NewState(&data.Config{Committee: committee}, utils.OrPanic1(data.NewDataWAL(utils.None[string](), committee)))) + ds := utils.OrPanic1(data.NewState(&data.Config{Registry: registry}, utils.OrPanic1(data.NewDataWAL(utils.None[string](), registry.FirstBlock())))) lane := keys[0].Public() // Persist blocks using BlockPersister. @@ -517,7 +526,7 @@ func TestNewStateWithPersistence(t *testing.T) { t.Run("loads persisted AppQC and blocks together", func(t *testing.T) { dir := t.TempDir() - ds := utils.OrPanic1(data.NewState(&data.Config{Committee: committee}, utils.OrPanic1(data.NewDataWAL(utils.None[string](), committee)))) + ds := utils.OrPanic1(data.NewState(&data.Config{Registry: registry}, utils.OrPanic1(data.NewDataWAL(utils.None[string](), registry.FirstBlock())))) lane := keys[0].Public() roadIdx := types.RoadIndex(2) @@ -531,7 +540,7 @@ func TestNewStateWithPersistence(t *testing.T) { prev := utils.None[*types.CommitQC]() var pruneQC *types.CommitQC for range roadIdx + 1 { - qc := makeCommitQC(committee, keys, prev, nil, utils.None[*types.AppQC]()) + qc := makeCommitQC(registry, keys, prev, nil, utils.None[*types.AppQC]()) prev = utils.Some(qc) require.NoError(t, cp.MaybePruneAndPersist(utils.None[*types.CommitQC](), []*types.CommitQC{qc}, noCommitQCCB)) pruneQC = qc @@ -570,7 +579,7 @@ func TestNewStateWithPersistence(t *testing.T) { t.Run("loads persisted commitQCs", func(t *testing.T) { dir := t.TempDir() - ds := utils.OrPanic1(data.NewState(&data.Config{Committee: committee}, utils.OrPanic1(data.NewDataWAL(utils.None[string](), committee)))) + ds := utils.OrPanic1(data.NewState(&data.Config{Registry: registry}, utils.OrPanic1(data.NewDataWAL(utils.None[string](), registry.FirstBlock())))) // Persist CommitQCs to disk. cp, _, err := persist.NewCommitQCPersister(utils.Some(dir)) @@ -579,7 +588,7 @@ func TestNewStateWithPersistence(t *testing.T) { qcs := make([]*types.CommitQC, 3) prev := utils.None[*types.CommitQC]() for i := range qcs { - qcs[i] = makeCommitQC(committee, keys, prev, nil, utils.None[*types.AppQC]()) + qcs[i] = makeCommitQC(registry, keys, prev, nil, utils.None[*types.AppQC]()) prev = utils.Some(qcs[i]) require.NoError(t, cp.MaybePruneAndPersist(utils.None[*types.CommitQC](), []*types.CommitQC{qcs[i]}, noCommitQCCB)) } @@ -595,7 +604,7 @@ func TestNewStateWithPersistence(t *testing.T) { t.Run("loads persisted commitQCs with AppQC", func(t *testing.T) { dir := t.TempDir() - ds := utils.OrPanic1(data.NewState(&data.Config{Committee: committee}, utils.OrPanic1(data.NewDataWAL(utils.None[string](), committee)))) + ds := utils.OrPanic1(data.NewState(&data.Config{Registry: registry}, utils.OrPanic1(data.NewDataWAL(utils.None[string](), registry.FirstBlock())))) // Persist AppQC at road index 1. roadIdx := types.RoadIndex(1) @@ -610,7 +619,7 @@ func TestNewStateWithPersistence(t *testing.T) { qcs := make([]*types.CommitQC, 5) prev := utils.None[*types.CommitQC]() for i := range qcs { - qcs[i] = makeCommitQC(committee, keys, prev, nil, utils.None[*types.AppQC]()) + qcs[i] = makeCommitQC(registry, keys, prev, nil, utils.None[*types.AppQC]()) prev = utils.Some(qcs[i]) require.NoError(t, cp.MaybePruneAndPersist(utils.None[*types.CommitQC](), []*types.CommitQC{qcs[i]}, noCommitQCCB)) } @@ -638,7 +647,7 @@ func TestNewStateWithPersistence(t *testing.T) { allQCs := make([]*types.CommitQC, 6) prev := utils.None[*types.CommitQC]() for i := range allQCs { - allQCs[i] = makeCommitQC(committee, keys, prev, nil, utils.None[*types.AppQC]()) + allQCs[i] = makeCommitQC(registry, keys, prev, nil, utils.None[*types.AppQC]()) prev = utils.Some(allQCs[i]) } @@ -668,13 +677,13 @@ func TestNewStateWithPersistence(t *testing.T) { t.Run("anchor past all persisted commitQCs truncates WAL", func(t *testing.T) { dir := t.TempDir() - ds := utils.OrPanic1(data.NewState(&data.Config{Committee: committee}, utils.OrPanic1(data.NewDataWAL(utils.None[string](), committee)))) + ds := utils.OrPanic1(data.NewState(&data.Config{Registry: registry}, utils.OrPanic1(data.NewDataWAL(utils.None[string](), registry.FirstBlock())))) // Build a chain of 10 CommitQCs (indices 0-9). qcs := make([]*types.CommitQC, 10) prev := utils.None[*types.CommitQC]() for i := range qcs { - qcs[i] = makeCommitQC(committee, keys, prev, nil, utils.None[*types.AppQC]()) + qcs[i] = makeCommitQC(registry, keys, prev, nil, utils.None[*types.AppQC]()) prev = utils.Some(qcs[i]) } @@ -711,7 +720,7 @@ func TestNewStateWithPersistence(t *testing.T) { t.Run("anchor past all persisted blocks truncates lane WAL", func(t *testing.T) { dir := t.TempDir() - ds := utils.OrPanic1(data.NewState(&data.Config{Committee: committee}, utils.OrPanic1(data.NewDataWAL(utils.None[string](), committee)))) + ds := utils.OrPanic1(data.NewState(&data.Config{Registry: registry}, utils.OrPanic1(data.NewDataWAL(utils.None[string](), registry.FirstBlock())))) lane := keys[0].Public() // Persist commitQCs 0-9 and blocks 0-2 for one lane. @@ -720,7 +729,7 @@ func TestNewStateWithPersistence(t *testing.T) { cp, _, err := persist.NewCommitQCPersister(utils.Some(dir)) require.NoError(t, err) for i := range qcs { - qcs[i] = makeCommitQC(committee, keys, prev, nil, utils.None[*types.AppQC]()) + qcs[i] = makeCommitQC(registry, keys, prev, nil, utils.None[*types.AppQC]()) prev = utils.Some(qcs[i]) require.NoError(t, cp.MaybePruneAndPersist(utils.None[*types.CommitQC](), []*types.CommitQC{qcs[i]}, noCommitQCCB)) } @@ -759,7 +768,7 @@ func TestNewStateWithPersistence(t *testing.T) { t.Run("corrupt AppQC data returns error", func(t *testing.T) { dir := t.TempDir() - ds := utils.OrPanic1(data.NewState(&data.Config{Committee: committee}, utils.OrPanic1(data.NewDataWAL(utils.None[string](), committee)))) + ds := utils.OrPanic1(data.NewState(&data.Config{Registry: registry}, utils.OrPanic1(data.NewDataWAL(utils.None[string](), registry.FirstBlock())))) // Create a throwaway persister to discover the A/B filenames, // then corrupt them so NewState fails on load. diff --git a/sei-tendermint/internal/autobahn/consensus/inner.go b/sei-tendermint/internal/autobahn/consensus/inner.go index 6cc197cbbd..b5bc702d6f 100644 --- a/sei-tendermint/internal/autobahn/consensus/inner.go +++ b/sei-tendermint/internal/autobahn/consensus/inner.go @@ -81,6 +81,7 @@ import ( "fmt" "github.com/sei-protocol/sei-chain/sei-tendermint/autobahn/types" + "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/epoch" "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/pb" "github.com/sei-protocol/sei-chain/sei-tendermint/libs/utils" "github.com/sei-protocol/seilog" @@ -98,7 +99,7 @@ type inner struct { // newInner creates the inner state from persisted data loaded by NewPersister. // data is None on fresh start (persistence disabled or no prior state). // Returns error if persisted state is corrupt (see persistedInner.validate). -func newInner(data utils.Option[*pb.PersistedInner], committee *types.Committee) (inner, error) { +func newInner(data utils.Option[*pb.PersistedInner], registry *epoch.Registry) (inner, error) { var persisted persistedInner if p, ok := data.Get(); ok { @@ -109,7 +110,7 @@ func newInner(data utils.Option[*pb.PersistedInner], committee *types.Committee) persisted = *decoded } - if err := persisted.validate(committee); err != nil { + if err := persisted.validate(registry); err != nil { return inner{}, err } @@ -122,7 +123,7 @@ func (s *State) pushCommitQC(qc *types.CommitQC) error { if i := s.innerRecv.Load(); qc.Proposal().Index() < i.View().Index { return nil } - if err := qc.Verify(s.Data().Committee()); err != nil { + if err := qc.Verify(s.Data().Registry().CommitteeFor(qc.Proposal().Index())); err != nil { return fmt.Errorf("qc.Verify(): %w", err) } for iSend := range s.inner.Lock() { @@ -151,7 +152,7 @@ func (s *State) pushTimeoutQC(ctx context.Context, qc *types.TimeoutQC) error { return nil } // Verify checks the invariant: TimeoutQC.View().Index == CommitQC.Index + 1 - if err := qc.Verify(s.Data().Committee(), i.CommitQC); err != nil { + if err := qc.Verify(s.Data().Registry().CommitteeFor(qc.View().Index), i.CommitQC); err != nil { return fmt.Errorf("qc.Verify(): %w", err) } for isend := range s.inner.Lock() { @@ -179,7 +180,7 @@ func (s *State) pushProposal(ctx context.Context, proposal *types.FullProposal) if vs.View() != proposal.View() { return nil } - if err := proposal.Verify(s.Data().Committee(), vs); err != nil { + if err := proposal.Verify(s.Data().Registry().CommitteeFor(vs.View().Index), vs, s.Data().Registry().FirstBlock(), s.Data().Registry().GenesisTimestamp()); err != nil { return fmt.Errorf("proposal.Verify(): %w", err) } // Update. @@ -205,7 +206,7 @@ func (s *State) pushPrepareQC(ctx context.Context, qc *types.PrepareQC) error { if vs.View() != qc.Proposal().View() { return nil } - if err := qc.Verify(s.Data().Committee()); err != nil { + if err := qc.Verify(s.Data().Registry().CommitteeFor(qc.Proposal().View().Index)); err != nil { return fmt.Errorf("qc.Verify(): %w", err) } // Update. diff --git a/sei-tendermint/internal/autobahn/consensus/inner_test.go b/sei-tendermint/internal/autobahn/consensus/inner_test.go index 761e528d36..a4f118b555 100644 --- a/sei-tendermint/internal/autobahn/consensus/inner_test.go +++ b/sei-tendermint/internal/autobahn/consensus/inner_test.go @@ -9,6 +9,7 @@ import ( "github.com/sei-protocol/sei-chain/sei-tendermint/autobahn/types" "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/consensus/persist" "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/data" + "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/epoch" "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/pb" "github.com/sei-protocol/sei-chain/sei-tendermint/internal/protoutils" "github.com/sei-protocol/sei-chain/sei-tendermint/libs/utils" @@ -28,12 +29,12 @@ func seedPersistedInner(dir string, state *persistedInner) { // loadInner is a test helper that loads persisted data and creates inner. // Mirrors what NewState does: NewPersister → newInner. -func loadInner(dir string, committee *types.Committee) (inner, error) { +func loadInner(dir string, registry *epoch.Registry) (inner, error) { _, data, err := persist.NewPersister[*pb.PersistedInner](utils.Some(dir), innerFile) if err != nil { return inner{}, err } - return newInner(data, committee) + return newInner(data, registry) } // makePrepareQC creates a PrepareQC with valid signatures from the given keys. @@ -47,9 +48,9 @@ func makePrepareQC(keys []types.SecretKey, proposal *types.Proposal) *types.Prep func TestNewInnerEmpty(t *testing.T) { rng := utils.TestRng() - committee, _ := types.GenCommittee(rng, 1) + registry, _ := epoch.GenRegistry(rng, 1) // No data should return empty inner (persistence disabled / fresh start) - i, err := newInner(utils.None[*pb.PersistedInner](), committee) + i, err := newInner(utils.None[*pb.PersistedInner](), registry) require.NoError(t, err) require.False(t, i.PrepareVote.IsPresent(), "prepareVote should be None") require.False(t, i.CommitVote.IsPresent(), "commitVote should be None") @@ -61,7 +62,7 @@ func TestNewInnerPrepareVote(t *testing.T) { dir := t.TempDir() // Create and persist a prepare vote at genesis view (0, 0) - committee, keys := types.GenCommittee(rng, 1) + registry, keys := epoch.GenRegistry(rng, 1) key := keys[0] genesisProposal := types.GenProposalAt(rng, types.View{Index: 0, Number: 0}) vote := types.Sign(key, types.NewPrepareVote(genesisProposal)) @@ -71,7 +72,7 @@ func TestNewInnerPrepareVote(t *testing.T) { }) // Load and verify - i, err := loadInner(dir, committee) + i, err := loadInner(dir, registry) require.NoError(t, err) loaded, ok := i.PrepareVote.Get() require.True(t, ok, "prepareVote should be Some") @@ -83,7 +84,7 @@ func TestNewInnerCommitVote(t *testing.T) { dir := t.TempDir() // Create and persist a commit vote at genesis view (0, 0) - committee, keys := types.GenCommittee(rng, 1) + registry, keys := epoch.GenRegistry(rng, 1) key := keys[0] genesisProposal := types.GenProposalAt(rng, types.View{Index: 0, Number: 0}) prepareQC := makePrepareQC([]types.SecretKey{key}, genesisProposal) @@ -95,7 +96,7 @@ func TestNewInnerCommitVote(t *testing.T) { }) // Load and verify - i, err := loadInner(dir, committee) + i, err := loadInner(dir, registry) require.NoError(t, err) loaded, ok := i.CommitVote.Get() require.True(t, ok, "commitVote should be Some") @@ -107,7 +108,7 @@ func TestNewInnerTimeoutVote(t *testing.T) { dir := t.TempDir() // Create and persist a timeout vote at genesis view (0, 0) - committee, keys := types.GenCommittee(rng, 1) + registry, keys := epoch.GenRegistry(rng, 1) key := keys[0] vote := types.NewFullTimeoutVote(key, types.View{Index: 0, Number: 0}, utils.None[*types.PrepareQC]()) @@ -116,7 +117,7 @@ func TestNewInnerTimeoutVote(t *testing.T) { }) // Load and verify - i, err := loadInner(dir, committee) + i, err := loadInner(dir, registry) require.NoError(t, err) loaded, ok := i.TimeoutVote.Get() require.True(t, ok, "timeoutVote should be Some") @@ -128,7 +129,7 @@ func TestNewInnerAllVotes(t *testing.T) { dir := t.TempDir() // Create all vote types at genesis view (0, 0) - committee, keys := types.GenCommittee(rng, 1) + registry, keys := epoch.GenRegistry(rng, 1) key := keys[0] genesisProposal := types.GenProposalAt(rng, types.View{Index: 0, Number: 0}) prepareQC := makePrepareQC([]types.SecretKey{key}, genesisProposal) @@ -144,7 +145,7 @@ func TestNewInnerAllVotes(t *testing.T) { }) // Load and verify all - i, err := loadInner(dir, committee) + i, err := loadInner(dir, registry) require.NoError(t, err) require.True(t, i.PrepareVote.IsPresent(), "prepareVote should be Some") require.True(t, i.CommitVote.IsPresent(), "commitVote should be Some") @@ -156,7 +157,7 @@ func TestNewInnerPartialState(t *testing.T) { dir := t.TempDir() // Only persist prepareVote - committee, keys := types.GenCommittee(rng, 1) + registry, keys := epoch.GenRegistry(rng, 1) key := keys[0] genesisProposal := types.GenProposalAt(rng, types.View{Index: 0, Number: 0}) prepareVote := types.Sign(key, types.NewPrepareVote(genesisProposal)) @@ -166,7 +167,7 @@ func TestNewInnerPartialState(t *testing.T) { }) // Load - only prepareVote should be present - i, err := loadInner(dir, committee) + i, err := loadInner(dir, registry) require.NoError(t, err) require.True(t, i.PrepareVote.IsPresent(), "prepareVote should be Some") require.False(t, i.CommitVote.IsPresent(), "commitVote should be None") @@ -176,7 +177,7 @@ func TestNewInnerPartialState(t *testing.T) { func TestNewInnerCommitQC(t *testing.T) { rng := utils.TestRng() dir := t.TempDir() - committee, keys := types.GenCommittee(rng, 3) + registry, keys := epoch.GenRegistry(rng, 3) // Create a CommitQC at index 5 proposal := types.GenProposalAt(rng, types.View{Index: 5, Number: 0}) @@ -192,7 +193,7 @@ func TestNewInnerCommitQC(t *testing.T) { }) // Load and verify - i, err := loadInner(dir, committee) + i, err := loadInner(dir, registry) require.NoError(t, err) require.True(t, i.CommitQC.IsPresent(), "CommitQC should be loaded") loadedQC, ok := i.CommitQC.Get() @@ -205,7 +206,7 @@ func TestNewInnerCommitQC(t *testing.T) { func TestNewInnerTimeoutQC(t *testing.T) { rng := utils.TestRng() dir := t.TempDir() - committee, keys := types.GenCommittee(rng, 3) + registry, keys := epoch.GenRegistry(rng, 3) // Create a CommitQC at index 5 (required for TimeoutQC at index 6) qcProposal := types.GenProposalAt(rng, types.View{Index: 5, Number: 0}) @@ -229,7 +230,7 @@ func TestNewInnerTimeoutQC(t *testing.T) { }) // Load and verify - i, err := loadInner(dir, committee) + i, err := loadInner(dir, registry) require.NoError(t, err) require.True(t, i.TimeoutQC.IsPresent(), "TimeoutQC should be loaded") // View should be (6, 3) since TimeoutQC at (6, 2) advances to (6, 3) @@ -239,7 +240,7 @@ func TestNewInnerTimeoutQC(t *testing.T) { func TestNewInnerTimeoutQCOnlyGenesis(t *testing.T) { rng := utils.TestRng() dir := t.TempDir() - committee, keys := types.GenCommittee(rng, 3) + registry, keys := epoch.GenRegistry(rng, 3) // Create TimeoutQC at (0, 2) - no CommitQC needed for index 0 var timeoutVotes []*types.FullTimeoutVote @@ -253,7 +254,7 @@ func TestNewInnerTimeoutQCOnlyGenesis(t *testing.T) { }) // Load and verify - should work without CommitQC since index is 0 - i, err := loadInner(dir, committee) + i, err := loadInner(dir, registry) require.NoError(t, err) require.True(t, i.TimeoutQC.IsPresent(), "TimeoutQC should be loaded") require.Equal(t, types.View{Index: 0, Number: 3}, i.View()) @@ -262,7 +263,7 @@ func TestNewInnerTimeoutQCOnlyGenesis(t *testing.T) { func TestNewInnerTimeoutQCWithoutCommitQCError(t *testing.T) { rng := utils.TestRng() dir := t.TempDir() - committee, keys := types.GenCommittee(rng, 3) + registry, keys := epoch.GenRegistry(rng, 3) // Create TimeoutQC at index 6 WITHOUT CommitQC at index 5 var timeoutVotes []*types.FullTimeoutVote @@ -276,7 +277,7 @@ func TestNewInnerTimeoutQCWithoutCommitQCError(t *testing.T) { }) // Should return error - TimeoutQC at index 6 requires CommitQC at index 5 - _, err := loadInner(dir, committee) + _, err := loadInner(dir, registry) require.Error(t, err) require.Contains(t, err.Error(), "corrupt persisted state") } @@ -284,7 +285,7 @@ func TestNewInnerTimeoutQCWithoutCommitQCError(t *testing.T) { func TestNewInnerTimeoutQCAheadOfCommitQCError(t *testing.T) { rng := utils.TestRng() dir := t.TempDir() - committee, keys := types.GenCommittee(rng, 3) + registry, keys := epoch.GenRegistry(rng, 3) // Create CommitQC at index 5 qcProposal := types.GenProposalAt(rng, types.View{Index: 5, Number: 0}) @@ -308,7 +309,7 @@ func TestNewInnerTimeoutQCAheadOfCommitQCError(t *testing.T) { }) // Should return error - TimeoutQC index must equal CommitQC.Index + 1 - _, err := loadInner(dir, committee) + _, err := loadInner(dir, registry) require.Error(t, err) require.Contains(t, err.Error(), "corrupt persisted state") } @@ -316,7 +317,7 @@ func TestNewInnerTimeoutQCAheadOfCommitQCError(t *testing.T) { func TestNewInnerViewSpecStaleTimeoutQC(t *testing.T) { rng := utils.TestRng() dir := t.TempDir() - committee, keys := types.GenCommittee(rng, 3) + registry, keys := epoch.GenRegistry(rng, 3) // Create CommitQC at index 10 qcProposal := types.GenProposalAt(rng, types.View{Index: 10, Number: 0}) @@ -341,7 +342,7 @@ func TestNewInnerViewSpecStaleTimeoutQC(t *testing.T) { }) // Load - stale TimeoutQC should be treated as corrupt state - _, err := loadInner(dir, committee) + _, err := loadInner(dir, registry) require.Error(t, err) require.Contains(t, err.Error(), "corrupt persisted state") } @@ -349,7 +350,7 @@ func TestNewInnerViewSpecStaleTimeoutQC(t *testing.T) { func TestNewInnerViewSpecValidBothQCs(t *testing.T) { rng := utils.TestRng() dir := t.TempDir() - committee, keys := types.GenCommittee(rng, 3) + registry, keys := epoch.GenRegistry(rng, 3) // Create CommitQC at index 5 qcProposal := types.GenProposalAt(rng, types.View{Index: 5, Number: 0}) @@ -373,7 +374,7 @@ func TestNewInnerViewSpecValidBothQCs(t *testing.T) { }) // Load - both should be present - i, err := loadInner(dir, committee) + i, err := loadInner(dir, registry) require.NoError(t, err) require.True(t, i.CommitQC.IsPresent(), "CommitQC should be loaded") require.True(t, i.TimeoutQC.IsPresent(), "TimeoutQC should be loaded") @@ -384,7 +385,7 @@ func TestNewInnerViewSpecValidBothQCs(t *testing.T) { func TestNewInnerStaleVoteError(t *testing.T) { rng := utils.TestRng() dir := t.TempDir() - committee, keys := types.GenCommittee(rng, 3) + registry, keys := epoch.GenRegistry(rng, 3) // Create CommitQC at index 5 -> current view is (6, 0) qcProposal := types.GenProposalAt(rng, types.View{Index: 5, Number: 0}) @@ -405,7 +406,7 @@ func TestNewInnerStaleVoteError(t *testing.T) { PrepareVote: utils.Some(staleVote), }) - _, err := loadInner(dir, committee) + _, err := loadInner(dir, registry) require.Error(t, err) require.Contains(t, err.Error(), "corrupt persisted state") } @@ -413,7 +414,7 @@ func TestNewInnerStaleVoteError(t *testing.T) { func TestNewInnerFuturePrepareVoteError(t *testing.T) { rng := utils.TestRng() dir := t.TempDir() - committee, keys := types.GenCommittee(rng, 3) + registry, keys := epoch.GenRegistry(rng, 3) // Create CommitQC at index 5 -> current view is (6, 0) qcProposal := types.GenProposalAt(rng, types.View{Index: 5, Number: 0}) @@ -434,7 +435,7 @@ func TestNewInnerFuturePrepareVoteError(t *testing.T) { }) // Should return error - future votes indicate corrupt state - _, err := loadInner(dir, committee) + _, err := loadInner(dir, registry) require.Error(t, err) require.Contains(t, err.Error(), "corrupt persisted state") } @@ -442,7 +443,7 @@ func TestNewInnerFuturePrepareVoteError(t *testing.T) { func TestNewInnerFutureCommitVoteError(t *testing.T) { rng := utils.TestRng() dir := t.TempDir() - committee, keys := types.GenCommittee(rng, 3) + registry, keys := epoch.GenRegistry(rng, 3) // Create CommitQC at index 5 -> current view is (6, 0) qcProposal := types.GenProposalAt(rng, types.View{Index: 5, Number: 0}) @@ -463,7 +464,7 @@ func TestNewInnerFutureCommitVoteError(t *testing.T) { }) // Should return error - _, err := loadInner(dir, committee) + _, err := loadInner(dir, registry) require.Error(t, err) require.Contains(t, err.Error(), "corrupt persisted state") } @@ -471,7 +472,7 @@ func TestNewInnerFutureCommitVoteError(t *testing.T) { func TestNewInnerFutureTimeoutVoteError(t *testing.T) { rng := utils.TestRng() dir := t.TempDir() - committee, keys := types.GenCommittee(rng, 3) + registry, keys := epoch.GenRegistry(rng, 3) // Create CommitQC at index 5 -> current view is (6, 0) qcProposal := types.GenProposalAt(rng, types.View{Index: 5, Number: 0}) @@ -491,7 +492,7 @@ func TestNewInnerFutureTimeoutVoteError(t *testing.T) { }) // Should return error - _, err := loadInner(dir, committee) + _, err := loadInner(dir, registry) require.Error(t, err) require.Contains(t, err.Error(), "corrupt persisted state") } @@ -499,7 +500,7 @@ func TestNewInnerFutureTimeoutVoteError(t *testing.T) { func TestNewInnerCurrentViewVoteOk(t *testing.T) { rng := utils.TestRng() dir := t.TempDir() - committee, keys := types.GenCommittee(rng, 3) + registry, keys := epoch.GenRegistry(rng, 3) // Create CommitQC at index 5 -> current view is (6, 0) qcProposal := types.GenProposalAt(rng, types.View{Index: 5, Number: 0}) @@ -520,7 +521,7 @@ func TestNewInnerCurrentViewVoteOk(t *testing.T) { }) // Should succeed - current view votes are valid - i, err := loadInner(dir, committee) + i, err := loadInner(dir, registry) require.NoError(t, err) require.True(t, i.PrepareVote.IsPresent(), "current view vote should be loaded") } @@ -528,7 +529,7 @@ func TestNewInnerCurrentViewVoteOk(t *testing.T) { func TestNewInnerCommitQCInvalidSignatureError(t *testing.T) { rng := utils.TestRng() dir := t.TempDir() - committee, _ := types.GenCommittee(rng, 3) + registry, _ := epoch.GenRegistry(rng, 3) // Create CommitQC signed by keys NOT in committee otherKeys := make([]types.SecretKey, 3) @@ -548,7 +549,7 @@ func TestNewInnerCommitQCInvalidSignatureError(t *testing.T) { }) // Should return error - invalid signatures - _, err := loadInner(dir, committee) + _, err := loadInner(dir, registry) require.Error(t, err) require.Contains(t, err.Error(), "corrupt persisted state") } @@ -556,7 +557,7 @@ func TestNewInnerCommitQCInvalidSignatureError(t *testing.T) { func TestNewInnerTimeoutQCInvalidSignatureError(t *testing.T) { rng := utils.TestRng() dir := t.TempDir() - committee, keys := types.GenCommittee(rng, 3) + registry, keys := epoch.GenRegistry(rng, 3) // Create valid CommitQC at index 5 qcProposal := types.GenProposalAt(rng, types.View{Index: 5, Number: 0}) @@ -584,7 +585,7 @@ func TestNewInnerTimeoutQCInvalidSignatureError(t *testing.T) { }) // Should return error - invalid signatures on TimeoutQC - _, err := loadInner(dir, committee) + _, err := loadInner(dir, registry) require.Error(t, err) require.Contains(t, err.Error(), "corrupt persisted state") } @@ -592,7 +593,7 @@ func TestNewInnerTimeoutQCInvalidSignatureError(t *testing.T) { func TestNewInnerCurrentViewVoteInvalidSignatureError(t *testing.T) { rng := utils.TestRng() dir := t.TempDir() - committee, keys := types.GenCommittee(rng, 3) + registry, keys := epoch.GenRegistry(rng, 3) // Create valid CommitQC at index 5 -> current view is (6, 0) qcProposal := types.GenProposalAt(rng, types.View{Index: 5, Number: 0}) @@ -614,7 +615,7 @@ func TestNewInnerCurrentViewVoteInvalidSignatureError(t *testing.T) { }) // Should return error - current view votes must have valid signatures - _, err := loadInner(dir, committee) + _, err := loadInner(dir, registry) require.Error(t, err) require.Contains(t, err.Error(), "corrupt persisted state") } @@ -622,7 +623,7 @@ func TestNewInnerCurrentViewVoteInvalidSignatureError(t *testing.T) { func TestNewInnerStaleVoteInvalidSignatureError(t *testing.T) { rng := utils.TestRng() dir := t.TempDir() - committee, keys := types.GenCommittee(rng, 3) + registry, keys := epoch.GenRegistry(rng, 3) // Create valid CommitQC at index 5 -> current view is (6, 0) qcProposal := types.GenProposalAt(rng, types.View{Index: 5, Number: 0}) @@ -644,7 +645,7 @@ func TestNewInnerStaleVoteInvalidSignatureError(t *testing.T) { PrepareVote: utils.Some(badVote), }) - _, err := loadInner(dir, committee) + _, err := loadInner(dir, registry) require.Error(t, err) require.Contains(t, err.Error(), "corrupt persisted state") } @@ -652,7 +653,7 @@ func TestNewInnerStaleVoteInvalidSignatureError(t *testing.T) { func TestNewInnerPrepareQC(t *testing.T) { rng := utils.TestRng() dir := t.TempDir() - committee, keys := types.GenCommittee(rng, 3) + registry, keys := epoch.GenRegistry(rng, 3) // Create prepareQC at genesis view (0, 0) proposal := types.GenProposalAt(rng, types.View{Index: 0, Number: 0}) @@ -663,7 +664,7 @@ func TestNewInnerPrepareQC(t *testing.T) { }) // Load and verify - i, err := loadInner(dir, committee) + i, err := loadInner(dir, registry) require.NoError(t, err) require.True(t, i.PrepareQC.IsPresent(), "prepareQC should be loaded") } @@ -671,7 +672,7 @@ func TestNewInnerPrepareQC(t *testing.T) { func TestNewInnerStalePrepareQCError(t *testing.T) { rng := utils.TestRng() dir := t.TempDir() - committee, keys := types.GenCommittee(rng, 3) + registry, keys := epoch.GenRegistry(rng, 3) // Create CommitQC at index 5 -> current view is (6, 0) qcProposal := types.GenProposalAt(rng, types.View{Index: 5, Number: 0}) @@ -692,7 +693,7 @@ func TestNewInnerStalePrepareQCError(t *testing.T) { PrepareQC: utils.Some(stalePrepareQC), }) - _, err := loadInner(dir, committee) + _, err := loadInner(dir, registry) require.Error(t, err) require.Contains(t, err.Error(), "corrupt persisted state") } @@ -700,7 +701,7 @@ func TestNewInnerStalePrepareQCError(t *testing.T) { func TestNewInnerCommitVoteWithoutPrepareQCError(t *testing.T) { rng := utils.TestRng() dir := t.TempDir() - committee, keys := types.GenCommittee(rng, 3) + registry, keys := epoch.GenRegistry(rng, 3) // Current view is (0, 0) (no CommitQC or TimeoutQC). // CommitVote requires PrepareQC justification. @@ -711,7 +712,7 @@ func TestNewInnerCommitVoteWithoutPrepareQCError(t *testing.T) { CommitVote: utils.Some(commitVote), }) - _, err := loadInner(dir, committee) + _, err := loadInner(dir, registry) require.Error(t, err) require.Contains(t, err.Error(), "CommitVote present without PrepareQC") } @@ -719,7 +720,7 @@ func TestNewInnerCommitVoteWithoutPrepareQCError(t *testing.T) { func TestNewInnerFuturePrepareQCError(t *testing.T) { rng := utils.TestRng() dir := t.TempDir() - committee, keys := types.GenCommittee(rng, 3) + registry, keys := epoch.GenRegistry(rng, 3) // Create CommitQC at index 5 -> current view is (6, 0) qcProposal := types.GenProposalAt(rng, types.View{Index: 5, Number: 0}) @@ -740,7 +741,7 @@ func TestNewInnerFuturePrepareQCError(t *testing.T) { }) // Should return error - future prepareQC indicates corrupt state - _, err := loadInner(dir, committee) + _, err := loadInner(dir, registry) require.Error(t, err) require.Contains(t, err.Error(), "corrupt persisted state") } @@ -748,7 +749,7 @@ func TestNewInnerFuturePrepareQCError(t *testing.T) { func TestNewInnerCurrentViewPrepareQCOk(t *testing.T) { rng := utils.TestRng() dir := t.TempDir() - committee, keys := types.GenCommittee(rng, 3) + registry, keys := epoch.GenRegistry(rng, 3) // Create CommitQC at index 5 -> current view is (6, 0) qcProposal := types.GenProposalAt(rng, types.View{Index: 5, Number: 0}) @@ -769,7 +770,7 @@ func TestNewInnerCurrentViewPrepareQCOk(t *testing.T) { }) // Should succeed - current view prepareQC is valid - i, err := loadInner(dir, committee) + i, err := loadInner(dir, registry) require.NoError(t, err) require.True(t, i.PrepareQC.IsPresent(), "current view prepareQC should be loaded") } @@ -777,7 +778,7 @@ func TestNewInnerCurrentViewPrepareQCOk(t *testing.T) { func TestNewInnerCurrentViewPrepareQCInvalidSignatureError(t *testing.T) { rng := utils.TestRng() dir := t.TempDir() - committee, keys := types.GenCommittee(rng, 3) + registry, keys := epoch.GenRegistry(rng, 3) // Create CommitQC at index 5 -> current view is (6, 0) qcProposal := types.GenProposalAt(rng, types.View{Index: 5, Number: 0}) @@ -802,7 +803,7 @@ func TestNewInnerCurrentViewPrepareQCInvalidSignatureError(t *testing.T) { }) // Should return error - current view prepareQC has invalid signatures - _, err := loadInner(dir, committee) + _, err := loadInner(dir, registry) require.Error(t, err) require.Contains(t, err.Error(), "corrupt persisted state") } @@ -810,7 +811,8 @@ func TestNewInnerCurrentViewPrepareQCInvalidSignatureError(t *testing.T) { func TestNewInnerPrepareQCIncludedInTimeoutVote(t *testing.T) { rng := utils.TestRng() dir := t.TempDir() - committee, keys := types.GenCommittee(rng, 3) + registry, keys := epoch.GenRegistry(rng, 3) + committee := registry.LatestCommittee() voteKey := keys[0] // Create CommitQC at index 5 -> current view is (6, 0) @@ -832,7 +834,7 @@ func TestNewInnerPrepareQCIncludedInTimeoutVote(t *testing.T) { }) // Load state - i, err := loadInner(dir, committee) + i, err := loadInner(dir, registry) require.NoError(t, err) require.True(t, i.PrepareQC.IsPresent(), "prepareQC should be loaded") @@ -855,7 +857,7 @@ func TestNewInnerPrepareQCIncludedInTimeoutVote(t *testing.T) { func TestPushTimeoutQCClearsStaleState(t *testing.T) { rng := utils.TestRng() dir := t.TempDir() - committee, keys := types.GenCommittee(rng, 3) + registry, keys := epoch.GenRegistry(rng, 3) // Setup: Create CommitQC at index 5 -> current view is (6, 0) qcProposal := types.GenProposalAt(rng, types.View{Index: 5, Number: 0}) @@ -884,7 +886,7 @@ func TestPushTimeoutQCClearsStaleState(t *testing.T) { }) // Load initial state and verify everything is present - i, err := loadInner(dir, committee) + i, err := loadInner(dir, registry) require.NoError(t, err) require.True(t, i.PrepareQC.IsPresent(), "prepareQC should be loaded") require.True(t, i.PrepareVote.IsPresent(), "prepareVote should be loaded") @@ -924,8 +926,8 @@ func TestRunOutputsPersistErrorPropagates(t *testing.T) { // Verify that a persist error in runOutputs propagates // and terminates the consensus component (instead of panicking). rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 4) - ds := utils.OrPanic1(data.NewState(&data.Config{Committee: committee}, utils.OrPanic1(data.NewDataWAL(utils.None[string](), committee)))) + registry, keys := epoch.GenRegistry(rng, 4) + ds := utils.OrPanic1(data.NewState(&data.Config{Registry: registry}, utils.OrPanic1(data.NewDataWAL(utils.None[string](), registry.FirstBlock())))) wantErr := errors.New("disk on fire") pers := utils.Some[persist.Persister[*pb.PersistedInner]](failPersister[*pb.PersistedInner]{err: wantErr}) diff --git a/sei-tendermint/internal/autobahn/consensus/persist/commitqcs_test.go b/sei-tendermint/internal/autobahn/consensus/persist/commitqcs_test.go index 1bbcadeb4a..3920049cfa 100644 --- a/sei-tendermint/internal/autobahn/consensus/persist/commitqcs_test.go +++ b/sei-tendermint/internal/autobahn/consensus/persist/commitqcs_test.go @@ -7,6 +7,7 @@ import ( "time" "github.com/sei-protocol/sei-chain/sei-tendermint/autobahn/types" + "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/epoch" "github.com/sei-protocol/sei-chain/sei-tendermint/libs/utils" "github.com/sei-protocol/sei-chain/sei-tendermint/libs/utils/require" ) @@ -34,6 +35,8 @@ func testCommitQC( leaderKey, committee, vs, + 0, + time.Time{}, time.Now(), laneQCs, appQC, @@ -106,7 +109,8 @@ func TestNewCommitQCPersisterEmptyDir(t *testing.T) { func TestPersistCommitQCAndLoad(t *testing.T) { rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 4) + registry, keys := epoch.GenRegistry(rng, 4) + committee := registry.LatestCommittee() dir := t.TempDir() qcs := makeSequentialCommitQCs(committee, keys, 3) @@ -134,7 +138,8 @@ func TestPersistCommitQCAndLoad(t *testing.T) { func TestCommitQCDeleteBeforeRemovesOldKeepsNew(t *testing.T) { rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 4) + registry, keys := epoch.GenRegistry(rng, 4) + committee := registry.LatestCommittee() dir := t.TempDir() qcs := makeSequentialCommitQCs(committee, keys, 5) @@ -156,7 +161,8 @@ func TestCommitQCDeleteBeforeRemovesOldKeepsNew(t *testing.T) { func TestCommitQCDeleteBeforeZero(t *testing.T) { rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 4) + registry, keys := epoch.GenRegistry(rng, 4) + committee := registry.LatestCommittee() dir := t.TempDir() qcs := makeSequentialCommitQCs(committee, keys, 3) @@ -183,7 +189,8 @@ func TestCommitQCDeleteBeforeZero(t *testing.T) { func TestCommitQCPersistDuplicateIsNoOp(t *testing.T) { rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 4) + registry, keys := epoch.GenRegistry(rng, 4) + committee := registry.LatestCommittee() dir := t.TempDir() qcs := makeSequentialCommitQCs(committee, keys, 3) @@ -200,7 +207,8 @@ func TestCommitQCPersistDuplicateIsNoOp(t *testing.T) { func TestCommitQCPersistGapRejected(t *testing.T) { rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 4) + registry, keys := epoch.GenRegistry(rng, 4) + committee := registry.LatestCommittee() dir := t.TempDir() qcs := makeSequentialCommitQCs(committee, keys, 5) @@ -218,7 +226,8 @@ func TestCommitQCPersistGapRejected(t *testing.T) { func TestLoadAllDetectsCommitQCGap(t *testing.T) { rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 4) + registry, keys := epoch.GenRegistry(rng, 4) + committee := registry.LatestCommittee() dir := t.TempDir() // Build 3 sequential CommitQCs (indices 0, 1, 2). @@ -241,7 +250,8 @@ func TestLoadAllDetectsCommitQCGap(t *testing.T) { func TestNoOpCommitQCPersister(t *testing.T) { rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 4) + registry, keys := epoch.GenRegistry(rng, 4) + committee := registry.LatestCommittee() qcs := makeSequentialCommitQCs(committee, keys, 11) // Fresh no-op persister: prune with anchor at index 0 (idx==0, @@ -274,7 +284,8 @@ func TestNoOpCommitQCPersister(t *testing.T) { func TestCommitQCDeleteBeforePastAll(t *testing.T) { rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 4) + registry, keys := epoch.GenRegistry(rng, 4) + committee := registry.LatestCommittee() dir := t.TempDir() qcs := makeSequentialCommitQCs(committee, keys, 12) @@ -305,7 +316,8 @@ func TestCommitQCDeleteBeforePastAll(t *testing.T) { // must re-establish the cursor so subsequent persists succeed. func TestCommitQCDeleteBeforePastAllCrashRecovery(t *testing.T) { rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 4) + registry, keys := epoch.GenRegistry(rng, 4) + committee := registry.LatestCommittee() dir := t.TempDir() qcs := makeSequentialCommitQCs(committee, keys, 12) @@ -348,7 +360,8 @@ func TestCommitQCDeleteBeforePastAllCrashRecovery(t *testing.T) { // re-establishes the cursor for subsequent writes. func TestCommitQCDeleteBeforeWithAnchorRecovers(t *testing.T) { rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 4) + registry, keys := epoch.GenRegistry(rng, 4) + committee := registry.LatestCommittee() dir := t.TempDir() qcs := makeSequentialCommitQCs(committee, keys, 5) @@ -386,7 +399,8 @@ func TestCommitQCDeleteBeforeWithAnchorRecovers(t *testing.T) { func TestCommitQCDeleteBeforeThenPersistMore(t *testing.T) { rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 4) + registry, keys := epoch.GenRegistry(rng, 4) + committee := registry.LatestCommittee() dir := t.TempDir() qcs := makeSequentialCommitQCs(committee, keys, 6) @@ -411,7 +425,8 @@ func TestCommitQCDeleteBeforeThenPersistMore(t *testing.T) { func TestCommitQCDeleteBeforeAlreadyPruned(t *testing.T) { rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 4) + registry, keys := epoch.GenRegistry(rng, 4) + committee := registry.LatestCommittee() dir := t.TempDir() qcs := makeSequentialCommitQCs(committee, keys, 5) @@ -439,7 +454,8 @@ func TestCommitQCDeleteBeforeAlreadyPruned(t *testing.T) { func TestCommitQCProgressiveDeleteBefore(t *testing.T) { rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 4) + registry, keys := epoch.GenRegistry(rng, 4) + committee := registry.LatestCommittee() dir := t.TempDir() qcs := makeSequentialCommitQCs(committee, keys, 8) diff --git a/sei-tendermint/internal/autobahn/consensus/persist/fullcommitqcs.go b/sei-tendermint/internal/autobahn/consensus/persist/fullcommitqcs.go index f4ff1df34e..4e25251efe 100644 --- a/sei-tendermint/internal/autobahn/consensus/persist/fullcommitqcs.go +++ b/sei-tendermint/internal/autobahn/consensus/persist/fullcommitqcs.go @@ -12,14 +12,14 @@ const fullCommitQCsDir = "fullcommitqcs" // fullCommitQCState is the mutable state protected by FullCommitQCPersister's mutex. type fullCommitQCState struct { - iw utils.Option[*indexedWAL[*types.FullCommitQC]] - committee *types.Committee - next types.GlobalBlockNumber // next expected GlobalRange().First == last QC's GlobalRange().Next - loaded []*types.FullCommitQC + iw utils.Option[*indexedWAL[*types.FullCommitQC]] + firstBlock types.GlobalBlockNumber + next types.GlobalBlockNumber // next expected GlobalRange().First == last QC's GlobalRange().Next + loaded []*types.FullCommitQC } func (s *fullCommitQCState) persistQC(qc *types.FullCommitQC) error { - gr := qc.QC().GlobalRange(s.committee) + gr := qc.QC().GlobalRange(s.firstBlock) if gr.First < s.next { return nil } @@ -51,7 +51,7 @@ func (s *fullCommitQCState) truncateBefore(n types.GlobalBlockNumber) error { // per prune call because pruning advances one block at a time while // each QC covers many blocks. if err := iw.TruncateWhile(func(entry *types.FullCommitQC) bool { - return entry.QC().GlobalRange(s.committee).Next <= n + return entry.QC().GlobalRange(s.firstBlock).Next <= n }); err != nil { return fmt.Errorf("truncate full commitqc WAL: %w", err) } @@ -69,10 +69,10 @@ type FullCommitQCPersister struct { // NewFullCommitQCPersister opens (or creates) a WAL in the fullcommitqcs/ // subdir and replays all persisted entries. Loaded QCs are available via // ConsumeLoaded. When stateDir is None, returns a no-op persister. -func NewFullCommitQCPersister(stateDir utils.Option[string], committee *types.Committee) (*FullCommitQCPersister, error) { +func NewFullCommitQCPersister(stateDir utils.Option[string], firstBlock types.GlobalBlockNumber) (*FullCommitQCPersister, error) { sd, ok := stateDir.Get() if !ok { - return &FullCommitQCPersister{state: utils.NewMutex(&fullCommitQCState{committee: committee, next: committee.FirstBlock()})}, nil + return &FullCommitQCPersister{state: utils.NewMutex(&fullCommitQCState{firstBlock: firstBlock, next: firstBlock})}, nil } dir := filepath.Join(sd, fullCommitQCsDir) iw, err := openIndexedWAL(dir, types.FullCommitQCConv) @@ -80,14 +80,14 @@ func NewFullCommitQCPersister(stateDir utils.Option[string], committee *types.Co return nil, fmt.Errorf("open full commitqc WAL in %s: %w", dir, err) } - s := &fullCommitQCState{iw: utils.Some(iw), committee: committee, next: committee.FirstBlock()} + s := &fullCommitQCState{iw: utils.Some(iw), firstBlock: firstBlock, next: firstBlock} loaded, err := s.loadAll() if err != nil { _ = iw.Close() return nil, err } if len(loaded) > 0 { - s.next = loaded[len(loaded)-1].QC().GlobalRange(s.committee).Next + s.next = loaded[len(loaded)-1].QC().GlobalRange(s.firstBlock).Next } s.loaded = loaded return &FullCommitQCPersister{ @@ -105,13 +105,13 @@ func (gp *FullCommitQCPersister) Next() types.GlobalBlockNumber { } // LoadedFirst returns the first global block number of the first loaded QC, -// or committee.FirstBlock() if empty. +// or firstBlock if empty. func (gp *FullCommitQCPersister) LoadedFirst() types.GlobalBlockNumber { for s := range gp.state.Lock() { if len(s.loaded) > 0 { - return s.loaded[0].QC().GlobalRange(s.committee).First + return s.loaded[0].QC().GlobalRange(s.firstBlock).First } - return s.committee.FirstBlock() + return s.firstBlock } panic("unreachable") } diff --git a/sei-tendermint/internal/autobahn/consensus/persist/fullcommitqcs_test.go b/sei-tendermint/internal/autobahn/consensus/persist/fullcommitqcs_test.go index 8932bcab76..f93f980c70 100644 --- a/sei-tendermint/internal/autobahn/consensus/persist/fullcommitqcs_test.go +++ b/sei-tendermint/internal/autobahn/consensus/persist/fullcommitqcs_test.go @@ -5,19 +5,22 @@ import ( "time" "github.com/sei-protocol/sei-chain/sei-tendermint/autobahn/types" + "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/epoch" "github.com/sei-protocol/sei-chain/sei-tendermint/libs/utils" "github.com/sei-protocol/sei-chain/sei-tendermint/libs/utils/require" ) func makeSequentialFullCommitQCs( rng utils.Rng, - committee *types.Committee, + registry *epoch.Registry, keys []types.SecretKey, n int, ) []*types.FullCommitQC { qcs := make([]*types.FullCommitQC, n) prev := utils.None[*types.CommitQC]() for i := range n { + vs := types.ViewSpec{CommitQC: prev} + committee := registry.CommitteeFor(vs.View().Index) blocks := map[types.LaneID][]*types.Block{} for range 3 { lane := committee.Lanes().At(rng.Intn(committee.Lanes().Len())) @@ -62,6 +65,8 @@ func makeSequentialFullCommitQCs( leaderKey, committee, viewSpec, + 0, + time.Time{}, time.Now(), laneQCs, utils.None[*types.AppQC](), @@ -78,23 +83,21 @@ func makeSequentialFullCommitQCs( } func TestNewFullCommitQCPersisterEmptyDir(t *testing.T) { - rng := utils.TestRng() - committee, _ := types.GenCommittee(rng, 3) dir := t.TempDir() - gp, err := NewFullCommitQCPersister(utils.Some(dir), committee) + gp, err := NewFullCommitQCPersister(utils.Some(dir), 0) require.NoError(t, err) require.NotNil(t, gp) require.Equal(t, 0, len(gp.ConsumeLoaded())) - require.Equal(t, committee.FirstBlock(), gp.Next()) + require.Equal(t, types.GlobalBlockNumber(0), gp.Next()) require.NoError(t, gp.Close()) } func TestNewFullCommitQCPersisterNoop(t *testing.T) { rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 3) - qcs := makeSequentialFullCommitQCs(rng, committee, keys, 5) + registry, keys := epoch.GenRegistry(rng, 3) + qcs := makeSequentialFullCommitQCs(rng, registry, keys, 5) - gp, err := NewFullCommitQCPersister(utils.None[string](), committee) + gp, err := NewFullCommitQCPersister(utils.None[string](), registry.FirstBlock()) require.NoError(t, err) require.NotNil(t, gp) require.Equal(t, 0, len(gp.ConsumeLoaded())) @@ -102,7 +105,7 @@ func TestNewFullCommitQCPersisterNoop(t *testing.T) { for _, qc := range qcs { require.NoError(t, gp.PersistQC(qc)) } - lastNext := qcs[len(qcs)-1].QC().GlobalRange(committee).Next + lastNext := qcs[len(qcs)-1].QC().GlobalRange(registry.FirstBlock()).Next require.Equal(t, lastNext, gp.Next()) // Truncate past everything in no-op mode advances cursor. @@ -115,24 +118,24 @@ func TestNewFullCommitQCPersisterNoop(t *testing.T) { func TestFullCommitQCPersistAndReload(t *testing.T) { dir := t.TempDir() rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 3) - qcs := makeSequentialFullCommitQCs(rng, committee, keys, 5) + registry, keys := epoch.GenRegistry(rng, 3) + qcs := makeSequentialFullCommitQCs(rng, registry, keys, 5) - gp, err := NewFullCommitQCPersister(utils.Some(dir), committee) + gp, err := NewFullCommitQCPersister(utils.Some(dir), registry.FirstBlock()) require.NoError(t, err) for _, qc := range qcs { require.NoError(t, gp.PersistQC(qc)) } - lastNext := qcs[len(qcs)-1].QC().GlobalRange(committee).Next + lastNext := qcs[len(qcs)-1].QC().GlobalRange(registry.FirstBlock()).Next require.Equal(t, lastNext, gp.Next()) require.NoError(t, gp.Close()) - gp2, err := NewFullCommitQCPersister(utils.Some(dir), committee) + gp2, err := NewFullCommitQCPersister(utils.Some(dir), registry.FirstBlock()) require.NoError(t, err) loaded := gp2.ConsumeLoaded() require.Equal(t, len(qcs), len(loaded)) for i, lqc := range loaded { - require.Equal(t, qcs[i].QC().GlobalRange(committee).First, lqc.QC().GlobalRange(committee).First) + require.Equal(t, qcs[i].QC().GlobalRange(registry.FirstBlock()).First, lqc.QC().GlobalRange(registry.FirstBlock()).First) } require.Equal(t, lastNext, gp2.Next()) require.NoError(t, gp2.Close()) @@ -141,46 +144,46 @@ func TestFullCommitQCPersistAndReload(t *testing.T) { func TestFullCommitQCTruncateAndReload(t *testing.T) { dir := t.TempDir() rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 3) - qcs := makeSequentialFullCommitQCs(rng, committee, keys, 5) + registry, keys := epoch.GenRegistry(rng, 3) + qcs := makeSequentialFullCommitQCs(rng, registry, keys, 5) - gp, err := NewFullCommitQCPersister(utils.Some(dir), committee) + gp, err := NewFullCommitQCPersister(utils.Some(dir), registry.FirstBlock()) require.NoError(t, err) for _, qc := range qcs { require.NoError(t, gp.PersistQC(qc)) } // Truncate before the third QC's range start, which should remove // all QCs whose range is fully below that point. - truncPoint := qcs[2].QC().GlobalRange(committee).First + truncPoint := qcs[2].QC().GlobalRange(registry.FirstBlock()).First require.NoError(t, gp.TruncateBefore(truncPoint)) require.NoError(t, gp.Close()) - gp2, err := NewFullCommitQCPersister(utils.Some(dir), committee) + gp2, err := NewFullCommitQCPersister(utils.Some(dir), registry.FirstBlock()) require.NoError(t, err) loaded := gp2.ConsumeLoaded() // QCs 0 and 1 should be gone (their ranges are fully before truncPoint). // QC 2 should be the first one remaining. require.GreaterOrEqual(t, len(loaded), 1) - require.Equal(t, qcs[2].QC().GlobalRange(committee).First, loaded[0].QC().GlobalRange(committee).First) + require.Equal(t, qcs[2].QC().GlobalRange(registry.FirstBlock()).First, loaded[0].QC().GlobalRange(registry.FirstBlock()).First) require.NoError(t, gp2.Close()) } func TestFullCommitQCTruncateAll(t *testing.T) { dir := t.TempDir() rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 3) - qcs := makeSequentialFullCommitQCs(rng, committee, keys, 3) + registry, keys := epoch.GenRegistry(rng, 3) + qcs := makeSequentialFullCommitQCs(rng, registry, keys, 3) - gp, err := NewFullCommitQCPersister(utils.Some(dir), committee) + gp, err := NewFullCommitQCPersister(utils.Some(dir), registry.FirstBlock()) require.NoError(t, err) for _, qc := range qcs { require.NoError(t, gp.PersistQC(qc)) } - lastNext := qcs[len(qcs)-1].QC().GlobalRange(committee).Next + lastNext := qcs[len(qcs)-1].QC().GlobalRange(registry.FirstBlock()).Next require.NoError(t, gp.TruncateBefore(lastNext+100)) require.NoError(t, gp.Close()) - gp2, err := NewFullCommitQCPersister(utils.Some(dir), committee) + gp2, err := NewFullCommitQCPersister(utils.Some(dir), registry.FirstBlock()) require.NoError(t, err) require.Equal(t, 0, len(gp2.ConsumeLoaded())) require.NoError(t, gp2.Close()) @@ -189,24 +192,24 @@ func TestFullCommitQCTruncateAll(t *testing.T) { func TestFullCommitQCDuplicateIgnored(t *testing.T) { dir := t.TempDir() rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 3) - qcs := makeSequentialFullCommitQCs(rng, committee, keys, 2) + registry, keys := epoch.GenRegistry(rng, 3) + qcs := makeSequentialFullCommitQCs(rng, registry, keys, 2) - gp, err := NewFullCommitQCPersister(utils.Some(dir), committee) + gp, err := NewFullCommitQCPersister(utils.Some(dir), registry.FirstBlock()) require.NoError(t, err) require.NoError(t, gp.PersistQC(qcs[0])) require.NoError(t, gp.PersistQC(qcs[0])) // duplicate - require.Equal(t, qcs[0].QC().GlobalRange(committee).Next, gp.Next()) + require.Equal(t, qcs[0].QC().GlobalRange(registry.FirstBlock()).Next, gp.Next()) require.NoError(t, gp.Close()) } func TestFullCommitQCGapError(t *testing.T) { dir := t.TempDir() rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 3) - qcs := makeSequentialFullCommitQCs(rng, committee, keys, 3) + registry, keys := epoch.GenRegistry(rng, 3) + qcs := makeSequentialFullCommitQCs(rng, registry, keys, 3) - gp, err := NewFullCommitQCPersister(utils.Some(dir), committee) + gp, err := NewFullCommitQCPersister(utils.Some(dir), registry.FirstBlock()) require.NoError(t, err) // Skip qcs[0] and try to persist qcs[1] directly. err = gp.PersistQC(qcs[1]) @@ -218,10 +221,10 @@ func TestFullCommitQCGapError(t *testing.T) { func TestFullCommitQCTruncateBeforeNoop(t *testing.T) { dir := t.TempDir() rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 3) - qcs := makeSequentialFullCommitQCs(rng, committee, keys, 3) + registry, keys := epoch.GenRegistry(rng, 3) + qcs := makeSequentialFullCommitQCs(rng, registry, keys, 3) - gp, err := NewFullCommitQCPersister(utils.Some(dir), committee) + gp, err := NewFullCommitQCPersister(utils.Some(dir), registry.FirstBlock()) require.NoError(t, err) for _, qc := range qcs { require.NoError(t, gp.PersistQC(qc)) @@ -230,7 +233,7 @@ func TestFullCommitQCTruncateBeforeNoop(t *testing.T) { require.NoError(t, gp.TruncateBefore(0)) require.NoError(t, gp.Close()) - gp2, err := NewFullCommitQCPersister(utils.Some(dir), committee) + gp2, err := NewFullCommitQCPersister(utils.Some(dir), registry.FirstBlock()) require.NoError(t, err) require.Equal(t, 3, len(gp2.ConsumeLoaded())) require.NoError(t, gp2.Close()) @@ -239,26 +242,26 @@ func TestFullCommitQCTruncateBeforeNoop(t *testing.T) { func TestFullCommitQCContinueAfterReload(t *testing.T) { dir := t.TempDir() rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 3) - qcs := makeSequentialFullCommitQCs(rng, committee, keys, 6) + registry, keys := epoch.GenRegistry(rng, 3) + qcs := makeSequentialFullCommitQCs(rng, registry, keys, 6) - gp, err := NewFullCommitQCPersister(utils.Some(dir), committee) + gp, err := NewFullCommitQCPersister(utils.Some(dir), registry.FirstBlock()) require.NoError(t, err) for _, qc := range qcs[:3] { require.NoError(t, gp.PersistQC(qc)) } require.NoError(t, gp.Close()) - gp2, err := NewFullCommitQCPersister(utils.Some(dir), committee) + gp2, err := NewFullCommitQCPersister(utils.Some(dir), registry.FirstBlock()) require.NoError(t, err) require.Equal(t, 3, len(gp2.ConsumeLoaded())) for _, qc := range qcs[3:] { require.NoError(t, gp2.PersistQC(qc)) } - require.Equal(t, qcs[5].QC().GlobalRange(committee).Next, gp2.Next()) + require.Equal(t, qcs[5].QC().GlobalRange(registry.FirstBlock()).Next, gp2.Next()) require.NoError(t, gp2.Close()) - gp3, err := NewFullCommitQCPersister(utils.Some(dir), committee) + gp3, err := NewFullCommitQCPersister(utils.Some(dir), registry.FirstBlock()) require.NoError(t, err) require.Equal(t, 6, len(gp3.ConsumeLoaded())) require.NoError(t, gp3.Close()) @@ -267,23 +270,23 @@ func TestFullCommitQCContinueAfterReload(t *testing.T) { func TestFullCommitQCTruncateMidRange(t *testing.T) { dir := t.TempDir() rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 3) - qcs := makeSequentialFullCommitQCs(rng, committee, keys, 5) + registry, keys := epoch.GenRegistry(rng, 3) + qcs := makeSequentialFullCommitQCs(rng, registry, keys, 5) - gp, err := NewFullCommitQCPersister(utils.Some(dir), committee) + gp, err := NewFullCommitQCPersister(utils.Some(dir), registry.FirstBlock()) require.NoError(t, err) for _, qc := range qcs { require.NoError(t, gp.PersistQC(qc)) } // Truncate at a point inside the first QC's range. // The first QC should be kept because its range extends past truncPoint. - gr0 := qcs[0].QC().GlobalRange(committee) + gr0 := qcs[0].QC().GlobalRange(registry.FirstBlock()) if gr0.Len() > 1 { midPoint := gr0.First + types.GlobalBlockNumber(gr0.Len()/2) require.NoError(t, gp.TruncateBefore(midPoint)) require.NoError(t, gp.Close()) - gp2, err := NewFullCommitQCPersister(utils.Some(dir), committee) + gp2, err := NewFullCommitQCPersister(utils.Some(dir), registry.FirstBlock()) require.NoError(t, err) require.Equal(t, 5, len(gp2.ConsumeLoaded())) require.NoError(t, gp2.Close()) diff --git a/sei-tendermint/internal/autobahn/consensus/persist/globalblocks.go b/sei-tendermint/internal/autobahn/consensus/persist/globalblocks.go index 9471994e3c..86e9e9b918 100644 --- a/sei-tendermint/internal/autobahn/consensus/persist/globalblocks.go +++ b/sei-tendermint/internal/autobahn/consensus/persist/globalblocks.go @@ -45,10 +45,10 @@ func (loadedGlobalBlockCodec) Unmarshal(raw []byte) (LoadedGlobalBlock, error) { // globalBlockState is the mutable state protected by GlobalBlockPersister's mutex. type globalBlockState struct { - iw utils.Option[*indexedWAL[LoadedGlobalBlock]] - committee *types.Committee - next types.GlobalBlockNumber - loaded []LoadedGlobalBlock + iw utils.Option[*indexedWAL[LoadedGlobalBlock]] + firstBlock types.GlobalBlockNumber + next types.GlobalBlockNumber + loaded []LoadedGlobalBlock } func (s *globalBlockState) persistBlock(n types.GlobalBlockNumber, block *types.Block) error { @@ -105,10 +105,10 @@ type GlobalBlockPersister struct { // NewGlobalBlockPersister opens (or creates) a WAL in the globalblocks/ subdir // and replays all persisted entries. Loaded blocks are available via // ConsumeLoaded. When stateDir is None, returns a no-op persister. -func NewGlobalBlockPersister(stateDir utils.Option[string], committee *types.Committee) (*GlobalBlockPersister, error) { +func NewGlobalBlockPersister(stateDir utils.Option[string], firstBlock types.GlobalBlockNumber) (*GlobalBlockPersister, error) { sd, ok := stateDir.Get() if !ok { - return &GlobalBlockPersister{state: utils.NewMutex(&globalBlockState{committee: committee, next: committee.FirstBlock()})}, nil + return &GlobalBlockPersister{state: utils.NewMutex(&globalBlockState{firstBlock: firstBlock, next: firstBlock})}, nil } dir := filepath.Join(sd, globalBlocksDir) iw, err := openIndexedWAL(dir, loadedGlobalBlockCodec{}) @@ -116,7 +116,7 @@ func NewGlobalBlockPersister(stateDir utils.Option[string], committee *types.Com return nil, fmt.Errorf("open global block WAL in %s: %w", dir, err) } - s := &globalBlockState{iw: utils.Some(iw), committee: committee, next: committee.FirstBlock()} + s := &globalBlockState{iw: utils.Some(iw), firstBlock: firstBlock, next: firstBlock} // TODO: avoid loading all blocks on startup; cache only the last N blocks // (e.g. 1000) in memory instead. loaded, err := s.loadAll() @@ -141,13 +141,13 @@ func (gp *GlobalBlockPersister) Next() types.GlobalBlockNumber { panic("unreachable") } -// LoadedFirst returns the first loaded block number, or committee.FirstBlock() if empty. +// LoadedFirst returns the first loaded block number, or firstBlock if empty. func (gp *GlobalBlockPersister) LoadedFirst() types.GlobalBlockNumber { for s := range gp.state.Lock() { if len(s.loaded) > 0 { return s.loaded[0].Number } - return s.committee.FirstBlock() + return s.firstBlock } panic("unreachable") } diff --git a/sei-tendermint/internal/autobahn/consensus/persist/globalblocks_test.go b/sei-tendermint/internal/autobahn/consensus/persist/globalblocks_test.go index 85e50feb7c..c5e366e256 100644 --- a/sei-tendermint/internal/autobahn/consensus/persist/globalblocks_test.go +++ b/sei-tendermint/internal/autobahn/consensus/persist/globalblocks_test.go @@ -4,6 +4,7 @@ import ( "testing" "github.com/sei-protocol/sei-chain/sei-tendermint/autobahn/types" + "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/epoch" "github.com/sei-protocol/sei-chain/sei-tendermint/libs/utils" "github.com/sei-protocol/sei-chain/sei-tendermint/libs/utils/require" ) @@ -18,25 +19,21 @@ func makeGlobalBlocks(rng utils.Rng, n int) []*types.Block { func TestNewGlobalBlockPersisterEmptyDir(t *testing.T) { dir := t.TempDir() - rng := utils.TestRng() - committee, _ := types.GenCommittee(rng, 3) - fb := committee.FirstBlock() - - gp, err := NewGlobalBlockPersister(utils.Some(dir), committee) + gp, err := NewGlobalBlockPersister(utils.Some(dir), 0) require.NoError(t, err) require.NotNil(t, gp) require.Equal(t, 0, len(gp.ConsumeLoaded())) - require.Equal(t, fb, gp.Next()) + require.Equal(t, types.GlobalBlockNumber(0), gp.Next()) require.NoError(t, gp.Close()) } func TestNewGlobalBlockPersisterNoop(t *testing.T) { rng := utils.TestRng() - committee, _ := types.GenCommittee(rng, 3) - fb := committee.FirstBlock() + _, _ = epoch.GenRegistry(rng, 3) + fb := types.GlobalBlockNumber(0) blocks := makeGlobalBlocks(rng, 5) - gp, err := NewGlobalBlockPersister(utils.None[string](), committee) + gp, err := NewGlobalBlockPersister(utils.None[string](), 0) require.NoError(t, err) require.NotNil(t, gp) require.Equal(t, 0, len(gp.ConsumeLoaded())) @@ -61,11 +58,11 @@ func TestNewGlobalBlockPersisterNoop(t *testing.T) { func TestGlobalBlockPersistAndReload(t *testing.T) { dir := t.TempDir() rng := utils.TestRng() - committee, _ := types.GenCommittee(rng, 3) - fb := committee.FirstBlock() + _, _ = epoch.GenRegistry(rng, 3) + fb := types.GlobalBlockNumber(0) blocks := makeGlobalBlocks(rng, 5) - gp, err := NewGlobalBlockPersister(utils.Some(dir), committee) + gp, err := NewGlobalBlockPersister(utils.Some(dir), 0) require.NoError(t, err) for i, b := range blocks { require.NoError(t, gp.PersistBlock(fb+types.GlobalBlockNumber(i), b)) @@ -73,7 +70,7 @@ func TestGlobalBlockPersistAndReload(t *testing.T) { require.Equal(t, fb+5, gp.Next()) require.NoError(t, gp.Close()) - gp2, err := NewGlobalBlockPersister(utils.Some(dir), committee) + gp2, err := NewGlobalBlockPersister(utils.Some(dir), 0) require.NoError(t, err) loaded := gp2.ConsumeLoaded() require.Equal(t, 5, len(loaded)) @@ -87,11 +84,11 @@ func TestGlobalBlockPersistAndReload(t *testing.T) { func TestGlobalBlockTruncateAndReload(t *testing.T) { dir := t.TempDir() rng := utils.TestRng() - committee, _ := types.GenCommittee(rng, 3) - fb := committee.FirstBlock() + _, _ = epoch.GenRegistry(rng, 3) + fb := types.GlobalBlockNumber(0) blocks := makeGlobalBlocks(rng, 10) - gp, err := NewGlobalBlockPersister(utils.Some(dir), committee) + gp, err := NewGlobalBlockPersister(utils.Some(dir), 0) require.NoError(t, err) for i, b := range blocks { require.NoError(t, gp.PersistBlock(fb+types.GlobalBlockNumber(i), b)) @@ -99,7 +96,7 @@ func TestGlobalBlockTruncateAndReload(t *testing.T) { require.NoError(t, gp.TruncateBefore(fb+5)) require.NoError(t, gp.Close()) - gp2, err := NewGlobalBlockPersister(utils.Some(dir), committee) + gp2, err := NewGlobalBlockPersister(utils.Some(dir), 0) require.NoError(t, err) loaded := gp2.ConsumeLoaded() require.Equal(t, 5, len(loaded)) @@ -112,11 +109,11 @@ func TestGlobalBlockTruncateAndReload(t *testing.T) { func TestGlobalBlockTruncateAll(t *testing.T) { dir := t.TempDir() rng := utils.TestRng() - committee, _ := types.GenCommittee(rng, 3) - fb := committee.FirstBlock() + _, _ = epoch.GenRegistry(rng, 3) + fb := types.GlobalBlockNumber(0) blocks := makeGlobalBlocks(rng, 5) - gp, err := NewGlobalBlockPersister(utils.Some(dir), committee) + gp, err := NewGlobalBlockPersister(utils.Some(dir), 0) require.NoError(t, err) for i, b := range blocks { require.NoError(t, gp.PersistBlock(fb+types.GlobalBlockNumber(i), b)) @@ -125,7 +122,7 @@ func TestGlobalBlockTruncateAll(t *testing.T) { require.Equal(t, fb+10, gp.Next()) require.NoError(t, gp.Close()) - gp2, err := NewGlobalBlockPersister(utils.Some(dir), committee) + gp2, err := NewGlobalBlockPersister(utils.Some(dir), 0) require.NoError(t, err) require.Equal(t, 0, len(gp2.ConsumeLoaded())) require.Equal(t, fb, gp2.Next()) @@ -135,11 +132,11 @@ func TestGlobalBlockTruncateAll(t *testing.T) { func TestGlobalBlockDuplicateIgnored(t *testing.T) { dir := t.TempDir() rng := utils.TestRng() - committee, _ := types.GenCommittee(rng, 3) - fb := committee.FirstBlock() + _, _ = epoch.GenRegistry(rng, 3) + fb := types.GlobalBlockNumber(0) block := types.GenBlock(rng) - gp, err := NewGlobalBlockPersister(utils.Some(dir), committee) + gp, err := NewGlobalBlockPersister(utils.Some(dir), 0) require.NoError(t, err) require.NoError(t, gp.PersistBlock(fb, block)) require.NoError(t, gp.PersistBlock(fb, block)) @@ -150,11 +147,11 @@ func TestGlobalBlockDuplicateIgnored(t *testing.T) { func TestGlobalBlockGapError(t *testing.T) { dir := t.TempDir() rng := utils.TestRng() - committee, _ := types.GenCommittee(rng, 3) - fb := committee.FirstBlock() + _, _ = epoch.GenRegistry(rng, 3) + fb := types.GlobalBlockNumber(0) block := types.GenBlock(rng) - gp, err := NewGlobalBlockPersister(utils.Some(dir), committee) + gp, err := NewGlobalBlockPersister(utils.Some(dir), 0) require.NoError(t, err) err = gp.PersistBlock(fb+2, block) require.Error(t, err) @@ -165,11 +162,11 @@ func TestGlobalBlockGapError(t *testing.T) { func TestGlobalBlockTruncateBeforeNoop(t *testing.T) { dir := t.TempDir() rng := utils.TestRng() - committee, _ := types.GenCommittee(rng, 3) - fb := committee.FirstBlock() + _, _ = epoch.GenRegistry(rng, 3) + fb := types.GlobalBlockNumber(0) blocks := makeGlobalBlocks(rng, 5) - gp, err := NewGlobalBlockPersister(utils.Some(dir), committee) + gp, err := NewGlobalBlockPersister(utils.Some(dir), 0) require.NoError(t, err) for i, b := range blocks { require.NoError(t, gp.PersistBlock(fb+types.GlobalBlockNumber(i), b)) @@ -178,7 +175,7 @@ func TestGlobalBlockTruncateBeforeNoop(t *testing.T) { require.Equal(t, fb+5, gp.Next()) require.NoError(t, gp.Close()) - gp2, err := NewGlobalBlockPersister(utils.Some(dir), committee) + gp2, err := NewGlobalBlockPersister(utils.Some(dir), 0) require.NoError(t, err) require.Equal(t, 5, len(gp2.ConsumeLoaded())) require.NoError(t, gp2.Close()) @@ -187,18 +184,18 @@ func TestGlobalBlockTruncateBeforeNoop(t *testing.T) { func TestGlobalBlockContinueAfterReload(t *testing.T) { dir := t.TempDir() rng := utils.TestRng() - committee, _ := types.GenCommittee(rng, 3) - fb := committee.FirstBlock() + _, _ = epoch.GenRegistry(rng, 3) + fb := types.GlobalBlockNumber(0) blocks := makeGlobalBlocks(rng, 10) - gp, err := NewGlobalBlockPersister(utils.Some(dir), committee) + gp, err := NewGlobalBlockPersister(utils.Some(dir), 0) require.NoError(t, err) for i := range 5 { require.NoError(t, gp.PersistBlock(fb+types.GlobalBlockNumber(i), blocks[i])) } require.NoError(t, gp.Close()) - gp2, err := NewGlobalBlockPersister(utils.Some(dir), committee) + gp2, err := NewGlobalBlockPersister(utils.Some(dir), 0) require.NoError(t, err) require.Equal(t, 5, len(gp2.ConsumeLoaded())) for i := 5; i < 10; i++ { @@ -207,7 +204,7 @@ func TestGlobalBlockContinueAfterReload(t *testing.T) { require.Equal(t, fb+10, gp2.Next()) require.NoError(t, gp2.Close()) - gp3, err := NewGlobalBlockPersister(utils.Some(dir), committee) + gp3, err := NewGlobalBlockPersister(utils.Some(dir), 0) require.NoError(t, err) require.Equal(t, 10, len(gp3.ConsumeLoaded())) require.NoError(t, gp3.Close()) @@ -216,12 +213,12 @@ func TestGlobalBlockContinueAfterReload(t *testing.T) { func TestGlobalBlockTruncateAfterMiddle(t *testing.T) { dir := t.TempDir() rng := utils.TestRng() - committee, _ := types.GenCommittee(rng, 3) - fb := committee.FirstBlock() + _, _ = epoch.GenRegistry(rng, 3) + fb := types.GlobalBlockNumber(0) blocks := makeGlobalBlocks(rng, 5) // First session: persist 5 blocks. - gp, err := NewGlobalBlockPersister(utils.Some(dir), committee) + gp, err := NewGlobalBlockPersister(utils.Some(dir), 0) require.NoError(t, err) for i, b := range blocks { require.NoError(t, gp.PersistBlock(fb+types.GlobalBlockNumber(i), b)) @@ -229,7 +226,7 @@ func TestGlobalBlockTruncateAfterMiddle(t *testing.T) { require.NoError(t, gp.Close()) // Second session: reload, then TruncateAfter trims WAL and loaded. - gp2, err := NewGlobalBlockPersister(utils.Some(dir), committee) + gp2, err := NewGlobalBlockPersister(utils.Some(dir), 0) require.NoError(t, err) require.NoError(t, gp2.TruncateAfter(fb+3)) require.Equal(t, fb+3, gp2.Next()) @@ -240,7 +237,7 @@ func TestGlobalBlockTruncateAfterMiddle(t *testing.T) { require.NoError(t, gp2.Close()) // Third session: verify WAL persistence. - gp3, err := NewGlobalBlockPersister(utils.Some(dir), committee) + gp3, err := NewGlobalBlockPersister(utils.Some(dir), 0) require.NoError(t, err) loaded = gp3.ConsumeLoaded() require.Equal(t, 3, len(loaded)) @@ -252,11 +249,11 @@ func TestGlobalBlockTruncateAfterMiddle(t *testing.T) { func TestGlobalBlockTruncateAfterNoop(t *testing.T) { dir := t.TempDir() rng := utils.TestRng() - committee, _ := types.GenCommittee(rng, 3) - fb := committee.FirstBlock() + _, _ = epoch.GenRegistry(rng, 3) + fb := types.GlobalBlockNumber(0) blocks := makeGlobalBlocks(rng, 3) - gp, err := NewGlobalBlockPersister(utils.Some(dir), committee) + gp, err := NewGlobalBlockPersister(utils.Some(dir), 0) require.NoError(t, err) for i, b := range blocks { require.NoError(t, gp.PersistBlock(fb+types.GlobalBlockNumber(i), b)) @@ -270,11 +267,11 @@ func TestGlobalBlockTruncateAfterNoop(t *testing.T) { func TestGlobalBlockTruncateAfterBeforeFirst(t *testing.T) { dir := t.TempDir() rng := utils.TestRng() - committee, _ := types.GenCommittee(rng, 3) - fb := committee.FirstBlock() + _, _ = epoch.GenRegistry(rng, 3) + fb := types.GlobalBlockNumber(0) blocks := makeGlobalBlocks(rng, 5) - gp, err := NewGlobalBlockPersister(utils.Some(dir), committee) + gp, err := NewGlobalBlockPersister(utils.Some(dir), 0) require.NoError(t, err) for i, b := range blocks { require.NoError(t, gp.PersistBlock(fb+types.GlobalBlockNumber(i), b)) @@ -289,7 +286,7 @@ func TestGlobalBlockTruncateAfterBeforeFirst(t *testing.T) { require.NoError(t, gp.Close()) // Reload — should be empty. - gp2, err := NewGlobalBlockPersister(utils.Some(dir), committee) + gp2, err := NewGlobalBlockPersister(utils.Some(dir), 0) require.NoError(t, err) require.Equal(t, 0, len(gp2.ConsumeLoaded())) require.NoError(t, gp2.Close()) diff --git a/sei-tendermint/internal/autobahn/consensus/persisted_inner.go b/sei-tendermint/internal/autobahn/consensus/persisted_inner.go index 8a05a04714..6aa988153a 100644 --- a/sei-tendermint/internal/autobahn/consensus/persisted_inner.go +++ b/sei-tendermint/internal/autobahn/consensus/persisted_inner.go @@ -4,6 +4,7 @@ import ( "fmt" "github.com/sei-protocol/sei-chain/sei-tendermint/autobahn/types" + "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/epoch" "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/pb" "github.com/sei-protocol/sei-chain/sei-tendermint/internal/protoutils" "github.com/sei-protocol/sei-chain/sei-tendermint/libs/utils" @@ -81,9 +82,15 @@ func (p *persistedInner) View() types.View { // validate checks internal consistency and cryptographic signatures of persisted state. // Returns error on corrupt state. -func (p *persistedInner) validate(committee *types.Committee) error { +func (p *persistedInner) validate(registry *epoch.Registry) error { + // CommitQC was produced under its own epoch's committee. + // All other fields (votes, PrepareQC, TimeoutQC) belong to the active view, + // which may be one epoch ahead when a TimeoutQC bumped the index. + activeCommittee := registry.CommitteeFor(p.View().Index) + if cqc, ok := p.CommitQC.Get(); ok { - if err := cqc.Verify(committee); err != nil { + commitCommittee := registry.CommitteeFor(cqc.Index()) + if err := cqc.Verify(commitCommittee); err != nil { return fmt.Errorf("corrupt persisted state: CommitQC failed verification: %w", err) } } @@ -96,7 +103,7 @@ func (p *persistedInner) validate(committee *types.Committee) error { if tqcIndex != expectedIndex { return fmt.Errorf("corrupt persisted state: TimeoutQC has index %d but expected %d", tqcIndex, expectedIndex) } - if err := tqc.Verify(committee, p.CommitQC); err != nil { + if err := tqc.Verify(activeCommittee, p.CommitQC); err != nil { return fmt.Errorf("corrupt persisted state: TimeoutQC failed verification: %w", err) } } @@ -117,24 +124,24 @@ func (p *persistedInner) validate(committee *types.Committee) error { // PrepareQC is required when CommitVote is present (CommitVote requires PrepareQC justification). if pqc, ok := p.PrepareQC.Get(); ok { - if err := checkViewAndSig("PrepareQC", pqc.Proposal().View(), pqc.Verify(committee)); err != nil { + if err := checkViewAndSig("PrepareQC", pqc.Proposal().View(), pqc.Verify(activeCommittee)); err != nil { return err } } else if p.CommitVote.IsPresent() { return fmt.Errorf("corrupt persisted state: CommitVote present without PrepareQC") } if v, ok := p.CommitVote.Get(); ok { - if err := checkViewAndSig("CommitVote", v.Msg().Proposal().View(), v.VerifySig(committee)); err != nil { + if err := checkViewAndSig("CommitVote", v.Msg().Proposal().View(), v.VerifySig(activeCommittee)); err != nil { return err } } if v, ok := p.PrepareVote.Get(); ok { - if err := checkViewAndSig("PrepareVote", v.Msg().Proposal().View(), v.VerifySig(committee)); err != nil { + if err := checkViewAndSig("PrepareVote", v.Msg().Proposal().View(), v.VerifySig(activeCommittee)); err != nil { return err } } if v, ok := p.TimeoutVote.Get(); ok { - if err := checkViewAndSig("TimeoutVote", v.View(), v.Verify(committee)); err != nil { + if err := checkViewAndSig("TimeoutVote", v.View(), v.Verify(activeCommittee)); err != nil { return err } } diff --git a/sei-tendermint/internal/autobahn/consensus/state.go b/sei-tendermint/internal/autobahn/consensus/state.go index 75374a5ba4..55596e7d98 100644 --- a/sei-tendermint/internal/autobahn/consensus/state.go +++ b/sei-tendermint/internal/autobahn/consensus/state.go @@ -100,7 +100,7 @@ func newState( pers utils.Option[persist.Persister[*pb.PersistedInner]], persistedData utils.Option[*pb.PersistedInner], ) (*State, error) { - initialInner, err := newInner(persistedData, data.Committee()) + initialInner, err := newInner(persistedData, data.Registry()) if err != nil { return nil, fmt.Errorf("newInner: %w", err) } @@ -166,33 +166,36 @@ func (s *State) PushTimeoutQC(ctx context.Context, qc *types.TimeoutQC) error { // PushPrepareVote processes an unverified Prepare vote message. func (s *State) PushPrepareVote(vote *types.Signed[*types.PrepareVote]) error { - if err := vote.VerifySig(s.Data().Committee()); err != nil { + committee := s.Data().Registry().CommitteeFor(vote.Msg().Proposal().Index()) + if err := vote.VerifySig(committee); err != nil { return fmt.Errorf("vote.VerifySig(): %w", err) } for pv := range s.prepareVotes.Lock() { - pv.pushVote(s.Data().Committee(), vote) + pv.pushVote(committee, vote) } return nil } // PushCommitVote processes an unverified CommitVote message. func (s *State) PushCommitVote(vote *types.Signed[*types.CommitVote]) error { - if err := vote.VerifySig(s.Data().Committee()); err != nil { + committee := s.Data().Registry().CommitteeFor(vote.Msg().Proposal().Index()) + if err := vote.VerifySig(committee); err != nil { return fmt.Errorf("vote.VerifySig(): %w", err) } for cv := range s.commitVotes.Lock() { - cv.pushVote(s.Data().Committee(), vote) + cv.pushVote(committee, vote) } return nil } // PushTimeoutVote processes an unverified FullTimeoutVote message. func (s *State) PushTimeoutVote(vote *types.FullTimeoutVote) error { - if err := vote.Verify(s.Data().Committee()); err != nil { + committee := s.Data().Registry().CommitteeFor(vote.View().Index) + if err := vote.Verify(committee); err != nil { return fmt.Errorf("vote.Verify(): %w", err) } for tv := range s.timeoutVotes.Lock() { - tv.pushVote(s.Data().Committee(), vote) + tv.pushVote(committee, vote) } return nil } @@ -203,8 +206,8 @@ func (s *State) Avail() *avail.State { return s.avail } // Constructs new proposals. func (s *State) runPropose(ctx context.Context) error { - committee := s.Data().Committee() return s.myView.Iter(ctx, func(ctx context.Context, vs types.ViewSpec) error { + committee := s.Data().Registry().CommitteeFor(vs.View().Index) if committee.Leader(vs.View()) != s.cfg.Key.Public() { return nil // not the leader. } @@ -214,7 +217,7 @@ func (s *State) runPropose(ctx context.Context) error { return nil } // Wait for laneQCs. - laneQCsMap, err := s.avail.WaitForLaneQCs(ctx, vs.CommitQC) + laneQCsMap, err := s.avail.WaitForLaneQCs(ctx, vs.CommitQC, s.Data().Registry().EpochFor(vs.View().Index)) if err != nil { return fmt.Errorf("s.avail.WaitForLaneQCs(): %w", err) } @@ -223,6 +226,8 @@ func (s *State) runPropose(ctx context.Context) error { s.cfg.Key, committee, vs, + s.Data().Registry().FirstBlock(), + s.Data().Registry().GenesisTimestamp(), time.Now(), laneQCsMap, s.avail.LastAppQC(), diff --git a/sei-tendermint/internal/autobahn/consensus/state_test.go b/sei-tendermint/internal/autobahn/consensus/state_test.go index 43cdb6ef61..41f755a542 100644 --- a/sei-tendermint/internal/autobahn/consensus/state_test.go +++ b/sei-tendermint/internal/autobahn/consensus/state_test.go @@ -8,6 +8,7 @@ import ( "github.com/sei-protocol/sei-chain/sei-tendermint/autobahn/types" "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/data" + "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/epoch" "github.com/sei-protocol/sei-chain/sei-tendermint/libs/utils" "github.com/sei-protocol/sei-chain/sei-tendermint/libs/utils/require" "github.com/sei-protocol/sei-chain/sei-tendermint/libs/utils/scope" @@ -17,10 +18,10 @@ import ( // view timeout (so voteTimeout is only triggered explicitly). // keys[0] is used as the node's signing key. func newTestState(rng utils.Rng) (*State, []types.SecretKey) { - committee, keys := types.GenCommittee(rng, 3) + registry, keys := epoch.GenRegistry(rng, 3) dataState := utils.OrPanic1(data.NewState( - &data.Config{Committee: committee}, - utils.OrPanic1(data.NewDataWAL(utils.None[string](), committee)), + &data.Config{Registry: registry}, + utils.OrPanic1(data.NewDataWAL(utils.None[string](), registry.FirstBlock())), )) s := utils.OrPanic1(NewState(&Config{ Key: keys[0], @@ -258,7 +259,7 @@ func TestVoteTimeoutPrepareQC_CurrentViewPresentInheritedNone(t *testing.T) { // voteTimeout still inherits the PrepareQC from the persisted TimeoutQC. func TestVoteTimeoutPrepareQC_PersistedRestart(t *testing.T) { rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 3) + registry, keys := epoch.GenRegistry(rng, 3) dir := t.TempDir() makeCfg := func() *Config { @@ -270,8 +271,8 @@ func TestVoteTimeoutPrepareQC_PersistedRestart(t *testing.T) { } makeDataState := func() *data.State { return utils.OrPanic1(data.NewState( - &data.Config{Committee: committee}, - utils.OrPanic1(data.NewDataWAL(utils.None[string](), committee)), + &data.Config{Registry: registry}, + utils.OrPanic1(data.NewDataWAL(utils.None[string](), registry.FirstBlock())), )) } diff --git a/sei-tendermint/internal/autobahn/data/state.go b/sei-tendermint/internal/autobahn/data/state.go index 5aba4e17c1..cf790ce6a6 100644 --- a/sei-tendermint/internal/autobahn/data/state.go +++ b/sei-tendermint/internal/autobahn/data/state.go @@ -10,6 +10,7 @@ import ( "github.com/sei-protocol/sei-chain/sei-tendermint/autobahn/types" "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/consensus/persist" + "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/epoch" "github.com/sei-protocol/sei-chain/sei-tendermint/libs/utils" "github.com/sei-protocol/sei-chain/sei-tendermint/libs/utils/scope" ) @@ -24,8 +25,8 @@ var ErrPruned = errors.New("pruned") // Config is the config for the data State. type Config struct { - // Committee. - Committee *types.Committee + // Registry is the authoritative source of committee and stake information. + Registry *epoch.Registry // PruneAfter is the duration after which the state prunes executed blocks. PruneAfter utils.Option[time.Duration] } @@ -90,8 +91,8 @@ func (dw *DataWAL) TruncateBefore(n types.GlobalBlockNumber) error { // 6 [a,b] [X,Y) Prune crash: QCs ahead (a=Y) Tail: truncate blocks to Y // 8 [a,b] [X,Y) QCs ahead (normal, b fb { @@ -115,12 +116,12 @@ func (dw *DataWAL) reconcile(committee *types.Committee) error { // NewDataWAL constructs both global-block and global-commitqc WALs. // When stateDir is None, the returned persisters are no-ops. -func NewDataWAL(stateDir utils.Option[string], committee *types.Committee) (*DataWAL, error) { - blocks, err := persist.NewGlobalBlockPersister(stateDir, committee) +func NewDataWAL(stateDir utils.Option[string], firstBlock types.GlobalBlockNumber) (*DataWAL, error) { + blocks, err := persist.NewGlobalBlockPersister(stateDir, firstBlock) if err != nil { return nil, fmt.Errorf("global block WAL: %w", err) } - commitQCs, err := persist.NewFullCommitQCPersister(stateDir, committee) + commitQCs, err := persist.NewFullCommitQCPersister(stateDir, firstBlock) if err != nil { _ = blocks.Close() return nil, fmt.Errorf("full commitqc WAL: %w", err) @@ -132,7 +133,7 @@ func NewDataWAL(stateDir utils.Option[string], committee *types.Committee) (*Dat // Reconcile cursor inconsistency: a crash between the two parallel // TruncateBefore calls can leave one WAL truncated while the other // still has stale entries. Advance both to the max starting point. - if err := dw.reconcile(committee); err != nil { + if err := dw.reconcile(firstBlock); err != nil { _ = dw.Close() return nil, fmt.Errorf("reconcile WALs: %w", err) } @@ -174,8 +175,8 @@ type inner struct { nextQC types.GlobalBlockNumber } -func newInner(committee *types.Committee) *inner { - first := committee.FirstBlock() +func newInner(firstBlock types.GlobalBlockNumber) *inner { + first := firstBlock return &inner{ qcs: map[types.GlobalBlockNumber]*types.FullCommitQC{}, blocks: map[types.GlobalBlockNumber]*types.Block{}, @@ -203,11 +204,11 @@ func (i *inner) skipTo(n types.GlobalBlockNumber) { // insertQC verifies and inserts a FullCommitQC into the inner state. // Accepts QCs whose range starts at or before nextQC (partially pruned // prefix is silently skipped). Rejects gaps where gr.First > nextQC. -func (i *inner) insertQC(committee *types.Committee, qc *types.FullCommitQC) error { - if err := qc.Verify(committee); err != nil { +func (i *inner) insertQC(committee *types.Committee, firstBlock types.GlobalBlockNumber, qc *types.FullCommitQC) error { + if err := qc.Verify(committee, firstBlock); err != nil { return fmt.Errorf("qc.Verify(): %w", err) } - gr := qc.QC().GlobalRange(committee) + gr := qc.QC().GlobalRange(firstBlock) if gr.Next <= i.nextQC { return nil // fully behind, skip } @@ -229,7 +230,7 @@ func (i *inner) insertQC(committee *types.Committee, qc *types.FullCommitQC) err // updateNextBlock after inserting one or more blocks. This separation // allows batch insertion (e.g. PushQC inserts multiple blocks, then // advances nextBlock once). -func (i *inner) insertBlock(committee *types.Committee, n types.GlobalBlockNumber, block *types.Block) error { +func (i *inner) insertBlock(committee *types.Committee, firstBlock types.GlobalBlockNumber, n types.GlobalBlockNumber, block *types.Block) error { if n < i.first || n >= i.nextQC { return nil // outside QC range } @@ -237,7 +238,7 @@ func (i *inner) insertBlock(committee *types.Committee, n types.GlobalBlockNumbe return nil // already have it } qc := i.qcs[n] - storedGR := qc.QC().GlobalRange(committee) + storedGR := qc.QC().GlobalRange(firstBlock) want := qc.Headers()[n-storedGR.First].Hash() got := block.Header().Hash() if want != got { @@ -287,7 +288,7 @@ type State struct { // dataWAL persists blocks and QCs to WALs for crash recovery and provides // preloaded data from the previous run. Use NewDataWAL to construct it. func NewState(cfg *Config, dataWAL *DataWAL) (*State, error) { - inner := newInner(cfg.Committee) + inner := newInner(cfg.Registry.FirstBlock()) // Fast-forward cursors to where data starts. Use blocks as golden: // per-block pruning may split a QC range, so blocks determine where // useful data starts. QCs before that are kept for verification but @@ -295,13 +296,14 @@ func NewState(cfg *Config, dataWAL *DataWAL) (*State, error) { blocksFirst := dataWAL.Blocks.LoadedFirst() qcFirst := dataWAL.CommitQCs.LoadedFirst() dataFirst := max(blocksFirst, qcFirst) - if dataFirst > cfg.Committee.FirstBlock() { + if dataFirst > cfg.Registry.FirstBlock() { inner.skipTo(dataFirst) } // Restore QCs. insertQC handles partially pruned QCs (range starts // before inner.first) by skipping the pruned prefix. for _, qc := range dataWAL.CommitQCs.ConsumeLoaded() { - if err := inner.insertQC(cfg.Committee, qc); err != nil { + committee := cfg.Registry.CommitteeFor(qc.QC().Proposal().Index()) + if err := inner.insertQC(committee, cfg.Registry.FirstBlock(), qc); err != nil { return nil, fmt.Errorf("load QC from WAL: %w", err) } } @@ -315,10 +317,12 @@ func NewState(cfg *Config, dataWAL *DataWAL) (*State, error) { return nil, fmt.Errorf("block gap in WAL: expected %d, got %d", expectedBlock, lb.Number) } expectedBlock = lb.Number + 1 - if err := lb.Block.Verify(cfg.Committee); err != nil { + qc := inner.qcs[lb.Number] + committee := cfg.Registry.CommitteeFor(qc.QC().Proposal().Index()) + if err := lb.Block.Verify(committee); err != nil { return nil, fmt.Errorf("load block %d from WAL: %w", lb.Number, err) } - if err := inner.insertBlock(cfg.Committee, lb.Number, lb.Block); err != nil { + if err := inner.insertBlock(committee, cfg.Registry.FirstBlock(), lb.Number, lb.Block); err != nil { return nil, fmt.Errorf("load block %d from WAL: %w", lb.Number, err) } } @@ -342,15 +346,17 @@ func NewState(cfg *Config, dataWAL *DataWAL) (*State, error) { }, nil } -// Committee returns the committee. -func (s *State) Committee() *types.Committee { return s.cfg.Committee } +// Registry returns the epoch registry. +func (s *State) Registry() *epoch.Registry { return s.cfg.Registry } // PushQC pushes FullCommitQC and a subset of blocks that were finalized by it. // Pushing the qc and blocks is atomic, so that no unnecessary GetBlock RPCs are issued. // Even if the qc was already pushed earlier, the blocks are pushed anyway. func (s *State) PushQC(ctx context.Context, qc *types.FullCommitQC, blocks []*types.Block) error { // Wait until QC is needed. - gr := qc.QC().GlobalRange(s.cfg.Committee) + committee := s.cfg.Registry.CommitteeFor(qc.QC().Proposal().Index()) + firstBlock := s.cfg.Registry.FirstBlock() + gr := qc.QC().GlobalRange(firstBlock) needQC, err := func() (bool, error) { for inner, ctrl := range s.inner.Lock() { if err := ctrl.WaitUntil(ctx, func() bool { @@ -367,14 +373,14 @@ func (s *State) PushQC(ctx context.Context, qc *types.FullCommitQC, blocks []*ty } // Verify data. if needQC { - if err := qc.Verify(s.cfg.Committee); err != nil { + if err := qc.Verify(committee, firstBlock); err != nil { return fmt.Errorf("qc.Verify(): %w", err) } } byHash := map[types.BlockHeaderHash]*types.Block{} for _, b := range blocks { byHash[b.Header().Hash()] = b - if err := b.Verify(s.cfg.Committee); err != nil { + if err := b.Verify(committee); err != nil { return fmt.Errorf("b.Verify(): %w", err) } } @@ -393,9 +399,10 @@ func (s *State) PushQC(ctx context.Context, qc *types.FullCommitQC, blocks []*ty // Match blocks against stored (already verified) QC headers. for n := max(inner.nextBlock, gr.First); n < min(gr.Next, inner.nextQC); n += 1 { storedQC := inner.qcs[n] - storedGR := storedQC.QC().GlobalRange(s.cfg.Committee) + storedGR := storedQC.QC().GlobalRange(firstBlock) + storedCommittee := s.cfg.Registry.CommitteeFor(storedQC.QC().Proposal().Index()) if b, ok := byHash[storedQC.Headers()[n-storedGR.First].Hash()]; ok { - if err := inner.insertBlock(s.cfg.Committee, n, b); err != nil { + if err := inner.insertBlock(storedCommittee, firstBlock, n, b); err != nil { return err } } @@ -425,15 +432,22 @@ func (s *State) QC(ctx context.Context, n types.GlobalBlockNumber) (*types.FullC // PushBlock pushes block to the state. // Waits until the block header is available. func (s *State) PushBlock(ctx context.Context, n types.GlobalBlockNumber, block *types.Block) error { - // Verify outside the lock to avoid holding it during expensive crypto. - if err := block.Verify(s.cfg.Committee); err != nil { + // Pre-verify outside the lock with the epoch window committee. Blocks from + // validators in adjacent epochs are accepted here; the precise committee + // check inside the lock provides the authoritative gate. + if err := s.cfg.Registry.VerifyInWindow(block.Verify); err != nil { return fmt.Errorf("block.Verify(): %w", err) } for inner, ctrl := range s.inner.Lock() { if err := ctrl.WaitUntil(ctx, func() bool { return n < inner.nextQC }); err != nil { return err } - if err := inner.insertBlock(s.cfg.Committee, n, block); err != nil { + qc := inner.qcs[n] + committee := s.cfg.Registry.CommitteeFor(qc.QC().Proposal().Index()) + if err := block.Verify(committee); err != nil { + return fmt.Errorf("block.Verify(): %w", err) + } + if err := inner.insertBlock(committee, s.cfg.Registry.FirstBlock(), n, block); err != nil { return err } inner.updateNextBlock(s.metrics) @@ -472,7 +486,7 @@ func (s *State) GlobalBlockByHash(hash types.BlockHeaderHash) (utils.Option[*typ if !ok { return utils.None[*types.GlobalBlock](), nil } - return utils.Some(inner.globalBlockAt(s.Committee(), n)), nil + return utils.Some(inner.globalBlockAt(s.cfg.Registry, n)), nil } panic("unreachable") } @@ -515,12 +529,13 @@ func (s *State) TryBlock(n types.GlobalBlockNumber) (*types.Block, error) { // globalBlockAt assembles the GlobalBlock at height n from inner state. // Caller must have verified n is in [inner.first, inner.nextBlock); n // outside that range nil-derefs on inner.blocks[n] / inner.qcs[n]. -func (i *inner) globalBlockAt(c *types.Committee, n types.GlobalBlockNumber) *types.GlobalBlock { +func (i *inner) globalBlockAt(registry *epoch.Registry, n types.GlobalBlockNumber) *types.GlobalBlock { b := i.blocks[n] qc := i.qcs[n].QC() + firstBlock := registry.FirstBlock() return &types.GlobalBlock{ GlobalNumber: n, - Timestamp: qc.Proposal().BlockTimestamp(c, n).OrPanic("global block not in QC"), + Timestamp: qc.Proposal().BlockTimestamp(firstBlock, n).OrPanic("global block not in QC"), Header: b.Header(), Payload: b.Payload(), FinalAppState: qc.Proposal().App(), @@ -539,7 +554,7 @@ func (s *State) GlobalBlock(ctx context.Context, n types.GlobalBlockNumber) (*ty if n < inner.first { return nil, ErrPruned } - return inner.globalBlockAt(s.Committee(), n), nil + return inner.globalBlockAt(s.cfg.Registry, n), nil } panic("unreachable") } @@ -698,7 +713,7 @@ func (s *State) runPersist(ctx context.Context) error { seen := map[types.GlobalBlockNumber]bool{} for n := persistedQC; n < inner.nextQC; n++ { qc := inner.qcs[n] - first := qc.QC().GlobalRange(s.cfg.Committee).First + first := qc.QC().GlobalRange(s.cfg.Registry.FirstBlock()).First if !seen[first] { seen[first] = true b.qcs = append(b.qcs, qc) diff --git a/sei-tendermint/internal/autobahn/data/state_test.go b/sei-tendermint/internal/autobahn/data/state_test.go index 84ac54d594..1ef1f3792a 100644 --- a/sei-tendermint/internal/autobahn/data/state_test.go +++ b/sei-tendermint/internal/autobahn/data/state_test.go @@ -13,6 +13,7 @@ import ( "github.com/sei-protocol/sei-chain/sei-tendermint/autobahn/types" "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/consensus/persist" + "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/epoch" "github.com/sei-protocol/sei-chain/sei-tendermint/libs/utils" "github.com/sei-protocol/sei-chain/sei-tendermint/libs/utils/require" "github.com/sei-protocol/sei-chain/sei-tendermint/libs/utils/scope" @@ -50,11 +51,12 @@ func snapshot(s *State) Snapshot { func TestState(t *testing.T) { ctx := t.Context() rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 3) + registry, keys := epoch.GenRegistry(rng, 3) + committee := registry.LatestCommittee() if err := scope.Run(ctx, func(ctx context.Context, s scope.Scope) error { state := utils.OrPanic1(NewState(&Config{ - Committee: committee, - }, utils.OrPanic1(NewDataWAL(utils.None[string](), committee)))) + Registry: registry, + }, utils.OrPanic1(NewDataWAL(utils.None[string](), registry.FirstBlock())))) s.SpawnBgNamed("state.Run()", func() error { return utils.IgnoreCancel(state.Run(ctx)) }) @@ -63,12 +65,12 @@ func TestState(t *testing.T) { prev := utils.None[*types.CommitQC]() for i := range 3 { t.Logf("iteration %v", i) - qc, blocks := TestCommitQC(rng, committee, keys, prev) + qc, blocks := TestCommitQC(rng, committee, keys, prev, 0, time.Time{}) prev = utils.Some(qc.QC()) if err := state.PushQC(ctx, qc, blocks); err != nil { return fmt.Errorf("state.PushQC(): %w", err) } - gr := qc.QC().GlobalRange(committee) + gr := qc.QC().GlobalRange(registry.FirstBlock()) for n := gr.First; n < gr.Next; n += 1 { want.QCs[n] = qc want.Blocks[n] = blocks[n-gr.First] @@ -96,7 +98,7 @@ func TestState(t *testing.T) { wantG := &types.GlobalBlock{ GlobalNumber: n, - Timestamp: want.QCs[n].QC().Proposal().BlockTimestamp(committee, n).OrPanic("global block not in QC"), + Timestamp: want.QCs[n].QC().Proposal().BlockTimestamp(registry.FirstBlock(), n).OrPanic("global block not in QC"), Header: wantB.Header(), Payload: wantB.Payload(), FinalAppState: want.QCs[n].QC().Proposal().App(), @@ -118,15 +120,16 @@ func TestState(t *testing.T) { func TestPushQCStaleQCDoesNotCorruptState(t *testing.T) { ctx := t.Context() rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 3) + registry, keys := epoch.GenRegistry(rng, 3) + committee := registry.LatestCommittee() state := utils.OrPanic1(NewState(&Config{ - Committee: committee, - }, utils.OrPanic1(NewDataWAL(utils.None[string](), committee)))) + Registry: registry, + }, utils.OrPanic1(NewDataWAL(utils.None[string](), registry.FirstBlock())))) // Push a valid QC to advance inner.nextQC. - qc1, blocks1 := TestCommitQC(rng, committee, keys, utils.None[*types.CommitQC]()) + qc1, blocks1 := TestCommitQC(rng, committee, keys, utils.None[*types.CommitQC](), 0, time.Time{}) require.NoError(t, state.PushQC(ctx, qc1, blocks1)) - nextQC := qc1.QC().GlobalRange(committee).Next + nextQC := qc1.QC().GlobalRange(registry.FirstBlock()).Next // Construct a malicious QC signed by non-committee keys. // It starts from block 0 (stale) but extends beyond nextQC. @@ -172,11 +175,13 @@ func TestPushQCStaleQCDoesNotCorruptState(t *testing.T) { leaderKey, committee, viewSpec, + 0, + time.Time{}, time.Now(), laneQCs, utils.None[*types.AppQC](), )) - malGR := proposal.Proposal().Msg().GlobalRange(committee) + malGR := proposal.Proposal().Msg().GlobalRange(registry.FirstBlock()) require.Less(t, malGR.First, nextQC, "test setup: malicious gr.First must be < nextQC") require.Greater(t, malGR.Next, nextQC, "test setup: malicious gr.Next must be > nextQC") @@ -193,7 +198,7 @@ func TestPushQCStaleQCDoesNotCorruptState(t *testing.T) { _ = state.PushQC(ctx, maliciousQC, malBlocks) // Verify state was not corrupted: all previously pushed QCs and blocks are intact. - gr1 := qc1.QC().GlobalRange(committee) + gr1 := qc1.QC().GlobalRange(registry.FirstBlock()) for n := gr1.First; n < gr1.Next; n++ { got, err := state.QC(ctx, n) require.NoError(t, err) @@ -211,9 +216,9 @@ func TestPushQCStaleQCDoesNotCorruptState(t *testing.T) { } // Verify state is still functional: the next valid QC is accepted and visible. - qc2, blocks2 := TestCommitQC(rng, committee, keys, utils.Some(qc1.QC())) + qc2, blocks2 := TestCommitQC(rng, committee, keys, utils.Some(qc1.QC()), 0, time.Time{}) require.NoError(t, state.PushQC(ctx, qc2, blocks2)) - gr2 := qc2.QC().GlobalRange(committee) + gr2 := qc2.QC().GlobalRange(registry.FirstBlock()) for n := gr2.First; n < gr2.Next; n++ { got, err := state.QC(ctx, n) require.NoError(t, err) @@ -224,15 +229,16 @@ func TestPushQCStaleQCDoesNotCorruptState(t *testing.T) { func TestPushQCIgnoresBlocksMatchingUnverifiedHeaders(t *testing.T) { ctx := t.Context() rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 3) + registry, keys := epoch.GenRegistry(rng, 3) + committee := registry.LatestCommittee() state := utils.OrPanic1(NewState(&Config{ - Committee: committee, - }, utils.OrPanic1(NewDataWAL(utils.None[string](), committee)))) + Registry: registry, + }, utils.OrPanic1(NewDataWAL(utils.None[string](), registry.FirstBlock())))) // Push qc1 with NO blocks — only the QC is stored. - qc1, blocks1 := TestCommitQC(rng, committee, keys, utils.None[*types.CommitQC]()) + qc1, blocks1 := TestCommitQC(rng, committee, keys, utils.None[*types.CommitQC](), 0, time.Time{}) require.NoError(t, state.PushQC(ctx, qc1, nil)) - gr := qc1.QC().GlobalRange(committee) + gr := qc1.QC().GlobalRange(registry.FirstBlock()) // Build a tampered FullCommitQC: same CommitQC (same range) but with // different block headers (different payloads → different hashes). @@ -269,11 +275,12 @@ func TestPushQCIgnoresBlocksMatchingUnverifiedHeaders(t *testing.T) { func TestExecution(t *testing.T) { ctx := t.Context() rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 3) + registry, keys := epoch.GenRegistry(rng, 3) + committee := registry.LatestCommittee() if err := scope.Run(ctx, func(ctx context.Context, s scope.Scope) error { state := utils.OrPanic1(NewState(&Config{ - Committee: committee, - }, utils.OrPanic1(NewDataWAL(utils.None[string](), committee)))) + Registry: registry, + }, utils.OrPanic1(NewDataWAL(utils.None[string](), registry.FirstBlock())))) s.SpawnBgNamed("state.Run()", func() error { return utils.IgnoreCancel(state.Run(ctx)) }) @@ -281,12 +288,12 @@ func TestExecution(t *testing.T) { prev := utils.None[*types.CommitQC]() for i := range 3 { t.Logf("iteration %v", i) - qc, blocks := TestCommitQC(rng, committee, keys, prev) + qc, blocks := TestCommitQC(rng, committee, keys, prev, 0, time.Time{}) if err := state.PushQC(ctx, qc, blocks); err != nil { return fmt.Errorf("state.PushQC(): %w", err) } prev = utils.Some(qc.QC()) - gr := qc.QC().GlobalRange(committee) + gr := qc.QC().GlobalRange(registry.FirstBlock()) // PushAppHash for a block beyond nextBlock should not succeed: // it waits for persistence which never happens for unfinalised blocks. shortCtx, cancel := context.WithTimeout(ctx, 10*time.Millisecond) @@ -313,16 +320,17 @@ func TestExecution(t *testing.T) { func TestPushBlockAcceptsBlockWithQC(t *testing.T) { ctx := t.Context() rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 3) + registry, keys := epoch.GenRegistry(rng, 3) + committee := registry.LatestCommittee() state := utils.OrPanic1(NewState(&Config{ - Committee: committee, - }, utils.OrPanic1(NewDataWAL(utils.None[string](), committee)))) + Registry: registry, + }, utils.OrPanic1(NewDataWAL(utils.None[string](), registry.FirstBlock())))) // Push QC without blocks. - qc, blocks := TestCommitQC(rng, committee, keys, utils.None[*types.CommitQC]()) + qc, blocks := TestCommitQC(rng, committee, keys, utils.None[*types.CommitQC](), 0, time.Time{}) require.NoError(t, state.PushQC(ctx, qc, nil)) - gr := qc.QC().GlobalRange(committee) + gr := qc.QC().GlobalRange(registry.FirstBlock()) // PushBlock for a block whose QC is already present succeeds immediately. require.NoError(t, state.PushBlock(ctx, gr.First, blocks[0])) @@ -346,15 +354,16 @@ func TestPushBlockAcceptsBlockWithQC(t *testing.T) { func TestGlobalBlockByHash(t *testing.T) { ctx := t.Context() rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 3) + registry, keys := epoch.GenRegistry(rng, 3) + committee := registry.LatestCommittee() state := utils.OrPanic1(NewState(&Config{ - Committee: committee, - }, utils.OrPanic1(NewDataWAL(utils.None[string](), committee)))) + Registry: registry, + }, utils.OrPanic1(NewDataWAL(utils.None[string](), registry.FirstBlock())))) - qc, blocks := TestCommitQC(rng, committee, keys, utils.None[*types.CommitQC]()) + qc, blocks := TestCommitQC(rng, committee, keys, utils.None[*types.CommitQC](), 0, time.Time{}) require.NoError(t, state.PushQC(ctx, qc, blocks)) - gr := qc.QC().GlobalRange(committee) + gr := qc.QC().GlobalRange(registry.FirstBlock()) n := gr.First wantBlock := blocks[0] wantHash := wantBlock.Header().Hash() @@ -391,12 +400,12 @@ func TestGlobalBlockByHash(t *testing.T) { func TestReconcileCase1Empty(t *testing.T) { t.Log("Reconcile case 1: Fresh start (empty/empty)") rng := utils.TestRng() - committee, _ := types.GenCommittee(rng, 3) + registry, _ := epoch.GenRegistry(rng, 3) dir := t.TempDir() - fb := committee.FirstBlock() + fb := registry.FirstBlock() - dw := utils.OrPanic1(NewDataWAL(utils.Some(dir), committee)) - state := utils.OrPanic1(NewState(&Config{Committee: committee}, dw)) + dw := utils.OrPanic1(NewDataWAL(utils.Some(dir), registry.FirstBlock())) + state := utils.OrPanic1(NewState(&Config{Registry: registry}, dw)) for inner := range state.inner.Lock() { require.Equal(t, fb, inner.first) @@ -411,14 +420,15 @@ func TestReconcileCase1Empty(t *testing.T) { func TestReconcileCase2Corrupted(t *testing.T) { t.Log("Reconcile case 2: QCs lost (corruption), returns error") rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 3) + registry, keys := epoch.GenRegistry(rng, 3) + committee := registry.LatestCommittee() dir := t.TempDir() // Persist blocks and QCs normally. - qc1, blocks1 := TestCommitQC(rng, committee, keys, utils.None[*types.CommitQC]()) - gr1 := qc1.QC().GlobalRange(committee) + qc1, blocks1 := TestCommitQC(rng, committee, keys, utils.None[*types.CommitQC](), 0, time.Time{}) + gr1 := qc1.QC().GlobalRange(registry.FirstBlock()) - dw1 := utils.OrPanic1(NewDataWAL(utils.Some(dir), committee)) + dw1 := utils.OrPanic1(NewDataWAL(utils.Some(dir), registry.FirstBlock())) require.NoError(t, dw1.CommitQCs.PersistQC(qc1)) for i, n := 0, gr1.First; n < gr1.Next; n++ { require.NoError(t, dw1.Blocks.PersistBlock(n, blocks1[i])) @@ -430,7 +440,7 @@ func TestReconcileCase2Corrupted(t *testing.T) { require.NoError(t, os.RemoveAll(filepath.Join(dir, "fullcommitqcs"))) // Reopen should fail — blocks exist but QCs are gone. - _, err := NewDataWAL(utils.Some(dir), committee) + _, err := NewDataWAL(utils.Some(dir), registry.FirstBlock()) require.Error(t, err) require.Contains(t, err.Error(), "corrupted") } @@ -444,15 +454,16 @@ func TestReconcileCase3BlocksLost(t *testing.T) { t.Log("Reconcile case 3: Blocks lost (crash), QCs survive") ctx := t.Context() rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 3) + registry, keys := epoch.GenRegistry(rng, 3) + committee := registry.LatestCommittee() dir := t.TempDir() // First run: populate both WALs. - qc1, blocks1 := TestCommitQC(rng, committee, keys, utils.None[*types.CommitQC]()) - gr1 := qc1.QC().GlobalRange(committee) + qc1, blocks1 := TestCommitQC(rng, committee, keys, utils.None[*types.CommitQC](), 0, time.Time{}) + gr1 := qc1.QC().GlobalRange(registry.FirstBlock()) - dw1 := utils.OrPanic1(NewDataWAL(utils.Some(dir), committee)) - state1 := utils.OrPanic1(NewState(&Config{Committee: committee}, dw1)) + dw1 := utils.OrPanic1(NewDataWAL(utils.Some(dir), registry.FirstBlock())) + state1 := utils.OrPanic1(NewState(&Config{Registry: registry}, dw1)) require.NoError(t, state1.PushQC(ctx, qc1, blocks1)) require.NoError(t, dw1.CommitQCs.PersistQC(qc1)) for i, n := 0, gr1.First; n < gr1.Next; n++ { @@ -465,8 +476,8 @@ func TestReconcileCase3BlocksLost(t *testing.T) { require.NoError(t, os.RemoveAll(filepath.Join(dir, "globalblocks"))) // Second run: only QCs WAL survives. - dw2 := utils.OrPanic1(NewDataWAL(utils.Some(dir), committee)) - state2 := utils.OrPanic1(NewState(&Config{Committee: committee}, dw2)) + dw2 := utils.OrPanic1(NewDataWAL(utils.Some(dir), registry.FirstBlock())) + state2 := utils.OrPanic1(NewState(&Config{Registry: registry}, dw2)) // QCs loaded, blocks empty. The state needs blocks re-pushed. // Without the cursor sync fix, PushBlock here would fail with @@ -484,9 +495,9 @@ func TestReconcileCase3BlocksLost(t *testing.T) { } // State should accept the next QC normally. - qc2, blocks2 := TestCommitQC(rng, committee, keys, utils.Some(qc1.QC())) + qc2, blocks2 := TestCommitQC(rng, committee, keys, utils.Some(qc1.QC()), 0, time.Time{}) require.NoError(t, state2.PushQC(ctx, qc2, blocks2)) - require.Equal(t, qc2.QC().GlobalRange(committee).Next, state2.NextBlock()) + require.Equal(t, qc2.QC().GlobalRange(registry.FirstBlock()).Next, state2.NextBlock()) require.NoError(t, dw2.Close()) } @@ -494,18 +505,19 @@ func TestReconcileCase4Normal(t *testing.T) { t.Log("Reconcile case 4: Normal (a=X, bX)") rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 3) + registry, keys := epoch.GenRegistry(rng, 3) + committee := registry.LatestCommittee() dir := t.TempDir() - qc1, blocks1 := TestCommitQC(rng, committee, keys, utils.None[*types.CommitQC]()) - qc2, blocks2 := TestCommitQC(rng, committee, keys, utils.Some(qc1.QC())) - gr1 := qc1.QC().GlobalRange(committee) - gr2 := qc2.QC().GlobalRange(committee) + qc1, blocks1 := TestCommitQC(rng, committee, keys, utils.None[*types.CommitQC](), 0, time.Time{}) + qc2, blocks2 := TestCommitQC(rng, committee, keys, utils.Some(qc1.QC()), 0, time.Time{}) + gr1 := qc1.QC().GlobalRange(registry.FirstBlock()) + gr2 := qc2.QC().GlobalRange(registry.FirstBlock()) // Persist both QCs and all blocks. - dw := utils.OrPanic1(NewDataWAL(utils.Some(dir), committee)) + dw := utils.OrPanic1(NewDataWAL(utils.Some(dir), registry.FirstBlock())) require.NoError(t, dw.CommitQCs.PersistQC(qc1)) require.NoError(t, dw.CommitQCs.PersistQC(qc2)) allBlocks := append(blocks1, blocks2...) @@ -642,8 +656,8 @@ func TestReconcileCase5BlocksAhead(t *testing.T) { // Reopen: blocks start at gr2.First, QCs start at gr1.First. // Reconcile should truncate QCs to match blocks. - dw2 := utils.OrPanic1(NewDataWAL(utils.Some(dir), committee)) - state := utils.OrPanic1(NewState(&Config{Committee: committee}, dw2)) + dw2 := utils.OrPanic1(NewDataWAL(utils.Some(dir), registry.FirstBlock())) + state := utils.OrPanic1(NewState(&Config{Registry: registry}, dw2)) for inner := range state.inner.Lock() { require.Equal(t, gr2.First, inner.first) @@ -665,18 +679,19 @@ func TestReconcileCase6QCsAhead(t *testing.T) { t.Log("Reconcile case 6: Prune crash, QCs ahead (a=Y)") rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 3) + registry, keys := epoch.GenRegistry(rng, 3) + committee := registry.LatestCommittee() dir := t.TempDir() // Build 2 sequential QCs. - qc1, blocks1 := TestCommitQC(rng, committee, keys, utils.None[*types.CommitQC]()) - qc2, blocks2 := TestCommitQC(rng, committee, keys, utils.Some(qc1.QC())) - gr1 := qc1.QC().GlobalRange(committee) - gr2 := qc2.QC().GlobalRange(committee) + qc1, blocks1 := TestCommitQC(rng, committee, keys, utils.None[*types.CommitQC](), 0, time.Time{}) + qc2, blocks2 := TestCommitQC(rng, committee, keys, utils.Some(qc1.QC()), 0, time.Time{}) + gr1 := qc1.QC().GlobalRange(registry.FirstBlock()) + gr2 := qc2.QC().GlobalRange(registry.FirstBlock()) // Persist only qc1 to QCs WAL but persist ALL blocks (qc1 + qc2) to blocks WAL. // This simulates blocks being persisted ahead of QCs. - dw1 := utils.OrPanic1(NewDataWAL(utils.Some(dir), committee)) + dw1 := utils.OrPanic1(NewDataWAL(utils.Some(dir), registry.FirstBlock())) require.NoError(t, dw1.CommitQCs.PersistQC(qc1)) allBlocks := append(blocks1, blocks2...) for i, n := 0, gr1.First; n < gr2.Next; n++ { @@ -739,8 +755,8 @@ func TestReconcileCase7BlocksPastQCs(t *testing.T) { // On recovery, only blocks within qc1's range should be loaded. // Blocks in qc2's range have no QC and should be ignored. - dw2 := utils.OrPanic1(NewDataWAL(utils.Some(dir), committee)) - state2 := utils.OrPanic1(NewState(&Config{Committee: committee}, dw2)) + dw2 := utils.OrPanic1(NewDataWAL(utils.Some(dir), registry.FirstBlock())) + state2 := utils.OrPanic1(NewState(&Config{Registry: registry}, dw2)) // Blocks in qc1's range should be available. for n := gr1.First; n < gr1.Next; n++ { @@ -768,18 +784,19 @@ func TestReconcileCase7BlocksTail(t *testing.T) { t.Log("Reconcile case 7: Persist crash, tail truncation with re-push") ctx := t.Context() rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 3) + registry, keys := epoch.GenRegistry(rng, 3) + committee := registry.LatestCommittee() dir := t.TempDir() // Build 2 sequential QCs. - qc1, blocks1 := TestCommitQC(rng, committee, keys, utils.None[*types.CommitQC]()) - qc2, blocks2 := TestCommitQC(rng, committee, keys, utils.Some(qc1.QC())) - gr1 := qc1.QC().GlobalRange(committee) - gr2 := qc2.QC().GlobalRange(committee) + qc1, blocks1 := TestCommitQC(rng, committee, keys, utils.None[*types.CommitQC](), 0, time.Time{}) + qc2, blocks2 := TestCommitQC(rng, committee, keys, utils.Some(qc1.QC()), 0, time.Time{}) + gr1 := qc1.QC().GlobalRange(registry.FirstBlock()) + gr2 := qc2.QC().GlobalRange(registry.FirstBlock()) // Persist qc1 to both WALs, but only blocks (not QC) for qc2. // This simulates a crash during parallel persistence in runPersist. - dw1 := utils.OrPanic1(NewDataWAL(utils.Some(dir), committee)) + dw1 := utils.OrPanic1(NewDataWAL(utils.Some(dir), registry.FirstBlock())) require.NoError(t, dw1.CommitQCs.PersistQC(qc1)) allBlocks := append(blocks1, blocks2...) for i, n := 0, gr1.First; n < gr2.Next; n++ { @@ -789,12 +806,12 @@ func TestReconcileCase7BlocksTail(t *testing.T) { require.NoError(t, dw1.Close()) // Reopen: reconcile should truncate the blocks tail (qc2's blocks). - dw2 := utils.OrPanic1(NewDataWAL(utils.Some(dir), committee)) + dw2 := utils.OrPanic1(NewDataWAL(utils.Some(dir), registry.FirstBlock())) // Blocks persister cursor should now match QCs range. require.Equal(t, dw2.CommitQCs.Next(), dw2.Blocks.Next()) - state := utils.OrPanic1(NewState(&Config{Committee: committee}, dw2)) + state := utils.OrPanic1(NewState(&Config{Registry: registry}, dw2)) // qc1's blocks should be available. for n := gr1.First; n < gr1.Next; n++ { @@ -817,17 +834,18 @@ func TestReconcileCase8BlocksBehind(t *testing.T) { t.Log("Reconcile case 8: QCs ahead normal (b 0 { + if n := types.GlobalRangeOpt(prev, firstBlock).Next; n > 0 { p := types.NewAppProposal(n-1, viewSpec.View().Index, types.GenAppHash(rng)) return utils.Some(TestAppQC(keys, p)) } diff --git a/sei-tendermint/internal/autobahn/epoch/registry.go b/sei-tendermint/internal/autobahn/epoch/registry.go new file mode 100644 index 0000000000..c0bb097d88 --- /dev/null +++ b/sei-tendermint/internal/autobahn/epoch/registry.go @@ -0,0 +1,92 @@ +package epoch + +import ( + "fmt" + "time" + + "github.com/sei-protocol/sei-chain/sei-tendermint/autobahn/types" +) + +// Index is the epoch number. +type Index uint64 + +// Registry is the authoritative source of committee and stake information. +// All layers (consensus, data, avail) read from it. +// +// Currently the committee is fixed at genesis. Dynamic committee support +// will be wired up when the execution layer is ready. +type Registry struct { + genesis *types.Committee + firstBlock types.GlobalBlockNumber + genesisTimestamp time.Time +} + +// NewRegistry creates a Registry with the genesis committee. +func NewRegistry( + weights map[types.PublicKey]uint64, + firstBlock types.GlobalBlockNumber, + genesisTimestamp time.Time, +) (*Registry, error) { + genesis, err := types.NewCommittee(weights) + if err != nil { + return nil, fmt.Errorf("genesis committee: %w", err) + } + return &Registry{ + genesis: genesis, + firstBlock: firstBlock, + genesisTimestamp: genesisTimestamp, + }, nil +} + +// FirstBlock returns the first global block number of the chain. +func (r *Registry) FirstBlock() types.GlobalBlockNumber { + return r.firstBlock +} + +// GenesisTimestamp returns the genesis timestamp of the chain. +func (r *Registry) GenesisTimestamp() time.Time { + return r.genesisTimestamp +} + +// EpochFor returns the epoch index for the given RoadIndex. +// Currently always returns 0 (genesis epoch); dynamic lookup will be added +// with the execution layer. +func (r *Registry) EpochFor(_ types.RoadIndex) Index { + return 0 +} + +// CommitteeFor returns the committee active at the given RoadIndex. +// Currently always returns the genesis committee; dynamic lookup will be +// added with the execution layer. +func (r *Registry) CommitteeFor(_ types.RoadIndex) *types.Committee { + return r.genesis +} + +// LatestCommittee returns the genesis committee. +func (r *Registry) LatestCommittee() *types.Committee { + return r.genesis +} + +// EpochWindow returns the epoch→committee map for message acceptance across +// epoch transitions. With a fixed genesis committee it always returns a +// single entry. +func (r *Registry) EpochWindow() map[Index]*types.Committee { + return map[Index]*types.Committee{0: r.genesis} +} + +// VerifyInWindow calls fn with each committee in the epoch window and returns +// nil as soon as any call succeeds. Returns the last error if all fail. +func (r *Registry) VerifyInWindow(fn func(*types.Committee) error) error { + var lastErr error + for _, c := range r.EpochWindow() { + if err := fn(c); err == nil { + return nil + } else { //nolint:revive + lastErr = err + } + } + if lastErr != nil { + return lastErr + } + return fmt.Errorf("empty epoch window") +} diff --git a/sei-tendermint/internal/autobahn/epoch/registry_test.go b/sei-tendermint/internal/autobahn/epoch/registry_test.go new file mode 100644 index 0000000000..fe3e0e3df7 --- /dev/null +++ b/sei-tendermint/internal/autobahn/epoch/registry_test.go @@ -0,0 +1,42 @@ +package epoch + +import ( + "testing" + "time" + + "github.com/sei-protocol/sei-chain/sei-tendermint/autobahn/types" + "github.com/sei-protocol/sei-chain/sei-tendermint/libs/utils" +) + +func makeRegistry(t *testing.T) (*Registry, types.SecretKey) { + t.Helper() + rng := utils.TestRng() + key := types.GenSecretKey(rng) + weights := map[types.PublicKey]uint64{key.Public(): 10} + reg, err := NewRegistry(weights, 0, time.Now()) + if err != nil { + t.Fatalf("NewRegistry(): %v", err) + } + return reg, key +} + +func TestRegistry_CommitteeForAlwaysReturnsGenesis(t *testing.T) { + reg, key := makeRegistry(t) + + for _, r := range []types.RoadIndex{0, 50, 99, 100, 199} { + c := reg.CommitteeFor(r) + if c == nil { + t.Fatalf("CommitteeFor(%d) = nil", r) + } + if !c.HasReplica(key.Public()) { + t.Errorf("CommitteeFor(%d): genesis key not in committee", r) + } + } +} + +func TestNewRegistry_RejectsEmptyWeights(t *testing.T) { + _, err := NewRegistry(map[types.PublicKey]uint64{}, 0, time.Now()) + if err == nil { + t.Fatal("NewRegistry() succeeded with empty weights, want error") + } +} diff --git a/sei-tendermint/internal/autobahn/epoch/testonly.go b/sei-tendermint/internal/autobahn/epoch/testonly.go new file mode 100644 index 0000000000..cfcda1544e --- /dev/null +++ b/sei-tendermint/internal/autobahn/epoch/testonly.go @@ -0,0 +1,22 @@ +package epoch + +import ( + "time" + + "github.com/sei-protocol/sei-chain/sei-tendermint/autobahn/types" + "github.com/sei-protocol/sei-chain/sei-tendermint/libs/utils" +) + +// GenRegistry generates a random Registry of the given committee size. +// Returns the generated secret keys as well. +// Intended for use in tests only. +func GenRegistry(rng utils.Rng, size int) (*Registry, []types.SecretKey) { + sks := utils.GenSliceN(rng, size, types.GenSecretKey) + weights := map[types.PublicKey]uint64{} + for _, sk := range sks { + weights[sk.Public()] = 1000 + uint64(rng.Intn(1000)) //nolint:gosec + } + firstBlock := types.GenGlobalBlockNumber(rng) % 1000000 + registry := utils.OrPanic1(NewRegistry(weights, firstBlock, time.Now())) + return registry, sks +} diff --git a/sei-tendermint/internal/autobahn/producer/mempool_test.go b/sei-tendermint/internal/autobahn/producer/mempool_test.go index 3b83fc77f7..3366ce9ddb 100644 --- a/sei-tendermint/internal/autobahn/producer/mempool_test.go +++ b/sei-tendermint/internal/autobahn/producer/mempool_test.go @@ -16,6 +16,7 @@ import ( "github.com/sei-protocol/sei-chain/sei-tendermint/autobahn/types" "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/consensus" "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/data" + "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/epoch" "github.com/sei-protocol/sei-chain/sei-tendermint/internal/proxy" "github.com/sei-protocol/sei-chain/sei-tendermint/libs/utils" "github.com/sei-protocol/sei-chain/sei-tendermint/libs/utils/require" @@ -181,7 +182,8 @@ func (env *testEnv) Run(ctx context.Context) error { s.Spawn(func() error { return env.state.Run(ctx) }) // Process blocks. stats := blockStats{} - for i := env.data.Committee().FirstBlock(); ; i += 1 { + firstBlock := env.data.Registry().FirstBlock() + for i := firstBlock; ; i += 1 { // Wait for the next block to be finalized. b, err := env.data.GlobalBlock(ctx, i) if err != nil { @@ -189,7 +191,7 @@ func (env *testEnv) Run(ctx context.Context) error { } // Check that adding first transaction to the previous block would exceed the limit. - if i > env.data.Committee().FirstBlock() { + if i > firstBlock { tx, err := decodeTxSpec(b.Payload.Txs()[0]) if err != nil { return fmt.Errorf("decodeTxSpec(): %w", err) @@ -228,10 +230,10 @@ func (env *testEnv) Run(ctx context.Context) error { } func newTestEnv(rng utils.Rng, cfg *Config, app *proxy.Proxy) *testEnv { - committee, keys := types.GenCommittee(rng, 1) + registry, keys := epoch.GenRegistry(rng, 1) dataState := utils.OrPanic1(data.NewState( - &data.Config{Committee: committee}, - utils.OrPanic1(data.NewDataWAL(utils.None[string](), committee)), + &data.Config{Registry: registry}, + utils.OrPanic1(data.NewDataWAL(utils.None[string](), registry.FirstBlock())), )) consensusState := utils.OrPanic1(consensus.NewState(&consensus.Config{ Key: keys[0], diff --git a/sei-tendermint/internal/p2p/giga/avail_test.go b/sei-tendermint/internal/p2p/giga/avail_test.go index 2406af6350..b534b31af7 100644 --- a/sei-tendermint/internal/p2p/giga/avail_test.go +++ b/sei-tendermint/internal/p2p/giga/avail_test.go @@ -8,6 +8,7 @@ import ( "github.com/sei-protocol/sei-chain/sei-tendermint/autobahn/types" "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/avail" "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/consensus" + "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/epoch" "github.com/sei-protocol/sei-chain/sei-tendermint/libs/utils" "github.com/sei-protocol/sei-chain/sei-tendermint/libs/utils/require" "github.com/sei-protocol/sei-chain/sei-tendermint/libs/utils/scope" @@ -16,8 +17,9 @@ import ( func TestAvailClientServer(t *testing.T) { ctx := t.Context() rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 4) - env := newTestEnv(committee) + registry, keys := epoch.GenRegistry(rng, 4) + committee := registry.LatestCommittee() + env := newTestEnv(registry) var nodes []*testNode activeKeys := keys[:3] // keys are sorted by weight, so that's ok. totalWeight := uint64(0) @@ -31,7 +33,7 @@ func TestAvailClientServer(t *testing.T) { } totalBlocks := 3 * avail.BlocksPerLane - firstBlock := committee.FirstBlock() + firstBlock := nodes[0].data.Registry().FirstBlock() if err := scope.Run(ctx, func(ctx context.Context, s scope.Scope) error { t.Log("Spawn network.") s.SpawnBg(func() error { return env.Run(ctx) }) diff --git a/sei-tendermint/internal/p2p/giga/consensus_test.go b/sei-tendermint/internal/p2p/giga/consensus_test.go index 08eb75f77d..5f5c8dc23f 100644 --- a/sei-tendermint/internal/p2p/giga/consensus_test.go +++ b/sei-tendermint/internal/p2p/giga/consensus_test.go @@ -6,6 +6,7 @@ import ( "testing" "github.com/sei-protocol/sei-chain/sei-tendermint/autobahn/types" + "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/epoch" "github.com/sei-protocol/sei-chain/sei-tendermint/libs/utils" "github.com/sei-protocol/sei-chain/sei-tendermint/libs/utils/scope" ) @@ -13,14 +14,15 @@ import ( func TestConsensusClientServer(t *testing.T) { ctx := t.Context() rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 7) - firstBlock := committee.FirstBlock() - env := newTestEnv(committee) + registry, keys := epoch.GenRegistry(rng, 7) + committee := registry.LatestCommittee() + env := newTestEnv(registry) // Run only a subset of replicas, to enforce timeouts. var nodes []*testNode for _, key := range types.TestKeysWithWeight(committee, keys, committee.CommitQuorum()) { nodes = append(nodes, env.AddNode(key)) } + firstBlock := nodes[0].data.Registry().FirstBlock() if err := scope.Run(ctx, func(ctx context.Context, s scope.Scope) error { s.SpawnBg(func() error { return env.Run(ctx) }) var wantAppProposal utils.Option[*types.AppProposal] @@ -55,7 +57,7 @@ func TestConsensusClientServer(t *testing.T) { if err != nil { return fmt.Errorf("ds.QC(): %w", err) } - want.Timestamp = qc.QC().Proposal().BlockTimestamp(committee, idx).OrPanic("global block not in QC") + want.Timestamp = qc.QC().Proposal().BlockTimestamp(n.data.Registry().FirstBlock(), idx).OrPanic("global block not in QC") if err := utils.TestDiff(want, got); err != nil { return err } diff --git a/sei-tendermint/internal/p2p/giga/data_test.go b/sei-tendermint/internal/p2p/giga/data_test.go index f5249517b9..dead3a5ea0 100644 --- a/sei-tendermint/internal/p2p/giga/data_test.go +++ b/sei-tendermint/internal/p2p/giga/data_test.go @@ -9,6 +9,7 @@ import ( "github.com/sei-protocol/sei-chain/sei-tendermint/autobahn/types" "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/consensus" "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/data" + "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/epoch" "github.com/sei-protocol/sei-chain/sei-tendermint/internal/p2p/conn" "github.com/sei-protocol/sei-chain/sei-tendermint/internal/p2p/rpc" "github.com/sei-protocol/sei-chain/sei-tendermint/libs/utils" @@ -23,8 +24,8 @@ type testNode struct { func defaultViewTimeout(view types.View) time.Duration { return time.Hour } -func newTestNode(committee *types.Committee, cfg *consensus.Config) *testNode { - dataState := utils.OrPanic1(data.NewState(&data.Config{Committee: committee}, utils.OrPanic1(data.NewDataWAL(utils.None[string](), committee)))) +func newTestNode(registry *epoch.Registry, cfg *consensus.Config) *testNode { + dataState := utils.OrPanic1(data.NewState(&data.Config{Registry: registry}, utils.OrPanic1(data.NewDataWAL(utils.None[string](), registry.FirstBlock())))) consensusState, err := consensus.NewState(cfg, dataState) if err != nil { panic(fmt.Sprintf("consensus.NewState(): %v", err)) @@ -46,17 +47,18 @@ func (n *testNode) Run(ctx context.Context) error { } type testEnv struct { + registry *epoch.Registry committee *types.Committee nodes map[types.PublicKey]*testNode } -func newTestEnv(committee *types.Committee) *testEnv { - return &testEnv{committee, map[types.PublicKey]*testNode{}} +func newTestEnv(registry *epoch.Registry) *testEnv { + return &testEnv{registry, registry.LatestCommittee(), map[types.PublicKey]*testNode{}} } // Call AddNode BEFORE Run. func (e *testEnv) AddNode(key types.SecretKey) *testNode { - n := newTestNode(e.committee, &consensus.Config{ + n := newTestNode(e.registry, &consensus.Config{ Key: key, ViewTimeout: func(view types.View) time.Duration { if _, ok := e.nodes[e.committee.Leader(view)]; ok { @@ -90,11 +92,12 @@ func (e *testEnv) Run(ctx context.Context) error { func TestDataClientServer(t *testing.T) { ctx := t.Context() rng := utils.TestRng() - committee, keys := types.GenCommittee(rng, 2) - firstBlock := committee.FirstBlock() - env := newTestEnv(committee) + registry, keys := epoch.GenRegistry(rng, 2) + env := newTestEnv(registry) + committee := env.committee server := env.AddNode(keys[0]) client := env.AddNode(keys[1]) + firstBlock := server.data.Registry().FirstBlock() if err := scope.Run(ctx, func(ctx context.Context, s scope.Scope) error { s.SpawnBg(func() error { return env.Run(ctx) }) @@ -102,7 +105,7 @@ func TestDataClientServer(t *testing.T) { prev := utils.None[*types.CommitQC]() for i := range 3 { t.Logf("iteration %v", i) - qc, blocks := data.TestCommitQC(rng, committee, keys, prev) + qc, blocks := data.TestCommitQC(rng, committee, keys, prev, server.data.Registry().FirstBlock(), time.Time{}) if err := server.data.PushQC(ctx, qc, blocks); err != nil { return fmt.Errorf("serverState.PushQC(): %w", err) } diff --git a/sei-tendermint/internal/p2p/giga_router_common.go b/sei-tendermint/internal/p2p/giga_router_common.go index 9ef33db906..70a3e18be6 100644 --- a/sei-tendermint/internal/p2p/giga_router_common.go +++ b/sei-tendermint/internal/p2p/giga_router_common.go @@ -4,7 +4,6 @@ import ( "context" "errors" "fmt" - "maps" "net/url" "slices" "sync/atomic" @@ -14,6 +13,7 @@ import ( atypes "github.com/sei-protocol/sei-chain/sei-tendermint/autobahn/types" "github.com/sei-protocol/sei-chain/sei-tendermint/crypto" "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/data" + "github.com/sei-protocol/sei-chain/sei-tendermint/internal/autobahn/epoch" "github.com/sei-protocol/sei-chain/sei-tendermint/internal/p2p/giga" "github.com/sei-protocol/sei-chain/sei-tendermint/internal/p2p/rpc" "github.com/sei-protocol/sei-chain/sei-tendermint/internal/proxy" @@ -63,19 +63,20 @@ func buildDataState(cfg *GigaRouterCommonConfig) (*data.State, error) { if cfg.MaxInboundFullnodePeers < 0 || cfg.MaxInboundFullnodePeers > maxInboundFullnodePeers { return nil, fmt.Errorf("GigaRouterCommonConfig.MaxInboundFullnodePeers = %v, want 0..%v", cfg.MaxInboundFullnodePeers, maxInboundFullnodePeers) } - committee, err := atypes.NewRoundRobinElection( - slices.Collect(maps.Keys(cfg.ValidatorAddrs)), - atypes.GlobalBlockNumber(cfg.GenDoc.InitialHeight), // nolint:gosec // verified to be positive. - cfg.GenDoc.GenesisTime, - ) + firstBlock := atypes.GlobalBlockNumber(cfg.GenDoc.InitialHeight) // nolint:gosec // verified to be positive. + genesisWeights := map[atypes.PublicKey]uint64{} + for k := range cfg.ValidatorAddrs { + genesisWeights[k] = 1 + } + registry, err := epoch.NewRegistry(genesisWeights, firstBlock, cfg.GenDoc.GenesisTime) if err != nil { - return nil, fmt.Errorf("atypes.NewRoundRobinElection(): %w", err) + return nil, fmt.Errorf("epoch.NewRegistry(): %w", err) } - dataWAL, err := data.NewDataWAL(cfg.PersistentStateDir, committee) + dataWAL, err := data.NewDataWAL(cfg.PersistentStateDir, registry.FirstBlock()) if err != nil { return nil, fmt.Errorf("data.NewDataWAL(): %w", err) } - dataState, err := data.NewState(&data.Config{Committee: committee}, dataWAL) + dataState, err := data.NewState(&data.Config{Registry: registry}, dataWAL) if err != nil { return nil, fmt.Errorf("data.NewState(): %w", err) } @@ -393,6 +394,6 @@ func (r *gigaRouterCommon) RunInboundConn(ctx context.Context, hConn *handshaked // None if the caller should handle it locally. Overridden on // *gigaValidatorRouter to short-circuit self-shard sends. func (r *gigaRouterCommon) EvmProxy(sender common.Address) utils.Option[*url.URL] { - shardValidator := r.data.Committee().EvmShard(sender) + shardValidator := r.data.Registry().LatestCommittee().EvmShard(sender) return utils.Some(r.cfg.ValidatorAddrs[shardValidator].EVMRPC) } diff --git a/sei-tendermint/internal/p2p/giga_router_fullnode_test.go b/sei-tendermint/internal/p2p/giga_router_fullnode_test.go index ce5a64d778..f0262a5d01 100644 --- a/sei-tendermint/internal/p2p/giga_router_fullnode_test.go +++ b/sei-tendermint/internal/p2p/giga_router_fullnode_test.go @@ -82,7 +82,7 @@ func TestGigaRouter_Fullnode(t *testing.T) { returnedRemoteURLs := map[string]struct{}{} for range 200 { sender := common.BytesToAddress(utils.GenBytes(rng, common.AddressLength)) - shardValidator := router.data.Committee().EvmShard(sender) + shardValidator := router.data.Registry().LatestCommittee().EvmShard(sender) expectedURL := urlByValidator[shardValidator] proxyURL, ok := router.EvmProxy(sender).Get() require.True(t, ok) diff --git a/sei-tendermint/internal/p2p/giga_router_validator.go b/sei-tendermint/internal/p2p/giga_router_validator.go index 4c65cd1538..d6107e3b38 100644 --- a/sei-tendermint/internal/p2p/giga_router_validator.go +++ b/sei-tendermint/internal/p2p/giga_router_validator.go @@ -89,7 +89,7 @@ func (r *gigaValidatorRouter) Run(ctx context.Context) error { // EvmProxy on the validator returns None when the sender's shard owner is // us (handle locally via mempool, no HTTP round-trip to self). func (r *gigaValidatorRouter) EvmProxy(sender common.Address) utils.Option[*url.URL] { - shardValidator := r.data.Committee().EvmShard(sender) + shardValidator := r.data.Registry().LatestCommittee().EvmShard(sender) if r.validatorKey == shardValidator { return utils.None[*url.URL]() } diff --git a/sei-tendermint/internal/p2p/giga_router_validator_test.go b/sei-tendermint/internal/p2p/giga_router_validator_test.go index 8f971356b4..790c98cd2b 100644 --- a/sei-tendermint/internal/p2p/giga_router_validator_test.go +++ b/sei-tendermint/internal/p2p/giga_router_validator_test.go @@ -256,7 +256,7 @@ func TestGigaRouter_EvmProxy(t *testing.T) { for range 200 { sender := common.BytesToAddress(utils.GenBytes(rng, common.AddressLength)) - shardValidator := router.data.Committee().EvmShard(sender) + shardValidator := router.data.Registry().LatestCommittee().EvmShard(sender) proxyURL, ok := router.EvmProxy(sender).Get() expectedURL := urlByValidator[shardValidator] From 69b4246010873d7b426246747df938a1aeb70ee1 Mon Sep 17 00:00:00 2001 From: Wen Date: Wed, 24 Jun 2026 15:54:01 -0700 Subject: [PATCH 2/3] feat(autobahn): bake firstBlock into Proposal so GlobalRange() is absolute everywhere MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove firstBlock parameter from GlobalRange(), BlockTimestamp(), and related Verify() methods; store it in Proposal at construction time - Add global_first (optional uint64, field 6) to pb.Proposal so the epoch offset survives encode/decode round-trips; regenerate pb files - Add ViewSpec.FirstBlock and NextGlobalBlock() so callers no longer pass firstBlock at every call site — oncall reads absolute numbers - Remove GlobalRangeOpt (footgun: returned 0 when CommitQC absent, wrong for non-genesis epochs); replace call sites with explicit .Get() - Add types.BuildCommitQC test helper; remove BuildFullCommitQC (each caller owns its own block generation) Co-Authored-By: Claude Sonnet 4.6 --- avail.test | Bin 0 -> 21376306 bytes sei-db/ledger_db/block/block_db_test.go | 65 +++------ .../block/blocksim/block_generator.go | 5 +- sei-db/ledger_db/block/blocksim/blocksim.go | 2 +- .../ledger_db/block/blocksim/resume_test.go | 4 +- sei-tendermint/autobahn/types/app_proposal.go | 4 +- sei-tendermint/autobahn/types/commit_qc.go | 10 +- sei-tendermint/autobahn/types/opt.go | 10 -- sei-tendermint/autobahn/types/proposal.go | 95 +++++++------ .../autobahn/types/proposal_test.go | 86 +++++------ sei-tendermint/autobahn/types/testonly.go | 32 ++++- sei-tendermint/autobahn/types/timeout.go | 7 +- sei-tendermint/autobahn/types/types_test.go | 6 +- .../internal/autobahn/autobahn.proto | 1 + .../internal/autobahn/avail/conv_test.go | 2 +- .../internal/autobahn/avail/inner.go | 2 +- .../internal/autobahn/avail/inner_test.go | 2 +- .../internal/autobahn/avail/state.go | 4 +- .../internal/autobahn/avail/state_test.go | 33 ++--- .../internal/autobahn/consensus/inner.go | 2 +- .../consensus/persist/fullcommitqcs.go | 8 +- .../consensus/persist/fullcommitqcs_test.go | 84 +++-------- .../internal/autobahn/consensus/state.go | 4 +- .../internal/autobahn/data/state.go | 17 ++- .../internal/autobahn/data/state_test.go | 134 +++++++++--------- .../internal/autobahn/data/testonly.go | 57 ++------ .../internal/autobahn/pb/autobahn.pb.go | 24 +++- .../autobahn/pb/autobahn.wireguard.go | 19 +-- .../internal/p2p/giga/consensus_test.go | 2 +- .../internal/p2p/giga/pb/api.wireguard.go | 2 +- 30 files changed, 313 insertions(+), 410 deletions(-) create mode 100755 avail.test diff --git a/avail.test b/avail.test new file mode 100755 index 0000000000000000000000000000000000000000..5b9671f8f3cc0d7d073371f7403f17a387fed341 GIT binary patch literal 21376306 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

GgFE&M@^L_Ko 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

9c&FLKgY@YZHtUp>NN4iE) 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蒦VWiGEv+%)%e+XRORO4qpgCFDO zPcJ@pdDQ~+*3d4k1O8#*0}KC1eVcjj=l)^d53hQ-yT*Tc*Db)~_km$eJ=m77Q0HmB zJ;VJBzHLP&UhdZQ2jt5P|B$X#-{#yFzHK9Ck$mOS!wKdx%jvgwU1zQ@H@^8=b3N32 z^O(85!aVFk2Yvy{G`F?@9mR$2UeU)p?tKMOpUBIQr=bU--$(}i1Wj^-R z^Pg+@Ilph6FI+bx?VDY%GmiHd$7%YOHF3%-s`^s7pd`cVSHId__9jyW!(XtT3=B~x8_mu zcl{l8ot%~S+0nwZdh^eJOYj%OSh=(3z}GQ`}+%<=Ly z|1*AxwMDg@Et$>p6~0)!m^oesb{)B-`}w)tHBYrKn8X=_{6gM8Z#=gec=Y)n1&>zb z(BU6?u;|;HFr2#1y7hSFS7CFe=37}d0zdJWkr9EkE+2cfG@dkKRF|<&51;Q5=`b&s z+RLncrMo$~yj*G{Ow5oy2PoZ*8PdBG?9a2~bK`7pLLS!n3Y2@k4LhQ}%~!DK1#EyE zo@2L4rsb0RrfuxXqk*ay&TjktTW9mP#m`0-@7pwr^{Pm)q#<%{_OZ&G+M`SA1Dn*( zoW=fF&P1n~yppUPeI!~wlKuPOqz(I*eJ)ef_e%U-m5%jyd1no&>>3wmX8sP|h&xIq zz?t!VQQr8wc&>S@d}Z5wnWnzTq@rXo_z$L>3;HN^wS)g&Unb)T4r7cX>^xZYs!h?w zf1Y;t8S~6XoVfbvtv6{tHJUu1+gXo8=bG4{(ZE;tquuol%~!7G-E#I58~s8b+v*An zuJF+Z?5TQkjhMNb&K=fx+6sx~t34X3gRb~CI5FH@kNslCNqf>~x}L(XVlWh!T!-B; zihG@3b�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⪚F4xR7O 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 uGFZHd1;{2wR3 z&{BS%1J_g|C*Sf}w{1^;z4k|fkM%qw!uNkhfbV#IJ2C#(p9Ej0+ulE& zq`l+D*A`Dc@Vk-6ceihR@>3k1mE3l-UzzjLgv2^xotzx!>oX6Z$HDI)eQR`-`j2PeeZC4=bfazpndT2g$Ie}Y6{^RzgRi7?@|}!kA;W- zWMxdvtv^tXh(UtYY1 z?yXV2;_ZwRe)ijG`CIsF6wy{PBkdH4?Mt59j(3H@0IKkui(T!A~@pSk@= zUwQ2xhhOHXPm7+iO$EmF1GhgvJ&&`ez)QXNi2lMi-1q(d%t-Gi3cSB|g!hjdFL|ib z8n1L+f$`pbD&vJW7Zrea=?L&1H(q4)ZwtJC%c;CiTrj7=`}2M8Oa9T%Cf_BUWc1Sr z{zF+nAA}z|wfVQ-y_s)IFLC?!{7dy;;p;C1p9vo6HV+=71E9x9@llq)1Nq1Bn7ZUD zO+F#4f3n_YMaYf zErHyH0}S7xzHKC(-Rkz?@oN^J)PDNcYlM)8=%eiGc82qGdMdFL_DTET+&eD*%&sx< zudom49>DU&P+3VmN8z{)!ApF=9w7t zEgPY2EA~lqSnF8tSo4>oYa2#!t`u`gF;|Z47;K$S|CP?GyIRk;?^7SL5qf9eXYTd= zdcV|tpL>$S*EIt6X*Q;dStr@bN4@iPv`nzP)nWnm0ZA z=c8-2A5S;F=eiMavu*^q^sayW4t!Wnoyy1zIWrkOnA0J@eZ7cm}`(-X#{c3-Fuf5J=B{Ne28hB&7eXzjTsCm`c zo;umssDBNP&C^-``!%cgt{6c+=LPgbIrD$$hXqYdTC-e|sKeiFgl_V8ZJP*dwi_9|KIW4 ziSS(Ej_*a6t{y#KF#IzzJsX8zcxN*I9q39!-%`bsHQBn%*Zy>3`i9+pgY#)#{|}s? zf6=oN+$t{=9Pgf!jJNlQjY(Ud!UgW_eEmyecQ3Sv1!zJ@PDc}nd0JP zs}Cnx{y$B6{+U|!)1l`fp3ln1+o0#4S<5PWP>7yyS6@5}Tqn|xzjpf#>Wk?CdGy;K z@v~n)ik}^H<79NCYFIq|thG3@1shHR!w*~-R6p*~%dY>-$zLV9Ky}Enx3N6=)85`i zT@TWSu_q(Q-#Xx1h^~6l*hk*ycSE!`xq+BIs9%?#1lEUKSiSmF58ko@{3UsluNjoL zPts3H_H6`s1)rxc{P>i;yYVFOEp*}2*^F{y3c=^6r{I&liQ-Qf{N}-H@%sVc*M(Pl zO!C@{P7C61+DYL1Pyjx~kP-gt!ISt%wXBu=x8TG!}1_a{2YC}9r;{*64<_2 zfWATh%(K_V-^i0k>yLemep)^I37w7oH1xJ|BOk5lH2kx_bKxrFpFM!j;P)r|`a}M| z-+x?}r=KmnlZ4N#KTzZP1J+)Mf6w#d8~bVeCqDN}-%B5o&u)m;<=GeM!!akpcZEBy ze-G%xpnvBdkNi7tJi`CB5%B+qDcJi0?#F^#t-=WW!{Np3H zX#8(JPu16a&>i1PK3~&sZ|!-YKL5p+FWAP|{rpukfToxKpU^H$U-Bb-EM#od{^#P6(%Hz<>})*pK|emGx%lAoRPk}Gi;wO? z_&5Q*H6FkHGV+Hm^X!+#qkZ%y^Dld*@kGYe5+BwUj8}{O;{gwbzI>kQc+PUiv!}p# z4g!OJ{?EUD(Sg>!eAJ#($w#fHUMTj#{B@N_evb~I<|n&;(On01D(e>?fXDst$!?RU zP99}mL_T>ukTci5sjA=kx%wmy@zw{DpEtEB;%)tT_FVaQfBRu_@yZ9NUB>U8k>u7G zyKVp2ZCg1_+gh%@=_cQl+Yip{*XFCU=&81IwCh=)HkX|E{h@pJExvu@Yn%hIRDMXw zhn&p=@pH^R!*O8KTEY9TCYj; zQ!AXR3?Ts%h&{wt8z6qCUbe8bh)4|?Ij`N`HD?hKY*u`luek((!-Wr=bpGW(BiM1v^2S9o#7Z}9>uFW=pnBifo{!)CXvG@q=|=jXfibmOYXcz@$M8C7bDG& zzXSNsTesoKOX)j}|8qvh|Dk{Icr73Q2VSu{;;+KLk(*P;|8rSb^6|e@u%J8q_*V{7 zvJsT`2MmAY)=Q?D57B;3?62|Yq%dm@fDT$`B zc5Q-kkN*3gq#gfnk6vGMVf5k|Pd>HBq<{Uhcy%4~eUq7EDPkRt_T)nb*>?$<;GWhr zm$L>)IrjCwJy@Iz@Nzpr~bZ?%OzxeqHJ53g^dzAtuQYND34j!mz+b3T$U{w zCQ$z=^9)Ln3p^L6pEIeM)3`ib&U113-GDyNo?pZqVetH-;ak`XWxrG9ouNf6 zyrveJ&Y*L99xhAvG=~#CJR`Vz%yaAmH(boWJ<~6BUr{pE97>43srw?yGXLSR_S~6@S=x`{eTjd&9y;Ajj(aY9t+B7T&Z#mu5{;g} zEHR0FK8}0}-G4K6J)Au@k#(&)dkkB1Wt?@1oik{sb&Oe0d(+R3t*s+x@g}ti6`b2T z2tE$|p7x=IbhvbD1|8~$!^7bq>-;1${{6|dAMNx&J}JG!NmNugi5mO?_M#km@>P@X zdU`!@)B=ar+sH3s4-Uq6UPAk=!>!1r>1zJl+d@#k{-T{7{0*%A1*6x+)hxFPNB79A5x>RK8*%Xx;tc5b3>4Sp=^ zXdBT1%})FaZ4W=ZkG#{;wBSds#OGRLbAf1#P7uEvy0J#|dgvy(5Y0TAtbiu+@03fE z9(;l^dcP+@kN@Oa9*?`W>#M>&_}u+Yjt^ZL9N)9gww>Deoau@2r!cRSE@LXnX?iv&xeNahM$Iwq9JruOg~lQJ=xx&_JKKuzpp-G+B0^|rHLl?{|Vi1&sFy1ci}!{*3}8$3%nO%AE?;IYZA31 zy!Us!CmHePs1?_n6U8wia@#43%)+|3eD$#@u3BL0@?^s*xbWMTJ#Y6S4 zFh1!>YA^hF@ObOaLzcHb1#fx&O4&5=QZ8O%@2o1-tu!OQ5$u)nzft`CYU1Tf;e+WH zvR4axJeoaE*{eY7y!W$)SnIs?%o*^<3zN~m;CVm$gFTNN??=Wfh|Balgg>FZ^fz_7 z>yM-CKaLI9&pvw<+*{;?b}!$T`kX6j)bK(;NcsBIbD%qwhfXwD5TypPaq2JEr@bah}HSX*{;#LC%+LNB?Kf zAP*BST>w4d`DAE}XWMLCmhD5j&DTdA`b&L0k6f8PbpIrML<{s$&U=DKJhuW{8v>p` zQ3DW*;3oo4h%ts3tEI0SFA|6Ui1xn8zt+hgRkV-5&?ehhuJbUVx1;q8`Q&K~2eB(<;m z+M~ntW6n&9bnQ|x5 zs{`$_yy$R#FSLO7Ex+UY7=Guo30ac-h!-1=t%TR3$MJfTc+2H=>HiS&ALOkm&}%&Z z%&8^Sx7yd<91Gp{o7s1|0XXV@z+M>aA@A|sALpTu;4PDLae1%jYVAWvZUjGcH-2#; zKAU`se0J|1tAj7k$mRbule-b-DwA{Zv3~vc@87($G)yW zJf~Pr{;S$`1b@&MEn?S56!cYK=n8Ir*_)ZM5Yp zit*x3r2Sp=kr(^%d<*@h;6ZC|j*l@8|SV|=mTA#{R(vLgY+REw)@!d)6!8}*MyF|qBAFH$M8IH#Y}i! zKBMfnPmf<|_Sm_Zy&7p_^^s$C&mDeW$T`-<_&ojiHpS<2&NTaVwGrD$*QsyC6f22K zMR$B9^y_;P7tn{H`Ae4O$bS-lXpQ_Ky(d3Nde*~_m1i5bYCoV|;7Dh!4uB)OcaF_n z>ikjdBf~imLm6V)YHC8iOkHNtIpkvCSLGkR0k00gtJ5a8?NiQlz^&O*ji~VpZvwx_ z{BzWy?#FlB2A_Td-*Ffpppoz17+$&V_%VbSLyR$82aYt}UDVXlU)2D5UGK|x*agf3 zoO?S!&SJoce`S+X(mnvq7@N@c{m)&T-MXNK55!GS}w8up1au6YKh% z#^yF+%ldDyKIa6{iSODYh&@+^%3Qd-_kTFT7}A`liQS&%jb%LVr0T3rugJ}AoUIUZu*8l%=5%8=DaC*rP*=5m%$D{1b=8RJG1`_{CJ1#`CR-P z^n&=?>f-5%H5x1LdHuQm#g#h$bYQOK%l+!p{hj4Y^n&=(^b0>4IEYREfqu!IZN58l z;Rv}i%WEgQ@5%iO16J-MwCT8iS^pHD^R2P@@#Q+z&nt#teB$x^{cvmyC%ISt>dW#C zeZIwPyo%18k-@s(_*R=78i&m!h|I-H`Vi?IWd7r(x5Rr@-AN0v%2F@Lb8 z8Tl&5CtkrGx)s=j9?mXiKE$1yvH4WJzk+oV=6U2m&l4vsSjoQ8omZouyWf{k{A9j& zzAqvBthT7fTdSOuWVV6163vEeepWgHKCw~C7pKmK=kW`B z;5Eg9A?2Rjyu;0hSf4Q=&OLOU`0Z?B9o`WfnmbT_Q#e}$&Yt(-O8Cf*7rN%v@A&H} zf!~{tRP3gD%9+e#G;m^zj%wX^O@Vvsxi`~y4}W)!<_H>; zgQZ>B*&jA>ZR(t%=c$9xwMonw=vvd%qM^S$n}c&@aSqOyuT4LkwVYFMUV(d)xOaAe zd)sMyOo4kn+$$<{k8>E_IwOa(LgQ<^c+SuoZ+s>0_%1FQa;h{>F+K7AYu{L_cja@T zQ)g)WjhD?CTE#mR?(+?o73IyNNDf!^9b1e3%d5X#!kO-VdS~&&9`*8tzVE~7dT`?1 ze~ED@wn6V6NBf-x?oBFf-S?9M_nNr(g97)~b8mBjd)v8}EO0LjudXj}ZxZ*OC~&Wq zdyf{l7luc_T;Sd$?%iA9UK96P3fx=Cz2yb&t>@k{-#yV?`nwsKkgR28qH@kq1p4b* z%$148%Hw$;3=gb;2R!{d-N<{sKc;gjGWa>`OPr_Y;OpF5vU1<8J2t(hT*3aR_a4!=j!mWOPpeIMb7T+{1+d)@4-%|xZR6;{Wk2$SJv*k zb^mv5+t{va*$;S^^DfhN2;0y=yG`VJMtV1z{OZ2we|Pe3^x}2A`|Jmt&27ZY^=@ru zBf4Aq|8Ez|H@7jjzwZ=t^$xyI^w|FA??taFmM(siy?Fz5P zXBQ{x=De|Xo91y_-%sAYWsBl$JI5aC+QGa@b803vE{eB`X>+9BstGJFaGh)ds>1&>Ob!(-3+~#65rj)oX<`Cmxq}5v2)w;QN%{| z#J+do1Kh?Kc{Y~^vu72M|6iMVq=a0a^F5vEm?oA|-pVm^zVA&GF>dAUuoG)y-P03k z#gmy(B2`kBOjm{zY5J5MNz<>+he$VLLvB<3ed||r_S=~+*fTsdUz_2#&SUMnD?XG0 z&-<`X`V4i>u1Ze~RT+EK8LfKyV&;4&vVMnqP5e&XSDbA8B01__=SU57YZ`Z>nTtwe zLu<(=)Kf>Xg75Nis1bTp@9DeRn^WXGDx4g>i5e(;>o`7j>b`4}JrB=y=cMd84Z@kO ziGI1d4|}g0-qb$V%#Xbq>pm-S$8Jlz;(l<0@2*%{dCg3nH`ij{^Jv@ap6zv(kG{Q} z>-C^dpL^$rPdD>mtUV{Lz6o)^?93_dAO-p&YFTrXC+#P-)k< z4Q+z%%0u#)sakXSD}?8#ejb<;{Z~dY1j?yO&oEDxah_<&)~O6Wy?$ zxtNb_v*$*T=iZ}z_1FKqJ&UY?`|ujt0Q4=n9-Zaf^V$Hpl#RH-49|CouM2=$GSbbfU}GFG*)Iw!VpT;OlFX z2f;-iU-Mr7Z7yGfqf_DQ3F2#>4f6GR`1*C~1S*)f$?`RQi?3rYUn`%u65iU**$M~U zXS+F5!Sa@!ANS+AzZ|}S$9DDP0>1Ai z-y++*T>2-9{y_)9i#yRjUQE~nKQugt4g%-t_7Z4O3JvC>gRV;s%!iL2iK2swk^{V# zZlBHlImtfh+|fLHc4@K?-R13rE_sf1A6vT(eI4VB@$@Rrr>Bkc^RA6CF-POtx*_Cn zv(qp$v7Q>$+OH8ylb^C@%iFWXKQ~C8?eny`fPW{{ekMGxT3*lKk@6lQ` z{*;f#etRT+vc$x%IsY;W9>^{4jV^G8o&{Fs(vt99hrU#FG|Yn~U7U9{-!z z1H{y88{J*h6LO%+HL}0DH9mBRnvY2noaD+@=5v_C0p|-=H`GF&Oxrfq!UnXSNA$$4Q-1Q!);rB3&*`ssl3tIXW5f@` zEfLQ5MbF^-Y%@B>&U;*ZlfY_IA;FjTHQLDf-*Ua0z-A z`Mt-*(+{}sxPOwLBd&ga;cVe6Uq4GP3ujS-GiqR4IL8n@8YSMbezQI6+&gsx^L%S6>|^|@vP!h zuTB_#pa?lZ92vrE*+&rTCI6MxJ?H$p4bbli$Q9{}EA;^2Pf zTEvU0*}yNHxe(fDzLov&6B%fvb;J1C3-qq)l~Rg%;3x5m;zsYxk?572Il{Sgm+Zqg z!0(ZqrieRCPL-I1dE&j2N%^GL{$+T^y~`I37D+bnzrGLsh&72b&PzO115eSvU{$f+uG2+i( zq^u8d%W?c^<@uoD&-Y~g2l=Spcvql5Lib;v{1N@AE=6N0KQ<;QSx--NhCauhSt;NP zDK><6){(o&=>qgX3py4$`E|h@@l7FL<7|A5iTE0#E$xc-@?VTjaoaL=!ti1S9Uvb@ zymqi3FK-?P9O z{+rs@xT@)Y8~w{>wh&hfmKOA0i1=Fg_vl==I6m|Vm(KCU^sl%Hz77-LYYyDf{3C<1 z+iCPu8k*QS1fHX>h}wrX73i>>&dDE_Y6W!Ow|`tOKYQwQ67QKcPCj|9;ao3`!}EQ^ z3*$o4!ru04tWMa@IvN&GKj$~C*38HxT0qm%tR!ij$1 zQk>NfJf_A0AF$^>Xx)y!yQQYe@Ubrk5HtEz{2SlWDqQ1Rd2xN_k?ZieiOIz)z8rwy z^0(Rh1o6!V;+txC`Uz~ohO*>AWHgF>Ul^V?EBaVGc_IBghwf-we%oLhG4KHTaM;c9 zZDRgg_&a(RK2IcW)>l}5y20?%eteQki0ATh5ADPUkCY|*=!Y1MSan?D6LA}(d3vMK zjnTeC4N)&R$i`@uCilQQQxnbD?G*OE?+N0J4fB9I5To&4Ke#iw2jTw2xraTpTgb@I^K|@Mpgd@}up z>w{Z-`u+Yp_glTJIC{2EH`7jbe(!~V|F89^I$to3tej3P@Y(D>hBhxNyKou(GoNnH z;=`BL8JZ_MUvQp@?Q`|XJ@Bk*i_>*kncEZV9+j23NyKySM&=YZKZ!n-zbAXIn!2aZ zOXYp|8|b^_v>TK4MRv}7dMI91&6!m(u1k;Y&^+tqXC`_%_ucBg@-Bxqr%4xWAqwEIW@cCSP1W01oeX55}o3K5MzIF`NwEZ;k-( zt)5Sg{#Km-OZ09bxI0|9{rjhu5p(+I|K;Nr8JLR>cY^D!*x5!ti{KU2!-e=xtxlDE z{dL0kRCt*{G$@#Q4xn!ZF{If?3z_ADJ)AkHPWD zdfd5&JAHgnXgzwco*~LuI)2TW%8auk#hJ={3g(VI&XG>!rGxPi9~#=MR8Hlo;zWiT zpmD%KzG6=!^IU>$IeGtcp`B>xf38^g=YFUZd31e|82G7v#n!BRhOwo&AHyfnd{2l^ z`GI%nIyg{VWqB-DKa}^o1e*=dU9Pd0U`qq?VD(E*9^~VfFy>*#hp(`p#VI*l!KZj` zn6aV{7L-)nm@G$kh?dkKRt-Z-^!0*f1?aBZ5|5mIt0Kckj)x=9K?Rkxnu2oup{n)$EM_=0V z2eluN(VgNKWIInbX(#`8;J%NK{_{Tz>z5@)9&+^5hkbth{(Sr!RB)uwi&_xSDlVqlxP=o3+dhsn)2cPI<6! z@@O+T8J>|Y>ft#Dzh3c8n&U zPx@^Bsj;u9a1xjH(6(wOP2coS9S$elwrlRWf;iHT6UoXP`YTj#GCiR0jQyam7S3G{ zp${a-Jrn2~9IO((C&16hspdn{@Z%??v%t*??TgTTal)+2@yLr#eo4S?vEJ>0B-Mk6ky?1RXXXNH`bTi3` zrEbgmN(tpnfp<+?YdP{bD%ra#oam*$UU1M$e_iOm^yq7onmeh5f0cLG4jz@`%AdE5 zZ<&qH*Vg)h#F_t&Okd4?V9mx|H^j}HPo0g~&DqLr#L|e{%oUTi;=EdNh)U%#=fV;kC%xjy|o2V{J!`W@=NgcdlPr~ctEyHHplpc@MVTrpSJccG&JC@|zgt6{z!npB`;TeK)f(zqs z#JBz!?Ur0DI}+ax{pZQ~w$$a@e{}iwo#xkZBk=3)mrs*l-F$q~tohE(w`SKL@5e5Z zi#NLSW#@Qajl-)GigLPhLUA%(m(!gCgU}a#apO#%?)(6}T9WMD5lZydxw@0S>c=~e zwkqde!ko*?ajQqTew27A9&zn#$?Uv!$ZFr@63IOoKXlreruKOu`p@{Q)bi<>m*gYO zWS$PaUGt$g*7o9KpvO%vxedQ03V*UrW=&i7Rls)Y{eMopKwKoB*6KEQF4omw_d*ld ztd0Md_18n-+HW(ZzviAMKgd5SGjlV!`MP1*rMcM9t>T4<<%J(QRkN|9>G{r3zFrkS zM1A~FM7>CkADYDvb4TEZcojG=#+Jel^k-}-{iWx#-hw!zhj;4mFI%3+w&5!(hLzq@ z9BXS}qFtS5QHN9#Nv3}2@(u4FMd#)C#@p}1&QX<$ZWEy!d|>hB&Rw}V?{h>qY83wM z|C0Pxj6koKfBW|2cOL5%{PSs9`3=x)p=fqffM(sYH$IxJg=UpGn*I4NBg*jRwm5!I zP=-abo8m*g&;bAbd$%ET`i?)+B^fj^!q07-iGQ)CHjb|i%{Izk5WVu`+@qJ3C*_wj zvVFAkHofE+Fh2I5vCs%(VxqARQig(ufWd3dF|2?jcN}a;-bMtGUOHkhDpDzEb za_3`By;^Smrl%fUHzV`Nx8`fo__s#>!MU*o$p5qOlAh7C=ztuo&b!e8#-Cne{OJk! z)986`&bvwcbn^&0p!)*hT)w!YfLYLzbs691(W7MG8enB;g81@M=AD=u_krKn8XJ54f(a( z*899Rsaqc{e~9+aRZKOJ{->HaiuuG3Cmsc+9^lNNufk)@e4@9pvl#an6gT0O;XPyD;NNZ7H_an@_0pPyXHS;#HSkvqp09zwYE*0cd0T5+quN?*;jb&Of9S~c zQvN?*Q>8ZTJ=HIgyD)8rx;C+H%d~YwlZXE7P~p{uTW5Tlq4@Fy0ui zW{i4YIeD``n_|t|h>3|^o+EbYTs(E~$#KPsT{ho_y_h>RJmWdWeJ10Mv5s50Mbj>D zs(-bmI7%_M>LV7pGQS9#C`RftYoyc{bA@^q9At>I(%?h&h$hy8?q@=GjeXlVeBEkt z_2kXgF`ps){L7h)n|sQobr(_NdnfPVe<^nEQO<{FRIlLIB|E__`4*!m9<0I^V!K4w zG&o^jkYosYX^b9?Gk3zLjNw;l@WXdw3(*s*JBmI;9s35xiahMVHa54)pQZ-SAJ;#U z(;Mm0^OGrb^P6w9B!_oI&H0mNKM!D}-vtdN1oT($H0bCiz(M(-*#Lmf?Jxbt#85?+hGS5cG@k}+(j;BsQeY8$ZOrky8_xQw| zQ|Nn5p}wI-FSL)03#*31>-$Q5fzQCfelB*b(-P7v>C?p@G=5C^8|+~E zuAB`x+fQ3`xAwEiqw8H3roR_Vd^a!&H{kTIq31Qf#TGQfci11<;yhZr{_^#|w)S9s zV84xb${sABRxRl7jHS=hvIncIJ(zwO_Fz@O9<(E8Yh7D_%zF7k_)Gc1oE_+v9T@Ag z1LN>-a`XHb0cUD0bg*@nUd+3>joQB6$h(Mfumkkv*@0f$arxF~SucTJmH#kF{=@7N){D08dtQDN{k+%xj7kUdPNV!E>D^h*&;<9M?8*He zKS`g+&mlM4auvE_7Bm$vu@=V9OKDd}yhvSzzQ>R=`4U#X-fPy}tKHAgZZ>Bry$4Lj zmNCZ^Qr;6Cn3jI#-XCQnk)`w%^vQFwZPKH%b@=LLE=e`rJ(_p=5cB)^NuNQt5yx-V znmmp7xAK<^{N;%ofM50L$l*{g_f|9RBJ_s#3h=jWU?#3#?Dc^z-XmCe$JirqoOb8D z{5ZbT#otc%S&erl<28MO@2!lnkufT!GB${Q|4q*_J`)GgeuO^t-Zb9JKIh`UT= z=lSFC51yo7ZWsRf?%_X(H;*3g=h@M+EA%-D*y@S19Q1GfWa@(8iTYmniZRwR=coBS zttslfLbVs~O1#OMsXW>voRrN%UdkpT+3M4kId9IskZMuv}4nu!azZtL<=P;H@@UY^UFnlb3{sw3zeD>e0e_dn!nEVv^6vl2{lK8$4H)*Z; zLk}819GdjxbmEKO*0dpJcX+--mVa~82 z{zUKO+1d7-omJdx^zJHaV;h!F9+Y1tze6!T3)J4k|4(_B5 zq=K4c&1bbl@nw*St>kJX8|wQ4;`MUJIg+8j=5Za5_tJkGpMCVx$)}m~eG1^mn?HE+m)NC}_)x2Bmo#_q|M7Mv@Ku#} z-aj`tAz=*&6)Z{;0s?|!RfH7V+$1Pf+GLQr(DwH@2y47LddiyB*Usx!2; z9Y9=qQ^bRp-(Ky>N_dm}2jGU`O=;gj zdR)$l@TTEWGsXxugYhHaP1Mcx;?0{GqvY8v-h|ClF>apkfW8cGqOU4)U#}1i6#eGA zdSq9lzl%n5FS_RAvHXDsCZWgHF2{c99cZo29!&zD=Zj{--!=ko;%{~O`vm;Wz-V6E zc=TTJBLkcB1F#897}ykka4p#ERIV83dRF_e$^Lt=*(%t)+k?$X9&8#LKQI(02mAw? z(`;X^3b~J+3;Zl%PT->G2=t}ZX`1am!t(_4(X#~Ol20#>y0y^CRxc)Tj%<{IS;a}~ zdNTS$0e$M3Vx?Ti*~1Kf19+9v!-0J(=h&Q&KmCTWWj*s@`?X(L z*cJ{PZ+JfZ=f3d#5d94bo<0A<(5!r}4Etoc2hZ4)@~y0uhUbXjxgY?~nf`@eGDhKj zA9!|v{am(5a(=gn4o+nK`EHwJi4yi>8uz9K?F{#W+VhF*X^HmQ$V6tZmx}gJqc8UP zMq*ENEm|*`D8?Kz?9S|0YCp^U{j@g1f6;zsJ@fZ-mA9Wid=K_>O^*Gn{J-8$YMmWz zKbQ2kpON?H-p|78w|qFTpNq2h6IbKZSF$NU}p`R1?t-_OGLa6d=q*w5$4FFY3f zjF#p0ACUi6VQR92BSAmlnzSDwjjJ8n+aUp5EsVzT=lHy*^H6`ddIo!25bdnV^aV=h zO>8D+bhjo00#RE4=Yst$BtoB*&N= zTWMeYG43Y#Xe0gCanJR*_Yw19+y9V@O>A)O9&rwh(D;$xI*{KQ(IZUzJeM9J9ZEj4 zH;|K4;|{Dvo%j1j**00H_;C6U{QfC^Z#*Y-=y{F#)L2fOFm=Q{MG>9o0rwUn;3hqYYI-zSknj&=R^ zuuhuW9@g)(te@^n`71qXk2l{Z&kVh=4LSKLz30vM7FTLJZ9$81fgQ9ogA=V%8S?oXIqD+6l+oBsG z;5F3KIX=|WwWFvaIX2XjC=OY<`wnolcWiVBab$auy`RdKRh;qoQ75G7-};mAqYg>Y zzq=TJtgtFuR>6-t-R*21AMH#QxSfo_m%Zb|tLVF`Cpor?@l-LMkI-*bMLl~tjTl71 zlVV11AYP(sbOhZs+*V3mjQ+mcCmo9Z_aS?3_=9t3KXpF$UmB`701my(zi$2=-_Be(JtRPd7T-!ON;DUP1nUbrtY~ zFSr=le}hxp?V#KA5^LK*oj!XJb3K3;w>&@a5>RpfQq8>Am=+_Dp#z?>4q?N@={gK5X){un!kUBfEo zgAHNp>;mHZLdD%TFwW#{j?uy6-M|U+n+48O4|47S-tFx@CEEK}r|0E{Lbn^;-&O;esblA2G++t8x|`|i*66>n~wd(-wBW9nvYwAN;h-OPC* zv9pK1^5Tqwp)E7&ofj?%4Q+(9Tw^NBe4#z zHzUv1IMMQpL($jS!>X%h91ah|hXcG-^Y4DMJj>U@L)%`ao!1(@y<5fJ zt+ac$NqJM#&oVW3lIZo{hGuPirEspsm^~*SW_(yV06YsG1Q&vZ&$51ku@B}scrj}a>m^wx`y8R*4qL3yYSLzVzXyE2^Sgvg#9+M1-)*Zbj?a?3B3%D zo>mlkZsEwn=l0(hi9Sy}=&e;Ba!W!Zx+Bn0;l~f&>D_uGeN5Lkp`z~7sgbXmF8h9p z%?WzYy$-t-zt@M*1Iwtxc;5tfGq&3Q2M$Sg(DOTG+ng}kt)U*^Ws-LVo3+?DJpA7G zQ})k?=XJy_dE?N&FC9tE40LhqH4oQ}!2eB~bwkn1$;lG#%SMw#uSJ(Ze=Ttf&&ED> zHZU>U+85zz?Pb_O6ZBDq9{T%0j^O!4u0of-NlSgdhy2VPCeX}q;^Z4<0`j`oRAkp%PK>*hI2`2_*dtDFA}|b2zw7ay_{rC z_pp}0Cw4gIGRuAGEan1?hR~rkZr_*Hwa4mYrHozIQ^Uw=_<_16+I@$Hm^w2{!N=I| zX%D}pXFnj%cfNbp4q`$!^ZX9J5smyk^lF3Cb1Gw0Kk^F}zSVoqz1LlFc(~RFzo5=` z94M@r+@DfnQ`XFJtFdQ?$pvZH_+fVeaIxo7>cKsTE=j)|sZF5zL>EvWf9iF!4qsI7 zxWs0^5Tk~35}MTsjYwR~II&a2f8bz?fLE-=cgPyPf}HBF+xe$NqFvCSkK7-LcC&{2 zSwrPK)EgU1A@qiJz{w|yY#qlgXomK};30b?-=pen#D4&NpASu4OCBqG=s(l%NuGD| z-2Zkz`{IA!%^o<^Ez_Rr-;NXTS$ccepgp8*wGk=`Mg4tTjc(mVe|u?DF#SW~Sp55` zybSt z!L`{-{!%9gm?|{2i@JZq8egma6^o|5ifoxe?7QrycQA(38eJP$qu-G0;qjA$9-Ms^ zIQ!V^z2}^M-PMP`z<8$4b)sJd&SLn0wT?+}!(YcS16;@2!LH*&eb@0{ve)q;yN>1F zxcz!dcM+Ffqje?PlQLXN5#~V9@>2ob#JDJLeC8c&niR1yE*W1alFClDT03%6%@4;!9N#; zidwFIEE2tseOPqWm500k*8A{&Xw+-q*1>C>p4DT(7upm3mES;n)ijs5H2iD#e!#2I zczr0UxPztS+*Ok!AzzPR-?t%(ChmRE=2ZCCPhWZY;n#?F5nOg$N&N-U1&KeSt3?nE1gLg&D@?t7spElv;l zE%5y-50@cdnz#y&k9>)FX#64BK^aF4a;I#X#0RuDC|>s7NKdoJPg1o?;3wNOe)vg~ z@wZ@mW&DXs=toQLdH8eC_zxo2yoOAB8}nHEc<!>`M1Wo={q~g z&ng;uw)-4^SKJ(Oi$X2mkz8zZr;6GpF+Y7%2K}oLd z15fQ`JX^}|JCt+fl)IgUU)l1de*lkt{=6d1pEX{|nA#iJ1-CP%#~DX;EJVzNr3at! zf;+<7&uiGv zVr02u_H#7vybhgT&U()bJ6uP4X76yK!`a`G5d4%i^uJfl9<4|Gk>16>aGZzDTKVH1 zakeYDG}k(r+}ES5(X8Ma)#P3ye@#w0%9?zeH7VPT-g$@U4C}i&Q+D%X&{V&rYlqc8 zPbX(v@s_5Z*m(HTj!4CtBk9~PhyRYjKHlp2dvexBI`fsj`e^qr2dR(lu<@5SoBXBs zrSq3A1s-dqZxVBTwr3xIJ7phFk1K-CNqi;#o?SN9l6sEew7;j2F~(|h*vBJ*_6WHubZ8`<+*# zvD{G|0ch@Q_o6eQRkJOvQXh$#nX(4@%pCccgs-;|KVtk%;7kbmB|C@YOXKevVBcSU z0a(o*Pa*TgF0vMQh!ql-0L~q6_-j4b7ycFv7XE6y`WWw%{Wo2&QZY+0cw4+VTw!XF zB5N9-;-z zw}-A#3Sac$uZ_0UPbfbv-x`?Xd%@hBzX9gBh94Q2QyrUu&Zi9A$@B4(H8uG8+rIcI zyWw8e@kuALI~z}*pp6d^iy>Ov3GNx&3T-J5Ck~D#g?I4Y?Yy@SJdAJBk3lD``gP8AzUEo&Mp2onfc#Wm|50W=2{Gy+V zkAh>O^ZtK>#kVzHPAIgL`f+{Z?YDOK#kXtde^BB_*sWr{<` z_7ei`)o!)o&+ElMldjL;m_|sNPCKt`c_Hal%f!{-3Ona!+>6!jMlcUj7!?Ol-%Nm}c zU$i#hBP$_i6&h;J*j8UQz62Z7I@*I?ZNlDQ;>32rD~OfcgUsTn#se^%EuXw2A2EH$ zp>GcY!{!=#3~aw%{f86W&A|2-Bsb|D=6tT;7+z@aBU{eW{c>pH*{atw$~^@p@u^bS?T9Yk}4S_dYI^dEfXsO7Ux0oTxRQW8Tr3A=I-_zSfHL8pd_s zkY2+-o^IDrG{Nu?Zw+T2WeshItA$yqO0ZlC6TwUiyW8im29N-TEGR_iDA8IZzw(LX=?^e>zwch%&mv>4B zWp8C;z6cnPS8|RjX9S4%D%Sv6cd>=VG459xyM-&8J11E7VaSK&XNY6)VcE#Z;EUp3 z;@2`KN`LZgL31|Zf8W6R$`7x7NqYNoH!_>-9;yeCWX!2rl#I{RqP&c? z6fNUEJrL&D@ocIr%P$_4we$(7EFU>C>dc20V^P$J`F;Z7^e8n%|vsrNH z^Vy4@w=&sB|IT>J44#%l9=qf~UwLdeeGiV`diuAif1S>MjDvp(aNW;;G%+xNJovj5 z|Kh!qF;318>m+|R#e3Hiuhx)`fhlLq%J1tVpE+m3dyAsz%x)*N#qi!e$Y-pv^zcr6 z_N&o-t|1p%*Jl3(tF$!)Sg!)VbgkbEE;}>aFfgf@6ZU(t?0WGMpZ~nyT|JBao5?f2 zQGTQ7gyeYHu!jNPitmu#T$ROBr1wZps{)>O5^H4iph72FBbcJCh04|Dy9jc=;7@u~ zIdPaZ<03sj<9+0SsA_E~Cgd*ZZ_F_x2Qih~Z*veg{G4%?1BcUmInO>fHlSkQ9=YxT z&T%ldpJM9sd9s~!fa5LSZQb7&-manVLBX3Z|C{5F zP)vw?h5lYQLu+dAMOJxxT?Jn-GF%hq(X|{Uznb`_U_90zIsXG)e`{>*z`xPFP2S5y zuMWhw&T^AFLkW0ZrMhKa9f*sN?K-?V5Zjoi&UA!dWYmFp0{Otyfly2qYqU|YioTQ` zlNB8E8_%<5;7uHO4L-)ec_8`?a>zg07nzNvu6wif*>AQO5o9()XPD-})`MBtye3Yr! zbHmS(KhZgo@ZtpYI+YhO8a)A;ulT`wc(r)G-`2lNzL$&#PgZ|tNd86MN7e&3X1Qkp zGs(FrTan2J1n%c_U4{>5xuuV*U&LSF-5dWU^m)k1*sJ0F(Bs^B7t%4H_mZ!PZEuxt zy5*1kaRrv7CP7Us2q>&d|_2Mu9uA5!7^-jG%9s!}*#MdXmXM z;=V`g*N~pm-%hhh=Inpyu z{URT2WS{o3PusKhNqeJMhU`6>%zV^Fx%G#p#*mLcw3iy)Q}Kru;1AV4eoFIUEXqL` ztv#5J4rFLzPm2e({W@Yp?(P^4>1b-;%T5 z#Y=np^51pzJvjPi<-KQ2y`!|emy+|K@xAapzs7|}+tTCW>{HdYK)!3uRomhRj8Sq> zAO5R62EV?IFW=GECTQC?#7~jU^j#IS?H1j0{Vmxb%E8&$_BYupn!Vp#{RW>?oly%v zh3*K!NeOUJF8DD1s9fU_gwbAl=04gDNmcZ$1m2DT+&N^+iJ z79`sw1S>XnCq+vIPtv)!y=-kj`=@|XO)67hGy6aisDeIXJPY>_3G)A!if+hWT z4Dx+?-*Ujy&${~3mzDH8DEbo4Gxpn|rHU`k$}eBVTC8QQ*RjSe=$6DO_BIZU26Oq4 z^#fxRY>f=ino-nNOXr!lGG6qazO;t8qfTnkQ?uUfq)($u(wAt6vN)c-y}AO_m{P&q>)kkRN34P|T$9zi}V5cdYShlYH#afW2cOV~{LUOaDt4dyQl4Dmm;O?S8Fx z**i*s#gx5+Ic!o)YQWz425ZrAxNxrKr+I09ny2QW`DiW+Jln?t*2wrdSVL@U?Y?cz ztS9&)AF}LgvaKO=$+iamjB)Rs4*tMbW#P77cj@<6{q@T{lI&L=Hb{-vx5sKc z!tbZ`9oJ^OjLnPzo0=H|HZ|f{uw4df-LDGpkHQP1My3eodoj39TW~D}b1R`?=w_^4 ziTf$$pj_=v)&%>L+a($^j@VRhZ7<>XPS#eso5t$Nesi>*NobvT-3D)-x>t=8wUyWE zMDJwHs)<|5qt=PPj^-J4LlT3S!^&qE<04?@VozT3<`%S1e2x56-#+ozfQ)p!>DR5D zed*Ui`W_7ZQvJUfCo2{pv;LoSU!9AUf0x~h{JWf|VfEN+b zC(hth-WPZze?fw8jUOLB&#$3&qBa)l4+Bf_fetV{5 z1HPXmJzyd@UaYJA8X0~ z>JU7T7v`vca-t&iFPQUTpuaJng>BuAv1~wny@M{v`_!r~AJF?hAy&e?Pb}a-=A!+5 zTs-3BIc^Q{OrK$&4NW87WjisSI@{yt_uI2QmhXgqOoM);|-(~GL?b5w2hc4dTf!sm;VRIc(97JY4?0-!Ho6DiQ zne}a2*EH#TgTD2LJK+c79oQF5{a@W1+w@_4wA27=EV6sw7(D}sB|L@c6BfLd&fOKrDC)pa;z6_i1?d5-ZGVC$X|MVW^kY7izFSg(G`7BRA zIXL=HK9G@LXB_YCk49+faH)U)VVzr+!=yEqqFJ($imb z-k$sz(pMCtXmlEEDP4L88VbE^b&!8AJQZCSyfQWu=%Ce!O`KAzFVpyR^P9wlr06Cv zYINa2>Mmc>{-lX7B&P|Lgr%p8iqxzoFm# zSAKtAeOUW{L16!%hKJ|c|I4%X|Cy-+-~SVi!~Xy8Q~mG%kpH9oACY7KpC*rRF!G;& z{_@ZP))Vf7|D1cM`VMLQ&#c#xjDx4p;Xe2uA6-veD&2ZBIxZgszzO?QbvWH+Xfs(=^4M2Mmcf`0*tPhzf7u-yQZ$P6g?s|2EJ=(F7{S)o@Hnih-(~BndBAZ^!A1u6t zz4JGW&X7ai=tXa6^v>QOe%-U5rTImN;ALn4UWQ@gNXHIeCU{w%170{6I^{24f{rMk z34L|G?fEmOP{RScL?!x#WQxjh&Y>3WEq|EhZl8iYO}l<=U%^)%wBN5ArhS+1x&c4S zF!oyduKZ7a-LNWnt(6I>8!el`aL)Fn?~Rfd7)Q3eVAt8o19w8J%(uj~#i4lv{jL&y zq!hiR5*b_ZCATBTk_&5c!|pcm|B90<=MgU~jUxQR04q_3MP+N%!vLH@|-VU5vxl&mVaI3E|-&#%snZ-Y;IFv4gv1 z;I(21O%2( z!3c7r@Z8JSGPIx`U!P<=$+XSHo9NouLu9v^1{|St8CrnOC0%%+`>Xt;?XppMd7?YG zZkSi(PCQN z?}hwvb*wKvnMU8o!hdGus27#M79{_riN*0_Bz|vcO6+2%2is|yt~e8q%7>~LYfe7o zoY$8R?Qtp|maP@oFz`>k`5%@88J!HH)4LDIPNa-Oz4div9Wc84b3x1$WX&Xb|7^?plfSa~Q&khesfJbecJD-*T<@R=6(5IukysramI`_Q`I=Xi)YsEA5V{MtCHtZ+h*ChAV zEjD%q*fcP!eBR69d7W!5yoT|uJVRWO?t^vV=hA)^wlCoZazwi?N8BJjt##zLPHZxN zhW0{7!H*KRb~3Qp%o@VK@<$unKF`Ov|HSjohYXK3V@TQd9|3Qg?Kr;A7!uyS@TQYB z@of9xh-cfU-4xy!+dg&7gZ_!lLI1=e>z}A8urd}G=h z_9(`EmT%1L&)3+WPUHY{EYXo?hgFY6QHR+9Q?72{pKC{d5lb1!`?#&ktf@&Jjr?5vzaS>bY81-scDmUyf)DX zPcn5@!htq-s!iSr`i|1=jUtw@piS-7RS@Uxoap|H_v65vc)He3dY_pSa{;gBBp@&oS$<1{fB%+aEwl#0H_5$E zG8SDMxmWy(`5Qh3%=&&yjotTKKFa$!{FcPkPvdA7G$6L`eh!1XZbAy z{mw}+9*y_g`i^Te-b}w`yK(_cef|N`1NSe%-)0&-p@*^)bAD zur!N(Ff;>PGyDghAUv!DPKWV#DgO)}ixwwCZnMrN2amt*@jB5j!MtcwCEqr29&07^ zETX^AGl#zkWN@8pUp6|gCEn=tRFQL_Ge3;(MLjWJ@7hYfZi4z?KHo}QOrLz$bmip3 ziAH>Sz>R39{K>lw{joKJ#H-K=iThLhBJsPdO$qwk$&bS;mN36s&)4eHX`N$R49;L{ zovFND)d47`J|T4kr04km9fSQOAS?9E2R-wTedXcqZG)7DcUb$$4E(3>6pu;g|6j}6 zu(kQVnv|ES+OGN@pVX+84-|WMp6eL9V=46SYxbtU%T5}WSQZdO+(%RefqMD z#+(Q;wk5?GYUDH(umC zY|cl)uCfVu6F&S^&E|X6 zcal%o_XlO410$SNy(iTL(m62ei2o_0{)%L#PRVtQaXWB(1$eTj1KAG#E;&kZq4nTY zyvD-xqpXGci-|{h&sJ08plpA!d#BEeW_=gKt0Hd_f5LlOC#{#(%B&r0(nWt-AGMhs zhaz3$2HLBpz0I`ug7)fc6VD4BJ=+~x3h!$+v@az;ErWh5Ur+S#ADNe~%fjF-^O4`m z{-gG(psc^%&e)tTd422Hs3)se5rtpJaFJjS4A@c4M+Z{!bs@%Qcj9vuEEUg8;SayjEAvd&6W+(U-`;hYT4 z<_B;#^Q^=Pj4uXE^ubxq0!!(zf)Uw1(U&`k9W;Jb?BsFu0m*NY?U#mB_cJSxfqjmI zBQ~zH(9gZFzUK>u4DS6Ob+DHcf!h*)k28JPPqC)4!bs0nZy(<)di?zF`|ju3LGI_F z9oGLj)a2*qsK1%l}x&rU}yu1usb{ssHjX}Cryqs(J_xD8Kd2b2t8=nTSR%hbM z=et8nkZai+Pp;jS@@IgzqB*ib{3CHf!eiYVU8)>eia04_&m=}F4&B_SoLSB?ixn1R z))T%o2utUCc|5i*%WT2MOvZ_fYVqHz*HY;8h+kKFu(1i)7%YBgta}c7)kku`LwK<8 z5cbYvK&N@9IEQ~jF`Vp2>U?qR3{PakL_{!QY*jWNKP#SMl3-$a4wxWLq`!Cy?U}wQ z(Z2IH6;q)Y3S>MJL&4ugf}g>~P#{xGa$k7>c!0L_7eld(7>XOs+0RoCFBqNQ0dXbP;u_!xIYYG_OuU`wOh55cA;mza=aUOj$XDTDtcS>II_=04{WsWmf_Y;7dOuP|n76s@P^`pwu{-$Hs7E&WC&_})s04c-lpPHn14cJ_b}B#S*yPnf$I5|MYlpxF z!MCD2NobsCUgxyFa**<9kb~N*fvs|2Yn}R?$oU=0%O|Jy=~Iw{R)AYpr{5(z5^FIh zagBL4ZY*%B>y#b~oiutZ^iOttPoLc7$Bc+Z($=^FeaCf5pM?MAp|_*6wN^)_qJu*t z;m1y>=v?RUSHBs%a&Gq7t0(w&XXKDHB)8LAD^6{p>`~RmezHFx7f#OR9Jbu@B zw`R}(JWKeLJ}*c0M-q+T5jc`MJ4d{`H_f~6f==rly_>MfG$P9J`aztiWr@!^Y`RtQ*ZAqVk32(%Fm;%HBRG}&fho{&~3yeO6-n5td&fi4LZwc^4V;ch9&~MV4 zhulS0Ke4*gh}GRg&C*$A&SE1c?sN`~lpY3NiPkqFHwrKHjc{-;_*hRrs{dclduzm} zXxrF0@vBGVU&kjMlB@}?$Og2Q+A67e@%?XrEx~RaT43P!ppA+An`B$9p=_$qg9!az zP5V}6nc@D=$-pqWr!TiuO;fz)Oz;Yy?oH(AdFMX=lK0ei$ir`6wvjEkYp#`TCJ}$* z-%o)j<=;*X1n{&BKiq?i&mVh?eF=_T@mh_{&tZOztW_0%_hij)1MiGFV*L5EH`={J z?X>`7;C++uo;{7RZ*M_^eB9PvJptY~3GemW^7L=9wLae4vwx~?ibU^ato!gKSE`0D z>$IPB4YM!$EBQV~4eBz^5uGtQ^5~3H7QDz_wpNp;w&c324%dZCejVk0#_BPquB3bs zU*=o$tm*{wEXK1h_|LY_GtV|5@A&V?u5Yflmz&?VzkW+bzjA&Cd;C7dY-+cE@%Wuwo3|vLNkHZhGjBjB#sL!8I zj;ycGf78o>h+wD7gHDxETdc|nJr{yb$u=Nfr2mdLKU(nHzWk{7Cj;k48qc8}mfswh zE`AfR*GYD})|1;&TpdOtMLmdhgCFQ zI)!h4N-VN+*S)IM&b2Rh+5X4j4=2thm%MdtfVO7KTgZJrO^&U-z|&i;eX8+3Yfp2-$r!*-x%-OwHM#Usmy2E#;Ry9we*}Lz3}#uwm-oa)Mpv}sBPJ@ zmrBRkIg9qcy5#|{eYF`|cl`GZIc=A(XFSN>Sy{{EuCz+en6$~#{U85SG8*GU)(YBo zktd98XD2zFvBF5t7LVQ^13lm6#gpW$2e9kced&1%eZCj^#my(ZyMB>u_UOMK?~2YR zTTnp9NY5uCI&O3fTSowz9@H_u&D@N9+(*Zdj-RDtY@<%pDsTu`QEY_lz;X19#mF1} zeM+uHE-|{sBfhRN$?6(4S-J*o8eIdLCi#iH%bqT1mtt7DcxKvtL^_Pqwi*~Oqu!Lp zTL9nFJJKNv;O9foJ5ELK*yarB{wOkK0la3&#swABBs+K8_mQcgrCrecZJ%-u9R%LD zK~E3z>>g;XaNrrPw?S*44PF;VmntkbPR}Opd6Tj+9FB%!!KStE}@&raZ5^FDMq{!4fV@S`~SkBELj+v5%V z`z5rUHWh>D%dcOYke1Wq)U8pSzijz6-e6_6$B4twbs6+2w$3qm$aOkvo_e)QX~*yk ztDheC!b5NtL#|9lQ?#mL^*2? zeO7H%OP{f+Xim^B*{-tZl7xOr{=9{;=(?P-V0S@Rg2%GH;a2Ed3D?l-@aV9i(_YTV zoa7Sw?J9lCwfPnv+6=F3aHva1o@^33P!f2I?eX$PfSI>$OVjLF;YHB|=UAAU2|Myl zOkyQG@qYMO$caQ{e^5@mY!600JZ$Adt<6;Ffs9#m6O7#eeAS}IHH~u?*WB*B&`3KM z;zOw24{TwdF|Y-{6Kvgr?4j=}9pLc&HiqxU36bbp#=ei7m2KFeBI22>>waLcgfmq_ z@Jl_HoV@oM+M&;O(c-8GD_#oFo4(OP-;<>cRXRkE(s zdyt$P9vzC>wPTK~o$z=t>!$IE-z{>>$*DNZJWYHeYq^HCY*Ma1G~4JV&Mf!G zjMa}x>_V0=KyF{d8mx(Y!1(0`JBFq?g8xbGowVz(ul7K&)i62|6>Mp3{Jf)s#6XC@ zOD-^T@0fE;bGLf-Xm?GZ-x=(=>V%ovy_q<8&M)X!x|aM)%881zb|y~>xnweMr2H1y z#T?ep%6`NgE@yp*4}M<^+|^jPJLu6@LpPt!#OpHgH{`B(E&ra*piStJBi)Y$=5~Pk z0a^#$HgnXq;+MN>c!o{b$X@umS?gU5&athvjj49p<^aq7^;v=I*@5d> zTuX+!;>YmfOIg3mphH>sE*qL;s4xA<%1||)E+rZ282B-~YNmTWFr4drgX>@HD<93J z-$Bbq##f%MA0nJG^|Ik_W^a2l_qGk&L!uX22#%TfF6fzJv?Pz0u8FAr(XP9(e=E1G z-q0OeZ+@>w+hzaWE52CnDE_#6HS{q7A2T{Sc3ai{82SpfTXc@tOxAgJq~~PX7XOk? zUS;gK`Nobb7?UsGuj#Vkwj=B7$tx;j-Qw7o9BjPKeIwl}YQ!h-eTp9u)7bXD=ikA1 z;GH$fJY>^|37+8%vh`pG*j0^xKz6cC%t82L zXnNN8R`wlVt21k;yIpp)!1!KyuJ8DMtnop^gX0L=Y=8T(C$|?zdTvGz6ukNQ!M47{ zyVtMvWUMsYIg^mF3Ze!E6(7S{7IAb>|BUe8?`BLFgO8aq7QXFq&|G}mI|65fqsN4h zL;hR3GWwamt5Tf7IXdI5amznTo?*T8{6ms?*psHPvlaSI-Tn`_krScA$iN{>|5{Tv zINlTAzm-^#1lOX4qJw6SA|J%=lod+_{Ycvp{a7lS$7}nV5MsdY{(SOWKsdS#9Pm>-Soo>&>c5)!&c6IBm0!&I`Y?nHE;~V*Hg*Vxh6G?J^9-ib z1Vhk_K0K`B3}C2$yuknuW4+_Zej~+;*<0m8)J~y>mSBc9hO%F^`Q-a^U;Bo0Xf?8p zo|gk-jl^JV_hgB$0}FaCxKV7N;;PUmh>6!TYCDP#B2TQMAFI!gb(_WkGlCWR^n5RA zSOJyvpc^CcP zfA@T1_b(u>>#0j-DDQ1tSNQrZSKxnn>Wjnx0S|k@%>;6@`n2%|c>y`Kfc#NpRrXK1 z!yBzZS(W%R@KpQzYR2;+(K^oXaz>xxZi4qE8YIIKdxQ+T?3unY;%sz+_#*aSGBU6v zdxO!#^h`3U_be`YwJ_3iuaS9;4&AQ&&V6GoU9$9u`mwy%gzV#xpP3TAG7wxC7vas{;W@?daz^+uq+@5eE6&t2IUx3O1*Sf!nu`-#4CySJ_y&%W7=h4K3Hl@F?!cN@Mx+Fd}L=Sj%+ z!S{meA0ju@@I~Nnq2Q14r|P`0my+c(zZI_y$&b}u23!^Z5BAJ;#aG$*9}AaO-qv0{ zu2@WO+*dGe`op$U;?AT$*#>Xq9q4eXE{f)X{?M+xWUYT%@5+?nSCQK*8UACwzU9R? zUS;4p9pC83HJVx&>_LC=Cijg&*Idc(pofh&$?_e-e{#eJ^RBTI?7CYq#rP?amv)(Y z=UINrYkmn_uFS#fOuPx_*_0F8vI6?2_+a|#L?)|3XZr+nMf^_Ro*+F9Jdn;V`*sq1 z(DOg29(5(pxvnw%E@aNKQNBaHcr4G2%^MtuA!}7m=Xc<33+zp(LbJAwV8o$UQG-=m)ipMIio2%mWG2aMbPc7_`RKE-P_p1U<4_E`HI z!@eJfwh)6%zQkPj9{NbjWKQ%BFRu#TJ;%g>fagi@u5)h0#C5(!Op^b+jPncp-^#~^ zqVmCp#)Zfq&5Ig&54*F;c|(3n#Tv85*)fOW*&TkYv1GjE0i6|Gv+$ka|7-PQ03Kki zt(@t&n~2F#48SSh_WXYj!Q->O_vOKzKeVv?agRoA2+LbO74;|L7dClRDaP6-* zulUyP^6zZ?b0gzf4PC~b-rj)kLb0{*=EYT<7igc&FwdZai`B0DP4U7F-zjqe zu<6@LZQE(S>D>o%8t!9lV_xp}4^#Zp`iE~WJIZ-RrVjtGsKH^cP7L~98i(QQ@(ZVN zIMXluz|UEO^|^SU{6tyj8PQigwgOlDOT3Nm3~%#fMCHne|K%f>s^je5dyZ0M>junrqu96k+RWS+UyV0CMAt}E9`V0f9Se{-692Jvl1M!N?8keBCX z@PxdKE3TY+c-iRu7SSo?yG^BL@QvVC0dZ%gjHD~XsO`m3VF(%QzZsH+yJr$Z6Th1CwcAZOqqMPKzug-VQwX}GK zdn@gVPFh-;mNPa%OB3vq{LrHNTGKz$uAa%Z?LRNS4PO|vI1l+EJUTCGtD)!g)qoz`Fz-}%3NqK}a!H!pJ zdbdB`73uN*FgRZCxf$=pS>tu)4Qjk=e+YlLlrdih-*~$*+DrW>(J-G!tbfqTFt6Zu z^Xc&*;$H$Zq;LGo#^?LWFH7ieF#O?AjiqnVa@E7iihpSaX4ZKziLAY$Z$Gv5@-paK zhv?g=0DUW_4pzE$#FrUoY+WDv29HtB@<{Ai#J|v&kx{lG;}d^q&ai<;HG-4%CpwG2 zBsqsRjEq8jS_ytn#l$=$8AJ2|IU`AoS|{)L@i2|VD=2QI5`Ohr>C0I$57pvBe#`^k z?T4P}`_;(%q7Aa2UKZ^4p-jKyt#8tI34LG2zlZQC^Q{-}f^0L={c$n)G}H2>o5!QS z1JkCq4YE!UR};XFa5Y~r%5^z1yXsSf$)8qyNSJe#tUfZw{UYx*!dFG76xXww81f`^ zF9Cg2EYH_-%yX&c`MN#JS8MoyH&4|@5iK|KEw}TX7@Y5ene)9w^PR|CFXi8Z>G@iG zEOoEfe8I)UZ1#!x`wUr(xoeJ3Q(HaGwPZ2Tqmb;)<$SY9--M!(vlZ7}>|Uj|Ci2W% zD?cwQ0sZL&-$a9St#d(tLYsP~SclSe11!wzEmMI-@$K^rFC!4V`|{{O4_S&dK~Yp=*f&nexc-C(S5Vd{ut)Op~+h3 z&uX2y);jxjIYO$p0lkzRCv;Pu_Gg#xv-IPxYV{rb!h8ph5Y1Iy#71;KbB;oDfOcQ( z(LCzd8Jfp@G}j@(vDIarwlLQv;Od9kp_AF~7iym-wSAmiaoH^X5Qt51_;0ZEa)DPz z0XeHZSA4?a=lasiV)`Bwz4YuUGq3>$^F>oRqLKyKtDr2HF)pVRS~*;_vfZBlM*hu? zbpFju#wa^MAKSm9`u5)02=G8dE9t8YS#XqKMlu=SNfsKWd%+C%f-~RlCYza&g@A#S zEW|rWXk8qb(|JWk?&~85<+XiDa?o5)4w{dT!3lLYK!YTE7kd$mIQ>@5wF@^lKvrA)_J({aQ2$`lk6UVQ$Dl(1^3#x>4W( zb1`xdW0PFz$w6s+U`)b?DDB3%7F5+nc{dc_K|MqA5!vDqe zJt+7O+xnT$oQ=E?&Z?hz2WxUK@`7v{z23QGo)0wx2O`3OF##Mn0h>m;Zsxx*&e**< zaKQM#Mn^lt)Xk(X-=?u0n))%ph+v-Ye0?Yejv9RkxX#vx>NuZb1F^2Fq32cN_oBJb z=p~X>Xv4@E#NNg||El{2&&z?CCHy1qR{eQ*3KF*OmvS;b@74 zqalJLt_>_UIwrOiz6Y-7+pX`8UWdA;s-%WlxG)!@}8bgohp!R|9 zD*0|T-}!o-wf&d0wKB$(Zppg|BnjZHZf+jb*|3EyH>ao z>6xan(ssvaV$0|oyGEnfcha$StNQh{mocCj{b&rZvtNwd#gGb z`)V0~4X`=1Dw>ddTf((`cwWA;XlPS~V0Ntg&In)*m@sk$u}QvM!Je5q8Od7oGsf~! z!R{79!m{w-2DNz^&#$#@&Q+V< zy=n8-eCeI7)g5OMC&O8C*sV88c7Z0nbw_|cul3K8D=@OlCiL_hMu%GPz4nw*muB^q z^@ruNl)o|#%-?|TsCvS9WB=E_{ZVv+F^qjgvK%?y&J9(TS251NFd=mwM5oY@MF|&&7Kl8Xz43I!hf};y(PEIehQy%aS#h z1?ux;@Y*JLEw!Uk@@7`;sCCRS20r$YH=8Qyi&zu<`>G*m{BK4#CuS0wJasgACJRD` zb`qc}j)?s8Kv;vMP}8=ew51KlS-s`g(2U#e=#*Y=3#QW#~ZDnb>m} z19W^Da>Zr*{_6iS=feExVy>T4-ZIyp;QCYE^N({~@Ymk;_WRS#_ZRZ)K5)+R%GqXo z3wX8yo!C6g7@6;FPJSO?**WCSnvw6!{-`X~8O zemA z;)rir-SVFMpcTkl@oB!yomnI9M{Sl?oc#C8*SkEwc55#E@@G%?r57vdd!Y0pQV1@P z|B9{oh0tA@wJeyojZg9P&#O$m*ML7C`9gmBIPzd`qs|2`wEl=yp^62>pFtDSV<#5g z(?PvFwM-rK7Uq#t2aOc>)j{b?@?__#stOYyLrj@`>D#FJQwMGe7bgI3$jQhGGu*!n zW3S+mad=S*m!~PN;bapFpT`*&!qtC!#*V>nTe5(OApuWP&%}3WN43-oCR`kquVBv< z;&ZUwKLvf-Gr>7D8C#F?ZtoQT{_%LurTOZXVbU-7u8uyG)2rW?Drfz$<2GPx&f|CR zpuK+P`9|mbxOhGDkjy6;*~HzTQ^-bmvBn9njL$_j;@;SDX#0nfU!l?P=3S2SVfSI? z4W739b}Y?7bCO&%1YGs+<*%1sDS5%J*(~=SzLj1&864Gf^(9-5-ySq@j&e};f=~My zi}Z2b--EpOHt`^OHXS-pdWRF$JEv|4MT?NVHp1WcGS-fhFOA0WZ#=%y>h*c-U)rDH zxNm(29|G^)xzYCN*Mz_GTaljM(0(an-uNx#TgjjFyZyUP&tza&ed$swtxu3>^$+8D62Q8F5^6s&U;D_rQs!P&Ti`+flI%xA4DeLN4;iScrU ze;NhXydO`xcHaazR z0mAV5Bsz5iejDjY-QTb}P`P|1pBe*xesznHM}gH(%{;Q+_$mCDNhg0hvnLOT{wn5#(y!0$Y4h6Kx4J`&9AwOl%4V}-d_=7m(6HkjHSDzvL z0A^)_mmN9@tTZ~rprTtRX=fSo!UlMCDS4&xMJkqU!*8wL;_Hn;oe)_DJv7{Qkov~b z7mPlS%^Mg=#i>cxd>`-0HmZ0+t;N-nWi)Q(rJ{3{V0Scf1$ugvF`8Hgez)<__#Z_- zrh$ikyc%$|mwxwgzaLoE`3Rl7Lmjm?*>2+SQ`xr9qu*TPKDVFe;_HpX1lCjcDzzTW zXEpQj+c7pY`ko2TRUdjUyYDNcLwoBGTrbhrF4jSMo7U~L;5vBu!~Qxf*E%R~IJFMM z>ahk!Z(zRrnCpJ6OJKhH=Y!kj=!EEi!G5k29fjsu{UhXFKQv9_;?g$vp+cddS9-Hz7Z2 zX-NsP4Y902eXk)XU-&f&K6Y5P>Ik@?GqB2(N7HnY+q2Hf61TNMW1zL7vDSWP-#2+p z9*w#4`)L|e9H24Bpns%!a*p_zBJJHpy*4pm+xTWkJ9-LsxK&;OE0`rXNAO< zu+HciI(u#iG-mJHPQ_Em4N36a*k*V?Lxyn5kRgm-;mHu0c@Y1`*mLJW%!Ec|oVXlBzrLUZQ_ZRM0(~sO%>u_p3UK$$<*69 znfJx(I783$Z}K$2NBHkz<#9{~Ru@TjVr&)Qnfyc%?8`wu7{OmPjCSZVTBTT|w>|p= zYY@zvu&`%yCSHxc?d44c&RtSm^ZLA~{3q|+n})~E_0`cEJeWM*@R*+i9=Fl=px`lV z`P~dt52tTDTwE|&g8b^&*_;?MIXD@x7ZL24m^csiGGpR?_XK+YEcMlCKM3p*QyM0w z6nHoKGktwrbWD82$ZEsfi+~|twt_~_QJ%B>43gFEAV$c)H?kVE(a2=&TbqYODo@PQ0HPHiZ*Ro^`%-b@?D zE{d!z+ukI`uXg?Z8S`RG6Hjo(Bg=^iLSAsov0Wxa+i9mB`KwI1_%AaK?j`RTxq)_e zzXFfo?=rqygB-Uk@SSiohU_amEN8xryPQKw>Rwry!^YNp)p2ewC6>G1aklQI9j%-G zKF#~Re?TulCii2=byiS}99!AWMdx3{&m>+k+55))#&gmBBs4h*UM*wnYdGUc@7?9$ zm+ITB;mn0itlwFzAF@VtBkMPsb`0N!hR6^0;sCy%9Qa;q{on9YA0C*KIlEDF(*D&< zi1eJO_t~!qHp>Ra*5H)7Nosh;CVFx$FqTobH&vt4#u&c&eRvLZNHV^~`#`;2kLMHw zaQuw-2){>wH@5$De&*Bn3=Y3dzKhXK-=C6Y1ut>%q~kldgPH?t%!cUf>cgP1Ky{cPg@447^J6O#X!{&=ng>tFiMsQSr-gDZFJo>%jM6>Q{m{auRe5;14F&vAb}By-Ou z-&z%IBvy1Nc7ht!&G7cmubVN6byF;f>S&dp%>1F>X8!0uX8!aWoPWv(1$_xV_hTR) zr@az%5hFu3AnU-h$ADKxPi=@)oRx*oQGAo{6i-Uy4|^?JUENS;YaaMhJ>`NIH)~xv zqjVK|bsaT&?f#U51EKDXtUGW%&OGCsYdv##Hs62NRA!#Z_9&eNUa_m1xyc?`#j{ds zCj1eYvva97xM$je=9>125uWaU2TbU@)jZP}1+Ty0Tlg0GX=IDp7uG8RT<^?k)AWm< z(|ixlECXgMsh1gppY-Xw!_KV({FSa`$1}x@XA{rVSMVFHea5|42jii;?YiI1nj8H) zY~$Z9#6JH9X3qcIrWN4Jt$2nJSE%;QEj-R{d zaqypKef9BE_!iq;IPAt5Yn=Y#j4|EBDq_7<|kS2w|HI?<{j?!u5hgm-zbw_cg24a z19CAq1g#W}O4T<)Mi;#cvF8^MgCn0{IXqjqDB3T1M7nVjxlFN7Mn{>C%!Z8*Ij!As zM!B(qG~E+lmQP*qb_VU~8X4RA7NAc?zSp?tb4^}z%3o>YpnTdrCw`f2;}o^QwP^zx z!^DLUPZneUGwfBXfNj>r(OO&zT~G`t@d@Hro0!YKh3LJ=US?0}zYFLW8t8}FyZ}pyY z5Bu{cVnoU&I+##;$8SgH`m=O9?E~<#QZg-Ts=ktytS@8IS)AYG-Hvom%KJLl%FXUsBLMLdKJ$|bAdk+2i zx7&RhmX>F3qt9c}SBBz;3!b;3Gd5z&p$XfFb%7uIv9bBq)*cv_)m6+GvA1<*_=o!FD)eRW8hnlu^U|t)mPvbUp7kf8(qu_y!J9o<_$!%NGT4>Uxn~mR5^}bd@{jmg=4^5o+pAxi={AsaIajoUcMSgXoA_g* zTzyy>?yt0A^mWsJWXoT4kM58fGw~U9@Zm=6f}7ZPjqTre@DA@A9Y?<#`fl?NU7SAMof$JjG%2jmwfU*`p|EZL%O`*r((Y^ZNVqccazuQlZU<(V8bsZZZ-}KX2fYO z3DBhyUtY0##qaJ0FSDM-3N21{Zw4m|+4J`RAK&Qci;oY|-?8B1Rn#-gg^$L5um_xM z#HWrOs}o!Kf^3}ZI66)~%Q$o6q|Q3bvLDcw>;awF9gY9%m6Fw;)`2fdce8<3BwR~z#Bisi3 zQYU$MsI|BOoHF{7GvEDd7{4*F246PzJ>PGP4!=t=qQvqIxZhcVTW}%{u2|VFttX40 zoF~|YpL`kEb@=ZX>|X)8-8bK2K@Rxs|FcitHtQs=bs0d^O!tpI3yi+L*AI~O`Nm(M!DmT%X4~O&RUPb^nV%W zmGswt$Nxe9e<2>Czy3EKWB(T#`69jkkhBhyDI5VZ})(ARco~al2jeFi& zkFF0d@pX#yUI^~~%NxgjZ=D5u`p<{In~&088L&`Je-1hqI%#*E$Ll1=Uj08u@3+b8 zSMV3??->JMY5h^~wF^Bu=IN1n*vQ16Bgl|;ZLN+c*-Z2K7q8ueK1^-4FcqRso)1&6 z@S8us8Sw8QJl7fD$}D#^zI4%=b8kDczL{(J)K`^{b{nuqtRh!Uy1-^^cE;BpuI^bt zY?bVGx~~i8c{py@TH{*4xRQZ2mW-`=`~RiJL(PJq{7C%E3$@r<_G4?=h^*)|IqpPH zZ!U#~Iiri*IQ0eWT3A`pJU_Xg=U<%SZlb~ZdLiq3Sapuv5{(~|n{zv%{kB->=_2r!h$<>s+^MwFB zA29fu#vcPeA9W5b1+P}sJFl+_4|kUqMxwHX+zGx$uB@9E#G{LVWBiM)DgR=}hu!#1 zo(;&8vs|y=AUyl<`wVi!JH-=I`j6lLo%C;TC_FmV|739Q)7RA<{vEboOTx-CvjUk)Q9LH^JRoZ0!@9h_foYeT;i0YxI||BHJRv`{RFzai7S1N@TzC z#=g`W`%3{_6b`1wpS6A^mpF&2bBtZjsu+8vm$xk%E8Ru3DY%|*5-fvvUNt zw$FyFzn_}0Z5s=mhvV3m{TS$t#AL@8Ay1)4#}-C5LEIqo%A zeeUq*LZe!GLqoeA_LXxDTzuXS$HK#~(GP9=D`#5yx=d2KKXdD1PKqzZVYLxMUv(HffB7#A7ffBX@Z`vYs$F= zXS`AReW$o2h2I))JNy}VGUK(dUv*gc`%qTD&0fFazoy>?%bTfhoa*;guiq3tn*K7^ zNAf_2*IxqNB#3YSnbqeNUY`S%2X4->AFb?1leZr}JApk@Z(+jq^NjoI3v|xF=PCJ<)zas?2`_U7wfHlY;B>@vMF)4RC#ASE~zOUm@A2 zE<8-}1+8_3-hH8WU+mov_wL7f_r>1*c<+9!ci+6ywm06pU+djZH23XwCFk4UOT7DX z@4no-pXS|9^X_MQ_cOiwi@p2V-u-Ov{%r4lu6IAzyRY=_=X>|_z57bWzuCLL)Vn9=+pOnh-u({meu;O_IRxhSTJN6P{^q`6ScUM* zhXwr=JRGXA@iH@v4<=pzO?5Al*!&Xk5amD1zABzHS+T2iBhjBZ8+X@R>o*o2{*huA zR9COJw=k-DX`<6zoLATdE!>N)-*v~3Xjd)qnZ&K{O@=CzXJhz!bD3K=J`%-l?CO5$ z`~@b@(vQc?$3C^D={)y8TaTFd)TQ(Ddo&lX=7Eu;8_r(P^RL7R$scXx=(F=p+x2tv zd&;r#Hsps}8akX8LQc3v-%18gB7=)RVYAxh(7tN=osx&$3SJazIX{}b?Sg369Sarr z5-q2W{?rM1UR77l` zKNCM+&c49|bspA9o5@4LN0r1jQCCzIO=4H5$EQ1%=SS1^%Dp+LPKQrFW*GXK9`EE) z#OczGr5TyJ;#lwdLxJzFGV)UT`|{7DkMd9YXo$AMU&Ic`zYW;=S3@5sPi)$K;Lf9u zvxnSU*#`Cn*4Q7fe-5GFm0>5_KJRbZNAgnS zN6U|*hq{WPNytaVxO|_rY^iVF__y_DoGUJ>sNsChSTH6F9LSWbtz1>k7)r^*s+a7% zae`Y-&Zm4T@~ueks47G6cw>aSvh>J$;X^68>Cy+x_=q?B?sCWucKzS8^c+nXZDFL|YriaWuB z?dyI0$l3xj#@jL7{UPHOP74mI=`&?-^5mYQ*_*QATewKRE4KFcxv#wg9*$)n3$Mp_ z7;0OAy!;k8SrukIkc+e)8F*A^X-Spl&G>V{_fUh6Y5D4moBg?2nM!l`0N=mS&w3qA zKAV`;)}og)<-&>HxCSMk8F?v<|30l+Qcu3X@*16Q8kJ6=wP<3mg6q*CJrlkCd#q!e zb<=x-aX)rB23=G9vS{AM?6vglJ+FSx(uzOyvmO^_jjzoddDS4;aVeSHrbcl(;A(}_{YH+DqnbJ*jF9k+U&!@M+y%b7z# zU=F9*IkcDUAK@;A9-H{We&=BA8QNcBGQ9EIXC@Z^Y;bF$l~pW%pY5I?SeXc%%#IkJ z)>F@px*a~VRrDuqfA(#ie*5_K%;itXzQk~sL0x;$8 z=Y__1(-+>Co$0)=0oW;m|JPy@cm+IGyi*dot=M1fyTds1(bF$SPrn zJE5PKnYDG=O8D!;!*9qp-7Xsa#0T9x{DntfOUtYMZ+H6N9wavc`^iAQ?Z8HG132j0 zS4$$)vt^&_yjY}%Xj6C^!XKi&_v^37*C(5AFYzh9-%tKM#b2prXFfHxWS7a^&{`Kh`@vBWY`!GqQU%amPQO;B0+m)v7He zp^@D?m0x>}({pfx)6;#2efPj^*oxNKZ}+Zsdb*lzTZxsl!x&z<)ae-&8rkydBJ#hS zQ7x|_zc)I?-7BDZ31qo@1b>F#pANkdt{1nh9s^xl$^0AH&t~+1weYSM>?7;2iQLAS z=IbN$A7LD7pPJi?B0aCwuzq~2eUDwEIFI7)o3L$P;)I{OzTo6N_c`?H zkMOV88EtGde+iFn8&}}G@P;$4MLc^$-so=Ruf?xp?|F&mU(6fVvLUaq`v&ac`*`>D z@K|$Jj{Y86==8jP890Z26Gz|q9Qd|~e`@oKe7iWLZ%21yw_luYYgqRU$bd28F&un} zZ;`_tYXD!p`!{u8i#$mFQk;1heuiwGfaV%L)gT^)J&S+JKM@SYfWH{e0`?yn(UNxAAY}k)O-=vIWW}ydM}y zveyj=rm_t-ut(t|&9^8%rwP3)$^JG%7drXAxuf|z^5@F-0dFV%BHVT=vA)Kph^`o~ z@qL{(59Mj-!+-P7!k3r7(lOq>usQ2l(|C6Q&lLY4_VNn+J5)HkB8|fZx?k?$FmvdG z!z=p1VV*0-Nb!eB)~XXcfj-_Ir;VfHFyH*vdv7xPon&q6SffVpWCt*vnk(Igu@Q2ZZN9MR zgOw?5uIfPEDIxwZ2EC3g61{M?8u|~d+6vwdv(?V9HU}Or+Q#|2i!VGm^5P8OsPrqfFUk%gI_?rz zr`(VY{LQ9KlW)j+25mZpXO=dNYWt@7c9fw_Yx{gZ!95}Sd+5+eo(+T!JwooXiIE8U z5(0E+PmcN_Ly6aUr}(6leO~y~c&0sbLHc?v>#z}89YN--E{Z%_iY&*uT#v@kyGqY< zDoz0w;?R=IU;oOBy}fzSyGL~Vu4|&~Az^HS`TV1<#x#dm+c3FE@UOF>N9fUAV~O8M z+Ox;R7jOOfsM|Z)r#t9V@TapqCb!@C9qAL|6$UQgmEQp_?EWo0Ecqx!o5wqb7JoUo z2IC_=PqAkX|5^FTJI}`C2d3?v`>%mkg8zHL`7Y>4F8e360^Rcz_no((4b0czIk;x{ zCNL)(=U(thxUp|8_YvoXec^)V_8n=wZJ%@fH+5FTkWgXEzS+Q{`7JN~+k9e%`E81x z&xD5XH^y3Mt@c*Z*G$%LHuIa$_~tr2TAxMe4a#fPdhG+Y_aS3wjeI%7moXHRD*0j` z@9rNFd9-L~$EV@>uKt$5+xCxe9@XC%<5S#kg0U-4qLXo$SUkqDkG=EQNMWf6|n;?X95gKL_Z;K)!Dae7_{u_sG-1 z{wFR~422iN0G`QSBpVOoi+ahX8qFk z3gU#Jd;g!dGl7q)Joo>ZOjZa6g%+(#62dB4wW5&Xy_qDksnuF&ZENqJgb5JDRw=e( z(I!X`G%k$Nrd8Xp2s*L06rsxPZ2?gfu@$82ZF`+13rnqHwPgg%|NDE-IhixV1mgYo zpU)?sIdkTmcX{4tf1dYw&j@Wx!1o4OiC;f@+DhXS0jAMGuD))sncDm~ZKmW)rTP2a z_I~8F7e$Wvw)x7RKSjG1?H)?QPuCuvYha$Vhhxj2(IvnGn(gjp4@&oGVa-|p??G>m zS=PYgZ~uGvc+lG0AKr1i%-U;eQ1IJ#8ApWAXalsh1YWp|`e)qhZa|)qXKQ}jA-N_0 z(V~rCe+-`3zd9TrbY(c&Jb?JoY2ozm_FA}m>$Rufrp4Xg6JM(0dmy3x2Et?a&uj0` zH8Q&Q`5k@4A8Kf@dY$7NthqZ!!5iJBT=Tdw!(7*J@8~|uwAV9VzMJ_{Pv&ywtKVz; z2YTkL{)3!B-P`@%=HKj@|BD&sZ}?9dJu9!T0-aH@b9}CMc=231$xsKsy>Wy2rXPFn zMS6ZHwsQ)-dfWF~)(P$ROK-p0xcAbnDd(JuAI6vyJ`~z( z*fovSGR?QJ2cBC};E62yHTg$I zKafl*vhns@Pd|Nvr_(<0JfZ!crMF*ZZ4o@PJ$)cUwtOUb4)nltiQ4;i4?MF3&n1B^ z!>E}AJfF`9PiG8q;zVxFvBuD6c%IV(&qNA5i5q+?eZI_fm#3dT!P99Uc%IO{^3{6Q z%kfeF)NLQTAie#J_*mkBAG&UwJWLlKHN82Di~%sBF4o(CVDK397B?0~jQ z$iuUiUr6rhw>L_52k_ZiSNcM=H_?_t8mOsh(olB3qpba1NUXs1-%PBC0=7)Rd z?BM8aZvREtzx3ai_G@X|mx1O7q_^+T+l`(+MDv;AbN3qg*LQmVvfvB72N_FWX#Ue_ zV@QuDWrQd6=)iMJNq!nUq4~Y!`1IhA1J4pqKc|GJ(|#>&1J4s^eoK1$4!z}h`VhVK z8J;Jh_gujfdJi&|zR-Lpdj`EU-zRuNj}AN&CD;Nf_zBJ5l|El+{xwfOr-Y}|el2YS z&l6~VmbZO}{x-SoL-XGDGvZ@rdN=XBpOJeedJod~sc62%(`S0VszqGNx~4ExN{+7R zy+rgsb{sj_cN%`+(&uQC50j)9lP|~_OD6XLTXQ0^Qntq$bnl0OFz4MwDxI=y*JLk@4 z_Mem4ozIxSmVfDdz@?t~VC#Cv=ExBKOua3NBc*VV=kHH$S8Xpc1}fsJB~bCANr&E&%-zC;ziKTQ;mA| zB`KfO)$R4^;)gANlk(2=&;BUIu><(BXE?gV@tq96;DIY#oydz{^WE_{_*MBY#;*+-@T(+)EhYH;njD|cxZ`p7qV)4~ zJg|{|=f$g158kKm*UE(NDdTbQiScB_r#8kjI>UI5tW5HNf9ZG}{9!y9@#h}KlapaQ zzxiK|XKDudx5trx_;~s(|6W;oqWo(@r#zJmd?S*Xm#p&4hx3Q-(0&-N4D@+qp!l!L zKTbKHKFYt9nopYiYeJ`6e+n7+!}R$$yys@`eBeF*vibB;{?%wcY4T5gsd{;7>g|nwLLKb;scFr?b@e|5E^B8_50%$-f#${z2V%gD3tVtmKmOrt9Y z4`20;4?O&rkI%6k8o@2bmyw5kp7H%AeS8jHt?`Zzy!xo)I~jg?Z2~WT{nQh#(%WjjB0A~}zCo#EWJrSBa#bt290_{ood4E(!+n1W(>bJ&~cs|@E42$=nc zvAl+j@f&E5m}w6B+`7kA3#(ycmvS$#ZIm0~!;UB&c3J4{!EWr@spa6{_bzJt3%|Yb zH!Hg`?2U1`_)}owaY_3)GLD!e^NcfR)xwL8v=WuX*A$N{A?~ZZL_gySGOl*Ur8>}^ z&bYMaWqr?>PW0ie)woo%2p>WO9JV}v5yo!(!Ni2@+y-iFVAs2kXuOA)*zwe`sehWR z#~Tmw?hMAt8VRneOl*B@Xyo6?rDSbXzv@QzPPk`5DJLzPbzMN7m9B^TsRaWsiw6UV z+2m@xiH)=zJc!{7RGrg&o{h5SQ{VAhu29{iCe~ihD<4_#YG*AYS6hjt?3bU!f2Tip z_fBHKK;P&?I;4PoZ>#G4C(l3-Bth^kJW5{g6Eo#a(SM~hQ@{vQ)ae`&`AwM)X z+_HA-?A@JwZa4Vi+ud~Rp8Gm^XPcGX`~>%eqsotH=RLL6!91VH9vl{axHVg!cs!7J zi5!&@;$^EiJK*QcS#Y{vxWahu=Cc^ymY&zLEtI6i_92{ckVcP&-W>i}K%ShJf9BM1 z#&xc>Ip-FG}WUMKUD1fb5=g9$^QknRVS(w`iip_?a-L!_akJ4@=C;)O|BL&iVx}+j?Ym| zPP-1~4)Stl6ARy&MvwPEkL$Si3C5BGU!*Q1ZBny-1hMkQbKq;x`R_k;@`7yM8l!K~ z_d#&RvhtcWr)G^o{kmgdt;`r$r`Z8&&oMsLhudmdhku0(+74W_7W!9?&6D_q_5-JG zE8pZqO=LV>eD4Boy5GT^JE8G7_^X_#Nbyx+<%^3ZXIOcMUchG=C66ZF!*dJmjo44sTe?V0>w@TdzONjrNF5N|H1A35GTre%yt;}N}|!+7>H7WJpT50Za7 z!|Hcv%|E-RcL9$md(qu>3(&9nQ?AlM@dx^OR=CI+)iKsH=Fi$KJ|ezq>t;4w1N8Tq znqw_r;os$v?DJw@%z2^U!V~ZPAMQn%ujKDO@Lpq=?2r$kzi>J)khq?HUHN9)izn_c zG5JrdW%t?qZ>8qd&pA68-qD1;rCO@Ofp+fCAZJpr5Uvs*gZKH{*1b&b0?+HcDtMi0 zhuL$o_jBxh_$a@p-gD_sg8oA5`tbGLGBR6E+ipSrQg zHTIwWdNDGQ=hrMukwatGv#0WDawbZsWw`2A@P{>4K4^sX7LR)JHXEn*vrl$3dv`|r zCWLm?k2cz?xjy{D3gBa4?mIM7bAzT0 zud!)%PgCRY(0q4pD^lmSc6lIit>(sC(Xd{Sh=!r+lAJug|X zuMgFXc_QyUU}U@>__Tej59Q=d?#y&*wXzxz49_4BeL=rcd#3$!v1P zR;X5w^05o_TZON@2Houo&%j$MD$Cs*LiM5k;FDh;YPCL^!#~%D0|S>lx_V%fQ;XQn ztrhRP`yq5v5B$T%{z&GBWe=Vlt|OP<%>&FWoD`mfjM&M#H}Y@CvU1y&Q+ERxj8iSf zJjNF(({Em0Xy=gm@+WKj8TTeOFc$G)>NWSsivqJ3D#?GN$ov>GP<(i?%Y(s*iXI-U zJtE$IZ62(5^zLaJ*-L#oycj+#yz1H6!KY4;Kf=C*6*Y6;>&5L6kfdj zBkZ@kzYUmtk!K(zzk3-s{f;?T2i8(zGj)FQ7H8%TQ!#s7Nv@pbTH z`Vc?1c;D2I;Je|+)cUkxe|>n3hbJ5UWq7j9zlNDSso|kQca9l&@&WP+G&Y+j+x&QS z27de^{P=(LEc|$z_%Umf30HdK$EmzndA!AKH?2DbFP5H~#*6>hkQtA}i+|?M#pT7w z^N+%d*E{p;GcT6EtH{>ZS|4=updx%h(4gh{bM?1-)BFBR{QD4%ydKr)He@yz9 zl}~g!{H2k8Y?)){$VP^+U&Qb79p|2-r`D={=kEQ%2NmJg zEGuMkEq9=&s)jngDgS4g`}y#c*SSY6bz~2E;pkAj6}T?)g(5|R!|`}_D9$^Q$#LG( znFiRMoBh~sJMdTfvE7#NX*qkp|IEJAQv5olw~fO`ai`gjjvoF_Df_--uTxXNw$1nS z=u35+zwF>npbi}sn(KKU*;766ns5*~GLe4P!OsKPpAQGH@gvKW!_Ju=JCd~_BFm

Z7HkzAcvZ?`@1i`ZG7xrCXEuavRB!#T#(dKRB>#}-|ZY`fAA-r>_a zp?`cy+AA^9x;mW0m{$+9pOZZ;S}hr>|-B#dXx|CrI}7g4@@$fayo|be7T&IsJ)N^)rOJ%bW$# zLHlb5P6^)wtY%obcD@ZhfcRG0mAzY z8~;6iw(PqeF2$~Q*Fb)@i@wGh&~KD8V5|Fc1~}I*mvD|Zw7QEmmEO?ZeMb1z3j*w| zJR`gx7#`riYi)K&=L~c=6!AZh|I@?Wk64LUFVMb*)4~Vgk%w51gBP71J_t-=V+MvJ zc}3x!*DzL|GkYnJJ27Kh<>UJ(XzN(w4>do2yhUr_o~0FMJd#!Vtb?Yfxj67yE3ujw zZH%$RpzoRYQx|xEwF&!pkJYGi1Opr2dF2Dsmh00LE~+hqlPjSuXN@C4@;+Abul>ZF z=c{+4yemJco~@$o?q|7f_!#w%b3&in^+AhiW8n2+`Mcvk*ZLH<-9y{a<|OR|pdBj{ z?eu|m`_j(8>>1`*3LTfSufeAE@x+^lgx28GOXnl3;(OV8T{kynOercnr`->^l9d34GUf7wqp%Hv7P65Zw_avBCnUI9p}5+(O#4p$4-}y z=)z=d!}44rN1(Kw9z7R&l!jI z9>o}6D|5IXSXCT5&ESoz@2IX=7kLR~;7tX(auuGA5 zRD6c-`EyeA#mJMa*VC*O@<=kyCm!hVp6-T1WZHmm^l8>3$a71wL(wIL+A|o6mSJ1L zkEBo7wIKo<-#P?s4CMT*Cj*Hu!`B{#uh}*WwSkzsD+>bT6PcJHa)TJuhDFsQLo^@HP_txTWj0L*i< z`c%Azg&G`1NAtqsGzS*$Gr}EU!5Q8oLS@Jp1B(g3;<^)I@%o?9(SbuLa4>U5&iiwj z^Empxnsr8BiR@qvnS0Hz*f$A&n&(zr7amVPv7+n3@(FT(ljN4-CR&Rq{Z*nryZ4H? zXLz7L$LQk`!4DjY2w#BJRQ%uG-@Vu3wer=~A%EI|m)1+4OBw4Ba9Xj}R`e0Y`OO|r z+KzbI{#07q(!=AE(`a|HL%Z-C(XQqwx)m)+Zwt^@6n*QtSK&?0e2tFFd}XJw9(xv5 zQ-9k}EE?Gz2NvQh^3jXV68FJt;NK%1TC@0b`TgiLek_~vkB=QssrTo~j4rj4N8Flr z-1q02`szu3>jR%Sk9qdw1~u>Vbpj z-@?5Gfy6!N7+LVtD)@``pGTJXLRY^APsz5%$^I4SIY9 z=o&VRoc*tTd`@Gs7@PLQ|5P?k(Ios($@Z)K^dUVbt$o4oRAW#*ia7i~1sC9{M!x_j z43A=NNgmbT=21JcLJu+)TRyO-8(GPr^9*0G6QPVP}dZUA^M1SSD45F?9H3Q%cJ$uA!fa4S7@<=~vfS23r zVf))HW23T{n^-GCC4kT)^)r}0lTy;OQ zLzht}()e$z!J!y)uDsazG&Z<-B9&t~YggkTPb5-?tveRoYdr9QKa?WZ0^`+AeyEIg zqW<|CeegfiUgHG2z43N?uC7;o1vSvs9yUba3h*1=WE~~mpfg0_KSQz2bMTF=gMSvY zcL+W^U2?=PUTADV&MgGaamE@PI5})TJHhN@*-lPL6yBjd+tR6(%WxTf!ZyN)ft zZzs75l5eV)FTb$-BKCSsJhIJCewD*7|9rsMx*JM4D>6n+RhwTbuED(EnL&7_Tc6eY zegq%KVa6z4T}oS}z@%y{xj5E<&<+3X|R@N9$jiXKnVe zem-K3iUUO)Jb0Ed_TT|ww!VD~B8pbS?)UK0fpqQ&-`6ljtsm=3VzAc$+Pyih&*C0%; z!8$wFV1t`$@Feu}ZM8*wYn9?iE3XTa_Y-=dN#n~gIS`5`%GPnm^`JYhCVRe49^Tj| zkkj+jmSXG3X^qS6+w3`m)?aG0$j`F&E+vLtP(S=g_P}h#t~a#|Jv<;e6N{6a1)(%JzlgI~z?kAh#z-F3`>U$e9Z{~~_%IgRln;MYudTp94ILgV^> z#IH}Pjeh}tz1U@V)`rrr^!v#8wV8L}SsO~zEB6%mW#^Ko=6gi2Sz_2qIcEmK zdBlsPOUdTE89h&WR5^N{ay#PFu-T9!>$ctfXa|1L1LzFJob`kLJiW`vJ>}OGphM*& zV{+QEO>V)3q4#fxC!oJ~LF3AQ+E1GYq&MQ9*w1?h;BlSU6Wh?;q^})@FG`n`o!l{5 zaWra0^FI6L60@!B-LuIXZnFHlyLi9T%59EZhhK>Al0A}zbFk<4V~@z5mrUG3-iyAE z0?(d;Z-}27+Z$a}akzHg&%q{`gg*2p^Zpg{QOs@!y84skfUdK$nx_DhSJ0CRN@VvH zH0PFB3GVNX^IvM^H{)X%teSDTvI$G7!aJ>e)7DqXgN@>^ilf(cpa*B2DSJNm(9Ug3 zAMM1B+QqvwtO64s6fC4)3Wl7)Dfn$r4V!hquXChe1q^|ofgOIH13VuCc3r?OLOVL^ zd5vJlbM3&-z-~oWIL^DOtDFKm-WTk;(8J?4>{grryMdf><%Qiq8+P`&)JfQB?t2*K>yUSjbA67L$Orzap*w=P zX?==)d52VApqSqjGm-s~IVYun`+032C`XDh$UpN>u8XB-Du=_V3-L+LXOOL_Jss4y zG`5|We}|2Im!vOWVO2Pazbl9FuEV#LRY)9hWgxuXpqfo zk2C)c*3QI)4LpDm&vo)V=MS5_?BRkJzo}-N;AP7@J1@(vA=wQMX5~XCgYj|DcjYTq zXmP=j=S2IFGGA!yJ0G^l*3@2r<q!`83bOpckVPVz;>d!pi-u9c_s|Wb?@%uK1LEnWOX$^_!A*9eQ>#>-YTWp&Rqy z%e*5SLC=e~;|rax_Xdcj!I?-k|9p4t1{*iWgc`re7=epyfk-vK!%x)%eC|FFX`~14dd0 z@i@*k24*>`-M>;EwMM{{y))^gXz?_bZqf}vo?=9H0%0f3cwL>y}^e$Q^dxD z)EuUZo%g-*%ELSC{H0w(iAU{7&0mVdbIYS$x#jUL_*xuVb#aGzNcJ522DoyA{FX!T zx1GuVS>b3GF~t(%ag6Cbd}WV$>g-(r{+Ya}pIeFe4&TQ3jrzZj$e|EJPl&&d|-_uYMf=&Scsb?BUHF z;y2UqH?zK7;GJ^b55xnB^H0xf9yPcA$o{LXL}d;*0B#=anpA!hv9Ck)r&_MUXPtp4 zJ$>!H_(!s>pT_fAA2m1w&c!A(25`{q+n9!YV+{L|>uO(Zv3Up_;Cyz@yii-%ge&Cl zzPZD(3Ev}s%hlg`PCP8GHkqSEUbTGRs*Tq(juASCdJKFcuyNdG;wAWfrDwDfxAhOU zremk>1t-~?)bL1?6?jr z%~iR`ny>i3^rL&3t7ut#d?@adL_?-l^shg(#{m7t;X4s%JqkY9 zxL~!pIJNP|AGBl>`)y}UO`f#_U$;Nm#_qG`{p%PHyx`A2`G9>*%-OQaGr>kM(Rk8f za}%%;OmcyV^u?D?0+(FiQsse59&j;mbzm`xv59X8hS%aRY0j|{SJjU^qO~i|u0C`S ze+|0gZhSa<^MO5ah32d3>yL~9mmAPi4)FUm_*fp`dl$c7TR-Q>g|s2QHWxi}?(y!i zQ@QsU-WkO>J~_?`pFfhkThp(@hoLj+!tL-a6F1yp=lt1vp1*A;?`ch5<1+%hq?`Pa zYlE+4#56`)<*_1PxP6cX4xQI_S`*Ke1-Osjx`;C`2T@;>9E~1+W@Js$zZ{Wn1zm2# z$8~oB`Umn~u{QbsOY)D5W8F=xt%Mkx{Od+;Fb>t%eRAIMmQ{+kmVqDW8~8;x1j)xQ zw)}@`j1M@lQL$6WAtQrF-~*2g2<`gM4_f@3t)^V{Y~E20zw&0HWj21f?X1D?u69Hl z{ZrdnQCf3$=s8b2dN+$_#LxU$#CgXBwv=&>)(p#k(>B^jwe@XZ?@`6%{Y9agynqu! zvG3db-SGz-9`UIV`w8}xTBkYw1N%2umU^FeW2QeMRv)veW zANq-)*GWDuB__3wTKZf6%bMRo-DiUj+?QN`DaRUjHfJ2wi2yZ$LLZt2x>FoN{k;j&tf>XLr0`KgD=|nQ6QZ&7_Z4`9wYA zrO%Y{^4&XLm(Dk`&r@`s@6fquU4JgWotmaUMweKj682QqEOXD{v-L>v?pE6J>W`*g zr>WJD%;(A>E-{NW&zY_@cXRCRJgc0?S#NCYsO+zIE+jtX+ugd~I$VaG9f4NoPDh2Z!>IphQ5oQHYW7rxyM?5di}AM4g8nzo*CPF!$LY6 z()F`{Nifa}n7!PV^XJ0X-Vc$Cmz68YQtn2W#dllQPkU-4XUtcJbL zapXpjGdmlw2WuQTAv`bHa`H1V$2#kt9>4vl^p!KV=K{vSfgQ!{{qCiv#bLi&XT#nja_+BFQCnws$I3Gw$ksr`0jmQIac1W=o!6V;%Rw^CNhNipUs(E52xj7d3;%m1W(78b*l5aHKrRMKHlT+@{ZR#-x?!#?0hZ3 zSF+NDfjd`sK3;g7>OFV9qoH}Py>9TGoCkNlmILE6_c?i#s=v=ZQ5&xuo8AM1PkUgX zdb!>_FL?6ZnRjMAR(fXR7XMw1Zv8 zC9zF#g*V1!*E;JS^Do>u4gF9#`x=Kk2I&v(yVA9#ch9OHF@7CBgsqnE@J+Neseab@ zF6{g6QRv#7C)YjJnjhhOG<=@pyN~(jHWPtic~DJ!|HSNr^Ma5z;;v zqj$~7O}OybzyP{1Fc?-pbG&K*Z3PC~3asf{fk7jmv+C={Z*^c$?Z7}b>1qcC zwZTb=z2sSxx*t*jHkE0EYdx473o9Xv>?!VLT@!W5@Cmt<2zlXig-g*yHO)aD3{$1$=%HLdvZgVy^ zW$^Rgd87LCo8PVe{BQYx|J~r76CVo_cL^S=d?c9dZ?)k{?4X2inL#bT4Q3at>bT-ul@K^Hn?lXg^f0hakcaOaK@Dbz0ZI@jwZKpICRjUJwLSP4=moo z^(6shPCH}OGdNeKm+?&8>;v^5+Qn}c&z01djUUJuH5R=a=lNmG&F<5GNP5mNo^jh; zCELZcVI5M;qO87Tymvjk*NRo#+(7-&}8lb-7*%(Y_AS#7J$wPK(- zZ9nu}3!fvzruEGCJlEgxTt95C?RFkA*ZHQM`#sn9nrplLd$<1CxhdY!SVgzc)l-( zT8Nd86y)SLhlx?2&sk(weGGiQ^QyXEKv_wDY=&u`Ygs;5|^xwJKv zwx-h7RN5MS*ObRb)7Iz$D>Rz+h;#4Gd;i<}mJwSeXP|jMew_lJe|LqCGpc2$R}inq z9_yH9k25xz*b2V9o5(3>pw?87bymznxN!hFjpJXEZKB#!wr{?mt^E?~9pweI-a=jj zev|{)bBFLz$xb)5sNj)Ne1hWVGkyJ zx4x9}SWbo;Q|_Gn*c5UpT-=!2N8Fgw3vTfK3AoY4x^_1@wKp5cw9bc)|T=972 z*(e`JW3}O;J@$FV$No3=cq?xv##+T$t1i~ww=#wD;a!N!oh`*!IvHYyM$T(qE;R|M&lLyrqg5oczU#=c~ zgFBy`YUPzQ!jBJ}OKx-hobmbSd(ycxxfm& z0*{qHVL#6nkGAI5@O$xP)_nO->0_^+Q9S1$ax)*E@}`w<>Jy3Q->bIZ-xf0VZmk_K zKJ7-~wec-(sA~L#?L$YWv~k~o0ncUk;khOFaMVvD{bbX3EBvex-rvPoBGBXCzkKSx z+?atKUlCunYxf9_-ZANnC-+&k&;FM3o#%XQ-~QYAyg0vY{~|um~p-Sa%2xjmWkJ>L^467ht>?em8^r2UwR8`P7f&of*uhfbX5OJ0jaE&mB0i zd_DG7C+*MnSz{x>{1<(gSNH9vR^8#L^r^9qAkL_^I@K0!&&H?S(Cd~~i}fb)C5*a!G2ukPAD zJ!g+^nSr0|?r(2wGS|Y-oVLYWpP&=8`i&j?>pPQt$vrFluqXa`FSzw#QPLl(xVGxm zD!0njrJ~HO`dHOI>9<#AH|%SoE^@H2sadeRlKV^euDxza-fPDi#`XnJ+oS$gWI0DSDzni zduF~qKi>Atmx|h+sXVQ%gf*Li?c#^W_eYQGf4up=XE>|&!ul~s^3SqDzl1*Y`&#V& z{oux2;Lwlf@{iwlpYlRu{{F7GG0wim7!gJvDL?$7mKjcrzVD2QF9b$A6ks;}$t zYu3RF=S*;wP58{Yvu(IuFSr5Ma^O~)gxe1EuO7H@W-@SlK7W7}(*9$?Er{*4A6k=+ z90Ydx$M5Zd+fnKW?T2Q-&byQzZ5!hpZ|*T%ba(=#<}$%d4jCZ4Cfg8k?PvlotfUj8oW(XyL9BVCjK+=Vk2%J-LV zJ@!U7a?_6t?H(VPUk&g181EJ|>VCnzq0D=-bWre0`Q`l<&RKW}TxjqW%&X>mLwR6+ z7N3V`tDb!6sXp?iN9VWYRtDHFm1pWzuJ3MrV;OA-H)rDG=$v6~Q9h_`=Sy#~_u|<0 z;l-gL|E-?)J-*2ewG$>LZqxg=&vir1gdD+j zPtB86ydPK#B0gLTr{0RKI;OR^G{y-sG&?rM9T_S7z`O4KCV+f%bF%h73U zejuEw0cSGp&klq0UVJGrdzXts@3EIwx=^F)K3Si3;&;jRuAx2U5QsPF&*e{Z)AA{L z^l4;_?8rFuQli=s)|sI{(TCyy{#8~;y0oinpY=&=*_3-^`tqg)lm1^g?lu+~ER zZ-dwu9lRqM=m%!m?6)cd2D+yl6Ya%?cO;6*jVZn}FYIT(Ul1OL-k4Au-uk`+cu)B@ z*m?;)hYe+XF66kW_RLDJ9pb%q?e%u-2EjPbOPAORl7lvMZ1@~r;xqMg?nUN)Sae3R z=JxIQ%vp2vrOmz)crZC8CSPEsV$K!6doP%J=Jx>jf_&~nOUR{t@zPLSbzC0G3CC`? z_Zi0@$qkqBTX1|<=tX{uKav-&UQxx_-udAjBY+<{QOXUCKT;5`y1$ye6#aCj_lm0L z3qxh_|JXzQ!;xjG&x7ts-!ab5m0o@6QJ42$d&G{Zlhfdg(d}D%JcrZwx{|TfeUSen zd5%aa_e&Y?U((ufeG<>Hr&6+GGjMb9$+jnw@hbKTgogqj=?zLoSge9FD~ z-UXqiv^Ff&wVrZ8Xff~FIOF6rI&$((XRbRP9O;=ay8MSlNqHERjWF3#U4c!iX(fMP z8F*axl|cE@fq{qDTX$@1vKBquYFYDNw3a?98KYW_`jlNNKZ7er-Fy13`}gp^XzWd3 zw;Er;i`JBJb=LUHCqYlrZMA-#)F2Rkn={{`RoN+`AMJBo2mi?#OuY1hKtlEShm#vE zx%~olAvp&llrV%8E1I;OvYZs zm`kC1A9OEX7tz@$#CYuWa^$db6&(AoNNXm4IQHL44{eLag~Q$$y}O=M)A+06-7){S zHomvR%?nA@+5W-)O7)?7YHHX0bK9Gnp}i{L8mG-^FK2Eu>a>~8uigDIa}CZV_s2x1 zF~%EgUKppwRo&n~xDMVFBsL!8dnNzmfo>uHrcwd>*c4H z{_;a}zRzlKUhlhm`PZ=DXrbmt+;bKC;G)yOefcNgC$d#+d~^28c<^n3vu>I2&BX`1 zo?enaiZ5nSqa!MsEwg2-_C98_b~(tF4ro|9waKl9_7o>jE<-DEf-3l@^4vecT1@n_ zM#SI5Usu6jn4dXF&wmDdm(8LvUCEd%bcI@C-HjR(;}5VWvRZh_n5vQ6@|ozF z$1ku}M)|#j--ogXRki~)0UW)^$wLD6JJZJbac7)==#Bo2e=F&Km+w&iLdm5#u!{lT zZ2A|^%wb&8PmFE@9OJ-FXWtl{1AbfaNnORaImdTl5FTgAGyY)ww?IULFFOV~$ z{K}?n*4`%azFUV`^G9=U>tNsf2=8v?3lg}y*yw6EXptE_&z ztMPZ^2ikoTzPrW5O=I}&+AoD(;62)lDF3K@H0$!Mm5pihvEu`-kJORf`2IS{gZhhd zp)NrmgZGo$VQSab|DRObT68ePp#$wLe!>HLtw9expeK3rA9a?KVk!Y(tyoJ9Yd!;5 z)-qS|vhNCR(EN*hiUvM6&{|o7F2{RY{NeAv;eUJ8yE82RnAN-&V~pAxR}9}nADV8B zl}$P!REjJq#m{Zyv(3A_*XeV+#GRXiPf_-Y3ZGv0%t`Y(yu;ovvul{<^s%HpG6S9# zWNoYcj z`D?q-;U(MCpU=^~l;_ZY#iJ)Mk8$V=#lG?>&OC~*XI!l3X!Ko-#ZA&D4*uJRE!EEN z4a{>f>-Yk5oN0}}e59in%bzocHPo1b?Cp~+HJE-)ym&Hn0ZsfNt(`b|$l7aXV#m;j zIg^j~b9v8(hn?5uUbiRm*c-<46Mz{slQO5`%5v#0#a|+K1>J2e`H1-!G`>OH{Jvse z_TdulJ@4)Rvo>CeMg%i&yFcc+XZY8i!FKwR{ruA}eAv=hz*#3;*H}|7*BFXf>Z>ulKfnYqD*|d-yGANU)ocz3AQ5T)XYZS+AP<4_nxmvndb1N>}6A zq5a3+e5C-I><2%(USsFI2yk8nY=yJJUE!!HqSn6F>K?)t7W1Sc?v{KU;Q` z&7TyLc6yGkzCQt~hN(*i+|iLt`Ar82Q~EqjgTo7!eG>*S6!__@i>gY`$Q( z-H1M{wl$YuF-CU{yw9idP5ZquzJB-3d+W}9^GdBy;oNyg`uqAf7ZblI0fwXD(S_aJ zo1@4ZV>96!jp75=-eviGYjVI>KKs;0b+U~;YNI-k_%El8|K!v7SI~>%ORRG7=bvcL zwqt+AmjudR_xQ*SKXdl~g)bIAOYZ-R-Uv;?)3j$V4iAXQ#|)ji`nR3eQ{47*cr>=h z<}B(+sqViUr`zH33*=nGmDB=-S2sXY+w}Prcm!~Xi%$ao&B704y5gvc6Pz~@S|SIo zC)Na>V5e+a553etFBbHoyl3$(?|bijhP5wdobWAta(gVRFjVwAe3PmjFswM_!=7Dj z;j2LpQf+nY4YSt}{pvEsM}?<1kf)>TGCy_zx?%hV^fu&lHab$>c-BjCFx5@OW;3)3 zU4H9WcZ;4Q4^}pe*=yE>4Kx$~+GN@*#fGV+mXT=qO`c7~AA66Y_VWE`fVJ}PpF7sF zh`gfO8MDfV0>f&26{Ywpih-m4kqh%@S$98bcp`8K@@$Zr>qdS|4kRv`0t|quawcrN zcG~AzV82Oxp$CRMFBqD(pfT~80g7=o)V41f9C3@|Lq07LLuFw7MUx&A0H9DNcP z{)4<5FAN{-1%^>*L$-zBBzPMA3i)(5&qw(_w6Ky|9R5Q)ki+fBf=2Z52KHF_`7R#5 zj&&XZpPp=G@2=xNj{ez&Zk2az*?rr|i$f<5MWDA;$Y(EXWgmQ>IqUNwK4r5j=B_c6 zqF?_~pA1w<=x@f zXR;-4f}YflYF|iScHi5JEO7hqzH4NV(++q)UF~r87CBsYe|gm(np`cnACt2|-=;6m zxW4o6;@67r${q)IcxD)J#Rxd27?L+<=REGC`)t-TM&BL={nNK#bGri@-PfLb<*2s` zM)cLnIn=A(@1Bld%gN)laoG!dy`#EL?p)Qb;55QBFN5FX*ke>>&rQ$jJ?Y2FrByzB zD?F+OUEYO*_P;lJVaW3(j6<--SH9UNU6nRdOmwc1==-yZf?j`IFW5!1ZZz zoafzf{`=(2G_2pvdWg?^p8phU@qQ)i%@~&gKl7aMk7tBK4>NDq7QP01%!QTsk@n}H z3vcMjV{9x7eT_UXLqqbbI5mXMz0Hv$==ooFWQdU;{zALH{W{gRKP{!ceRQ`k5qsU2 zh`j7GXUN2^_8~*~Zg9rV4Uo(~AN&Z6ur^o0^CMd`@u^COPgUXr5}&F}d;{1rWl4G^VHpQ-tzUh&NpJuKdS63!FfsL^N92m6k zfKLalgk-JGfYF*s#@0Xs!ZTA3$C0U1p=;@PwoYBid$hF!d~(_~^8DxU$RXCaqhEy~0gK4Nkf0lp2tYLOruoU0)5?|tISs}Id^^W#<@ad;+619?# zRu`ID0G*Fi@=QMW>~`z$S$5K{);rD^W--`4qg(^NdsWovZiD zZe4w!4bT4yeyF`8)PERc&Ml~`L*LG^E*Feyuqgy5@mARsx}N3O6uMS@GxDW2N9ZR? zA6oxEd^VlOu26`y3?{z`jZ`fKWC-6G6! zbAM~)W7Ht3oiXzidX^2ZB|ICnhB|syW#YH!sF`pgx*MJ}&(T5X$LJu>;a_7cQNE|> zAkU@gAoKdDgY0&65D!n0?y(TO)#umvl&?IxgmwHoYxhrZVhKFwpBCR4A97o=_j`g5 zV={UP=bzSGg&!sx+58Rg7GC0x{Z-G{<-^n-k+R#+nHc{nzPF-71sAaQ1AMHta&|`_ z!N1JsOk`24#X^V4>ZxM}jU*l&Z>?;H*R;Y@{PV%@Zg8p@-Q1-U*}LGd=p@D*vashO z%p=M?CIpbF+;hK6pZOtpzN=igF1$?oLT=@^*h9>DkS#Z4OE;RjQ~ze{ho>Glb%GL2 z=q5)Sd^XS9YJW!fZtF0MHpaVwV>57kh%uK~D?5i|YA?5KrPJP(ivOMMODrv^D(~QI zFu^z%ni@erCFacHvqA^hUwgK5E~e~{4xW)NuFv&6TMjOls9q^GcBN0YpAC&Ksw`ht zGBLdWS$s0pzQlpam5GDUv*dyuTTu8_b!HYi9c}rutIE*}FF(3=fSF%}xkQ;u zjJf>bI()nM&w|vD(eFXO6}A+EU6B>qP7F52J?WqFyOiDqd}&WM5Pm1lg>dvfe*1JH zDHAm(H%~zJPhJ{Ldi6r_5Urzlmuh=yeN3(?>#MbnfwS$mSc%Sk7TM^E3BgMT9zpJOgQM|8z8QE;^55@Pkn=a_RyILn?}6Zfxs|EST4+v%%=zB=hw zKDQoN(QdWs$bxaGHoG8H+b?x(+wPjQeaO*UmO_P1nJB)#!zliBwn>w;j#0 zR_^DW;?I+lk4|XAC%?_?1>pH8^Ns<7IP=VBja)t={n36lyREV$qrBZCKbw)aBl!I& z__R#4a`$nT+t1y-U;_)ZMF^B2@PS%i#Xy`$ip;zTjV zQnj4%NLOS`(o4+sB4U)e*5&A08{{8(d9TjjkxpLRW@L9`AvH3|bNM|yZvnXQE@K^6 znW!Y*@8wqqXj5^zsqp-(u$w=|+Lw&9!n!|tj4vF(*K&|CTs6!WK7gE{PMKNn0&tAn z1^H0$&sT)TWWcK?@M$jibcEc2QrdKVCtlvMNN{oBeID?hng;JU^L$)7P8vMFs`r*8 z;prDV{{%d5Pr~!st-!M(13a5Dz_TG0o(p<|=bwP*?SaJ8eT3(B=KjBd=kNb{BAvSM zeBvbV9O;4QtN0t1apt*DI!_ur&+@$YU-DCUa6aC`oWVcWpDSKy-uELvA0aLc zt#j@u=NZ`eFPiv0{Ynnl`N-fd{oyOzB%9AZ>kQxU>+mUf!2VlU59FWmLu@6#B-ha15+!zc7Rau(murkOk!J*4~>_6HK%sKxKMhTr0k+!(F~ zkA?R==Z?TnKL;F#VaFin6Ki;P27I8AK4!oh0-L(0pCOot-ubuB-Lmbzk9r+}w>x(E z9-SSz{DxyK|D^Af``gMwcXPi|dk{HybWJ(&Fl%h6b~|*P_WnYiv-iSkU#4o34ruEF z-tDb{L^HaY>RwxBkEU5W;2dKu8hrVOUOkK4-&QN}8usT~3+Ekq z>oHsJZ6(GM#h0=^d&;=k*ecif?3mSG(M<};Q7k0x@|sn6Un_B!QubbVJ`Jz96n*9* zU*aD8lQ$#t?vI`uGI;=I@2)-Gh4?n@JqN_eE`%@hn{>qUz&n?hnwZE%;M1kx*wgGW z#rM(4=K<~=>HWlG8+?U_?!!OTiH>p*9pwPJ$$EIO zcMjsk-aaQY2es|as&1t*)ADMaTEM(MmjJ=fgarGVXnW#e}J-7uQP@Ku#qm;)w><{wq@RoVx zOwGdv`0EbaAAgAPmea1jU!XMxZhGesYxdUo%J8p=Cp{FPzKQR&LoxD1y0mUH9na=0_ooCYd;knzK zJr~Q8KF$3)ds?wEe44-dAelcq+T@EQ^TVQ-5(~1b%KiDo8!rMT)_ZBX)}_eFanyl+2m7HIngLePGCLo0 zD0!H!O@&WpY#sX6EcC4{z)dtabcj!N!{zf!)IlRn&`1;S)NxK#`$goP@ob%RFZwk4 z6M9z_dYA1(xASW)YxWNZTqAg@R<#`;-DdW-yE*Jm9vMMZug=0`l#PzZFc!Ad|`w5 zLb}iNEp)%w?cnYr`NnKLJGy{t_**+PBK~T8obXqDCfCy6b_VmqF5Y0<#r=$39D$bs z<4rlxrt&Y;W+!xTl=o-ByWlJDScPLlQO>fD(RQ3XO6e=p?trh{V%t_b)A-8G@55L4 zO}=E-c#qd^E@yp{zATR}QQhD8kh`i2%R7-bt{<5^i}G%A!;F6yx^QV}8v5Y2m#xir zpM?&^{IgZZRrzMf-DveS<%{#Ekqo~@N7}U7jtx?On)oVoZ{n+b8aogk@I7D}#jg>8 z*PH-9+KvM681R1K>J0FMf4IE3<7^vlHSo>e;Ffa|xSe+rxE&&I=VWkGKAmFn%A;G2 z&bEr0g4Q4U0q{Vdjs6^%0T=YGo)~^BF&eAXj@xc$?^$fC zl~@Z7!M~|HeQu}&7#Tgs!6C(FwqSd?w$$Par03)q-Pap;VBf&uh+>%Zcd9j5M|;t~ zBNrBB#>ef{v0M#plwNUBGM2W;_T{_yS*yH>zuPgG0^ugtWqv1bA`?EYF?N3nK8`sF zJ{}==#ieEJvcW$m?9puxhpu6K}aT(^@uUSj&IfYx!Nq9q0OFYuU8&#I=0> zB(PZOfyH+O3!_WG570N(yp0bA9X9%$%~QosU0&J_4cPe!Hb4F6mGD#GBz|gqXJfek z9Q(%DYq_X;kg;c!t55@NDjr~JRRAM<&2!tXTl+x^JZfCTdCzXExXtw8-23`iYh{*d z!8_j#uTY;llfdoQq0NV|FVWWq%WgAzghviqS9#HMO=la*D z-k!>*yzBel6Ifqr+V_R7e*%1>Z$sDkvohhrZq5fjfv#`QfD3QixG+e#!1c*+VOZ0N zxNzA?a3RZs3ugd3qnko=F=(zBT)1!Qv6eq6uj$Qs<>H%5$$<)ba-bT>fm%ncawAh% zmmPW*f4rRoRhjr3`4Gq8$C68{7WZ8))d+S+f!&gm%O#EP1pRP{M=l-3wvJ=RpG3d; z)i+buyLgLlew6(`(#b0G(aDe{75J03gU5a=u;t}v9(-fj1JAH;C~sbXy#lWOOB{KF z{MrV8J$m1Tq7xTa9h_`0LWgcSac|EkmT%B}L{CH32J#QhfYZ1G;;hYw!x zTU}sX-Ua-+9rzUhzx%Fz@Qt<~|LENcU%z?V$YbcnXIF~+&~L9^aQ_?kef7uYx5dDl zoYwM+@A&37df-ePW`p7|>2TghUWNMV$;$xN?fv0pkDLf+Qx6MRe=sEj{ybvC+ULMp zvZ$lK4eQ#Iz9?Afdyi>#EAK&oc-;7k46rBVne_oKpzrPYc-HGgV za!zg83*H%<$b)~=m}}IJE=&A66TiJ>x5IC-C4A`XvNIF|QcgsQ9_5#9W(|IhF~qq( z8NYqvizo8iKOXL#uGV|z^)u!buaI9TNkdhiK0&^$@Y;Z0-F*o2RopDvojPC3)Wj_e zU24yl{k@*~5~p$IYxdyRN^k78<;xzqzRVW$=AJvSp`7w!DdK$?+{?-+`@fNIyWn>KKjzImmXcmXE8e4Hu$Y{oJL#UH8?0+x(EM&`|S>#+JBFn zo{<>`AAS`-8*wP<6-L)_W18a4jQQ0=#59RHRob?85+{Fe$26-M@0Hkyk+0)pBhI5( zXxSh;rrAD2za{PMYWdb2dmug`iKp*lFL-=ADfsyU?YeUA4WBbV<{gLU3%9;j@nOqr zy3cp{up-r2p+EjL3F8sZCt-XV@HrKXyM_cduDf{Iqc4pD_I-r&xh|al#QcJp;XM8n zaK5!SIR7aX&iA-*=6(;HgT2Ff?ZrtrKXwv0*L&c+Faw;gL{I!W_Z!Arhjs3l&ZSeV z0l8*q)Q&YIY4i`uv32a0(!t;dYo+*81V0XTWJvx+t=HFBtJv;9V#=oDEdg?Vlw;a3 zmOK^oJK=tQNzHk)&@+62+VkW~^aX0p`#EQt%#2qZ50uoNHxd2BeBV)Zyrg92d9OHh zA)8))Icz~g8y_hTdwjFx#3hBZ9fr*zt&jThV z#})cY(T9PT?0(sd!Qz0~7a*I_&6~CJwdE(sYkQ#;-yF|-+mTNQ{~I)_XNudZ3OU~k zUO$t3O;t8%Q zi7N(1*zRlI?wyz3;=vj0!X(dRP3{*yJABpn3RpwY%NpqZwzOv#>si+)0YATsd@%M= z_xO9V@%OYBqIcm7lF#L?lZ@#q&zQcfeu!;Hc0iX-{~A*VvF9|KzE_>=Kk*4E&prBP z=5_epD;d^dPKI@O(_V-3v<_UKY#o}&|4P@n0w>)S!>>s$$A0Rt6r3J-_~}5K{=3)bBx8(jJ@77nWjWSqPrV*$$Fuh?Ss%gVZzy$M=1!#Dv%#s6srCEU_4`=j z9ON%YhuF6K@t#^Sb}fYTdA)UQYAuQ%XdZci#6IHjmhF3xRAG^q@=Wwa^ zA!V6*}UJhbGCoDIj?sZZ_KF*H7zS{>vhtS1+t zk=i6n2j(t%H}8DJx%FrabMb6eA-!yRi3rbl4w25 z`D|(RL0BhxKMS-20tNzyC81ER?xR^C`pTQsGQ@n$<)tuV(48NVPdJ1LWANbXS_rN{I z`*Gf%`S1rVu`)vkinY15jV{x=NT-s&>yNj&u{XX{+=%lM}9in zrq@Lt9C7huw5fNP%x@50^sG7S@N4E3W$fNHFT?lK0qop04}vFJbI#q^J(2%4tU0+? zyK{~$<-GD7&IO=`Hh9s*xf7;d2yxf_@UE@Io&~3^d>4N!0Z!^$d|@RuSmIk#apbWB z;K)|ajRi-tueA9vb0^qZ$j#O z)Gb-Xc$z#lOQ@YW-Pm4?Npj^|8iR|sz~!67)XA4Jxc1>@d51(YX4tJb(87L%Tj;*wo`1+*6OETQ(57tMsOB z_)a%6!anabCwx${5t)O|N-Xk>&>CV#Rh&Z`?Ozb~k-t-FT|#`OUpR{09aTHX6Lhcg z=p1;+Ja`CmZ|B}%)n!9Z>VTIcGs5dQudtY0y8Yl`4m2TJcnMl4v#i}~Eo-y8o`Rk1 zlsL530gtlptIh#6J-}_9lkwXxz<;2(4tS98Dh4msISaN8;cxpbJRpu7i!-k{c+(C) z)_JYnI-7y9et%Y1D=w5KlTTfH$V zIXJ)?VPpyG@ zEo*0TLaB#Pwf}<967BIR%BD?nnBmt!WZFz>3+$k-WiWd{s2%(Z5@(C|&k3&~7oaL| zeyEyfVnw;(*fiE0o)s&~({C%PIG0m7Pq8A-3C=69>tND<44Y88*ZfWwo=y!9c#YOE z&zb*r=5KM9rkBQD_^M{H7e7`(uR1rn4!l?eANE7DL1onv{WDxlR+N;%gR_NO=nY~&)wIZV6 zr*zrZsI9N-Qa|fKZ9Z=sDSX-*7COu1%=z1fUJ4x1OZRTJ^AQDuopr}rUh?3RJ>N5X zcv)2X=5_Ed^v&*Wco{Sf?_II8acGErV4=?9+;Ha-KKZ>9zSPMxQS2<$zU+iIcZdMjh}m@Z@IC#TzgA!(Y(ChwXaO_+tl8{7qS4}X?P5Md;slFf?sTd zUqtdII=sa`m*tMx@CWH@Jv_m4UP}>cPkoa1Wp<5{dzioYLkxP4Q=_DPS)lwE9(a)G zl(PQO9hNz-xDq;yvQD3xOJB@!&1Hh^XtT#>J2Y7WPmZxZ0pc#`c`ItjJ8dL~GJt+p z%i6JSVflc)>-H0Jj)Xs2mjL5ZJu}PsbMbL5etj=KDyLIC8okx_o8zO>xe05j=Oy3b zRIXJ6Wt%?vZ5wj$4%?E z%*mprH@YS|j`tnOl9cbtcNM&u&jlVhtG10h9~-{O^CzO=3RrR9b@lzTr6L6 zIKaX(!6up^Z(d_aQi|2AT^~v&V(Gw;NwTxjBEvh5rMq zGQbcTvVJ`E2Xw- zyDd?yqSO|&wcXk+bIXljl?p2ZX#U^dd(N4hnaqUX?tcD$KA4#^?|CoJ{e9l&dETz$ z`|jS#nPxlfqV>MeDeIY|-n%+jvD$CVh%m<>bF`S_FF7~pfS24ks$bD$+%r#ijxYQh z^ak(Pd}HIkePva66>&w{FS)wpQ%~Wa_I&?1-_@^ce|^lMTjf$XqRjkp`G1~~XZ`j| z-#GM4rBxx@OFksvx~`gcq&}tucG3%sFRCY1#&Voig{?T#$@7rs&ZLaRcuFYV7mkfJz(eakddZ@+5f7V}bQ+h%3Q2qHk zk@w>zpKb=<(2Vp2ax>}bkS*A;Mn_;P=$%xa7e0tT@J<=$e^s3ERf9|Vn&FkL6TpMu zta<&IdHpE|eAgIxHFWvmW{!jv$7#rmeN9(Q7r|w5SfWsPK#6D+65L|ol7=&j3gZLsBRyQ#h z-A{IM^p`&*`a8CW+F9TonQ*D-&P#ub!RN`)-`p(pci9l>PxJ87UsVqJ3wY>H?|A8N z)(Plur3a>`4MKmiKfLye_&NsfBF~&U{kEa-YSY#B>(bW3$bgt`Oqt2h^Q@=_YCyxu7HD@E8ltoXYRS~!1Ox4g;Dxt?+j zIoAPXCGDg9E?YDrKOXWYh+St{=Z3!f{Lz*sOZ5sa39Y0C+e&l}@$O+4ZuJh%r6)RW zLPmmr=^W`8n;xBd(ag;|w&qwrJDAkG>abH9Pbc@AXD0WXXQezV@vN(zb!nb8tV{9! z+IOtrt|h%c-(A;EdtLAHJ(#hsHmwUePn;k}jEn7U)BRCV=;uNim8!XtHok~gr0(C?OG3)yfp&mvi#)fJ?*+ra*;j{82m zFgMS*!^8W`#r3yGxOC_lhx@j&wG9kQZ|n9ErgmPo_WP*w;(cz`P?w*z?~6y_&yg*! zI|IgWH^hB4oaf9AcU}ZNvgb{lQ5f#5(H<;7y_~#oA9g@&)D=9R!*kl)7oa_RE}q-C zJu~z+dAR6}J=N`>453Gpu3Yfz-aurkuha@{ycAel7ldMQEA-w@&ghY)(dHWNo|ql( zU~I)s1=jh(`RL67YiUe}y^Xi@_1SAqhi94bAC`vhbn=Bix1DjZAu^v|#dFt|h}GM6 z`dJGdT~Z&ccrT-#q|P5Q{W-e-U=u!qGV*L<#J_#)SLyqlYbE~yqKD}6Yx1@&NYyltL@X$ znNJM4r`o>WeNY^EdL}X~f}IzyBM+$Y?9gKBqvlgTWEErJ>l|B0exT~K>%AZ{g}N+1 zPURA^H;CMb-2$vWc!fO+pKHj)lx*3>*-Q{ycMji+tis)0_!Enc-@SGo{g(QQnuQ;e z+sFRgwj;4IXR`Mq-t8)CC+m#O+?{9kKid1S7oz`rc9Z`MeW}jo7S?XlmgBo~=HkU$ zJMFz~+QjW8GjQ#sCxWO{t^B#_hW3UZv0dz)-)_^_=SCbbc;Xq?hj@AT5ayL9mK`m zv=n(}V7lUthb>}jte&omepd?<_}+++ite@snGkE&}|z>aR&+XUTtwV7WAG6 zy{j&n`f};nOG6iB(9kL?f9;FF{YBt@BX>sJU=;xOLId}ez`ZaH?*6th4%{`TcJ28x z_$dmlN8qK{w0?d%KZBnhBM$4N_z517AD(>Aisk5t_|)wD^bF$|KR9%Uosz~+hW~hP zP+nng?DEP&@|B~L2H_R>Nc4R&yfQh1R}OI|+`43NUKy9cE7!tXmWd_E4;|Wu&M>;G zG;}HReNOpeqi31D`$GAakwMa3;+aPF;Fgsa`aNTcPP6gK%G!avGSlIe6u-Fsabm!{ z{&Dsp$r!R;F`*r`A70+C28Xtcv;EZa*@(AdbLiWg0ov#FqW|ww!!weS_vfU^`)i@k zATl+APd-zpd?jNHFAbMdTeO>Zil+p_Ma9^Y+^ZL$*8g1Y@SKdSmmeurPo=i1Vx#P| z_Q{-A6`Av+snyV@SI*PdM>57sAjjh35AZWUZqE-Ubsii=&$+btiyhD+JTO3RBlnHm zhBxBK!W1oDoK0>Q_si{if9Nh~M|9!J?Z1UCjuY1qqfhmflH1U@{38+Obq6t1lG{U) z)$(8JJ!Ex(=pKFWUCC%<#zXp>MOG*NVIck0=b*o(*!wx@4|^jQ-TdryM_vQ}6Upn9 zlE*`k*Hy%O3`JhQL!G?Fk*>Txcc8p>Xmy47*s;}izMRevLz34i*!$bI3eUhko4h_L zTE~`w*0*_S{U56a()zU-^EI?CosdrJ+l-AOT1O^});G?OPxSOqK(vl*b!dH0%0_W% z9X{~T`kv}^T3=_|D2CRzS+Y@}^;e!u(Ykr|?aQf8aROTZ`3#%Zk+s{{)`lLW4`eN$ zOGAJBg^{&;(qt_>=*rqU&X^=?zri@UWbKqJv_98E>nVBb+SewgXrO(PPmRz*?9yG> zrMs|6JFSAuY=lSAfqi{N?3Iec9p!%RkXycePF~|{_)5v84sH)X-}Q(wl&dev_Vrq=N?W81LQy%4$!#9l+5>aQ%BFiZT`ZQv&u6!C6B+daEn z-tIrISG{Mi{o1M=Y59vh`>=m@=)~Bsjy|^IFZ%C8arN8fJ~kJ-b2RJJ^M#xl&t)&A`(sMDTY4e3F5kb7&ueVSX{qne%2!nK zQTBxRkoA5)jTE)bX76z=we{i+RTVp-rHSCFmi&nrWA11ih^Gj6(*37}^r<)vFMbw+ zAL;Ff@wr?9%@;U0(KG2O>1^2ws@r;A3NOxCxx@E=`ngkI_iN`E8>>tJ!+1Q?AiDNB8?F!-gNjo;wc4SuJjet*{B z_rlb7b7oX>NpAdJ^go2(9%8PBir*i++%;2{w2Yw3%!S9d0G>~7{ zdhr|Z+xMwbyX{aQFRk8=YURe)lLO@MQEw4|kIH9AC4x&{w$o zMXR{^a`eSk$-IVQVwi^EPxEv4!t(8N;gwzJ3;C<1FZ5l$Vbu%nxYbuNzP;|;x#ZK} zV_iV(mC5PV*!6)L=2Cxd9x~N@FRXdLj$9h~rb^)575uFZE>hmjy81aaKM$6cpZhRt zHQ(pg{JgGo{JBf`z6Ck0b?@Y_WT^fwA)c+9d#t5f?Kr=}wo-C<@`#0#?2RB>pL_Cs z?y(L&yYB(tvMR-yjOKoO{!Sci?ae19Qg@+g4iiT>--$!?={vc01^m9R-C8Etmmx0- zmMolAuw>#a^2r95Lk)`mBK~G)ZaGvr6gq9THGc||$8iv#V2=;Tt{}DH( zHOCEnoOSQ?hniS-DprzqQ}-RSb4ZZcmbn*sY^d$ukG6DTj}_pT#~->!wcxIhALv$W ztJ}1XAZFoaJ|o-w_xR-d!LIrwzMoUHhp_FcErHP2o=CT=f;HT)Obmhg86SX_=_^4$ zYlPMW#6y5Hq=!5OtYcRfbMo$6`e2HzR=%a=i#?Ag8UZb zw_wFY#@yPWFd) zDh8JMlwym?Z@LLRuYG7Oc4Iy8h(JTiv#fM<{x6Mf2Cre;M&dTF8CZ#CJvP~5<}m^O zy`1?|+i;fTi2BuB)Mwg09av3%(c!lmo8N@LY`9%Xj@gais}Fq1u9;JcufWiSU}5_w z{_}6hdxI8a^NAMB-lER`sD{L6PQ;a^DCy$VZP$s!?>sLX6BABV|UaV*4(hr zSp(yWwq^fE@#WZfwb#<-uH_>1hO?e%J+bK853(lBA`yNCJMdCrbJ z>pLYZJ3k6t-7@QV%Vzcjx=T=UrnD4))hCGm9Yg(YWR38u7`T1cv+r0vvR@9>2SR`M z{d75WZgqyt@c4swf6*f^oEWG7^4zDQ^OJe_CqEd~AD=HC(>a0sGHwjk4ZyIo-1Z^t zb9}xp;q&cte7<_t4sA>Uru!Tp!am~2Hu3BV?A(3uaHr$*-G|Q?8+1XyITO+E(skNH zxa~UORj=H6t4#6$8ggP1QZgSL-9)`i+lOYytjqs}PhpSiQ}}`K;E8ERCa=@JcEZmb z`_}72EKl3l?$N&X#j4!!y)6rTId4t*+YNk8yvsoN#);S488BxUCKoSq2DCU1Sz+oM zjtw3EDR@T4`|R_JZSoB~=RL=;-k7O%lcmNtS@yx<+ybFz4LY}*|nVYAOkyYLk3>M_p7KG zN=#q3Xbb%l9X^6{&ygl}chM+h7BpZX3p=SF+C?4FZs@;~yB?k(ebK$5?~2dyyL8nsk4oA` zsw!@#wvz5GuUaLTg)@H!U)lZuf7?0ejtDS-=V$0#VBy_0;RtYg{e=%& zgh%^XwR!eyo^{gZ1@5Q#<6Jw2S8e5|ivd%eVRV?ji0cK8nyX;nL7Pli-z$MwaP~nS7{vppwgr(f3FOIr(4ZIh?i_mO zQ%89kwPzi?cO#E<giJ8#iVpXxLp=v(kM@^dtKr^~*6>yZ*{_mVH7dye-lIEWnG zg`Ks8^R9Os+4m0gcX4;$Q(nAnEB&D5Ao57#*tUhQP5F?rKYZ}B`b_a`i$C1i8VGm8 z8$C6?iv4r!e9-w{@W}s`YTDG$2EA5OMVqRMQ4TNn``-%e{n|9`*NW2jYt(a!Q%AAy z7%>UhjH}TJUGSUc(dX!dZgfHkzBHW!>X~%H?c~w-IXa=w(FsdfH+i@RyB(d-hfdgZ zp|v0nov;|V=y%(P6linXJ%;TVrPfg=wra<<*sSn<{5@pJyU2sLt>k3lz^L07noQh6 z$)-^UwV#r&?*iyivABv^R2=MAk#`Yf(H2u@hvL9e zx;_p(<(HA4vilm<%ki}>gl21?*%)+J3*1()p7?vzALLBI*ne-sD}0Z^TbE9<>oq2z zIrQ5*inq0E1^C+9h}(+v+IZ4=z2d+d=}U2IsJHi2lbofwXd`Th1!^lfpRrN>(~!P8~f)X}EX!;yVFN5|Zs_WTUl z+V5DSCxuqXx3dKvbZRH()yvjCv)`5~F9_WpPPe6MDv5^^4@l-S-&-&KphYs-tpTzD z+A;Ch)K4reFu4Jywu^YDukWMbD)!iA&{(wjqhVsd_E-yMgsRBbiq#jSZ2rz$n1{1= z!^_s#(AS?i+R_2c@*O(99{MK-^ir26jSmAj#DRl+7{)do&$OXsW@j3P|@^{F-mag%}n<}4go$~o=tWZ^9zfAwrjDdN5 z_4NN2*5S?TtMcUaz0GgZjrz|WZ>hyQ7AmP5}a$eyeFY1bR0N<65!pRZWwE$pG& znXmH7%hbNyrfK{pdzKSRxrjRq^Jd%qxO?kHctO4b^UekR?|g%rmyt0h_7C|qKJ?Dh zM_bSl>&k+c8Go+iWGXfpn8+V+8MtPTX~%OSlkI&`Djx+IktcS}wVW*=O`yfW>BIq3gBWKfsKJ}6_K>h2l!yX*t`TikY&s1>L@ z7+|^W#qQ6IF(U(v&N`7Fe@!!E!tK-*hcr_!u#uep*elH~AWU!cpm`#`<{ z`8hhV)z1AxUyJmf{5zYa!)b%>XphbV-y?p^>$6GoAuyjE&$)Y7J0C+fhF90Vm+`yH zkGDVz1Nd?3KzhuYo^cY;XS@b`f&HX%&?4HezNehC zetWT#JUQj1DRxo0aiS^7S=nJadsD3j=^y1Ry*|OV!y+@0qsRqpM`AOvF;~;~m{Y^? zdj75-5w1aQ)?24z3*qZoKPnvG!X65{F=%3)us`F0(5@!FXZAVt7iVq}-r>A0 z8M~IXju{??zt&Z^k0Rd-n9L_9#qA&7CLTW&yN18z`~|d zGi-~UwtvlIi*9p$KNpEVq-UHq5#|$gbaR=Lx2L)G;hXE%&G_liWhvdfrQaXdcQdpw z%}PcmF((s?Ha2wsPteWu>*(fnDcwxJMjz{ZVH%$&rF8Qi`+Q+!xY5|^irWZ;z61`n z2XLQF{^aqN-xD{X`5E0Tc+yWwH}l=tA^iTCk9l-6bCGUtH+c-Dp_`Z=vS3}BZibe9 zPOKbf59p7)&upgToiv7NOm^681H~YIXpAK?Zm1qZW&i z6Z{Un>)y`9n?d|em2V`^Up<2C)gIFFbSQ3w!8qB=uw++ijg?ogG?1e*Qvep)5GV zwcXZb+HSuhmLiw!ruhoLzj5aGpU!*^*4X(9Yt9l+jOoYm?cjAedKrDx2VRXY2V9H) z2eZ`>6a#Fv8?)GI&ygSD>Sq0pF2Pm{q-?c0!_m#Rf&ZD%6*SfHd#hrSE$>5awv;uz)cPho90qG^_xH#?7 z^e*kbeW$G__1j|lz@NG95%Og^uniK}2%@`$c!NIVgGzAzodAwHqf7uxlUD$pt44~^ zd9SD26F(gXjibkF0<`%(dFRlx@gXvv{E4c8AfKPk7<+)3{Mn^G>Z)iyz-T2paj|sb z>yA!j%%k-looLQFK69i!Q2U0n}Ur z@)7tzFg7|-aHgM>PUO4MiTr-|1svxvm83{ z?Q62jhjTpgVW|4>;%Ni*;nVbg()w@+@~B7k*~YlKX+r4lfsc_#?bC9~qsNH-Igvbi z+<}KHkF;O!G4tuy&pOW$-%8KOFL=E#IHL%eA%Cs8+Ydgl?M3l~YJ(KCS@45$J|@#n zvcP?Q)bLOLdur#^k14q>e|g-h=<2fLDpq*$CO>%`d$lWAky(Gx_#4c5Y5M#(;n#8P z44n_#=i_c|3|n8jc7V>|bob{-{0M<1i)J+(_bvM}dy3iUGU@ye#uHB<{m5F#d3rX1 zy@5UYj`f{0sToB*ci__Tuf$fr-}jT~MUBr^9uF*=j8CDQGm#1Zz`oKN7iwBkKdT{c z+*jl5pY^-;zCWw8_S9{;BKgm|-zUD_e$Q>M@dC#RXHo}uK_#(3&CI7VVJ(Zl)cTO# zRShcbbxa>ES0tCxhxgs`WZ}&IS|HAPk%yVEmySBmf%W&{3FBCC{^yNfk&h)aenoLB zieZUwz#eIVR+y8{zx)@A29TShkYm^dk-`8qNb<;&%nz$pP4}e2@cxU6!Ut;n6^HB5 z13RrWU-xF@iK$aGAKB3WtXI!BHHw6fSPL?01N%Pgid(P|6KC){d=hQq-k}A=t=zHr zNNg0(7{89OOE~9f1a^@z&~KCNUp71<-Ou+@+WeMvn>|U5y>Cg;Bz+4$fBw648S+yH zPAUJ>80qr<{C?@sD7tAj{uarqR(wnw!K3Ue<G!8Qq`{kroy$2w=0fFhm`7mdE|5}Yx4mE(eLw|)7)vznjzV{($VkwoTnTV z-tUk5u+sYS=AOh^uk?D#zT>^0{f_zw*t^;*dFK#g{2Kgd4Wl_TLVnazi%~SMTBR$1 zxAxwuw=`O`%I8J+Nff_aOMCt9JTvjQx{-S6*}sD$WJwiqxEF3$T-iWa)HwHW z-%b2(?F4d}HHWj)=Wv?FWlzyRM$p8OI%9m@%xiMm?gzp1Jl`YaxvHl8bI9O{yc8^Obz&`G!EaYfE0Zhy6=rbq#Ulv&}t~Hf{CioWw<@36lfgU(MouzBOaBTDya$PVn`fMr*J9p(WQ-6D+j)A^AlYL6cpa8_AZ(HwwHi3~eK> zN#|O+1EB-^*2G{CV@CeM-oho5XNiWjhl_#(6R%W5Obq!T)Ii+*OKKt3Q44Ve-;bV) zzPrpyo(G|oplg>f7v)!Ol6=PwcjNBltC6mYTxUJ2eW7(M7f&W%0^3FWxWK`e$(6un$yV>st*7y_iO(5`KjBU|6#lf= z(mqXajeI*CZmp$x5Di7NAODmJsGWdBx<%8C;g}UE}wv&m?=_c-==UVI8 zSFFO_Q;D}b04}!%G&=+JX&~ z7FS8%vKbRsL1*(hV;7F87wC>ZRydwtRgt)=s$$}q*4|Z*|I2Fy1&{ufSm5?V0rhK&F{>n}MWo0}UEQxhk(9ODE29D?Ze9gTEj?E4nho$0C zds46*hTbkt!7@tBmtffgEcXkR(5T>U@|1yTKP-#e{tSJ^X=h*wOcSh2_M;b`2A0se z%PWGNu?vA^CLEt<>^Lw~KL(EYR}@b!7(VvdRj(CY@#tS48*M$4g5?NcDZ9QF9#?#5 zJ>x+Ct(@Ob3wgmRV6Y3^cL0M9`1*SKsReeTrB2q=VQ9(DF>-Oai8*vI$4=H|@{k-_ zl8?VTMN4*m*1xfSt--`d(JqZQp*O`*d{S|6=5s;Y$Ia&=^Ss1-E;gUf_O!W#&)InP z#;ZNH9Xxvm>$IHzj6U7z)R&kc8}HPVzozdtcyvo%MaO#N?S1fUGq_w04>h5W8ql-I z&c17;Z-)^xUmX5s9=fa+pP{MQ20sTzQb#Mmogv~o>S!t6WIeL086Ic?=l3CFx6HO< zxmOEjfz8ucUj2o6Q-Z;iJW^h~3kH}u|1JPUaT zGY-J-t&aR?b>v4Y@?(=~f%}SkZ^FmA>jG=R1>_&!>kBl0*5})O<@^7#_DbYPpEa^~ zJaYTM94omWyCM$GZTUFT_(|f-#l`)2(I5ESkDfk&?zUs6{KNzjo6P%fK?9xi(N1i) zeP%bJ?Hthnb9Z6lU1tw;-%D&m7kx?Qbkgrl$ek~rGyC;hMh5Ty0W#;;hbM-9we-ug zUR`?2tUha4uk_sk;*{PZPRX99&IYNM;gL5-g5&}^a2Gt?aSjl_@fL9$nzwjYF!s*v zvmdqg-iK@&g>3rGl8-&}YwMKeUySHgqd}Y=?WY#9?YwLHN^?i29Ewg@&%-V;{ zih{pZ@b?P%d+Z!*!CSz%ob%JKfVXwv@SgYAt^Kq$0vw*w>jy4z;C}%4OCH&<(S7kI zp5Ewz?Z8EFmL50&tX=%+zV|K%cYnc7Yp4Gxc-MaT3Gvbrm9&5nky~xH_mz2-i2`&Br*?0=F@hiy2 zFQaEJ7-@y}150tr{zQ4KJ5;m6$r&7Hun z02{O5_^P#Cz>j?7W{scHlZ-2Vl)UP6;OD~b2(dSkQ-WP*y3fWIMONE#Kij&rCaul8t~K0K(a68m{ENUtiYZ-bK94lIY^nKt ziurtl`8>?DSlJ3e-{{8Ra9@v(}P?EVcj zxf@)+WF>oEw~~n+Rx8N zM+@`Y5hS+8*ZahI@C$qtuVsGd=-AJQ86fvBiq7(%jhvxR|JnUA$CWoxoX23F$3_Hz68DDgNY_*yJ{c{*c#j`#GA+g|T}T(k@y>$BO9(U;3Rar!iV zRQ_r&w$jO=KVN(!TLZq-UhE3|H8)^icI?J3$4;!pZj@~p6+fXHw0`-K-S^MpeYI5| z=DbB~5L{?4UaHeR<0a^tcg}$K;>?*CN9=v4KjtX;r8R$x*yhYNN!MmRQ%pq^7&mfn zgX%jq;KSI=9NoA<=`ima4-%K7{9c`t>KxR-`&zT_*xQY5aQBi)v*e%YUt7K8ygP1WERA6yQ}1Ve zLs>&R{c7%7gULG=&9H_?!P#ogW9fI6+t2fZz~Tq=qxR~)~DA)x9D%9Tc?vt7IT^k0RqF z-{b3p$v1#Q-`9YN;7u-q;4K<%aQqn>I}@+V8CN)S#}qt7!>gcQ!P>wHS|2WWAL5Q- z^vyzIYUNY?jtB08!E2E-MmBh{Z*|}`X;v3&@A1M*I-5D$`Hg~CVG3TK5xgpqGnw$3 z53G1kdy;;56}HU-UUAl@*kH*Q!-w;M9ev2=oj=62T;y4c3o{q@TFWZP~*$m*-YvDN4^ z#SYcvn>h9e?`f}PbT9oz3T^qF?R~wgKD_TgOgx?H^vE`{;pK0R{)RasXWmC|#i!Zu zGIp#7Rt>~4+$+0z8glY=`IP+4l~zITW?~y+^~}f6nRugL#>qyD5YMCbf}89z6KhpZ zE}kPdlwZpoI&F&Emb`LlSF{zojegl9W~1R(=+{fb5qxs7+prxCJ|=tU*lPO%c!|SL zo$!-t7}ha&cg^iu^GxD%dC$vNCC+-~i}kMed9C+Wtyg&*1K0bovtG&d)Ov3P53JYb zEy*I@g)X&r(a|N$PjzJz$bad_M$i1dqxoIt-~<~ddJVX8|wlfG&s3AH%^vk z!^zDyPNdIVoEUx2m|tan)t|-IYGC{(#)q!rw}aE=8MNu1N4t4ITd66Ey)~bl;52(n z`9E7{hhKfaKmO;xV{c6&o+y{Swd5NE?X5!Qb29dpId9E~x8^J~xt#Nz66{dfe~Ovf zOfJYG_C|`=C}2+G#}E%Q6`Cst7qnlbdXChQCblZcz3$0|q~_X;J(aNdFJ zj+6lBa$r2wmKztscd;?pW}MS5a%`eS*hK&A?88Kh#xBC{iHbgXFSxSWv9+BTYT6*f zja)J|P}VlieS)6*7+m{Vc>Is~{djcG137=ldVk4MWSuu2-nE0LgOBmp!qwQqCCEhS zt4h|A3CHoQtsFQ$MJ&;H>RGz58xQQv9Vfu964>d?)813q>vYZpnHB@n1%#dg0?Ire-tuD)~!^HOsSRieCEn*~_;JzcJ{dhTrQ0*32r}v)BAF zu`ZnZoErLw^05_PQ}j`4hJR~2@%~}O>W_zB{LGnL49<2w5gJd-j!Un1s!lvGzK*q( zszyEcxzu6Dc;Oj5!S~Ge?z%tgtosFL-QN9+;V1k%AB^gc_luy9^3SXa7jlj!-@p9N zoV_gopA|7=VjP`i=Y48FDqGsM#ixhne8RR1HdC`+Yg28FRjh3@c$?s?Z6h#bGtZsf*fe=D`YoqQf?Y}s;0h;bga&)ucwBD&JsIW%T|8xnssVOF;^w8 za{i1Qt|B)=<0}Sl1?#C|{C9|3C@r+YLHHnA36FqZ&ZLuDz^`Jw%N_i>`%&>woOi@S z1_h@YxT^p)tO(bGr!gW^Rwa8%Kn3Ml?AQTu8}?0%H4iZ z);JDb0Is&VxblH3#q*RwD+?75+a546Oc8MHg}3^Nawe1Q{bkw_=WP}$c z5uXhcauMw~jfU;JK1hej_!q3b)#8OxYgu;=I(d(nh7_G_%#J5_F7Evbl0`kdCs`!f zi9A|Y?U6@osTuFeqjnSDe`;t=TbexDmPHadBgs81$gmu4_i4pppx3- zYxu4>+SzxMAK3(MmuJWwa*osG5Hj>r&_#*j7(Da8*E9dj`&-uFC-KUolb4saJgOZ; z{w(y;RSx-+jjpa4gsu)152UMi$>;Rwxk2e_PAR#`3r-2m#g}sZAaph3L(tWfA=1?( z4_;Is*R@Ub*VPwOE>6dfpSyqq*jtkEULGuRU}g9(;y3m{4BGKyn|?i|zieE&I_EKD zO9UO4P3JrZ?Pcnbw~4Vx$p_1pnf-dx(c8#?>!IH(?zsNQ6~)$%Tf41gKE{bMm#RA^ z9?9(Uk7<4SZ8=z&uA4H~`YP`@wojU@xit$-eB~r)Vl{E4T~E!#_W8#4$Sb*J%?}y> zWM$36nsW|WvyZw#K4KqQ@mES;)MkOxIxn2sUD^DtbRCWic@FzW{GYFV9sO>~g2!)q z`+`=akA)u}w4(EwOdKuqws-Kpk=m}~Jh zCldH(8f|3a=Qyz!+3@pkMFZvP_Z}O%Ts8ZLKlwsS*k6nq1V0hRKUw^|t~uwxPv-hw z$g#c~vaIj=lUSeP!c<4)4=?AI58)57w(kzIHm@#!h#YCx7P%dNm~@5yOX&;FB(mxA zB51aqeWdn3jrz;}BB;OYFD(8_|4MFT!ttvP9JASWW3s^VBPRh%Xyu)*_A^3{K`Sc< zf#>Hw1U%<@;2BKq?HnEDv5l_q!1GCu4tC*b*H-TL4;cGs5L@Rw#?91`{kZ^+t;F5l zlJl<3&{_|Z!H|i+mDiGJ5-wqe68!6J1I07 ze4RN6zIv`YdEWjL@8sg`O!!4S_T+TDD8R0Px9K zr1>7???vdqT5uFm8`^H<@A-Phe$cdMUuo$#zPIx}F%V;Gclk^VXzd_-zE;+lqK)<( zxczM!ZLIUs#(mEFRqScX$WgZU(do3|(9}AwZMZ_Pb!eiRcfI>F?iKa!&-TcNSC&o_ z>$2?6Oze5eUo`ei!^7)$rOCw9+_gVj%p6Ly_>0(|?eXl-)_M15*J|E5$KIfqU zodbL2VR7dErrp^GBL}B|!|}vnn|<+EYgrgvj?e4=?%5}&*5YF=7kcqfI&?gg41$OD zf`NG0LB6twHwVQ-q4qP|DnoOr!*R(Vc<_G+JRBx2WGHxempcz!Ufk&6#s6)5sQ$kA z%J4;S==k`V)|G=VzLW(Y*L_HQy!ujZzW6uhaI$<68X`XK`~QTG>%I7>8#+F&9Rwdo zsDPM0`yB|AY^p7auwFPBy*qF7?WD@y7#M@Ui|w z;v;_$e7wONPL@Aj*1U(HH(sKa|B2+4o$Hff|E2r7({#h5jGdB2DPMQGj?UqWP3z|Y zZ$BwtYyY4-FG z;2R~*A;lAQnRBuCG}&nRb>7QG%U@GYhjY%!xq{ILw~@0sRDCc>_R^tYp0~uhnCamC-Z#418>C+nEmJw=%LYzgB9Ge&G~7uVjs&F8)IYtN(+n?8pR!h;Ju^Z8HDd_D}lUh198 z#>~0orq@Zrdk)#Vi@5wudVPuf*rC#E7cmuG8|`zjib3dg7;`vTdVQZ5iJ{QzF>(S= zM6asr_`xWTyz|iOW9+Z`_wqJQUrgqfLHj)8=^k0}h5Mf?k9xBCyV#58qO)JH)|4zN zbmAP-=eDkA{Go2{J9z$uep&Q0?xc5lM0@D< z%pnJEOfgdr`M==1t(*p*+Hw^;c%RU5rKQ=`8UT`w-MV`C#n+e}j zyzou=`Ulc)CVZ_y;JYacd^esfe7D)~{m3BjjT0Mlvh@1~?+isY{gymOS2mrHeplv( z?@t)dkq>*y>azRjq`xxZ`@2>5<$ zi17W!$-sA8ZutI#7ru={hws&c!1o~M+aBF&H2pYzKaHd@3apA-}8nD z-w7uJ-(Tg1Z-E!S8;1_xBg7))qTdIz!1p^R3*S%p4E+up1io)Fhm(~Lzt+5mU~B)1 z+{_`%he71;4;U{cA5KF4ZX5)@RaxL0JX!euyA9v%&*zp8O&n3P-Q=#?aIBgb@Q?dB-#G_jldC9)sfT^M3>%AL%Ur&z26;|Hv z)s}zv%Hylo)}0v$KWybSOU|o?_%F#jxSm{-8?Fu}f2Vr_u(c;{u)?bSO70RlOvT~F zbLpR&eyzl_x$oV@dv{Trtetlz@=hzc3~JX(e4OU8lDRDYJoyOJj*gP+q+R(R^yil21(z z6+X*#+Q(keN*!M9Uw0Lo^ZYX1e?tD1TYI&UcxsD$3U5E&&!R`w&v$XJ ze7I5Mu8^OwmK;)(12>BL03I4}_xtm>W5|2|p|jW7BcH++U>T?*FXfJ4@*ja`IeBH; zgV&HxR&V)3fjaV%zRbVlr-Xr7MF9Ak+&ySgcX;~reVmni5Sq{$zU@rYL`{N%?EMA3Xz{ zg3CBC&l_76R{r;Xa?@5&)5-r0C$Ik-Hs;h$m|HTtvsiaQtRNC@mDHuzYaX> zdl~P-Kdfu{_A|I2uSB&AsgY2?ob)+@|4TWy(PMoJL?hn0sD7$h>jR$+FK#q6y2p*_ zU%Zlf-=a}qdi_fB8}26W7PxuWrS;@7=atZ89&?Vf&R@{y26Dfa*Gvs9J|h^eBwuKg zQ=i@BxRM8Z@M}j~Hd2$_3y%rRO}RZ^WZgBaJIK1VraG;gbX5VDuYxryC*)-MEgb&c4iyP6f z&w+>Qy9xl0-xJp%-R%b+17N}Vi|F|ca!94OulCTg#eXh6+vj)v_f3jkMLWodgZCnz z^S?w*Lg+5${S-@tDM#?YIeca>}Xm~<7ghFYje-@2;sU6yb64y)+kD~v6gZer|3R#8Z`N$aTT zU{ULD#mC6C1=b5kSA{#E-&W>x=eD~ZDnVwpgBQ`~QyL38R6Dgvz)RP!^M#Rn{WOJ4 zT?GtFp{Y7@vjpe7vBB_4a?1+Nt_l}1#{l=tc3Va0r@PlitpaqD>VO5>8li&(ec$z+ zs_-Mo$bHNq&e(Uc7E@mqKK0V3YAMEm!N;KC3;Cyhrt!A~*%@(gb+d!32f>x_LjGV79%^2{Sw@eX!CRQeyC8>Qc9EqQs3!HQ@-GU7&H37vn7K7+)qD<@B~ zuL?WmkubHh`CdbgX|+`)+4j3iYT)d|_dE=JHSGA>weZvK%lTJN9j5*Cd&N1k!#7&i zkLO<)Oitx))9Q2JvD1Rdxf3rpcX)66OJ9rHRTT#e&TdA&HX~mzr_D!&Gwxgqo<=?$ zbQWJ<5bk5XN3Wp|c+~1mJ=Z5#pJ4c#Pm#+#GiYkfd4D&#zN2jZ z{xdn1uD-g>!{aW0D@VqgzpDB;SL?p3QNW73vWDG~o)0UT5vEVw`|7Q8v%+)F)j@|o zO@64cMbqnB`>_jDb2oyWS9_*)&_|Bg0(9DQ)a5a@YBxC#%uBXJ4f2G#51|_PKTbS& z4R(TLZa&^9R(kk-YQuYFHlFgCF^QykSr_SWBVDIYvo6t!y^z%w|e+M?x4o7E2 z!2J&8UFt77t4@E>S*839fH%7ih<$gr4I}5gJOwlNyKJ%iw*Q2WMBnZjFLc(pI}81W zGw4_Lwcf2J@2&doPll9V{JUF@I{O00w#1$j9iQRw##Drsmyu&hh>wT-nx8~f+U8~*FRdcPqvfEz<#(E~* z`A@7}wYwGj*~%GXDHABDqc~5&nx7`HpGd6aq z@~kIW$)dmqEj3Qf@do;@qhHlzFBh!g^(cAPvO_=c+wJ1OO>=E<=DL`t;v+F|ctw2w0t|NcbDhbt44?T~1=-1PS_^cm?b{%wVptUa^_{QrmmRccd8y~p= z+o1#-sg${5pN0z4>S_DiR^DsZ)7H4{?8m&d&qX8c)Md7;;?OVdfrc*C9ZaR6z75>@ zrF?boJ&GP#Q#uWM$;u0D8hyz1efi2i1>{-My{Cir+T`U7t>gtsqx@zyvP-fTV}65gQAsPT39+fEnW zfcc5=cC`m@p=>zt=r9)t)3V?o_VIpwzr}+C7yiXr$^|J)BF*xgx2egJo7dHH`xumcA!&8!jZkayW=#)h4Jei6er4<|q2aORq41uIm$ViRzfAioB+%JsdB@9sX&LZ3v~x5<~PJEycyb8Q&g7F7K! z*M7D47^?pjXYIPHWWQwT$Jy&+_wD#c-?AXzcQ8gf_PcDr8vV8W%N9W&JE_-!j6>R>J<@IjFIX%8%WO*ZPoitoINIq6;GyWUaTPUa%m zy8B7V2AeM2eWq&8Q~RE}IIm2`hXIV$=ju{xuWC(--}KvL`iQU}*BwSpqp26k{1;Kz zH*@}1F#p(0=D{4~6K=YI`D-nCdA*vGSwoGzhE4R{!F)Bx9gLw`yb)xj*7J{A55Eb< z@{>g7+kKjKIqw)B1>cqsXvoikRl1|JtN)%SMh^%v$+@^d@Rv4no2JgWr<)f24+g-gcInndl%x%9gY zS}38fs!|V6ZP_= z`*tUgFN>hpCh;jeGvWBkwHvKGY90sLcD>fu(mv+M%sgwuYk5}QZsGA!=vntEv|6Rh zs13D1xD)L(v6cjPJw>Kk&q{YuV{9+JjNLnrH?2*8JN&-Q@oD(SptlD_1|iZUbYz=ba1!R%E{CM3?@xwAU5QJcjQ( zpLOKJ>*FnJcjp}LUA6L?Te&A=m%%6d2JZ5Ef%=p&_`;S!s)_GM{^YeiiCj=$dM_sX ziN3}6t1kxk_|Q~0TYCtX&n^U>o#^0=%t!t^y({^!3xAmWgm;;FaCSt0-ONMxb-44G zH;TD459ubGUo{7vPZhP@>&!!as(-y-1k6;k-#dO6zl{)1q2)$=StTowh5Ac<^O!@w zn>nK~^b75Zel6O&xOed`oC`nY;Af*1FfuZdk6ppqp^;|q+PcBBcWo|=y=&8bSMAQ) zhJiCvyUxH^>nm*goU=aFr88?xtuGzEx?}OT^T!_)2a6yYBMI zl%e(=ZE?l?ptocLkg0?@HzxI1S_k8}T z=kwE^&rf+i|IqXK2j;Wv$%3}W`KDUCLu=$*vbk|;AYWC~> z@xb!mROMSwQ8%cfmUwXarN%q-Q_mS`y*VQdG)t#Sh6+Bm{;_>5HV&<}TK2WY@W5i( z56Z`(Z8iN!?yRIA_Ph7jL-XfCKdmoV%gPz2H9_s89PM;Il{r@C_iX(?k6rH0p`N}q z#>@CdsJVTxmod$6OT^yBVYMgV05UVfxk7*-zNL-p}-kw?_TY`Tf;az zecK~(e=SDs=W`EM31|QIeM71%(Zj#}{4=%<_Zrys zhq=$@P3mmHllzhHy7yQ1N@9I=vJ2a%V`f#ddp&mmZ1E*~TCm6P-Njqc%g21l&RePF zUFqYVb$>Fp!AeHoq(*C>FFE~m<}}mC9Us-ke;40?EWH)msIn^A*@DhkkIvarmF#K7 zhsS(+k5wgqNqz5j&U&rJQ$oW}ZU5tez&~$aG1xWV z%-f(^^3#3(=0o@SlZUsAO~b>N9X#y6uR3|-Y(ygZ*+&+PO zrdKwO3H@>sbs*_S@9SOF(iRWsJVs;27;o4&i#J@k(7*Rm&WjGSR?cG9-NYHtm40h_ z^dj(h9s8VGD_P1JmPMb@z-etU*74Z~iCfdWFRC*AXs_swr90j<-eGWhC<89%xp3K6 zo$TfJo91!01pky+BYJn9hiu{RWd0s%8kPpn?-6%qcw&PuxfYvf%KK~A3ig7>y~wmR z9}6be{xf!)Z&+v`;aMNY}iAszU1MIaXxUy z>1nM>P62N{jHlXX!f)oB-gVn(CV}2>n^PD8O4fVB=gX+0lf33C%{KY1z2L&>xW|o5vnq(x_*K(|UjFEv8v9U#;io>~{``A0S0(a)7zmLuhCf_2aq;#AWPVmf{ zE}!ftiEAopyXZ7z%zM71`%H7t^C^0Mm5;jd)!7#Jd|TYxMhXe=7Wby|woi2bPNONjQAJXjCwq8vnhj zWc5P(K5Nr2;|K;Xjn3bo^(|q2cXJk6gwOjK)-!-o#XNUba!gsfygz3li z>y@-U^9*r&S^7Q2S&!zgdb2lxpH5_-{9XC1W0h*g^Zh)|lkqVmwYN;{Lq{O*I)o4Jf=Ye1&G`aEZ0 z=&S^KsgpJL+>FlM$^9qLPVZ$tb4OQ4lb#{0yuQzm;_Ws2BqsGUJ zo~yx&PbUG&k-`#tnC7TSs2$~f2p=FVSqSpu2Xv4e4bM%#w!3+*K^Hy1N%wBpb>?;7iuO0yC5D!Uwdp>W1a?U$HcEGcKiRbd82t%;&Af`|{nkwBrp&fqa@rorgSzq*8==eQqcXMBIDQhX= ze6JC^IdU!UzGt7cMfqHI0sZh@ZHx|N{$84y<<4g+^LWV*eyWp;Eqvd|Quz}7^shJ_ z!K-93dnwK~7eYTnnXi07$C`?OF)%0ZwE7RHat{5i?bp8gev9^H&!Ol2&i;))7YwD( z|4W}WM~K&%1I}*;_tTL7^;YsP5uPQA+derF{#}k8 z*946W4~FB* ziEh?-9pF#AEZ$8p57uVRsuMd;t4M&u#17hl$76xhLyL)F(_JYY!1`DX-}MgbNHm>Z z5m|jY?YT#0=jj#dPc$N!)jmypQ7d#4IE`nDnXvDXH}`xX+l;QgHJJQ5woU|D6hju- zdo#P;<>2p;BlswZlTm-fZ0{+<7W?s!kF^|YI?a|rj3>Lm`@8z^z8hBi8oPaB_5Z0z z6k9V=ba)N)@~%f7aP|+Kn7w%sIJk~@w&ekPP4R2+r_F}m-jxru@(pNy#zgGCM>evL z{JlR}A)M33&@F9Tx*ckN(4gI4yWOALclinCk$NwZ{+{ms)>%iKIqJ-k^OD{&{K}et zr2K;x@7nI3z?r2xzExn>0H zJaBG@7Br6-x;KjMji7sLn43Nej!|q5BNLJNuFTGqQBh*5Tp8us8Bt_W6j>B?WYI$W zLh2{x$Rf!Wcg$LB7DJPaZD^9eUYh(xc@{i1_>&vRa}XUGJl)DzkAtVJ22bcg&;DO{ zx|R7n&iGp$JTXS*I?ngviQk2%6i$pS>ofT*!k25a+yj0-#`>Sbk5NVpzWNHybRkR zuPB&2kAM3(yV_*rUcMP;?u?@?uI|e`m)5wScgF3+uF!bV;jHfr=mj~g_v90m?$=#W z=iO0%WCx$$V!YLS*8Xmsud$+!vnIs^6gcq#I=fU&LtFRZnJ5fe~r`$H;2@PROG8dgM_vy5>F~_X-EM_wY~WH?jMW zUF)l8gI+{W$pfTk#XAG<&(4TOv zc8}4A-nHj~OlP0;_wu3r20HDVU9redJkqh*6*c^ojpzgJUCcc~&W_&69JiBkM^TR| zcpf&_@SLvahA zQgND%ywu_4&Nz3uAWu7&`{={!E#}Pisk5yO=AH6%yZTGcI}zTocqf7{PV&qL%^WVb z@I|GMakbMvwwyIyr8)RRhcf!qy)cp~v5RQ4!Ac$lzoqE!64n=ay7eJYhI#j#!QZ_^`NzncD0HMb za8|fm{fF`QRr-ny4|StAOkZUgeL1u$I?_Bo#a$fTj}wE-zOWlz((@$yxRGmmyIE(1 zK0m^`dbafUl?R{dJui*e{@1GHRQ0tby${VVLjPLdH1R&MgreIK(7N$i1V$L2g<|)c z=v#0M@V5cl!GF0RzSCl!fi{H3SZ{l;9)6QJK;i2!K9TU1_>iH6dGk0g$iV$xr(F-Y z-%ne$(Y=bCL-&5!$dVG`By^S%=v7{wd`-K)5!f)@D#}W)KX?0MJmUj}Ub(-DxQgQ5 zdDI@)-KiEn8blX6;QA4+dZI(;7TU#GW z;SBvMyrkrbXm}?%5Qhq9Xzj)L&2L~G@(~5Tsr3i4uK%0Pc!ycP;NHXfYmw1me3td_ zx_J-Zm2{=@gzEp=H@)+9*Oobry&^vHz}U9C)*o%LZ8@HSml$|!7}jOD5kau|5S-DuNObn0>yeP1+K-+`+>Y-Tb5O}Vh!4#>MlRS_rUU0126gQ{B5W3Svtp!2~Rk8_(|tqN1m>1 z4RlF3q5G1#zi+(fy!l{Lk5Y5F&MooES|&9QC72l4_N4k6PH2a3{k#-AA9 z@IJEZF<{oso?bLK?{f6nZRqV|wB+p3a>XmgnHy|nWacV7JVsOH7*1)`md`G4PO*Et_w z9&OKaXy+05uLHR&c_>;+pxbr6X2(R9v|VcCR9z!XMcLfXYu3I4{L9AEUVWBXZ+`E~mtqU#Snn5xxZbOVxZca%wG6V}Pq=Netrr~{ zWqq>y73-HqKN)MUW9^S)JBjA!eJnRlOP%o!J9O1)=p8$YI6MOv>;jj@S3%>Mvf+F$ zZ9i_)_QXuu&Y0UF+G#v5oWryZP1F6P2%!X1b4 zw=hne^}70GCwt`d^%b@KHRR!4XiB{M7SBXyqA{%_lm2%*WB8%}IKMBNYvfE@=31U} z+G!u@pC`LSdmmzjbk8n6XnTL5Xa2Tbv(k0Rc6S{ofY)PAyKL~1JeUg1n(;@7PS%Xe zO()-W$74Ohk4qhLf=6W1OrYV+B&XFqdz`1rcPdH9dc z7$@T4Jx;rH9wufj3lINZaZ85B{cXQBpKY6Gujl!%Jk=33Gmkn-D-R%Vke}-f5T3o|1pttHVCy_IU!C zT;uJNwq6~UDU+uVlblPoUE+?HA(N+!Nt4M2o{mgTgX3jhI65+UMkX9{=yEr$#c!t8mSOiDg=WR$DY-p}9r?D?b}*UT>9)xwqy8H*Ioo<)amMRk zZ+`C-?6H*G&RFj+PGY@3a@R75Om1`AWLvLv&`H>llF5pz$R^V^&yY;B{6-^EsDXid-;IF1_jO^<4k*!JW>2Z#wd6XS#e!+{#{z{aWYk?Ah3t zMeBWbO&G^NY_SJYU6=ETDUzRa0leG}-)zPA)whe-UE-FF--i1aZ*+VY#m0A0+ z%;B2!edA{xcpt_WV)okCXx~_9Z0{+?XTy8!t(Ve2_U0b#xz7(+)4SM%_OOpk$unoq zz2H8NjAK6?W4x<)X7=3m>>H79adPqkyz*(HJ4b#q z{s(?H{)ddUjC0!UzXtyUZPli-*gCkDv%9TUV0Rz>;o<+)C%A;Z3f#1xGPJSNwprzS zkF#%(&s}~n-I-QJJHfMu7{fyLyWOrIEDJ1;K^Nlv9_DBKV8GJ#gRPlBKA-CY)4TEX z{o(=V-3afRJ!+vZ+3xN?Gu9b(+D2JtYX6zh-yhsIg|spI&w_p*m~0zh9|I3&Kb8wG z@`oWu=e$=qQ!&e#@Y30W7k7jI8Hb2!X%Uzgf6ptmVr}@Ao@n#h6Pqe)1SNvhdNF_Rx7IURF8n zBh2eWcv=W_y_&T`tN;S|{oPWPT@4t<<2 z+#9oF=Y&h+H_pOuCC(T_#pM{M{ZMdO_FZIg9+S8G{P!EypP#(4dH(y=>%W{oy!o!8washuhBr6+ z@|r8ltb@(uS5>}j9h{G?5xLef@&Eg0TFKsN7Jf?$eA-x;#PjW+Vh98^0dnHpDU*|sw z6KgoEt$&WgIbX9Lknb;|c+rdS!BF?8_F}uB)dc?N4s4rFY@9B9&)wKPv1_q+=-=4Z>aRXsN0vMN=^V|-;`gki z1rE*mX2#fOy1ZHA(UBSbjdI((=lW=ijE=N?M}88!xr!JJJD!7BjAR6v8O7(V_;mdi z;j`pu{94Yqv1uCQuO$Dm10AOGvIoW%Y&et!CVz#;Bs02LLl^p|3z#$zdr^#UMD|>? zl^hZG-HiE)Z_VDqv;GKnRO*a30|vi$+Q)!F>Wnv|&tJQ3fPwdnH)3Uh0qZ2T#a@3a zFk|hU6ZRIvyK&Z?$GXRk$jiF!r<`#*n7fG)V%;6+qDtuKWzK~nTc{1^zMC<}M^19x z54vj_WZmoBHd)pk1;69Ly<$4Y3-`>^@Fe=n*gG}-KF)R1jS^J7W z+nUs8f7>ea+1_I`@p*upZ4HFGC)u+0H&Zfrl=GtQNz_+^PwjXOzmd1|pqWE~ymbFY zGx;&d+lEr>;LXG`D1NzP1O3APvHPGeepd~j8;)16UzJzT+{u_XlB3a0jz%Fh^)#-`jkD4yMG+9*_RG`<;rueeC5i^hrKe-SG;yV^R4s+dT+)iKOcQD&zHZu zmU^|Kn^L~(%+8z(qH7LkjC;B}KjvkhC0gunEORzHR_BjXE!k7sOb%1BZ+dsR+0(4+ z_rr~CE1@n3`yBfjbB{5`S*jJ%%;)>i9mvo`3o?EKdH_6ioq>mYaRYqzWupT}PJcF&1{gzm?6$tO@xK&5#G$5i{71mI&d561o5kU&81h8+|0B>u z2f9@8Fx@lJ$;an5lZUx?%KKI8Plcy@fSm=++wt&aK=6{HGhZ$4# zVQk-o%~ug%F1lE*7%|5;aR;9V$O?x>emOZqPLu?bchIM;$?gB!^y29AvqUfH`dsI} zo#RU6m8sdM5^^p(yz6OU8t zmRQy$@IQ4$d!N9EQBSQ2?Y%!kF8|AUdCjHB2k~kTzX^}?$vylsIWN<#5zX1oz{fdb zA7F0x%p;eFGqTcRyN@-ef>ZcH`}+iZQTJRP{Sc3$v-B;{OJu-yyW1uM z7H0p;ybm!)FWo)rv{zh#=iGCf_P_D{8T<&nJ+;=uk9?Pp{Yjqb{rM?=v-P*ld-iAX z-T!0nU7)L~&b{xovvVckqM)ECNeBoChzbfRwd^F^QL&YC^wjnxAt+e1)?v@l7TW|v z0SOj%^=(?|DIg-QsFk9&we2Y&3R<*9?5U@xZ|lC~20;bI$|gYG-+!*PcGlhm!S;OP z8{ZfoV}!l;y3F~^=RTkL%xC`l72121(YV(A{Gt2Vz~?D4h`rXlsENIqDgHFJy2K}g zl0VhsoPkbB$tOj>W%4J#F-p#2komw6{?@_&Rr;OFZ~pWFtX;)5mW-|uwhYcnRL);Ee)V>dPiOPlXOM((l_(~!*?;wmpGr;?n`D156L zyUGimOf8?K)bjbofa47&KldJN-^Pm4R`Z;*XSfYpGlM#tBNh&ypxBZ2P&#uP^!hBt z*{t?A*duL|cN#%Iub>{Y_KD9`9S?L>JKtabvbA?rpdkFv?TaS7!5)zo{@&o)Gl3rA zr?~bMx%aui+0Hn<>yn8l$HUk621*YsuwKl!GWNV@<=4+9FL3tp)hkz9z3XeNUS=jL z{*EsQy;wsn&f&~w@x|^g#usa*jSc9y80{tVt!dNbTbs6Pl6aj*zeA~iux!?k0d z8=h>_9VhV3a@(Zd#;1bsJg==;U1L?gObs=&fOAd_HMBN-O8i+~oB6dG^Moww*|gqU zR=PRUDiv*tXy4$Fnn2B5f8wIaZ*3|FeQz4I@mr4!4Yw@3Z9?Ax92 z;z{`5FN2afPj1Aoo=l<(8;g;XCy|4~bF9M$*c&%}$BIYu16KVuE5Cgsaq>bwhw~}@ z9k0ND#8>3KJsHOzSXpaP^OrUrK61R_F;hn@V-fsp>WEeG8Nm-!EhO!KY(sua=%*Q8 zf5HmZ=U9O~Ih>E6mKfhD!getfl)3E$TGEYeU`d+tHzFYdElWLo3r(4E)8x zi}Xzt9Q=&7OgxJBwt=fQ)lRCmUeq}tJFToedaez)Z7X}vrsEH;+z)Pt2C`h-<{I2K z(N0enx6Mi1<|c7F-NP+-ReQ?CZUetfJlh6-W8k;e=r*Um`efmk=Y-#Qb?uAQ@cLwG zoi2sf>!?!~1NVO2CLbmapZj>+;Qdnd3x5xVznA%B%f5cuzPzbVd|>ynez6fAH*quZ zIQ1q@hqrVZECg@b?+|1T@C3TQ4L@lL_?kjpD&|4x{#>K`#XANkMxW=py1$F>0>Ef$ zUNI)&M*Rpk%5|6S7k;Gyk&&ZEFiPDW-k7nV$L z;(1QZI%n@nR^#e1nhz*;klnb7@Adpeu`>_4pW3thZ{|C(MPRHm-?JKT=kpZ5CGMQ3 z@-yvC_2;CwPM}k=?@dd@GT6Z$;=PdT}z#sUGZTJJp{UFbRr{}=e zPR-xg53&G%Q}VhQo_-4cx&@ryWF_~5+({19vh&yvg8e6Ny0i^mc~$#C79rR8KgyB+ zGkZH)7x5iDdF{m9ewuEfpPQWiS{Cq*yC0;HJsQdVAm}jRLC;ZO;!VBlz#^JvHV)N( zkhzQnel+_*(7h@9L4e)t2Lb-{ep?vl80y4WMeGNe%YE92^S=BXeG0yHtY=(@En7+7 zQTm=_^=Qu{k7OnLerM+OsGqsPdb6FjX9n`?ue~Z{Uw=)RJ@XvqFXPX#-SA^{AN}cE0pX+76`>Wpef#u9CfM;e9cym5)H?O_kZrwPW zI-_5(o7O^yurpiocz*S?2CE#Vh6__zS7^N-kpiXN3}ngzRlhZ+DX~Ff&DRU6{of3@|Ac@aNMZ< z78BjQ8x@QbeUaR|L7Qgp#@Md5GLcP_!|fZJ_*CtM)YjP4HUwXU_BFog@~7Rs8_&R( zW)2a|O77i&#%AwE4?gDxoV^u~D=)7hZaeT6eP!f9tJ9dHMCD@N*xc z-PN?aigw?fc#i#k#kuxDct~p{bE#{gvxg6$yS@V7U5Z{k9WNbVe&X>_yUR!7A@P#t zu&uz8u+W&*SLe-toyFo%6G9|q>R z_#-xRC&`FlC04iQPUe22|JFI~;5}9XBbPY9TxGjzZ=2c^1?ce}jaM!|){wk*7cf<1 zhDUSlbTA&^nf7XA?jCn-jj?GiI6!%3w5RXqnePSW`?%fy2%c{@KtRGpBUw;Ss;j8F}uYo5|KO8c6 z>d{WF!JKP_&w_#^o_ZcR<}4^1)R>W9zb0aTVj5@#j1lfu8auMAHM) zz!i8p2+m$b9vbmMX0k^j1l&<VC3y%Q(A@4veq5nvVmmX!4P4V6+gJ@a zLOz=7(IpRqCv;Ie&-iKPm*<1yXCdd;+J_eD84J1wpsSUrhXl?t2(wWFOfe&qs3a=Z!^-{owd~+AgpOnkQ1_I~QA#XCJ@@OTL@ePN$~wEW3T< z4D7_Uw$?eDfTuh8_Qt5OwU4KdvC_ZDHsg#ObM`E(f(HcmI_lqi1wEyC|0M=i^v<udlq%fueDo% zvAn0nGXb8F4V3Qm)~K&P>g*G6^yzQNoBMmmEPfloxZ9Z@iI%UCdwMpsR88D;TE5@W zd0JZjyB{YmEq@@KxUzpbTK*Ot>B+EPE<72|BR2hy$gt#BaxD3k9G_M$lt1Z%_3x44 z8TcCihzzI0dRl$+DP;Ho@GHOOYsevRvMbeQjsTpaaX|Hya!1K;)ceb*2AuJ1SBo&41n^WCw-alW6< z4qvXCpJ{fu5Id~cvHtn(@$J+C@6H~NAaCSs?6LAkPG^rrr_4(Gr<`l( zCh4i?xaRTs|D-)ut)l-a9i_A5&PGS=XN}*}QNoGrO`48!@!{B;ulw=g>ZrSX`1pHt zlz*P`?!V{gQ*nwIcZXDdnFim(SQ^Vjbj8Yrc0a^SxEze>Cg2sXkT#K21;i!+V_h-UxiG zRm}HB@!a)+%sn38&nEBu-C0(m9sm6x^O^S?pT)=j1&z;B^97&XxyC$&^{Vi*ssn?6 z6|Lj9=C7;qdmkp2(SR?5jI_(2;n{a*$=@R%4&N(`@AU|Loa%ewt53TQIGL~Gd#%Cu zB6%Y54msw(C64u!)niW$-)DW?squzy1|KG8x^C{#lR2}EzoWW?2k;ZOF%S0U@t5(O znHLk^IsH7Ic}zu5TXSA-9&e*(yPw17;p6wP56ra^zcq9CYwhM|<=z5-wI-HF#SuIuc>!l^$7GA5L$2Un-S0DKnZ z1p@W$@QOG0a^^$@%!zuMddi9?%;Xu(i&N)Eskjr~B01L@ya|88oABqy-S!OD@!_3I zM}_QB8-e<2>F}Y&fqQUd`m1+ETvICyia}IG)aU zpIo883&&#(j^F&Ge&B<{*X{3|(?0h9Iox`D`H$eX$I(>WZhhcXJ@5?Igj?m^eA1YE z`EdIKvtLHlot1wdMVDNf8>s*7DeD+ra38})YaPRb zy>+AJx5O2y(Z9ein3bb^3e3Qz9AyJ9`Yj5qT02q9IiIx?#dqs_=GWgzjQlQQ2iF<@KstRfd41nh zZl76e%x}Ece3#zIZ~VIX?)ZLpo9|9e@mKkNiVpJS6#sHinjUg zS)wO<_wVB08?DsbV*HC{aAtCgi6@$Tn1P=zx7e(SnDNgr_O99_#D3W=ML}3|2e?(zlJ`tJ%3X^7xJp_AM*VaTD$fp zlul>bulLc|@%P>QFXoo%=i4dos|DQ>UxbcX08OFq-;+Chn?HA$@kJS5Yysn4#CY#w zyki+Jvgzdx4@721vZgtjHO(>LeipR94%*L##s|hshYmCB_rTeu(0&xOzl`hMv9{6%eMjWw89wpozX{6BgTHS0z?J_`;Dg^> zoF?yu{`_&rKFuKh>5t!N&7%d|qL_@gKGILR6nIkP@^a*I0&*V~_a!<0RJ@yab%RiGxJbr@} zzRc=X@5Nqz2Y*OkAD)dr51-b$Ild#%S6V00{7PrKHI@a!r><{yAD8fAr`^RPO`h&z z=vTuS#=^V4G09$-Jl)gXN56Y{y8D@2Rz=f8omcxyF>7)zy>mkU0$PSws>ym!QB z9vx=#-kD-7-HpY}RnVcSbCrDL%fY4iT62}J9O@kB@pBCN|Fy=)%luZH?N3}&oK!jI z{*{>5H>o_>t}s&Ll>L#O&ztreN2@{{B* z$#0rYyh8atv1AUbm*+#hp}8Z+mZho@>nyNqaWn^Ghen2Jwv|OPj0_s!tcmo zZRPJLT>Bk)tgmzJY4TXnF(!}IyDm9+asp>3lE>P<+Hn~g(vA>7V)sD}gJXGcB7BqTe{9VuE4Q;o;YuKDa=wglQeJ_`Z_ugk5aoQ-d za>=FZ!}|q|uc2S!%e%>Ar5%&UN?XZXFWNNuO{VRdByP9R?`iW`KSet~_S!jJ9_y!Q ztKMttOnI!IqRoFxwt1R7)=$w^wb#~}@>oAbo7a17`f}|~$zxS}r{=M)Ny%ePqj^dm zt7uPdrN?tu(C1m_vEtL)@PE1-O71+_@#o*kz80YmOui7gtnK8o-oE3(M@Ny%`VMPB zb%T`4TF{=$XZ%L|7<^UbG6s>IAm=?Uv4Zsxd@;4tdtFDvU-utRo{bxIb6S<#8kvTz z1~%oiu0WPePAhm)PHQW=BG<~dEPH~Ca*OO_xs$oPn*~Jci{VF z;ucu~0}kvj5QXSw;U z!V7p-&QYV4M~>^tl?P~ligH{Hp4}W*+A=w=;7#)p2hX`lJg@ff431i9GnwPcv(n!& z-t*_U)(h7>XL4NYk~ywxk~ywvGLX!1O{2lx>bIL5*UjX(=8)sM*~@XAh0iB?kl*x4 z_)F*iO7Q39xo*NXv99c>HOao4np9lP+ zjr#F&##_OU<^Wx`AsgF})mZM~2$|J9#?OykcA(3~UPd3M=DB)vUe##NYWz>-0J(Xt z`}qDQe>w~4_wJ|84tv>rck*0cGvBispXKuuKZ5xXV<=S&uH(W}ec{$%S?RlOzN^`v zgMaVepA%Hh1ohsxS?s?7hvq!;65&ua6fzrs`+4>msdjitC^0{`%+|TU>od!!4{w?M zJ1^-z=hkR`SD9OG>$$3e^5p)V-wgWX{X4&NVg4_4T>AW6@M?c!3cSENq+f{kv)Val z;uLrvqrXV7dw7e9b$lOqBN`9z&L@7|47^Y9`3^BC?OoZhrrfSvQEuwrZ$RE3FA61Y zfi9~)-8%$B_z&KTGeyypS_bhdRS z=W44h2X^ON-2dWS2_w5M&HA{o>wE-5vyBeyWj=hh`tYS3aSwLE@49H$-`9fH z3yQz)2ps)+q`#H8V(H0-SpQI>f;I|~^C!ty3uRhvJkEhHO1_wU=_i1*$edq4G92Js znBv+I;VS}NdPn>gy};2k@1((Ab-WAj5kKs}8z7fBgPipu^tT_sAQApcg?~$?^+I8- zRVo@~^eeNMLL=dB5;D4E`;te8V1E@eu7-EF@%bwF&n&PKkJI+!;J%#ab++&%^3m^P zteKnzkx6^fX?~hGIykfOZpJKKx4@&(a-BsqsByD9&i_msXEA4zR!uK74UrhQZkvU7V=~_^&*?dHRU;Vh?YM z_lb|ae;)oG?1mrKzz;^=fLT0nZ8v!H<49-L=7FQvc#g9v!nZA)KOu{8X6YP}l<_Ig zKxf^0<8x#|dAxrhKgchyLo_aQtmvI0uRdOQ+czd}JT|enlf5rU(Qk*c9QmBM{A5FX zm=nX<;L_bYZ&+uXMMmP23>5vGJ*7Ic5}$gn=JNe|;LG5@$d`@|gr>^(94UK-4}?z; z8zbA`_zz9SA9BXoOFS?Jzf^pH?TZg{Vm%IhryZ4SM$l2w3TOXJ3;O~!ZsH%Md%Us7 z1CD)3bkXy5-`GXdXg)CXcGiJPm!9k|eRSiplS!I;__^KKpNmrPvjzRC=RaHqe$Zb{ z;6UdQOGgP8e_6{}o9MGR<96Vld~)z+LRqvEKPKqP1TR{km4;@!++) zv6q6^vj^y$_6qn;c3`mV0s5#4T_m`l1#Z6_-I&H>^)AdwcwM>a4qgwQ8QsXs4akep z|L|1$xC-Da=^5FEAT}}6=z+{V(izMt=Pa=T=+;2{M)YPN%|;XgZ;EXQjR-e(b|igL z>C7)`4CK|xpYzMf5}%y>iF+BfwWZ}3h2BEnU1el<=OoUG4B3)f!6#ec=_Q>@o`L*& zdePHMej0iB7-8^naSA_O4nEYM{QVlsy8AlDDg8H>F)KHP^VavMef29k$p#jskjoiU@MF-Wnx_;B&x z+!KFEUPQC^9<t-|s?hbWi{Ed#&%c_x#{G=NZ4eoyT(?KBNQF?dx9om&lcLi}0-Z zQplS0M`sMK4s>l`3wr}aPx+62dIo$xmi#ZTzX!YNZw>tgEY1$4ucGvRTwJ}be$X@W z*ZlpI`TEg$^$s?=X(M|wH#<7;J1!2)xfUBkTo0AXzcFySI%SE^_lf%O;pmHjDf}q^Ol!m1b3A=> z$kuuBIw!sf*qV(!a?U4q*1_@`|FYAAamrEge6rq|55_Nb17p%Zt9JC>C;4Yd`gNm^ zKMg*=`;rIi>G63*H?W>9KL1gAzqjMe@a6r#2;V<%KQnw$_R=PEmp>&x{-gMN>_5&7 z-;4hMd^5~^=E4+t>4W~(Uhvo?)`gy9Kj^Q@?Ah3V`97`4OdB$@9~nAeVk+7f*AqGK zg*^3k&p6I+to^kI_tewMP<=OWOFujM$dREPKHdH2ZuF4@f0z9!AusVCsekg-3qLu2 z@@*I9^!b)2&*|{^<2^gj)#>q`LDwB?VD50W{KI1Ai}Df6`IJu(?Z58P4D7S)qijZs z&2#O=7e6ID|0sSgIRk#KJ_9^9v2Xu;ty+79ti14iK9};zJaSJ(&e5MY1vB@o!(Z4* zJPIG;a6D(-qpTsWseU-GH2s}mv26XW97~<2tCjOx5?=proL5injp9Q? z!iv$z9~pMradZANbBQ??=RX&|Y~3AkX(qo$?N>JBmHO%Sx#o_BYxw&te-rsD#OIOk z(sthQhM#xC-y_IvI@!BRK9xHZufRv2W|_HJfccL2Lwuq$J=eiE*I`p`U05|Co4-xg zB`Y`K_YLjr9H;m6eivRcjcvBUO>7$e{dndk70f+cf6VjEWWSv;II{d5+P%$fJ8NO_ z1obO^y|%LxSTa(c?d%NNot>GS2OMbZ|6xZ%F*GUGIo5SSTWcWard-Rkts?xp0i5xk z|E;Yt{P8%oN##d8Ir3z~FrGC&prPx?aO?3dU)cB%oQ)-1{%>%Z)YqJg^$d8`SQN_- zfQvw8S>s?ni*w7J&pz&FX8E3Z)a)yVXUY~9O)z=rR_5VF_(Xo+S3Z&C{czCDcNilY z^-Jo|$O3%5(VU;H&qY?k@wc;+=P(B^fseOe9Bv|?dFl@slj}RFR*`iz z;M!37*i`!&u4T0^p%3ckp0J842NCDyT=m<2Tw-xfUg!HCn7R8f>Bh|V82UgpQ@wkd ztCSOGws^j?CfC0I1CQ6nBLBIznKxMd!clNAkGdk|Un>b$2RUbq+?i(RAfNT^OHVc^ zKf1Ff&+e@0VXLhOe&g-Qwmzf$D?2ilSa!;_9x3f-sC{%N@P07`$CnI>OtW6RKiO8PgX3wT7w=8Ec6Ky?EWoE4ZpvKBvG#$OEacRDLbF%Nt zPZ=BZJyhN=*PQw8r^Ph-R*g2VjcI3UW5CdGMH)S?rj2ux^c-dAxgHyMJ@j;FJlb3< z!!8U9gi42_OLCWt3+MFAsXtJdYv#xXz6qzo=gGju^pRkV&uQ-p(_Srppw5rlbUEjz zTfGe4is@IpIXI8C6Y%o>;f{ul+^^<-ygUA^Je5B)=-p)>TeWDYU1apX=E;hm<`64g`<;^wsx7mJn6~tC1ic(! z{Y|#(`1d;+j6GqUD2nYbAx0BNH?gu(AGpNYTfDs&IwQ38H~o(_)UsX{ksUx!1)-_= zj;;0VP<7vst+;LgemC=CY_sCB&+;xh_iE)0Y^t=vE!d4+^wZ@B6gFxfxYu@PXCJ#9 z{3Uf(T_3v=*|1*aeD3^jZ;h2?CUO1zAl5_}hhn6Pk2-DQE0}YkGM%&C&~er(>|~bc zpiUBGv2nFu$!`z$iEY(RvaUz@g2qMsc9$s z9K+5k=R>&^&G(R-$-2~I`0EE(oNT}kd?AKCR&A;HT-M%^;|TU&c?YVKeIq%f8O*J8 zpYtcfdRFVI)#xHUFaJbq;t~02{MOpFcy;NO$|oBdz9$nO7W_2}fAZ6+SxbdJyAR&~ zR^`HBM{nzst^DCN3-A+`?#~X?ZEqe#C#a+M?zYADyq<(&9FZ{CJb_8ER zdskxQ34DCWC*O6wY}GWWWL+>rYe~SSn0NDCJloJ)GPTzlb#8crWNKqD>8E|>Eb#5E zcc_k&lRKaoQC2E1FuzeeTe4Q{leJ42L(>1MbNsKovzOzz~Q~b7$vt?OP;R` zKYI^r$zz}gI1LbgjNHrE7c-ukP~sPiJ%FAlK7M65My`>k=akc-H3G%(7hl%d5L;rs zFa;lJ)Al}LYO%F%sG$~HE$fn;@g2S2nzLy@$R1V{vS;wjh$ZKQJIV2_g1(9^8Cf)Y zBRKzs{S7%;oPm;Oy^yn^%z3`-T=RU0=iBIW1Nt{-L&#Q5y)wSHTA>%Gk6OKN#ZR98 zpwr4-v;p6L8vV3deaUsrY1ezwCB^91SD@LpA=cp?$oO{h2Yzwii3WUv=RH|={CQ`; zXjgo$u<@VKGye)Mq!T?kT93}R(E0v%woBf&;9HSLlu#r4sG?n_w*UwL%t7LZg@{I$wADL7#P^r%XQ!y?zSpNIWC_Rr*2Jksnvq!I>k!!Ny5v!2Rjo zyW$M*8JZbdIKl$Jt zD`(LL-rv+GRJ!evz}=^`#eBBAw$=-8p&{WVX*_%QqBF|K8mox7MSe|+jKt6I9y-VH zuyiVVVM}XmKcg3S<4=cl6xs#d>1^pzv_qk>=A-5Z)6pE&+teI2|K+WU+d)Gz%_nMMV~Tqd%D&%?|7IsO|F;op0PvN%B?w5;jvxD_GGs&DRW>N#+s9Cx$34i!*kiILUs)@Re(=i1H8rX%5LBt{)WRx zfzR<9KI+^XxLfm9ay0tYAj8GfuG!5RT<7C~yYFz`NwIyJzp9NDy*3+N9AZ!8UwD_c zU!4Av@9ul`8OKJJu@_`6{qKM;%srp|R2%+hH}G3ID#`~OMGZo~UhuAOO}jp~$U0nw zUXtIw2*14rpS+m*%H$60sXkuwaJ3cs-ggXWoa~v5By}kkx5J|3*EK}eYBx~I`>B3jqYAI&0~*+&&E5? zUY=s(Jzqij8gcn&W zLu-qC-g)8^=o;W$?%f6O$?MkL(9F=-@Wo|Mm}eyqucEgL|76`=#C>z`tIoY*>Qe0H zUgxXU-68PKIF5F3Us&pha7@4CJvalAP54u|hXrtqDAOaW?F2=-T(Ij}FGHc$!;+D^4O7n}u5 zlJRY6G^n` zSo=fRTmHyka)V0Hd)2kXwOBt|f=wxgp5XGu$fVGV^E^DdzF&8E^z@!zKCL43R%QS2 zjx>Gu?K9vfIWBzk74Ep?tL|c4(-_xs#wEMGL*q*0Bh%-E0jKm?b%s8ZcvNRHliTGtia@xlVM|1AS&+hW+^3Kp!NMo)n;yu==eDk4>3(h3pr_P5JXL{gD z)(eR5ygyem-u1hk-|2D3zp|&$tZfl@+}3eweoh{?(VzclVphZp<$LWwM@`1}8j9bv z&dOR8WezYI-)kMd*Al)vWBKORE53Z9AzEmee4a}^z9>ZR5Cd`eVw@|-PX40&HQ7np zeo<|I2cJysZ^s@@!N+;!nWxQf*_|(-pPYWawY5L}_@ejJ%T)cI^+U!r8=)3E^Hv7{iHqB|%^P?P?O`G@=UYnDFa~*oPtIcn2{e#*> z=g06L-)MJbQMw*q(P{I_6gZu0Bg4^Bi=6Qb!jFICi&49|!8dxmLT+$(=Qn9T#E8@J z3p5S5G@XLa{2k`ef`2{NHsOoCf-k1uRX)CH#RhnM^CNEzF5futUX?P28u@Q-AO1FX zFz+-t!vCq_yT>oTr+t@S_R7cY;+N5<=NEKpnaeN!J~qHFQ?ZZ3@Rg*0E8$g*N45Ao z-g!>rae3!?Bb&s;Qg~-f%6Pms7vN`g-{#`2KUSMA?`-qhOyQj?QrfJN%mU{t_&d#0`iG|KRJPa`ohFYYs=!gQD!Z?qxup)$?I&L zoLIs=*_Q{jU#K-R5&83E_D)!bpMfsA&$@N{b$r*oj-5kIALe{c+E{B@eNMdpIr~Jl z_2!l2fa=_=Nbe~L))f;htURLU)sJA)XIVe`nw61=y*-)uyLEV#`sh0)5$iuCp?PkE z?@_)Fn}tvF4nECXo}C?FJUzk}_Chw_2_<54%lXSlM7i(9uq!I?bEjn_BHMUp4DXER zor=70PxqZ-_B};-PdS;9ii|`@iG!=owZYPWMXX^vaim%0TtDBz%Ua^<+d_$sYJQWi z5*<^Xi1SXzM)x;x#A&Z1?*5*}{ouLbj*|Z7`ObB2yP?a%(dU45U66Or3(q6JB?{hR z;G-jcp3_&|dEsaw@YdyqqdhwsIx4M0i-Xsg9N`*p^x!(=@Rp23{LfaRj5Vp)ZpJv9 zG4Nc~Q_~XBx7q6`-EEBv|L2|P*|*7OVr?SIJh+&7aItm&_Xf*Xdmf)8c>h-Nf9=>U z<(!2YsE__xXH-!;gcv$;P2@eaHOim%05{QJoPKppXDVcxz4ar*m!IrlFJ*b6iFaea z2bMk1;l_-_P}-TwUrR81&o27iMZWF^zJSEzT#`=g>!*-y~!6sFJr&nIzfzy z_oIq6kA+_vfRl4+6+gXzXWxP^#FLddA=|8jRa|1$!JKQBz2`LdUpdY7YSp!)AMI_7 zHBd*1T&M%gPvXC_k}?y4zcfCh<7R`u-Ne6cEKjuTA&&if_GxnVtT``nHEV}OU9xkF zSC@wTllET`ALGnc?Z@=KKlF`7N1r9{rf9rn*M4KJcu5-;Df(E)DaU5Ulf9 z1A7cub*63{xoH9~E$FkAz^H43gYcDmz2srbR_?B~y?&qd#h-mJVl#YkZ-Db}m8 z+_AG?xGIRu@EOfPMmP_505W3kTf-cgt>YQ#GCrg4ODE)nd-II&{rOzZq<|ipn@Lwh z-h$t_UO}u(vZeg^$zO8LWNR1y?=I(k$5%XtE|3n@^GE7RQgq!n$+a`O4qh9QXFc)} z_qE^0uMZEp&wR8qKb-!4vwP2C%~x;+wug+4j;^gJT|ym+zzy#DG55qX(UOeBk&@z+ z_W#9gqw}uJM0F2f;C?y`d)#NV-#yB6AJz5ZnbdY(@}9X1c^R0Iz<0d51vr)gM+^P$ zp5wrx@2$YnR)OAg?ZB>^*@IaJ(FSiF0G5tmzwpA5mfZ#{9XtDmZ!59vmJ;}`IwR2nZ8}Q0 z##(F({dQFIeVE1CK5ONypE^E=a^1eYRryF4-OjqFct3)Bp== zo%TjM__%Vsg6$99ZOxg_y71hELyngB3D!#{RFl091zkaWdwW0jO(O$ySr^Xu5jylP z>v_Ffjod9RcCv6*;f9=Bj zTv-atg@T!QE&jorLgqz9=#@frd?j)y+g>c+#kJFtMNbBe?qtlpd0)IIz3smr;~w}t zynTw<665BgBA^G^KeyvnlD5xLgY+m}wYKRkq<T}5epj5WR^I2^kdvhOIs#wk|>e3gSQ<*69I7@Axv8!w*@e>BSP;@qjW&V-M0 zKCnll>Ci~$K(odr8g0>-tDsSobA3glM;N!h7ek}SO&PMyiIAzsJStqOcWHNUL75$N z-vhrysz(r@uNj!;M^-XGYSHB5SXiL`-au;eCYIYHuVN}($Dye#9(k7 z!v{T5eNl@3UxzM|TosX95pejG7!JJ5bB14mNBnxM)$qA(t@KEBdckV^- zXW#H&FL7kU$k!b5vAFlxcydIo3+c<18)#y9>ORZiDPVYegKMVQ)#ReQgsf{$)U%lUNc`xX_Zb^;cuA4st=WxJ@iRKA2Rbsn(fy3O zpCuQW>;Ddn8-TIcz&Nmr7r!1#e4l&p>0XCVQ}3Tqq@I~Q};9Od^&oy%w7nr=u4N!`ls+%mH*zxu6yO^A#%;PRHGB-6|nc5 z_p8Z&=%DRtd{vFL7~B7<|Q%buTUGkLzUamsVG z`c38eVLac;^E$_tnhNH5`K=>)US|U|ZA9mm3`n7I$fdDIlZ`Dtnc!K!-u;pPUbXKY zdiP(G_hc)bdy$Qy#9jXDargSep~UU}>m?VMex#?X{nx9V>zcaNB(=XnY1O?nfLtny0bICE(vd>)}7zZ%pm90 zvoqKRV`m1#^P0m;9`oRN;pa+dJB1pK>9XSNGje#pX)|#s*{FD`-~6f{F763tomu*l z|2n?1x$e+nZ*jlRg)>A8o^N6giumkNXz>@|xICBG1p4o9=NxYs?SB7|?{RGBIp^ZP z19ucTe~)X0nrG(ZnY~q?%jI6q4Ez3LU29Jk|GfQ=w=;)I-~WC&`_V%=*h9`Ub=FkN zk8Tgn{iAYwd(hrt;PLN4-{9MW{sH&=?c3e7|24P$KvAf)4E*0t{haiE4&@wg(0+D* zKUKbd4!QlPFa1l72Y>!#?*YlZUFEE$m|OiAQMPUuS2Qt$g<R zYmEK<-k!hB=bmiPyWq~u32wuuU&cIWJ#9SFhrD)VU<3ZXLu+RY+TS(U!q>&Wih_$` z;573M(FQs(-`Ju#;i!eo8Nkme^9^vR`Nn;;FTB!+*)!>%Z(OW*lWmvT?!0n~Vvf+~ zsu(adjc4vB`tV)xmaoyCt`+yS?4sTQ*qFT?%t4Bog9Q5U+thyQ8-{;v|9Jf0B`=?Y zK0kEnbJ)#)-*3(XNX>s&?z?z(GW#E!7T~uHvl3IOb*tP+<*2C+!v1Q`)`3S4EOPL> z2!CQ0^VT-#D86EThn@~?yhM_-hlx<>bo6D>9P4=$-J>x!_W3_${;}p3A|n zZN;x`DafwR!LMz_uWcR3n!eM{q2j$m!VjpOAnmyR`z^E+gKm-ECO&=*vd1&<;drw*glqo?8LLf~VV==`g33(m`Pc&J4j(cH zeL=qFd9)dw1U}IlQE+ZzOvtn8U(Zr|OL-ZoFsO!*aGcrrvS8pjos($h*2r)P@q~~o z80SE0N_#=FGyQkgU0Q&Cu54qw}ShM zoKo?FbZ7HZp~PdgfpBvLXQ$wQL@TCo58t-ciOY{B2Q^-SUSq#j44>MZ6K87c9# z3$c%8-cgbfKEi$f{HCvWkN9r-y#n`M^V%EiP3Xeb)x_rDz5V=YA5diZZ2Q?kCmK|1 zK{XdtdqFi9Os+EU3Dy|!$AP_xTA;c4vJ1{x?lE$2Z@#m$A^vcP^Bc?Tc;9T!=FG9< zyjQgbJ|3%ex{PoPyV7gyv4$Z00iPOsq#9xo+P2^=^F01qL}SArBkuG<=S|W9`Q5fP zd)zVnhtSp_Jk~^CwU69jKd_40zwTThgL$FuFCDMF{)5AlKJI8}=DEjK8U3@y)9)LX zh7uRSdqu=*)-M%bXs(vkxMYQu7}~b@txcI(^_yw~Z=T1z0sdX1ebG}mYxJYdtU=PY znNtPNYm5Q+E_AhdpME~t%sK(r{4{DrFN=N=aCkps_veV4H96LC#AlApRn6QyXP;8? zx@zV-F|w5B;pZqdz0AIJd<60K`&kZeN2%>)YTNV=CBER3m%|mghJR;JoBK#bj}-om z6Z?uUfQRWT1OD)Q#;>rx*HMulp3l5Z`yvNl&Avz%N1BH%>x1n*+4;h`@oP8ZDluJf2gxT?^m-YP;#)1eSwcrbG)fKl+e7RYDI=E9M1>GOVKZ?;rRl2 zB}Le=O6v5B=i&>{hm2#|%ZzU>wqp{p-&-u@3K4(p!&+!z;|*o_CKIWrV6L5GuFcXl z*2tY}=bCF%b&a|Uc}KKoN2fEo`a1A}((4(vR#u##t+$CM?8>e-Rb zvr%+Fthz_Ib^`EQ`QfYJp~&0t57&=y-OoSgyZjSfU6u%hp!r;Uk6X~6E7*$*3^Do- ztjM#Y^dF<|zzX)f-o*X+JbNS0(sv-YryZs5z#1#D3?Dg!KigVeW@1aqO=z9#eAhZ* z$Hx5df)Z+J5>GmXS1WoLUY!QLTG@X-olj!>;X?fPn3cQdu|Y?F-Wtr^(}}Gsp?-A? zy`vg0amF^EImi63TZ#F|?0>;utz3&Zv9&GbhqA-f=P>7ij!wP2ti}RzY=x7YBK~+U zXMF|7###N^;L+A$0dOT+=+XvDMl|C`)2HKu<`rn zW3z{qC8nXLW&fzV|EBsaWIf_(YCz?Do&K3O<^Vsj_7`Lq9#Fiya%i{?`|pSO9rF4- z{CPgK7oY0`>?v~W;&KNzw1xh6hu9BG|F5clqi3~mS3ZJjTxB;3o;S#E)A*y~;ahyH zIDSe0bujVfljVu=jOZ@5SCWqkn|IXbI2GCSQ;BscWIPu0!kb(CUTG znt{{_xX6y}%y#EV0{Gtoo@wy*tWe@-i@NMkq@pYl>|@zk0|LaDa?M=c?C}XM-gKGg%zu$;Z3186V(-R;M6u5N`t+Zbcc zhRo7Gvc9G7f8f)TseO#|P5z{_WHSe|=ed;o#=mp-*FVS}fbRC!Z+;1zfj*02<5a&Y z-hfUcwzLj>Ywhw@bOknXPZK`4@f#kVQHno>-xF-?6SN-j_C#x6`yEjeTS6aQ7>;T$ z^vFspui5AuZ9 zgDdr`__M#?>$~Z9MoRl#{Z^!0@9LK|(!J$JsnI|U9e=;;==TBoy^T5XRMsWc|31@y zPy6zeez8Xy8)KNqoUGhp486%ssAde%Ph(g`TiTa*D|WPc&9(OYO~)HrcxU%|&Vs|% zM67u~Uj8pD_f1>$+y^;FUil!Wq3wg5`=_mKJ^rPKTaVZ7$qoH*-}HMne~`N*XKj>c zGXnE|+%c5(iTv^t@JGj^ zYtXC3%Lw5cQJh{A1T1t1C`(sy`wlq zU`2t^JKoxB41ZAb!2mR#K%IU49?aTv#vRND{dF61kTqm=e9-Z4&qFt*%*Q0JY4foo zC8_#*noFas0!Kf}*U1LHoLb^V|px5t;mIQ ziJ{Nn@HTwzVsfaRxnXvS-FVm=6L1}=4y4$teD~f*Tu<-gJMO*gq95&h;y3F*Xu+q} zxSHQy_h@qoIi19oi-|Gp#3v}nZmZUi=jSMYIgSiOnXiVpXK~N*4GNVzxka^%qtwxg z!?VUOP<-Jj=#O8}RKnb#5dDdMbmAYu#=ioKa^>aA#0z<+gzpdcg!jnRC?QWQi##!C zHVOFNWqy}I4E=!|>-l1Gh@#9h^gEVKo(|7=c|~)jkD(D`26d&|0}g$nhS< zi{^q`<^1ZIkKmVd9A4$&u$z0Ax%VRID?jZO136uL#h=jLg{Nune`Rzue3?JluX*l1 zj&I$FA0(d;nZd@dQ7xHhsqDs>@GtjwG_*jU=FN-=n{b5p{JuuE+fU_q&CyvK=gS-{3PB1Z+r}IeP|^na`v#+ALnPW{ds-N%?_l|7LOp){Nx%ZnIZnm5HV?*HO z*y;kiXuRf@=Odee@U5aRecl3G<-k(Ry<+b9=RtFzaf;4eo=@G}0uy`t6YCw3<+J#G zt^Hk>t`0qeCZ6yhajYYCSt;>^BO6m=Rjv8%I6AFFkoEnFUe?u;S#-?vnaE}qvZ;82 z{K7lo59!e0ujQ*E+vMz?LR(pxW~w~QX+ntl)dBt6D6UVEdlU8m@?**<;7vmb%~BaFi@ z`vGqZa~T74=R+p8GQ#pLn{qHLS9Sv9TC*RN0SD*ia^i^i#ht#+i zT_fO2x}rjSbz>-TCp;y7(taW5yoIiMl=8EKuWD@UwN!pKwpO-C^MWT9R!?Z7{^Twz zr!nW^&|AY<`_AooK{)631rwH9IrUF0ESXSkVuQi4U2reg1 z?ADP5Zq>4Q6=9P;a3IZkhXKl8hjy}RmfYtL=QstP-E2>bxvKX@^7c+3; zA;b%4YdG!hKt8-RAOG`SEG6}t6E8@)=8o|hcZ@pUz(2lZJx%n0zn*3mHI=+Rym(Ck zyb)S>$l2z&XihBN-UzPb|2A>0d9D+yA%ED!dK9Zsjfy6&V^796kKq}7 zv(8THNOo%NOKVVCe-CZ#DW0Ys`DBViI5uu%_QP42ileJU=W*}Mlv3S2rDRQJ9|qlrH-PbIHD(F&h5!DB6psYiwldWJpe zk-7MQ^$y=f$AYg#@EtZwd}p!t(mdYby{5bHU*K`Y(;|yQiN8RjC_HG^4;MMla|u2h zV9SSyf5`Kz`{QQ~up@ERu2Bu4K;x_PnDgO#L`PbQ3kIBMDCy0*Bz{p7eo=EL`Pk@( zo#eqCsZRA@n&2(@H|8AakvzNhTs!gyg`$5+dCWTm=h>Zr3+VCwk2FWo*&*o4XGG&bWfjToDNr}HqJE1 zmLp@z5sH?mA7l)giYJKgKT?DZ?iSZ6@52Kn;CC2w^YoGbzUz-Px%IC9bkc_h@;y@W zcc^{q&)<>FiZlKuf&J#un)n&9PXY&rgm$sJW5 z@qEr6yabz<(4SCmz&T)#})RQYS zWT0i6I-JlX4h@=sPc}xmIXYWW`b)80jnBKk4qet0KP!tqO+82YU$Ah&(S`i(M6Qd$ zS+o$pD+`^BEt5a`rK_mBdLn1M*OvH6IFjux1|QXzEBCrbI9>;ifJ1A5S|_|Pg+2#B1!aKiT`dWR9C` zQ)~hJi@gYDmfM>9$aYuU+O?Jwe>jue0*x`pu4Lbd)_+*L3jc2Qv4(1XSMxhwmt${N zZkM-)6Yr9vas8-u8?p{pBcGj}xwJ!mA$qxK0d#mcmwD~|TO+H9#g=3wZCL**&ZnBI z^Da&NVQ+FxIyaQ)1Feg+CY=i(OTW`jtR%GcKp}g$Sr=^KJ=MW{iL)|aW<0N4UAwQk z|A~f5mDt%^4pg%f7104{GP;#l=+l$^g`GO z)=kO9%aq3~IJI~dy|C;Z{uSV9Ip>GSkAv+(fAl|~5 z9Qw_0=$ocj>pYq<*K0zrrq5SoU-GE^=GU*C@R9Ur=QgXf6CL54ec>jMu-_+Nx3li&KR?67E7mys6lF*DBY*SZ z{iWd5S$oKAkHfF))?0@w_h$c8w9sf%{e)RHbZ#U<8bmh}3wi~ZQPc26l zYmkA($lJZpb)8k}&_Oj81C2LPS0aM{?rzsO*Jv6IC?L>IAnBQq<0Uy zsYdpW_U=V?R_EKz)tnVUUy2hn({}T6$!U;0lYdiAUBBJOr`ER|FMIelWTU0Ol_0O4 zeFePB`!ThPUQ?TTucbfpBgUrrv*u&ijM3+U+)j*?IEu%JmbWJD<8D->i18x62Ar3 z0~7IC*<-7I=2BC+{HH4)b!=K*5=uM`ZgpL4w$QfX7@N5!o;bFsO9wkL z;N;4R7NTPdHaLzg7Op)ST#6oS!4Av?j@_IoTZj)DVw}q5JRv^z)0w`KbS@$O1&^S6 z`bpm9*J`bV*h<*I?R&NmnyDY@{Kuei5qnW0Yk`+>hM;w&$!{)fJfAi`X&j$)&#V!y z4V6Z~O(yZ(W^k){v;5@3TI=wooaYsR_SMXn$0HD^^!c(7&diSzD! zE2F*{-rff92JwMw_*{rRzs<_pa~tPVE4E1NTIU+K*I`GLSEAez!>i;t6YM z3EVt+2L4s7>lpbs0rFTa<+Acy@_vGAp56Jtd=EAr;`4p}{Cu0_+5W&ZR^!NSzw=M* zXM-R7wAxM#)#x&w<1AN$2kD-;^vhVQ3y+LX_=_CR8UGvR{-4B`uLFy0;NOmWdtSQo z*Zn!V*_`#^*+s<^zUjskJbxuG&0o>^f@5}$oP`sLWp~kd?y}Od%!i9mu z`Ko2HDsZ?_x&!#}rOb12Xk3H*HIZvqg}^0AI)E&chXZdaK63!S zZvP9FbVmC zpYiMV7PDThd41W!qN9;_LZy}!+Gkx9dMi5A$r~#wu@frGVqVJ`wn>W+<;|oiU zst>OQLV6!l=%a}J-|FLc$v$*;S6=&uQuR^$4fPT0T)nRceS9?Qn6Hn^&Z>`5zCK<^ z_Mx-D^4gb>quw=++V5RMA8S&^an)J%(bw0`Ui_<+VqtbIo|j@yEZW-#C3L7k?eURWrPjn8*AZzv*Mf2`}+LvWS=_w4E@FVa>(>r?bz{AMEc!7M%VHLtDwW@bx$P@9OV3xei``4<`H5*=UT9 z{2BUla99)CdJg^Vo$1$!S0wxN^LIM`wbF;DOTI=Q4_s2tY=;Mjw?Q;YvV(Sx79bYEg$zx z^8F-ZKb?F(2tFm>ioMFG`6uK~vdw+~&W7!ERpyxvV~n;ktc-fill?yMQtRl?%9&@K&HLq+wTJiL^uOenD*kYR}F4vHC0;UOC9m zYtw1-6}8D;3FCj7Hmg2en-fyoEMw0_#+vzqihyl0Z3p;Xd?vVZQ`_*50pDZaDdQNB z`n=W%A~}IOHBY=me31kH=9Jx;zFuka>&$%kg5+FLbutuB>fC0P4u&U(;7cmj9Dg{d zI&b71f0mqRY}QWVVfk6MSzF8yy=2*C_ST|z zzIb2d(P(~!JvoR@!tagnZY|G7PO!I@exvo|BLd4Y>{p0qEbcipb8-V7CD%%G*FT_V z{nx#Da?9Two$)d}~M^14p@o^ojD{yc--t1-7_j&D8bw+jg$%X4DDAqF= z*^S_9wA~aaRlFW2*=`+ZYa!2Em1@NrvUW}#C7h6%hDF(jEuyu+%MVJ%*O9yrBumRYP zdT(7|Au&tkMouAKH--3m3qGOhdQHM!S3vJ!*yM%Wt3JMBvJZn0$15(A%T$$%s#tL)Q0 z^O@1Omrsq;*lYK^gdA7)VyyRW@!`@hfBQ{t>cFJ_5s${h1xHg>MS|iy+40)Q0!I;t+2@2kBb*OY-l;CtkcU8obZgX89fJcdqDm zqH~T@TSYlu!IZwV-{?j|o6N@B&1Y8Q0zUQJm-$Sm)sH@M^rUF@!_F@Kl*ioApYIi| zaQIz0{<0Iw`-%~#_`kfJ34B%Mng7qt&B`JOC|1y{h=3LqTvBbh$z>I-wqk8dZ4v?s zr5$VSf7Fk55(tPGJ94YjOkt)0BjSy1Wn4z7Gh-l%3$|74Zd>k>4WdO9E0>`8e}C^e zCpq`#20>f%`Q&rXJ?A~|^1RRfKJWAD`Jng?Pj|q_4*d@8KhL~#AU6ctvVE4+`@(b1>s<8!2z=aC+MsRaWD-yA;@eK>ZX!8qwYHVJb@lpQ z_;5=f&AD-Rx$Nt8=#GBHpgHxcZ6f%`9Eyjk%}(YtLZ9;K-$U?`TQ_6xRz`O&@@@`w_R{bB zTh`!Lch^|3L0MKi*IS8FRSe%bS5uZ4SggZo@DF&WJ-D^?0Q^AcCBWxU}0 zR=mt}=9zMTaK5d1uC2`ekrbe8m0hC>K}>~25v_zc&j(4ouQHj^(jA6&`Ux@Ns}mk9c%yN=ZY&8r>N zt$K8Ra{rvV{N9eeyVlG@wt4?WGd~&4UrsY0_ju-G;~?{~7rgbxqbP`Ihg%=5rd?ud=dUS`5FH zoDyBwGR)Z@GJx;6&oi2{(u{S1XRK~Kmh|VfX~wrhvArK`umj{`@dB&bTtxrB{{-p01dJ_L-?%a7y%l}j6P<_zc4Ngz?Jb35b`;Fq2 z@Jkr}uX<|0fgSKc#j&ntuanjZC-M6Z*1_*!y?pi30_Gq7l`{W#D}D;RxGN1@{=j}- zcg^zu9Jsjr<;67c$Y39vkwqT{ixJ8AT!lZ&%(rk{_CGN|napvUbR7Doca_R|Qs>~j|$5#X2s9Haxr<~Z~ZYy^+Ud&KQQyYUP4 z+|OFJb!%T4e4XNPrX0M!?>XPb-wTw2H{XfZ1a6gowR+5|^>Myc*;;aM6ll#dz}|k~ zXzpt#ha{(?SJ-Pn#W2sq%8QXq?ogwqvy8wM_=fT_+BaZ}$^}l}h7h zc;+gdJ(G66IJ+V3d=2{u^R+)^zBo6sZ(fczU;CZ;ni1I6H(z}F51X%oH1kFOh_~7H zkD9N#H1qZIxBGd|G0zt<18L`L{2=oMZ463Zti>nMmw1{>gWmaq7W$rxzF3<#^aX8+ zZVY|#t!KVo@z58(dgu$9NTM&~$uZMc3BDlq$tWL#p)YvoD)uC|)4t}*efRgIud!+7 z>+>HnUv|7nviyYa_2~zapOUG5$DeLwofC&4TNj_ox~kvJPSS$}Q$4>8KauN8lO7br z*Aqb|M1j9#g)0~929bdSd5JB1pCe}HS^iUb$!O15Ul>GRu>B+b_IwonDE>cGb~e0T zzr{ag<4Xs2dB4Ua{%XeC$#~)8@TxZ}^|ULF0b{FQkip zAN#G2y5tigsVerEue%GIJ_}tX3mw7upWspL;8r8=UJxE*7s>~9H2)L$j4dboEU)=; z_|O1*)AbLHg%^tl)4p=o48%*<)=TwK+0QG98C`|$)rc+nuzW1g6Kf?VAC%VzD4qH> zV$gQ;FFW!DuBrSY$1@*;*@t#~d@_HOeer#0^O$sM=0mVx4tB9Vl*ndIA}M;d`qk$@ z8v%U81NcTTQV#dLv~aR{p$m@(tqkTXyZbKYVFtGKTwr7S-qP8Yna$r#1CLhrrMmRq zG6?@%X7;}f^k1AUcpM{sIykvYc)H`=-UhA5eT#k*`|;}Nv|~LwPT00ok+G%Zk0Ac| zRqZ)P-XHj>>{D=;{Rtu2<;piCAEp;S#oNWJT_49@>@(SM7Jh5#cB`@7XJEIzp!}2S zAJ0trX)ceo`18lu zlYZ{XB7;jaY#SrJ|8n-B7JtQW2m2<;AB4VB-a;;U>g)3f(bm<>naU}qq{8xd|CG7Q z1Xl82{(^fwyA&7_%WU$;yuq`9bZ++}O5O5(D$ZFxp|c%-sBriNY_&72tX*f|2hE}W zE@WCZ{?BLdA=SYrYq)mFZeu>%kj)+FD%Vq9dkl0wS1=|>6X4Be zt%0`PaY)xwAGGe!30|tL8v1Z2yfTk*kQ;Z`GwiEtf>%~>&E-0ew&vlB&m$f@pE3Kl z*5QlKF@Dy)v}wnE=NUg$Zc3Zp_SDv1+7$e{z}Gq}W0&g7F!j0qPvsuSZvGp%C77wN z`p))~WjVfe8>WN7TDU1+=l2sfo{CrB#l5cDLsVm)+cDm&`tEa@SC}&L;b%4fvw1FG zY-aOq=D8i${%!7sd*1bxN7zg3@)PBxvOIr%_|N=#{r4@WTU)Jfvj>#Dez(1Uq~U(; zp}X_5&c4L_<}9oB2g{~?Kn`niA`>rI2(3e#2Zl3GesZb{52Uj;mRJYA0p7`05FJD{ zALw_I7u(sRTKKixP!Vg@|MX6xLA=(;Byb?+tQQus2Z0#Lbr!K}r(MZ@H}t|N?`Kf& za^^@pz+2DPs7Jn#7-eRbVArsRteib$6KJE{%DPK>e-n5lxMhlmz&li*+Et(4_#9^m z^DMwxZ6WdHnk!qLxqfSR51#Ye^v$f{ZY{LV32pqX4S%f-egU{Ew%-HpzV+m_CSIqX zf47)CSnSVdAFt?W_fPHh>K5W+G7f$HHUC@p>@NP>&);tHwY*&h4O-s~{2+szHs$2B zDX=m&Z2#I*yH~8-^Y*3}yWh4f-!AD1YkN8GN_$LMgEs5!@QQqJW1R8^%$Qdi#h($y z7n;HE^2(D#K`VNw+Va)sYM#8$k5s&%=fNZ6ULa5T6IHZdXt6hP9P*Sn!KU_mb~pVX z{C3mozr0;Mr2B1n{01N83vc&tP<#4E?wa!$s(7yZez@8^Tky&PUa9dq*gJ`0%4?sj z=0rTx3r}AzxpF5!rTM#BWWu=e2Jw9vpM#F>p@k)6P7) z@d1DNt4%{)Df6kZsc!Xi@!a4`tBx#ut$lxRSGyly&soo%I`j6-4V!__X5h0K_)Gvk zO&+*FKZ$I{rnOn!!*7?rNFRy++jU*;_EWdt?Hi|I{bjr2e*doWvszD0omY20ebl8~9fkB+_Z9fdB4ZoZt8d=9&^)F7cIRgqYi-_q zN?He(j}P8q&K1q1{ziE3U7~S#hW2y1>*aOm%hD;d|6!$7w>}202hM|E)lML8kM+zw z#81LY6sIjcqys$FI%_^K^sg%mSMz-)`3B^+)$JSAEBJ& zC`htk5$CZi#g@$V`RcQ?$cZ<6=lZ2h*&DQmNW8{^oHuWOZ4NmP%17q1c9+#%#5ZTs zr#x~Xl+%ZtrDq;ezm$h)BKa03W(5*c)h}|Aw1b;V?j!z!_s*Fp(-$$f6M3)r*GlH9 zhIn(3M4_;~hGPp&x&r_T2dlBZs~E zle?du7|PNa+3z>>RN$Yez`m4E7J1ob&bw1iTj>J!n&MZ!aHOHhPyC!@gyZk1y+HBt zr-Xj|`NItwmty!=5VtJ9u5?1yXvgd)e!%@*OfCY^k>=meSf#^f-pyW^IA`+JYX69H zW`M~h;FZ(p=g^tW6P)MTmtJj^YTSR(9#iE!sScF3dU$}w@9w8rYjpDd{WRJ~}*u*n1 z?#P-P@}T90SJnnfS8DGdajJ^xJe}`X@*O&;*{A&nzBlp`UDlKV<}u1CrYDn}GRlGT zKYzh4L*8Y8$1dJ15`38>!8QY5S%cuq?_%u{7=!$!9$-8s;FbI6cj~8wpC!=S`?z9B zY*^Z{x~?vi^eo55sWpOa4(HE$@X3z%=s*9-;34fI>(>=tloyJjmt332_`nnMj`Oq3 zyB5v`hcA3d@4zFy+eq$T^Dbh)yF%~KPkwXK`wjPVwnh}4LNYf4U%YTJVBx<(=axNN zsAs^ZfM<%wmYohgFEIHAz%AkP4CHJC7^5#du5oIvl;brDJoMfkv*Ukfel3%ml=G*V zhpsb`_sqBKfEaZ|TYaI0lXwPhOCJ)ACg-BD>j@}Mne!N`6zgo-RNfwc^F@cyU(9cB z-YqM+54>03RNmw*O6jBUy@)yaPv%20g3+P$kMkeOYex}BmeCzRK8cQ^@JsZ7gpY9- z(?gcr;9GSZz^g#^uU` z3y(nVxjZ7n2af%rV&Q4)W*i~7>I5T8Eze~`M?)Has3bMk6z#`SCT7$Gb%S&*2wqwe=huf zwe@N>yjHo?3VC0+fcL?%N$(dr?|Y~D6FtEZ_PLC8&b8IK`bV1Qw3&$Y_!2SN=%GwC z{5wW{`mT!m2-hgN>iYS|zdYIwPg;0cPs7HMoEuv=ER@>*e>?5Rrv(%7*L{hDbtfkE z?_B4-Ip3P^y<^+re)~FS>RbWO^}vq2`1id_T?gxubIAYDtXf$bao$y;$C2ke zsjU%7-zE2>-g(#KKf%b|p1NGFR=Bq{w=~8%>@m)}X%+1ww_SOlGL<=wZbkm(7&-A{ zV=4PObi>*1vENzD)ySki9E1immyw)n!(V!_r(p-VL(Ey#lv_kRa8K(nbMEUE-gkBO zyV&dULs$o5@S0ZT=XY{5KT93T&D_&EGPGFp`Mdsd%Fo>6KhZpoaOTaYsCN-Ljm??W z!4vJXM1gq#+=}YVw}R=Ra_!TgKMy$PR=@QoJ|)VOQzr0b$^q9WCmwE?4SnR}Z!J5U zT)~>B6udphg(-7hQ)7?KT>Zn%@BP=8C-yh^68o#U-pe(3Rq6iLVWmCQqeC|Y1K|TV z^SsfQ=%M_#=UCx`btfgka-##wgTXOL&o?;F_tWRd`RG}+ulfYr8?WF>eg9m+l|EN< z){@THRc@yq|0oj!-4h%YS~f-RM}?M83xwZXSf2Q6{EPI>3Lp5DFZ{PX8DW=>|1b)> zk-qmd4Kwu96CXyMR=B5lICXNZ9!{NHn}$=T74D7?FMXGB9HdWPI_P%#{4QfT$Ub!M zyAJmq-=xCe&+a?UPECcw@7;H4+WS@CJL=?HZ+kB}@6IMC{~LRzk?0=eiSzw{ZwvB6ku={HkYnOQ zza?kgt7*Os&*?i)RL`%&?%W73u@)dxlsAcIvM;1t{>b9or{HkIH{W~>S=O4DgnJJXS0?@# zgEw#{ULv*uKDvhMyLwpg_vg*W0)DUyOPo$o{mHN5Upe5n&nH}aCiY{vzF6_xMXw<;}~)c8Sh(HpB?z z`u-F72e$j`tc0K6%I{(OVC&_!4i`aUBW`77s(F2g2{%!|&1jZpuYABja0>&qCPZ_OoU*=dF$5 z|0MoT4zr8Ow52-K)=k%NZOygidhrlju2&DS<$BW)Tdv24*mAvis4drTC`iFB;Z-ZA+ zb^&FtrtFva_B4K<&hLEmmfXWDzvwe|PCRJS_C@%cPY2Ia@$5XO{m2^5 z2zfnND)}RPJj_{)0e`^k$&0MHGHhtVZ=ac%T1TN%hp|0U@Z&$7cbX%^^Ns$_7@F+g zZTaBlub9KS6U^Mjz{40eiq0{N?crL?75-$-NIAy-3EwZoHi_0?kKqf8+++KK#J?p| zwN}zj8RD%lUKtN49Uae|=y6X|3f)FUD`Dd3Ee_`us!$f5fG%5pBd*BENDa{Kv!x;+Hs! z^I!t_?G=j`$>*QLPjaZEYgr^ z=g|M!#i8xWw^-btb70mxZl2BAhvW-$>+|}kQ`_~vOZK_ib$H(&_1iVrmX1uy7i{JG zMkf8l@soJrd!W^4`%8+n25@5E9)R8(@IT$ee=j*%IYT@P|H$Ti>xuk}j2~&Ma?o#P z|7g}F$oiSgt#Z|)PeqU|`Iqo-Wt8U6v=Uk5r^q0GaHh$J%>J~idmD(4HfP)C;2**# zwbh)VNnO5zK%$#^&H(qa3#`PZJA>hjT));twz_K~@@dB?Qz#$ERru)fY5(gGWZsC} zaK@?38#p09ypQd_g@MoEryWNA8-FOmctqb3#+3O|N3HEWCD;q_tg^UUY@f>Rq~k$t24 zAb9o-#-wK@*aS1r0Y>a$wra;Qmz)wO&>L?iC3B_)#^6 z6Av-wYw(?(PdtJ(HI$fhxWUJMfWm_FLg0$Q!@e9-*WlBn&Y9E|<-QQu%4dsio7i~1 z{HhZ|d--1d&^J-1A7&j3SZR-d@>|N6YWf8anx%OH#`3uupQ=+vKGlMu_)?uSUJIsM ziNJKN51bKtMST<=w|r(`9~rOuI8J@!UVT*mDoV(W0=-6=7tT5=)x4B}$Kq@5ytuz3 zsd#PHJ>0b)8`qQc-j;Jh*Zk7fdk=KM*Mr~)zGIs&Ikdr=gZ#BV_H0LT@GGa`=P#o3 zd)N2ND5rIb0_J|i*YIHt1(zH?2(b6q*X%?Dun;ni+y2WQ23 z{K4|Shq1A}?J57@w}}r?yH((P0XTnarpvGU>)J|P$^&v@hJ3wt&cQ0y-`$*pZ>8a< z$J*YtY1+H*BeZuQXy*fbk$h4gjOfo7?gKtmW1(^Qk7UUctO?ZW>=+aCV$;$^Ma&_* ztnz%;JS<;mI{0RInl+sL*oG$7Iehp0D11t5jiR-c%!B(|eAvf%7Tb$^8eXqZ{&jNr z3=M>%(2LeKEaF@O#JLQwWsmF>_{~J>fsdU^Ju&JGKpPfkN%-=t`=FMYbm&-)E-8>&O!Y27JK zKdYgm$}2T?8`dWu66^yB_Z+Q1)^N^(dK(Eu?mCDcZ-n+Q$m|`K4i<8q4R#x)8Kjb zN}+Xb=xm;u_8oroXY%fgA5EiQUi~K>y_VIZFNq(4n+tPgTf)Cf2J)JRs8jsGTc1mh zVG|?PPmeKVPZWJc^mqZX$d9fXll+w)%DUY$#WauQ-thjZp)brf^63?ieCnf(=vbTg z{|7MAy^&9&ZT>Gk)jdZ;IIeYY(SX*!W0L9Qb3wj9?`MWCQX5838tuxLzBb~>J;|3k z+R%M5@Lx za~Xd*GBmR0^WpftR~Y-Nv*`=ry$^pe+}+5zbN*SSZz4MtBd>Tb?eA+R&a{JAoK9kL zx`++k%lTIO{6m|&{ll6!`iM~gj>^#*na`Zeq2JdB5|^x@UHTqFu4?~eY#~>0M&nj~ zZ1o|49FNw|Gv_YZ@V0aE4)28b%%CplzkferO1@ssIPtElk`$y=GV^cb!#8u0W^J{* zuB>#ugX69}wk$<{OP-!X?yLat7p>oqEqyhyDR%#CdFr80L$kA9w&_#t|CaXm(uP;g zZX)l6D`%CbOf+WJcm4MHYHLrGKP~xuwMZv0+Yem3MGMGm^nUMp$p_%FZ1)}Tjq=J1 zLa`jqoR*$c=PxyMS35Cu(=2jHcEc+@@^2CPU2MNi56=)=q5C4}L2K&qPGZ%NDbG>o zX3lTPA`hqdn(U(`*fft(zJ#)}Su=@gD!54TuxEw7LOa_HPL3Ktd)j*>+IxU+b#Lf< zs!iV;C97*s4$b5H$m@)Cs{E0kMs`^y#;9>KzT08e6MJ6|BqnDC5_fS{#^gL~2K1d` zA9S0CPH>+3FgfI-pM~tLn@L;q&JKhxJHIS^X=!|8yDt=_g&2SGNb1}XLF%5 zaE`GGHX1*Dx-Zh|E0z5q+pBGCUbrKF2(&mS+&yh>_|1#w;rqIj-=p|Fn%`sieNs4b zf%NB3g`)T=4s!laRQ-0I6@5rQIvVGO+x_LGUEsL4FJDzmXby2zo_=&q92$PN4j*4@ z^4YWRJ2+6uS=5#_nSNx2c02uWpY`bv;7{j+#Ni(7eOx(TS~z>ms?84Vn|ZjQ47p5Z z+E6)ue#NnB94+906}cc}`#EyV`h)l0#41g(5=Nc|r?93koxtB+iT)tnL;B9xaZWB% z!DR~cgpMGX7h?D7j9uyR+UKrV9(^bIE!#;x5YunuYc_SLOpEbp*?WMz{ZQE`<&vIx zdkTzNSk7)v zqRCU8`RJ)udE)KZXPPs4U}0p)+x z`zk*^0dV6|?{muQ`9|i;8g{Ym3#F`k{@k7fwrTwBZ{lvTHP`#6wj9*J}V?Y zZ8d%93DOt&E#kSM$UX1`e`e^aHs-3jEV0tUcd?N3!7Iv)-RRz5RY?CNi{=AcWM2ed z!EC-Ua$`Q_d9L@p(|CUkzS>-9v@S371?=P)aRfomB55QR;YH5pi2VxPjWXJ!zKVU9 ztMJKG5eK-a(lYyNO~0)ZL&&d?{Iu1KDgG<$F20eU*8JvqTynE6BUC~^+OIE5JVX6w zv&XH2vd?b>r}542onkHMf-mNiS7|wOIAH#G7in?l@4Wu`qrN|SpT|A(_lC1()6_qI zH#qZm`7z9&`uE&_&_DFjUi!T33~NCXa-wRZ71{wzDu@qknn0Y`M$Ts8I)}4aI{i81 z0jjw-7yY}_%Drool~cb0-$^U;Wq}9Un=IOuZmvBNadd`gBX*DTPO+4F|E$Twc6R8B zU!zaW0j64$L3fZJvkjkBWCMJZvR6P4Mvmj}iEXgufUBe1_6dB!(KXKbRc}KO`y`4k zq4hw~e;mG1aGvd>8206!2IR=rRV_N}-j`@&{Oy{{;@r?;*3>$J^X2!xFfzxN_&j|- zSeKndo97{aBro51jlLjH+TzUFeqz(mPxekcJ^ZF0{9|m2nQZ63gMZ~)lfJW$`)=MH z_Jiw=&a)XEA+p7mkCpe%E4A3`@wD;;j zwO}WBzvV|i+P&sS+umODqd)MUc)R2F>jXBrdvHSY# z9(?=y>vriS2|IwnGc|JG9Ws{xH!(kgM=!BhP0-6MgN{=IfoktR*Gm%>(d5 z;f>bHUA*a}ubm#;Y4_lc@Fo>!-Y`0}uelaoc{OJ<6R-M24Bk)y9M8s|BfhlwKILzO z*T8#L09Wl1seh+;0eozX-v0>MHRo975PXY`I5{lby!aT(3+K)~hH_^fLm8X4t>$QV zk2#a-J+6P{-+lhN=l=Je``>VH!IQeV#yrn|<+*>^bN?du;(PAiGMxw7-fEQ^dtjn% zlZ}aa?0~WGiq-({iL;!DK8zpF)&E}vAH3(cDd$UcsC304=!!$p6^Ehs4G(vtS6}vI zAbj_>KzI)_LF+hg!t4GOJ@l94t^8M?mH7E-fy8Bg=x5Db;^OBK+j%KA%6wuwFAMLx zf%Sm8V5xAR4E?nOp16~<6|>>L@Cx!tvaX8`<;GY`f0Uk0z5r<5j@g_6en>}~Wvy6W zNUTR8xlK!~+Vv6iYBwfTan!c0V#jBDpNmhor@ViW97MUkNq6OPKKowc5+-pz`GZVe;*af*?cWbxR$mql)-jLxFm9_OH{EEn9^?3x?LFG6?=tEe z=x@ok*RMXUc;DQlc;DV0`2qMx_C<(kh>i6nqQo%t_GFZ54PE+-bTbqG7qnvpdV7gm z=slT#`+Vpg;`w`w?XcOFCFn zPUx)y);=}w8GEzHH;{$iEZrnlMZ7AyiSSEjfh$iyydIi|$3=K2 zy~U%OtXoxkcIeFA=qB~h{T5q4=>+d(SH_yqQI->*ezV4^y%F}ANhR?4*v-hF<&i{6If)A6IilO+rD9sO(4Y1V>P#(6#Ce28)8v+uWfJo_^kXB}rS z#A<-oZM69?d*L<>)Wswtcft#r7;jr|Mo8n_%fD>3_!=wG(a5(vPaWr9iQS2>VT}g; ztBvvLT=Kn)t8D{gydM4LCXG{lxAWue1E=FRQTBSiada}5=jePg`|K(^f8z6V`pX26X^riP2=N)wvBXicE@$?_JHNkty7qryGq67<4o<{-Z9KicIAHM9 z#JYl~igh)*-oy0iHs-5_egRvfdw^dt?BUvB#B|;Re!V96@s4s@Uz1!s0oz@=;Oc+3 z=VA{yrySz0F1(VtkS-iYe~|pI<~kdE>+omq+KDclgWLi3=)&3c*j5Jqg0tpc@rOna zu4C>R(!>8>1^+twZSV^{xFL{;+)H1p!Ot7Gf-~P2|Es3oH_-2U2iJp*9!+`e|61yW zeUHzE{lzxyHEx%ut!1Bc4g1OB&@J>_s<@CAeD6NV4RjV;M?5)f@+eSGlzEJCroi;J zL_-9dT0CRv#6Wo8l(IzE)8Na)V{!LdV_cb}ce?)uJl=gD=`Ba!9eIIu=zBi^R;A(> zhtYuo$UaLtsd=Bv`+wRF}HpYhSF+{={};XEA3+|O_;YYe@#pdtET6`{hMF8h`{Dt6!MDyU*dH`; zNZ7Tr#Y4N8m%L3@=q1rDXLpE)&e&x0(0TC9eVh$>>H9VJ4rT5y^$q3h$RYLGYt*$R z*RF?olFc6e6tV@G)PbCAM^3gOGu5}wh3t>0PS){%!u(3dN7u&JF(MR4CPjyyYGV83 z$Fb!qSH>ZFh>sozZjMKnJT2V$4mz6rSRhI z<@`Py+S0S1@a%5%#-I4;PdqcpR$b%tC(;O>Z2`v~0k?(%FX*!ip12nt+qGqE_zh@k z{b{z&nQFVbHmmf_=umv1PtFU!3}0~RdI@_EL^I!}KT-5i&5cb%&c0N|H?`V+zoWft zhxhl{gy_rTrGbyP4njH3ft+`-tSOLXAF7VZefg84V5 z+A#m-g#mQv;o*IcoWM9nguDD1p{@qjOn_q-FlcW&G2D)Cw5yu)Q=3MGBU8(;pRDe+ z>;=|&a4&EcoX%(2OuW>CBLmxVvjU0m8x6ac?Rf+{G;etoG&Y-<*qxj;qc~v2{aRUp za7G?9&N$k@ms?`J4bnUO;UDex@88IG{wY=HnydxjN1eiVR`&|(@#WcYU9||g;C#D` zZ=*x!nD`Ror*zkBUcXDr`pXbxx$+WwL z{Gs{Q@b3G$zjImTMe^@-jt{&>%)<2O+r5t;Z4RUU;mzOm)P1AshQ5>s})b zZ}XH{%Ds4EpAF{nIPG(LBnzLr&Fdaz?Ii7b%pN5@(Vru+|c3=S?XL6$IGxk{h za>W$WUfF2*)t%U9aNw3I+J1Uq`#U(RO6@<$w>!bhqqQIOw6Fc$wd5k`XtH(m9pnga zhyMt#EpSTmaUnFUacayeud=FtC9-G_cH%?iQn*9ws#i$1W;ZX768~})b{4jlY{?+& zP^o<3GVsXwS1RCj*HiBecAcHKX(dXs#2 z;&+AcGwE67>;d0l+t=hC%nL2fv1xM}u#Vqj;$;$=6K5~~^eX1$1L9VSh}m1jIHJ^1 zMBj^ut($Sg3ahLeyQk;-Ro1Uu8H^deXVZ43(NnbE8F26-AG}xzukbN1$`dc2sm=nd zf-kvsE@E9SKHrWLDWV^LqHg^z#>ZYPm@;N>{dY2VHvQYVm1Y_G_jNB~uI}LeLCz`P z3H@VlEpNeQ{}cQpwU0MbhvsQDSJ?uGRt@UZzlv-um8ai57N zx%Y3I_sU6>+gwGNKHf0G<^${g?C=5THH)&YezFX@^5)wVLwZzmQMsH_+E0g z64@06#_~NxN85f%;BI7Wj5^Di59#^QC;RtAD?Tt)ulXnX;XTh}FYxlVAIYb`Q`nF4 z0=AE<)5{M!C6HJi>2>riTTgO%pY*O<-0`vQto2{R&+6=Wrb*^ZqyBshz3`ph8NO1* z?u@f)OLJb&BUve<$rLerO9e+y*E2gY+`9 z{>JmJ!$%ry|F^GMb#Yt?2Gy!+w&u`WG{JGQ{Z7fS%419|mTB`=e;M4_iht`4)t+hF{rsoSi zv_{S;Lu+~;0T!#EwF2t8BM&^J?n3S}&~3|G@7W(crT$_f4zPZo}zu_Oz{HA}TEz|r%jm-1` zzrvQ&L(ysA7;uWUvUb~KuQO{MIC_KRpg*+jPlp@Yo@U+GSuSWO73|%!Ag_XEG1+0V%#Pbsp~j9PmW1h$Gvg_16N^f%8z7N36Ja9{eYVUjTnTsd?x? zM{aurT^YSN0-WV1QLeu@xA3Xi>HXi6JPPt zL=>8cq@jr!nhR(m3QffBNk13m!;|MCl5=u+$tO4$mwtk6Spj@YCP!FC_wX`1f1>Pg z6Dv_%M*d6dz|7CE2G1V$)gv3%SM&c2aV_xa1+KkOgFV^_kJR%_=GlENe>S?t1+%b= zHe(lQUbXjQJKws`YP2@MxBAX~CRz>l*t^FhG}ErpI2f3BMBoi^TL1LJVsxxW4f zOschfhT}Kw}p}r|4mk2GNzj`5ncfqL)O`$6^fw{mhD)iTY1vjZyr~ zj`7^Rv!6zJZpIq}p0e5K=i?8s&Q6}XUC^nS|8H^jco2FGViOr2jNg3^croc>YXNaM zc3JEd;mUC0bRziqq6_H{^W@@=JGU-wEJ6=CDnA(csnB-q>G$x1jqS(A4<0A}%i#xR zpO<8$hacc`A%2fJmW;gkvmcEgR3VQ(Dc;7hAiqqpPxx*uHKj9+63ehuQ8mKU;)&3vpAP4+^6o2K;R zwQM-qRPo8q+6mWGye6;iUBYYhG&Q3a!esB)dKwm_z-0&ia>2!JZ%Q9r z+}Oayz~xE71sN^4M1W~59!PxdS@?(e3jT8O%G+o+ot#dmGtBqUruIg`Z>FO!CDG)U zE)i{^uio=@bR}C~y)GYrFl|}rs~N+6;mngV!r7|k4 z=;}#h{uE>WD7yNLPjLL2>li$!oV9-O`em#`mcjowjmMTTdp|DTmr?F=$^}ag^$gDh#~(7hl=Y1yJM}K+%lJbo@C%X`q0-pzqe85# zv(L=dLxtvkqxH%6mxgX=f-_&*DBB!0yxf|y^mmZ<@fgQ*(7tT@i-x%wM4}9iu z!@Jz4)+xHyyhpHyBFz0S|G-@4Tt)2u0%G^CCU*ZztTSH|-q(u1rFeGfn-_mE{6AOusLI+87Hsmop`$TL0_b0#c4Ka9_;&3A)MvxI9mMoZylQ>lWv^>Xgplm#?MRmq>;8T;LtS zW=#k4sScd9o)87*tarRp$X=JIe^mINJ_h_hl?MLoTetT#q~Li8cpf09St>rPb;g&Z zOQi6M8V?Lyzn@v(WDZi{kPRH9H?{%mbg+2CsmsN`_~=pLvp)t5e(%)h#la}FtoW@A z`A4lW#2?wTCf}ps34VA&HE?Rm2<`YC{RJ=GcP1ClPK?0(Dh~UTRxLY<@tJRQfLLT zI>xiOEH)lgG=e=;Y<*T{xm*1Q7{+eB#xx`Ic>}vsMBK3@2 zzDIl@U9|O<_>8m9?VJnQAB=CY@RCbR{F`KA>Krt~lhW~=Cg(XkXPx+%ub=0vGyCr7 zvv~Xz!G92*Gs=OLhv#f{dCnI;#vB}R`sSs#)Ny^+DFaVg*SD6C!c)HC8KcWn+Q2jM z74R%+oCo0TN8>5KbL#T)lv6&&7+cefG4o^8_eh%hdZCACFE|8Eya^Bbs5J5KY3lak z<#$@Jmv=!E_}F7}jID&cyeM?%1+*zY^)7HY2oBF-J@u0Q_*=y^xp`Gwe&gCpYae6J z9zMcq*-PR*w!O5j&tCHIp5J!Eds61UdykFx%2}&*rZ_&xwz|<_?Zt`SGseVTw9%jV zy(fj^k3qxuh~ur$Gjv-G-B#n*jWk_e8Y#{$6(3dp{0{s!S;O)95wn-Hj?OxQ?{)Gf z;lp_l8u!9R^@;vP%c5WT70>=#?}EJ#1;Q1?)4hnTF)1sMm_&TwKJk3w1MwM{_`sE{ zYg$gs(pMOd8?*Fz?p=HBV$c0W+^f9a&+eOW5*if>T)0d$UmiHWGmGBFXktfz|KF2nZQ3x4fI zW+^5j?|nNaVxO~4tLNk1?~jSdd*5EC)qCRN*bfM;Ic-?fd1?mh{NS?oy2X%{Y9|kK zbkd6Pp}ob~;jTL325hx6t<#+MVjg4LIj8tRY5t1hj-5-pPJS6Dv0&kYM5Qqs9+> zr1|{`a7m3HXre#IGrtGw?06Rr5Fw_fKi)-aE}b{w$Gw5Mu3$bEGG6q(wuWJ0A3mdl z@#Ngo&l58!IZRxLo!elI-_C7N?JI3jP7!h&T%vvM3(bBM*%wAGS1ET@h3yl*Q*l1r z<7YKCh#UW5>V)5BpiAmI*=vii*KVi0$|`?}kK6{9liQ$(c8q;s*|`n8ZNeN?ywO=AwrE+5-{|=3%B{0Z&LtPVG0lskmznh| zXiqr@wf^^M%@gkgd+BX@Uv!TZZga|%H2A`@Au~9aAqu@_W|9Y8b|sOx*PO_=lrPj6 z*te=NxH)4YQyC*|L?_Z;`O|@U|9&1jCsJ@aGC(>%?Q-@;I8HwlTV&6PvwzO5AAMEz zdt)%Y?g`cG?tbOmZ z@_{4xT1&s$xCfsSZH#$^y{56wjWu0?o%8~+Kt;r)td#E_T%9?}l_j$dwfHN3D}35Q z|NfGKKl4)jdp0gi3E|%apU(|t6N4(bsPCWT`&9qlS~H&h{c**>S!Z4;*Loo_krBpY za#-R=RgCFfLpbk)z0`5WQ%SzXIOD0tPQb_9U5TuhESLYFmU7@4xgy+iH~M4p)R+4l zSf`F>Kz}$RFpEAl62F?~s7+tUq7-kp6r-r9X-v_48jr&J1vWK?ZYF z%)jYe+Iv!$UebF{x8Kq zYJLSLU2(mdKbJquBi21N{!#NGS`nNVq3gN%J}bsp2QH;ALDm#AmsTGt=6}LSV$=B7 ze3sF#*k~)UopIdHzkK5zdDsf0={MhQd_U(x^-J|co@`ui(@*leo#DXg_k+;KarJln z@%Q)VZh!ffC@xR37f zK&5iv=a6qBe{!7@o7T>}if4M?Z}7yZ)j2V0DknZKy-MwE#xJ{(`Yh`EV=w)Mr}^>4 zR9izrZaeYO+2J_4PaJ-(`s4KPX}+m?4|#;l3UE#r=R=1+NF>M!qIG`aF`y_`sE+)UcLHfZ#P<5Q-tde zu*Rcv3M#;T#=c;Y=sDAOAdW4PLF}f^!E?(1?=kMZ-ia^u0^`HTo`BzumG#OK=^^TC zUq9j51<+zX^-tj}XX*U#Vqj=^F>!O}hMKn7y!f-fc6qx;$3%A!U;Mm-uR43^8tQP^ zLEn1JB-Zh~`6X+!4n3*;W(%1I|B+eua&F&&mE<&rQs4VM|V^=$6VuMarFlo}@C(JM2DhXO0VjW#N%M zcf!xkZ_&P9epjIb7LwoUPd@bav8*q8>L~{vMYj}?=eOd}2RU}!tM|T;9Mb;>j+p#y z>`#4~d$k$K5sshU+|Az22xHq09Qyd7kyrieS*h{4!o`nbKmEEFoz~M&wZDt@Kaze; z{(Y~0tug6eeM{jX?1erm4>9itXCp&y;)nFTIC11|4i&*73=mORym#~ zfk&SuPvI(Z_O0Yw`+Y`2^CcY({wzMZZc%Sp;_H8ePqODjzbkw3ztM*7t2jfeh`wYZ zYs-*XA_BGDJCax&eEbob?ANnC^(-6od12hO(}^eM+!eR1`k6edAaCjp_`m$zZIYkJTgl zW1Cmnbh`w6{u=-G*&sR1x0-wOb9nk}?$r;Mr~mL3%E8kg|Da#CNydr49|+p{;g^xS z=z|fX`|`sppL!JkL~k|!jaF#{9>)2<+g2g(S0V4wZH>HdLf%&+la%KU8MUAoe5ygd z)p75KUuA$Zx;AAWdeRG<#n3_tw9qE`2+nSHXyE~e7CIbS@V!gW`8s-dYYGuDYf2sU_$Lt4f|* zKNH>>piB%ONBkzPBRESj=nI{VE$Zc?i||2AP!RM5$MH?=94;d-lo6_(8v4n)1DLr55;y#%0f& z?RRngLv6rUcyyhEN9Jr$#_+=weA;X9so#HI2CtKki*sWWG2}>Lk}nLuGF648Lx*`L*&wc+c~|7ZT1GPhV@;D~i7JEbE%9@ae8Tvgd_z z_%`wSi8<_l?Nsb@0r_}1$9#*GQ=jkib)%Ckklm2W-nqE=C^EWGXWPM#qRf$ac$7Nr zyjy;g)1l-n{My)foC&*NJ8_7GzaAC3KZElsr7Hl>KU~?Gb8Edju?ao;`;g%&sYj;1FYn3kf z_p-2Jc-%Zog{p&kqm++PSE2N0^ot^3D0$-6i|yy^C&+4ki8eHrV)%9m>uWQY7GI?C zYpibk@rz$@d6#|8!rtYq>7lRTa0+z*i+1u3*!!@CG&fq=-FKnC8D9o)k=zq+>SVpP zeYwSc&VJu-jD7|!Uws>X;zne&V9}1OIZ<H+=W1JXsP8xPT=OWM@qYTEd35VrNPQEi<3aEtd+CIWT>O)tX9eHcW6o?o z@H=SMtO58#Kg>Uzq<>xTOPiiYQr@LyU0r^$HiciD{(qGBTa(v448H~T8}Td4?!OOy zLBg}K;yH!XIoSCW^Uwi47?Izn%ONXXsYDKKL~p%~9GsQ!%}iv`-van}CHvatbF!aj zI)47LL(*x~P7dvO^K(l+E=%dJTW0`XdErnOkNfxB{_PjZ>#=#Jf64xYR~-LGbg1@N zW|B(=J*cicES@8uR1%*=zvx@{L0+n#f2IwyPUx=tAg9`Zm3N=7&y#apeyG9VFaO3m z{C4=$(zl;ux7ngLa{`IKrnFP$IYT5hUy#u+j%WPN8qSA}|3Cjx<4@PVGyd97V*Jh; z(}#`!+JDse)3xu6KkyO9zt+ru|N4)?H};uzqFZ*s$BmzLD0a%|Ea*T!=%C5%>gMgL z?4yVNb%H*6(7EapZTvhX6(&xuPx)C5U9kSwm~movnP>m|9^Q#J>CdGPTc1hp??~uX zdT)%j@O_*9rR~=UyD#s)?9k^3^4p}ezuiNZvU%**``b_DH-gtW&}RVJYf90f#0!2- zTk-{aX@8T4CR5krCK-O#&oA-8-1i&)ZJg`ph0jv&J8Am2)|}1LZ!dJfwHO^{N@OI0pkfpbvUpjIT>&igGxAjyYGEMKiJ- zy`g{IJi-3Oi#)XA7?r61G&(#fG9?N9f>_gLuX zA=({4KmL+|?bZ*{?lV`=xUkK67#d%TDKc6{{n&2;V7r5W#rLB_kz9`7G% z_jvfl=Ra<{Pub)BpW__wIqBNf^Q>vBz6`oZ~%6oWcNn zu1hoCrw1AD@9ps}I?nO__T#pjJH^oN%;OyIQ|a3EpD}QLcMUS$BldXD7<{~D4|b~D zU7ynK(>j+grCmK++}|!fzO0bsJ^X52`8oD@a|a)9+IDYG*KS?%cul*n_l-BX-GUPg zpWgTGp!A!z-LHS#cE4M$6NGq+a>-% z@@U<0jyE%1yPWsvm4jxyJ%fyQsXgBB9OrmDh`;di4Yi?jCXcz@hwSk#IL`6Dkgi?- znFHG$I?I*&$@qM?J>CnBbG*$Tx7}Cl@t$&=~Lq zb`RO({S)mT5B*-5u3i76f%7|Mkn#T79`FAh=XlTixa}64W$1U~agKLPx_0Z*jQ8S! z<6R^>uw@E%==UC7d7R_@8!G#;$HS*|?4d=zjIo{u=Yu7({;QY=XI9}84TpP}_ zJ>yNW7q+Ie$9_(`UVFjtt7C6>YdLydHT?NZ&v?_do5mj7S{1bIu}$=05PNLvqToP# z?B8BsEi29bnggx&{)D~c(*0n>Nqs(JvCe0X~kc*I@&*jz7JLHLD87Sule0-Q)`~>k?Vb#QY?JZ+-8z>Rf+)H94hxmcL%# zX{|NRcTxOk0h2%ReAWswLPMsoFM@T{*a&htj3t)?>nTOUtZ)f7_Zf^M(!}~-1?xxJ zw^CtkV=uCaEan3!;I45|=ISm_}wHK|!nAn?&0DTH9{FN41}l8scwcxaaL|~{S|4q1r#_AEjN8jzdxrI(4p1hd-A|@xOv(9Jx(&n3W1^YaW ztmgk<%)%je-Sds-ZGZY#9lwEhy>smklh->ZSb6u~t+AZq-?djL&GV z#pgl`Z&`Av(w}c)yya)p`kV3}*!{5A*s{PcwZEBpZU=vRYleZ#!^6F-iFM@EJlf&+ zmu6F@Wjr~PndhjpMx^+)4(P)>x34}04ueCfIQ#(L|BU#X0(^7AVdZgc2kxwYB}$mf zRk@kEpuV&hl_E zd)iAf1GkD+ai%){UK=-To?d8tx4N&Mg3b$^_NOaX=P7rwU9LT)+|gkh=)<+=3v68T zaSnpkBUd`Orreued^`Ur@Ew%`U&R4NYHZv|#k;80k9Q?$@a}2xe7<#YkFz5ucjRBj z8pGw`ec;|1>pQ^3JKzt(+rjYj?+u?f z$>lW|J-$SIg_j;b4t#FEf9TVhu1MCI zIH2z{=?Vf|aBHOK(>j zUC3*laY5Xlk!#U9WE=5KL$a_74)ogv#Xe&f7~Fb5`mwE38Qx^;$NrGtg&%dqrC(8x z+Yb4iC$|+}#<@(Fhr5w=iwmsqvNL_*<;XhLyc5;zlhi(^9n-A^&sy2_<+&O4i-u*? z&qUT`@IFZF#Iv{5ytc~NK$+c_5?eHrZ;PD#fMN3Wlu>RrYuM^qWRZ_eEdJuuPmK2wLc4b|7dToCUzxoaZlgia+#1n_^M#0tN3mM{D=Fw}T= zGTvVH8Dy~cXEVCRW{Wc%l>25_PCc=E+YC&Y1I|&LEE`R^Ni_%0@xA7G7PcZf`T5FW zpgj_@4|06uXQr+>)c-fuK;5~@I~Tj z*I0(e1rM*CARFOE;Bj<4?U-#QgMX`@7@S8|5xe4*AxE*941IfSras+c82IJttsli^ zD!Gq1257Ghn0Vpg+DzksM+|>KyxQ8jfN_)v21U!${+v$`K9PRF*Lg>N}YwrtlN zo9?Aww^QEcVe+*ocfXteH@A6)mEFA$z7U;bCAQGd?G|x7)HQ+rwu86wH@u1c-F7{B zKCZ_PauZ|X{b?G{O@VDQp_zzihO)vB!9{kFXh*R_dj24I*m-?m+c4l0xxTElpeN@- zz5gBWwa?V%y|QOAlg6-xbGcq9;oQaB%U+w|8`3?GxSV-;L+W#f=hd&l=a7>X*k)x} z+x|v9IeFaYS=$tk6G5IRx6Pf3ccLBH`>Q?oD?Rr$-0y@Rb5Z^mPfdA_-~`TJbYIA@uAJFjE8xzB7i z@oK>QbI$Keoa<+t>qXA>0&}(f6q+N&TI;M>$yw!xsQ?%60%jAjpXVCBn%iBSYc0^8 zuNT;J6$=u_1|4)P2ZwI9wzVy{woM?8F3$d|*;bA@V{~V3#$B6{5w86m!$v#>o}@ij z4}g;{E+X5S6);GeA_ei|7(gm?4L4TLX8H`7^*&u|7Kc)MU9{2<~V3XFyUqv62F z_$>{eKJ{_$Z zw+?Tcs&7EM;8V9hZ}J-#&I|u_#--u6&?_!G-wJ>Jv%c_^C))716nNAChx@_l<#|Kv zFC9L#zU<$uN!nYZb5E78{W|W&mqquIf%pu=mEs>3v<&=)K+Btl4XLk&e~`lq{SQ3? z8irq*v#V^qS3E-am+Ro)Wrq}J?eYx8l=t&Q_nrKC(w7E)cbUOEd(P%@uQ``5H99n7 zQhXfvag$ZrJ}z@o=M-yO*JC;l_w?p_wNEz(_zx|o40Cl;fHE^F!(2TUD6N22Ea%Vm zzuM~qFLFk3>iR%?&|fN?ll+S!2eTc#!v~b;VC}%`H_zdncFTH2qY9p_li$MT6B(f+CE%G;hru)2XuBAFlKSknve8fHqMyzS zzk$wrC;I7K=%;t1UuH7iRgQkTh&>O|OIM+nB10}%0ba;n$OK1LfGf{&kIwxlvgLg3 zvk<-s_k;^xe5-Zw4cU=n@GYmFZ!Wyw!8hQv&3jh0U}?)C+wa~2%v@XGf4NVKFLgGa z+K z7~q6yM>sJDoR}Ma1AFP?;)HmOc!|zy-a&u1z;^-;9!$bF?CKCJ!2{_K9UdKm9K>c# zrXMGKhOgT=Veccp*n<-neF#phVn6!;-T_Yhi-Qwxy!c-F^}&eoeX^^KeZG;2*j#nw zlf2N{_MKjApNZ%L;CdT4+Fr+g9O+FLB0oNG_r%RSB;I&EW$pgjzX$L)2Vbupq;Ibe zg0Fi`4w__qZM)ZZE4&O}H)|x=%}KV-lw_Rk;0*VUR-aiPl3q8!?l!nP!0tADZT3-c zx7drj@Sb=zI{Ce2wAiyi!>j+mzn)z<+o!$XsB z*lTx-$GdiSIeXAtdwa*-zOdUay886z;q!03Nd7p^z}pW0t{_)L6uzZ%OA4&oZHdzN zjcr!MeVp-CTY(?sTN%rJlxd?+jg*(|V)_JK$$rR&4${3_d`aN7XTkL#d&OF??<;bx z16AN)$@svsUMq7s>y_j%_}-(>T2|@l)M4J!P6=(7_^k6wGHbVW_BQU$$=FC9n;cWV zg!OrqAEojm$#bFlDF3WezOlr*u}XF1)^2M&%eqnhE*X|wPnG;VPCdzMAMQG&lgAF( zE}ikq%zeIOxVyjUD(hCs><8HwDIL-5f4wSj>*rJGZLOiVPxa9o`}D&(1)L`V%r>1) zPO>g?NV7L{39)~h$K-@M*#9_h0$G@=J{{Tz{r$Gw-Lo~v(44y-d#Bn(SLkrs({s_J zS3l5xCY#>-_j6^O6G-?28+TW*-_Y#i8w*X1vl3&pzCIS*9ml>&>|UF$?R{dAbCJE4 zUwZN@g@H+-C${v%LNHk3z##Q}Mzz0|Gq%0_#(xRz=U7iaT;iB6!HmFWw%*VLp)ZPyA=KJy4tsJ&vz2Y90)0TK&6#h}!NS+gP4tHO593Gg( z_qu|^i4y2Va;x$Z%jEiQAC2z;xM?2cYw+?xjj059R@297`j`)_@1}p=GN~}F1g6@H zyn-Aq%5||7-Wp>*0@!fsgNZ>IjqSi#cPXz6WwcLPd*${%bGV_4e-}SBC)%$oy!>$r zKF%||wLiY!-9KLreQIvR>kCZoEI+!Izxn5#iH5Qv)`b!1JPQ9QW}f7;Xbf04u08<51BQEXEQ0Y*vi~RE|CrH^9kz1 zF!+M{$a;GrzpJNPuU2#BFm>O!l)BwM$mihp;Zgdaw%qZLRy~(kH&%Pf%f@iaKdAC< zf9SjN35Y)mmn_C*FW1HCD zyZ)4O!ACe8Z2ALc^4uMx2$Q;fn^+@TZs`FMW!J^P%B<+Bz!j z)=moD_#plF(C(|i<5*}{J|n?F^g70YfnXyZ-lwmTlf=6pCy8DeQ$M}hXK?+pBhdi= z?x)uQ^cZ+lIGl=$no}1?q7Dv==d1)j+Q7v|c-ZO(YS+7T;NpsKOZYMre9?T^xU75) z_CEC@2ba_0uVkr%1Hab3YROS>ASu5YKKTzuoZ2TpmCsc%WPapW$tiZ8Apbd*;Y&3m zk@cJpS8`u@_!;z!70~4!M$gDzUJ2dn{V9x{^`ToA9jf_(Z1gYWT^?fvG(nuu@S1tutC(||4`7K*Tzu})IXX8YEi=V6CRrI%bU3s{XK5VDI zte-6-rY+QHW%c!0a!!4?(c1^$w3eK`LG-lLKFd~C`6b@+^f?TVPwjJRAA^4D0@EML zzli^`iZPmb!xq2xD07Bxu|T>)(wy;)=1hLa)H(C9r&4@zE_IriIOam%XR+o&-VS1B z6zh|1VtwrRnC#}o=PQrmgwVy0ICd`abm$JRxIU2k@v)pjyqxl)ZN#@>&IqJle0e5U zS37bl8@+o6d{y5mHnI-Aya^sXgzpMjQ{8k+(V=^^_Q-c$9E;L7_4irIxjg^BJoi5{ z_uw*cf7tW;nhy?Vpj|4Y69pSgDduc|up|Mxj3_ltnwV7(KPe-7cX3i%uXJ9N}(sLlkI-Khx2XOfvJ!OSfT{*gP2XsaaBx55G z!>>PpPZ46BZh|kk?ueCJyGgXpxa_eywl47}@&@55SP zV-=yBSVul$6(s!Vg9QH6QS6R5_J?u|o+AmCOV9FxieUx`gpqGWbw;)Jd zCcnHMo~(~B-(H-=%h1`-WfYrGIcSye?LuftbGQ)s>tmfz_0i-4N_6kVwqnq16(onXP%9W~MyDkomHi2t+ZCT*^YT{^-Ki4JGZCfWYc zUx}Wwfp>T#-v#Txnx@|-Ag{gtfzjo}q%@upz(S$2-KWqot1h(RHZ_}wwMbv#OC`Sm ztfRoUUH^P2HtUFRH#I&K!-(EWpO;cQ4E^P23{P6t&<{WOLg>R9>+qiguj+?MPfISi z@4tIF>yo@X3Ol0$-XC=(<54@}UA~W_Co0hql11RYUe`GCGzN@{730IMSDR7i`Euq` z@}!MifJ$hGdM{?~l}oysxu3z@7cz!Y@LkE=D?gMP6=%m)z^UwnJP$s9;Nel1Ki@)j zd+QtdGJJic7Yi@p-s%hYfc~#nW>{g9kv|h>C zK!c1wG^)Qn(>5FZzM@sftoRi)7u8%W>dlInFf}hy(iLLu6(xb9l@TnEf_+MzPOpS!&c-`0DDbv zxG;QlnRAZO+Ur|l=YnCj4Z|$K!2S8cz3JB->uN0@*eV8haI5N1n$k(M{m1eIBtO^iwCYrwe`6%{(8yC0L&r zhx|i#<)_KNPdWUM;5VFsl>A!&^+j z(48x(GYid`F(UWAk{L|iH7uBX|FzQ_CSFUP@-&{ww317QK~qob{G8lGE_R>Zxf8rR z!aI4)^D8_*X_6I6fVcem2|d!$tj}(U(XZl13-R6Cz>Dly-l@`>weFumPevH4@BYSj zXCkAEGpuPba3(*y+zK3&F0J7iFTLCXE>?dNOiY4Vv|IUBFoSAOC!TaZl^R?iQq-%s9)Kk*DWMkk!S3mdP5 zxSFZ^l^Tm9BU3hv{W&@W`X7$rTen9!~8;bZ&GAIDvjOH~18ZiL@Od-WDV_ z#(^0d_I;E+txpyW+=uH|e?jBNo_%u=d7NwFll|jiu1`=Y`y0C`uo}M<-R@_OmG4o; zcz?pU@hJ}9!Cn?@+380te_bhcdWDlNe2`3RH0VV&a_yXo0v|aQzJqtLo=8oZgR3&F z7gP2P^1*B0G|9e!zGdHJK~w4W&GX20!4-p^Pr>Wyw#_K$Lb}e_Ap9Fq6p|33ddvmdUrQn(%qu6N>3bb{+%53X;-ew5tJa_~LQ$~xFd9pO%c@9gGR z!L{(cNOm!_Cf}eP+?LbcCUUH1Iewp^H*nPsPW#ObviPjIL5^!~Hj*ErxuO3PR-1cG$;OyB|JpxX<`kyHpde5t+Y$ zHp*ZNKtqH7jo&ud%{BM&4aWak%3PC#c7=u9z#7~d&h5I^+L>PG6hK1199 zeW`o`>7*ERrP_?~vGU?RM%IIZHc?eLr9f13T2@;{@zFaL8Bcsfm9fIgRS zp5A6~<;9V^ZuCd?Im$+Tc!2q)Ftj;8dIGkjw_d;2T&s!mY(lQ-Y^=6YatEq`m+!^n zl4I-TrX-5w=u&?xvMq`WYQhv!p(AW~< zHO~UySk^=1H(1F#Ow7jCNyVv{y}cgj#)EDi%6ciWf^m{b$e%9wVhw8v6Zd(38OvV=?Q& z@Omnz#=+$>^p5Oe@uJsux`(#LVLN4GH~p0PUkZH7u(cAq$T{;BP;a&{F$z98245$z z?T;eoY#XEy8diPyf)vd60rOF0TmswY7<8#vN*DBe96ImjUBzmS^ZpiJ-ocr^oP*nu z$>d-?QbMix1?H@=G58eu@IXQM!|yVF+A=vB;GvzmW`aFc*Ni?ynZjun)thFbZ!k!KjX0tao>&qezGZG zq2m66Zi|4}e>3w2O`;$z>hz9%-hkMB>={|Eg4hX3RIi`KsX zql(Zj;*`%_9!w7P2iFbzeDJ;DUtq1!Kdd(T4Xf%T&;2rBjnEkMj^0%py}+O~#xCf3 zEc+EYkS9lx566)ezgb}=KX}=y*LaRtLlc|vH>$1dMDB8{>S6Nkb`m>n(Af;|VCPox zp75c)A<8`@2hEWe-wWYqyb3M649`Flom=tspyA`h9)GhUNFTv^b6x{HDSn8&gnVs< zz8#sM{LNcw=Z}m#u@Rs3Zuqy=s_$IVC*P-JBHx>>7cgBy?WJ zyNNyoi{3N)r)WpIVku)`Zm&y#f7$BeX{&pDFtm#?>AOketWfbJUuayZKa{YDnWMwI zu=mDovO=BEF|oUrSfy~CZR&eRphM-2>Z-jPUcTN594-uMqf`73T;2F8{d75e+erT< z=yD%?>y-uRazOmwWyWmNu;hSb=`+Z8+g_Dyw)6D0k4UmvI%7LJ$@VOh^OSFu8~)QGe9UK{UGNmIg$KZ)Y^07Qz`p@nhNin8 zw`Ijqhd&?5u%;fx4y#74OWr3~A8yFRZcX-9RS&c37U+5r`6{}8%BqX>aGh!U2}hru zL7sVDLVm*0XO(l#I^|5OYA!I(V{8phn{z+KT+*iXhu*3N+T6!^&keNMs4Hy-xe9+8 z+YxegqzgKc;hXi{PAmB~cx|=v68N80TDKZiLB24ue-^r`0UB9E|Kb~4_Gh0Z`>%jT zQn-L`x_8<*Ftp;8_u#E7jcz6`U)uBAR(KJ*8M}OZ&wapj6k2!}J;mB|BIonyBVT4> z>F2DfS-y;e+pWBVP5d9gb~}LWR!;0faVW`wQ~3Rndj^mLO@qsU_tbZq9Qfv^kOTL4 zcQ<|Pq>qiz`hIwzmG2gn zT2=C^W+F!#u%Ga2&9jP2x5G0wFPMF)uDmpOnlC)v%DBKU@q+~QFT(BcLl-n{*4(}P z0G{8l`C;ucWO@kuX9D)tRp4(7GF-5YSw603Hht>sE$xZf%6&Duy@K;RW-q_9N3gEC z%&M9PoY2HtH(Qrem{4O{A3&MvG*J|ZvYEuYvkd-<52f26G-&xDD~M9~W+ zj5h{7#DQxO>;5KpmKgM_j6K4b+8L8_{W_R8$;O!Qz`gteM`suuT#|+ZwbyRO@5C2q zD+W%+Ib)YTdz!Jo$=E+2=VlbXj{13pu^T%PTT^?u&E7KJm9DUHDV&gx2|c_H?6aVS z2Humu*pZqe#X3^9s)6sfJCIkJBh3qAa``i5mjW;JApK_MWsNg0Zvxv`=4C8!i7qv! zhv?VT=wW`8Cnma3>|A>s1Hut-xAB|&0M-(!X7apbuwv8M;Ml|tbL=&>Z05}UY|H43 zu+D5yA2~cLS*)?O*I3D})cE?zV>7;gVtnm2jE_0(VvPOdF!PnpvlHRj7RELn89W}{ zt$aG0zP0}iAMJEQsMqm(ShHwpXFQ$Qg1zuiIMHkPWfd_`(clVSBeBq&1p6$izJiXr znK?Cnjjy2gP3S1fe=YjzS^l+$>P|kZJ=J(mh*zApl|%d>wwL_HIrM4rTnw!-m(}QA z&7a1{{2hg6%Y4An-CHF;Uo>6Lm~PKu-Fvo8&$oj=$uIe{<@n`o4VLTAvM%Xsx&KIV zgZpe-12n<2PjXI{d|1(eiOZbso$?T$pXUE&(E_oV(WSl+@qh588eTc!-|@YjlamuZ zVeYl>GADf8+}nBEM?KGUdhXlIz1>cf`vv6NxU%y3Q>-V=!xj`SfNdZ= zI#{&!_UpYyulwPZj(NnH(d$Rh_c8XOUrJuJ#^>bwTxZswz%%)FBi(!9E*E%;$p_H> z2z&o*X7~`_*?Ubh!mk_HIqwS}^99fS56r#2$M#usul;ES;Sl%U@zra5w{Yf=JHA$A z1ali_9P%^dGsssEZN2>uTGPl*gy4nFTdd@MXsn$0M!#{;R-AW~&!~2FuW|e;6Nt}l|Y<5nwlkdEYd@AA6J^Oqy&#V#N6f-C1mz=}tt;np+ zkU5@SeV>V6tyP}DO5WGmRm$fn30R5;C$B-~9>K3Fht^B^&E@xaspZDu3|x|Hjld?j z;-xlhP7KS`2Y8LPm3t(3zohn|nNh^BlzX&=f4zT^`U1WtV$d`3>0U!;;G-O-euV9- zTKBIj#aAV^xXZ$ZQr=hRdSo+w?%+IjY>mTajTgPJnfR!5h4uw|W8@9wr)ez3{Cg~FP>p#99)eZESj4`dHY4~Q?xon zxV|Es;nM1mVDiu5Hu;(raYsJuy5wALf&Ma)+lv)X zg}$VxUHWqOx)+Mhpf8P6YZvp8-A-(EtzxSOn9o_vrReR~2#cZB!ySPv+t*+&w^~`Lxm3SjXD&rQn)@Q=K%qf^IcO-Z zAQZ_iBsU_^66c*ban(4_`U5%BSR)4~R?FexjO*Hpdd5L}tS?+dGNUOiq`sMle%%0zW`@l!^kt&UIhp5d(;Q9MB&QxMJ}P}xF{nK^4U3p zYn}e4_(WIg1O4kGwkMe4^efwUC~a$;k?ef-?E0qvaYZn77GgAiUMPZ3Xl%+rhKZ#U z6KKf+&exWY+oL&AzQS?%;r6AAuHSgZSN9e4tL$bo&&Z^|TSW|#zS__;vfU%M!1wf@ z^;AVD2l*x&p%y<+`52;O$+68-d57ne>nhrH*Mk=lr+k-ujN)v2Jy>>qTt1pJPv--F z3|R0((B;VQd(kD>f~JNFFh##)?Urm)y@WPuFPON^UiS7ND;hRib>p#<8(LVqX1wUt z`gW^$YB_rVfARa?4SsTwE3D-&_)Siy@;vT;;XS@Tip-fy+&mG;OXc4kn;lFx`|_J( z^sjnZ5$udOwG`YrS1lFw2P~$aO#d}g%g~bt(E~Fxk-KMzlW}k3D=+*!^@w6a@EQlg z1^T?gYFHQ7SS-#+OvC+R;3HZ*9KR_#?pP<-K=5!UuA2qc#QmKrs9`+vtgp?Z0t= z{{QhD{l7r}#%2TtA9e?E`Q66n#J;o4eouS7{O|uA+k4WlmF@9A{|c;1E(t& zZ_T&m;+9L!mW$uyxrUIv-q4oc@PhP}WZFXJxNV3zuWW>5NVz@-?t4M{U>q{in@2rQ zG90~SuaRhdSuqjzf*{XTXQU09SSMJK&998~z`*$08R!2I4E4wu_*?qq0rZLF#Z2Cj z{ESkEpo05PA_H$!o5y{17Bt#$(pR@1J@I?=gJ`M*`1|Bma8S85jW!fFAm`W20ecJ1 znuATh8+;DN@xIo1I#`c%=VCpviy3}vnrLI;5Y8{r`@n==Lhtzd>7AA69r-trt~n@#VuUwZz}o{t@MzT^J?>N%sQ zS%;R-{wh9dw2U}~GY8#6%^a-lmzQ0JOdDhlKK(y12dAJn(H?ZT-crpJ?gPXXWOoV1 zCi12=zp`od+l}aI>8}#U*A+jz@b3lwg{uAV=(v_qE)6vg0RKZa4fzB=_x~LlD#q81 z7@jykI(n8qxAGsGhTOijPj;`9j)9(Kb4I7p=B?DrN0*$qz*@icqu$-37s>tep+Tbq z;PG@FkPZLtc^+E=-z7R9oLBevVN8tfT6=%l0rp@TpYhsY{k>=Ud`36^F^9dW-uOp( zGr8RO$I(*$D}61+#a2uC5c(NzCGXx%pSi^9M)Di6k5{RCQDX%-Lp+d(B8L^jlsqgK z|568IK6|a>BZ)=v+-ja{AV$BBeFY}gNnFHzf3xx?z3;MT{3hOwWLZ;PnwSDjY}Q%r z|L=sBMFB^y4DU}9E1i5##g?RtmFqc*IL1nHxAa|UfW3>&R)~59$wk1ZeLKXOLYMHY z+s`E~?_BTM({P^sEcuvzygq*fyhOo4`0wplm10!dFZ%>Gsq4?HKFBhBvyX=KonNbY zSw&3E#HWs7I~%;)aW7j}YhBCTE8(26%Uq@Fp%Qe^&(K*-xz^NG)C)1~?P5(5dqDed z-E|u6X~y3r_T=R0<2$`!`I;4xqwy8M_X;|GiRnZV1I9B?4crta>DlohzR(f*n*}Xk`A25%{f9@m}l^#bop3S8`>o zjkQO|KH;;zv+;dnkEtO@TT%L7LOToCD+ezU7r&xq+7L&NExov9i>n8C&e3Ci`}25T zwnPJU-DQ7|hR@yodGPrF`}6F6&jnL8zERxN8jyb&Nco4Wp?%r19nhQdfwZ5egRxQX z8Qa*A)$ot%jz)n+c->k+ZQ^S31z)nJcfgDG`dlDf%Xs5?){8}5R-M)rinfs(08bU| z#xCb79%^KMSYxb@2TEDmX_=& zwSNnyep9{CqTQbNdRDA+-&4KOqIaM{`nTV^KlR=Le$$xb4`^IhGj_qgfc{IId$kkv z_56@^!RgS#RJG9_7;W}1dEYJO`F4IQXADtvsC15SBweQ%&gV{IAD}-E~tRvOzWkU%a~#qqyfntS4cKW^BsJ#9Do`u2og zJ2=h7s6+lqXio9JZ$qaMY+~`@7VbBbm!)y1$FWYIux*J7{AoXNEXAKyw@J81!|^{D)7B53^q^ai@u~E=}M+V9na)&Rh(FG+Oo-&lg=J;=1M-EokKhLbJF$fopEGVa9s)OaIYYjU6`N= z)8AXH31_f&SA<tmn>ayz3Sn=4t}xGvGp<%Z}Wau@l)^a__5iS zlpt3U|GsgZat*XzV9RzJX1gA#75+EqA|1a)9{fJbe0b2C+7I6iPQ3V)?fDC2gX|~P zY}YrU=XAdxnQ=Az;_W+2e311tq=347J7~_6BUU|sf-?SeXzwW%h4;XD4n$cs|Hx{3fLje8SylI6m_uOCNxgY7d zAHluW3Vh)I7<5-bjWoeh4gcgJmtKLc7cbwkrxiN6k{k_eY;yiG6CviYX8HC#4SZh< zUwy#4_8et|dx6nj|IP@X;ojvZ(fCcz@*Dej=Q=d*()U}~Fkb&o>)YB}+<+~q^#Ssd z4$mN0ZMEc8hQH3I?~ore`EG|ZKcd;47qgZno1gn5%%6Bb`~j_2iEhhTJ6cj;9lnwL zmt1nK+#JZfPhnS*53Ki;1F83v1F83v1Gy6V*17a$zO33&;KbEiP0(H?ZC$`P$FPn& zlRP)^kaA;`f2TNP7xt)|-&8=}i1490E#+?f7X2Vwh4}3ucfZrv_lf88Oq}0Vur9B> z3iYY{lGo{TF`u&YJwfJ-CFE`D9RZh+_4v!{}s$_XhkDs|%1)i(f`@9+atU_+! zH`TAY61#}?iY>&QSHX)h=4%!E&Q`IG?c(rN=DmqHf#UYx06!*gfZ9H*$l+P3m_2yd zc8oPp=x+;GS4Z2pvVBt5Udk)@%;UOr`BB1^#t$dqBnhY&#I3-&U<{0q8B$o z3*P5~X`hP@5m%x8qJLve40%`-VQo@-Ih3d7_|Iq1C9h^NE@Ci}kD>|rBeDeoz}zqz zTa>;7*q;r^$)!9K_)Fhm*;auJ&v(DF4vVe=*iZ3NYp>gW8|?@1g*ATd)mB@XwAJdg zmFcvVNn5G!oVJWDR@%6CK~B%Knf#N#)-2fi;zC~CX2(Ii_;Bf4wvG4uB6#a#(>Z$TQKi_<<2)^Fn!>IV=HxE3CWDh7Dv^i-{!B69F-dzrd@ z(-n{Ox5z(GTVB}ZA1%bzHL@Ezl%4LjdpYeIAIH09fy{M$oL%mkMLV{SbkJhe_UC>K zyqjrw*T&(w`j_k+3C~HUH=^rTo$lRDJZ7)#S$EEtFz2Ni(3Ij|$nO6t9c}IDoz^z4 zac|8~^6#i0kU{+bVz0I2i&p(u_Jm;gL+|bg&kQtAgU!PM&d+@vdX#^``jeB3CjTO< z+4u(76vTY0V)z=e?UYm63qRLD`@QgUF7}M=BMd}~b{^la!L5-?$}=5e+wT{#m)eb` z{nGKnT>UZu`yo9(8b|hEU+p$|reCw;Y447o9!MCxk8M|a`-+ZcuzHr|^w^BBtS;wHQwleIIO1sS)7Er6AY-SSs z3B8orB40di;uh=$crUpj>$37t2Ink~CdcsO`v@kZ`0j44q^I!Rx~9QTxz^#XK*qrw z@@8^;4ePpzwUqjDn(aAp><||}8~mnbPm32n)a%*n!Ot9WCcX6+qZ-RRbe4Q?@G=g% z?EQ)@v)T7Jy;t$8L2zW}r@8yW`)V$lbG2@<+l|de&(X&WY!Py;oS1Y2x-gTok21oe zumvivw{uC3{35wwUk>rsp~PEf+ws;W^idRFZw7JI)kE>ynTs~s8GUB;BW=*4nS)Bt z98?CeX%)lG2!G3&gEr``o$puEXU=G9`Jgvk`t8Vd)=kzHwrp|NP4I!z>9>>jCEKoo zesw<%*~U2?=y1ulKDt?qjNOimRm`(b#@e`PgMK1q%=0|v`4-^36&n_Ny`8-BV&*%} z+_u3xZr-0g#|~cUC%vzM@P7dKQu0AO8uWNN|A^jm;GY{= zzaOpGrNOV_V%n>tJu_L1Av>JlT;xxKqrrY};&=JC;wSNBil<8Pxu^|g6@web>1}fd z@2IZB{)aP^LzAkxv7cvu_Pp)W?kl#E`^d++Edv~uia&aO7zh92W38b?z^jRs!e6h@ zo?@Sa{r(sHJ{WIxYz!Fw+RGlwl>Bk(VNq}WtoY2yCc7SrEtC4rqxhGHPH)gyq&GKX zTSLPqYMv=iKB@8Gqv-R3XMBdX7ykQ<MM87t_Xg;A?r_COCCx&eGW8(`}H+MCL z-q$`2AM3$)1Ft@h!e5Ho)`__1F1!m-h9cNXo z%f8%Kts%(%L#MVV*Yr8;&Kz=0yWyL%`+c^*{G#J8ue9@bx&kX+P(6qMzEj=bDm6H`(T$)ttRGpR>1a^G)A|tjObi>dDnEL_Sv2 z$L7<$RY7X;SdEjZLE@|z!3)E`OH2d4F2eua$FmXmM!xhM z%jt*wHiu4)UB)xH^jAhd3)o+bt;ilU`#dGSJ9#CtI9v6mE$hYJhAh^}vqNo7KIF{` z)?278z_{%76V(q;%`MLQGIfI{w-fISGklP3cl5f5w=$<=&#>BQ?LmsD>n z16#q?U)p1q8NO%|^w(6~^HKJk9{Kd%d&P$}_b1p_C>~kmnSZU<=8o*Ieln zY@=h?$Ytmu`KKAmhg$aNyTp8I7or0s=NJC#jHFGU*SDZIc2$fh1OE*#T=Z@d+DCRG zU(IvzfuGCgInk};f&5$>Zd<;p{}OB^^*iRx$4tLkib7uX*=2->~KYo#S9J1RbUxkO;!IyYiH0t6_dhxBp4!&}% z7Y)9S^x@0UCOo~*c_u?X9DeXTuaBlO`rCf zwih35=oZsn=h$sCVDPPDp>xrT=Rj`mac%|2d;Y|NYmu zf>%(1b}}o%&u(R3 zbCa?0+`NN^bsg9_uVZtKmQ3Pa@^1^dfA!rTZm>r5UsrFs#Hy;m#*^+V|HGkMq+RF5 z0i^?#2PwNTN*ikHRb<;v*}Ti)PsUb5|KttYH2}%w=wgn$0yziU8He<%K1&~&@4=59 zUk!xc#D8iePo$c)hc=#By>0a`mE%c_xPBH&I*Jdlk>9irF?t)Y%m+5Zo{t2$ZFVBgoWezuJ< zOuX7MYoK?shSrF!FmCCR>m_&g!-KPsonAa;`?8zmb3JVhowkhqRyPt0ywSJsw@cyS z3}m$ISJj1)tPXhYSN6-MR_L%UBr2>jrXJr{)V=R@0oT}ze7Ld;v_%A zZ*g>oiH88E$@|;Q`kn59x%KOIE}v*X^n-5RTY`-)y(Ku~PCLc4^J;vu3X-kIe@H#f6`^0>S0SRe?Xpq?neipK_~W6fh<0| zzPo$&oh!GL_u!t(?D&VkbXlExH?&NZ8rh)c-BvsA`2F5vRcsd>y@)qNp0-sq@UqM?SIsJ z?!KW#ytj_`SbH(`a1HOm)33L)=El54!D;_oC3{Sg`$6PSnQ|_X2ht@sai7uyLo95O zE5c3N933zO`(*(6FaOPs5A~e~XmXvQW!C1PC#q#+$-lK7u*vYV7~HduVk%) zdTA|1zP#FZz<-04Q#%)&2Eg-1=H_PZGnf+_zq8C-vqsn=IW$T(XA|RjNN0XDC_b@E zb&db9p7=x)<9UcW%;>|w@-ce?IhoDm3hec^qZ)6k%{*jJY#}r`Owxr zT81|AF+}o7aMmy~mF^&>w!PJ^bn}fU4=0G`x>GUbO^5&N*ud59j zm5(P|MdNS3)S@2DjyW~!hL;7u$0jaw;nzA7abDG0`tQQO=zj?Q*F5m=9|Zm(=L5f4 zAMAggj&QFzaD6)2mmT0$I2W#E$4y|~*dyDr)ZjWhF-NkQxZx6H#1Uk{qu^fi)_Jvf zJPW%nC(L;f8{9e59ClvaxL38L+F66mWDWL+_y;~S&pYd~KTWMmy7Q;HOc~+Tp7F07 zWc)wd;>ZAJ{$3qm{_OnJ{_;^a^x}(yA!B2sliM$*elWZP4vgP$1i$$w(3))HcKD3= zLH#!JX`apr))!@3X74!o+uL=mwO8vQqT8n!hxF6p@05q613T63HGS=>&Br`#ZXFt& zurnvPw>QIXuX8s1S!wOn{*g7brCMWN{&jhO6~BouJ7)*?ZpF`{*5h8Sx5|Fj8uw3_ z7u8e3re|KLM-9LKjov|?bY0uHcc+!pZ2SQD-F>f@_a5WDAMu{+H%i9d>%s3}`Kk8V z@dM*maendVcJO-u+^Y7P@Gu!#^5XVsa2o=*UEs6~{B8zMojgwsz}f=tO|3cJtz;a6 z-G#f0F=V5!x_}#hW^YhXLn6UvgCEfCA+W83MB3V-)oRTcko@dvHP+TZ()0A zezTDIt<14xNf~*eZy|FsvFje-*)rr%E}yfp5oFgXce$EpN<};1)IAg8O4?t^@3K2$ z%vt+wDVt-hY>r>9BOl?m#=WK38=1>Xu{Q$E?mS_O?vfm2TQ%my z{qN1P{LPD(qT@3Bi4fzh;JZajx9q8guI^%tQEYsze~Dg|ce2s45);6~E8H($z6ssv zPt4)Bh2+ZT0Za(dJ#-nkMb;hatQs=vp0mk|@&sg7LtUmGw zi_et5C!60p-Z=w|H^}%h4cwW=<{!)WjZOy#-Hc;AGHgKpCO3D5m;b8p)QN4Za*$LXH2=^O;_ zcqSNoyT3k_9w{YWu9$YY!hd%Dt73yu!1OTzyH-S&YN1)#AG= z7gVvrpz+z|}C|NWTqdH(IIedF5? z&1!rrxw_+7J>M{ckEosYBsZ2qBU_k< zG59)T&OGo)2kod%dH-B5Zyr=;xG`<)dz`Vq;>^FFa~xJwTf0^?O>C(dP983@sEPTr zW6wol(Y>C@xa_|77A(EJXVFl9b2&Vb&JQ8z+iMT^_WDA-y?%1|u+3|%mXC=0M6xS5 zPfBZDetb25;$iyn&R3B9vVC`--taU24edHUYO`R*M{W1aSIFca_tkd`ki(sU?@oQI ziSo-U*hf)=Ol&F$G)s0bHuss$i-`rQhLUpI7tlZPJ+m*fCL_34@4X7W{u$42E4B`= z))^Q4-bViE18X06VmqH(FSBcVFQ&g%Xn{P4Dy>^;ti8Q~P(JS-A&)+$Gl`K)l1=s) zXZ8qZl1oPa(WYS8K|cp*S8zN?ALgDu_Jhwm$iu>pI=PVhCFt^TuB-e_(@x>mS6w;!ws?F@F(NY`eh}!C}KQYpjBdC&9@h1G)t#PvMa%n)>Z?|K_Jlu z{PM*b9GJbZYCiswxv1qITBVK5<_Cbe)xljWFt4Phcq4tPuQ<39eIHcL4))nw&h-th z-uWEq%qRX~ivQN6$y3%{lL5v6z9y<|;*?eJfAgXO*2=)C=5$7mpU)Z1Gk|F$`%QAd zhvqA&E1#uDW`H-#$_UGL-AInD`3?9rZxz5@tvSa=$>DcnJ!Ny&%OE(y|%t6!+JhKJydT$5okO*T)O>=@L{K|=y2O^vG_~LCv*OApM3Hc zl$&$2WqUJsM&>qLOigOW)ldx0h%Uj?e8zP<`b+oMaZeuV?gnV81e&UVmf*u$;UoZ_ zUS%(L6x)yZ?q1R9ixS^FF75X| z?(+suzs$X21qKD1^pUlX3@Vls8ye#;4oPn0KO2XD{7}t&m+i2^jaG zdmDIOv8`Fy6XK!gfOiw$%T81s?PFYJA9=@_4zKdxFEq3*9UKS`;oiblD}tXM5nh33 zhG{>ewwZo2Oure%mYK198~tV&+t7C=*o0 z;voatYax@%)E5uc{MR6dpryJTcnumcwc51bO|&H2OgvYXVSQTr-_q@^2Ka6vW35hm zzIw3d>1RLrF={VDdtRP^e(R`lS=A6^odsN$t|qUZ{PS+$D9y0%*XW*{W#!{9^}@%# zQNdT~d8g9zPNnA^(opboMaVa!2?}#}7GN zYpupf%3(QFvTs7mkOw_9kncBf#2^2IEtjJC6%(2~G~mjUkJHzmJx_i8^Sg+B^6%21 z_SH4v$nK&$!KNo30_BFAu7JEW#4Q_s08~STCJQHow_r(3Ma~rT1 z=0dZh$xCj)7K#<4x6r$b(Ce$v39(!4by?}1a_q{hK00G^v*toaW5~IXy_CiN?*qlz zE!(ZE<_^}Ibw;A#?rdOvj=Ux8k=?56SPUH>g)Xp152bBV?3)hOr42i`EtoKw(H6-LB7Pbw#Ks&U=0lQg#??s54>Z(y$?JSJYEls z`mA%pvdDpq5LeJXrFL++16Vu3Z7(vi92k}V8yG`7!OPiOq4gETQH#Puim_37-aOk| zfL&76@UQxt$23p8bBtKyQRXQ~Ej9bhBl5|S#crH%uz7k7UerAO6!_eE zYUMj(lE6rwZ;)F5;9)=XFFhn2mJwU}N+)|siS4;K$YzWW860FA987U=;O>3Z?=K1m z)Vp?Z5CaF<;2;NjecQ@y?gf9N&{y4zr+qg4m-f-BefCjS3Ku{AJ7{7y@wig(0WMsc z?Zi$Hy^3x-!AT$8W`&h+Z0J_&*U-tnn}!-$l?U5T==CcQML7?dUV(duCoL`(dvmx?3=TuU!B-;)=*w&LdnEphw;J-di}>e%m)efMy_CGY67 zUwaNRzF=}kPxHRMJI(tGvU!$w;)Q)gr+AWwq0H(Y9!}NUv(@+N{=Nfme zr8aE9bg1Iut6Jjh$2(m!)Q0H;V7gl{*`NEvWPf*>_idPlreJzhFgf`6mS9Q%Q>_D& zgTFNfrXdbY&Nc2_OKsTb??gopVbj=VOrUbIFRxt6I`WNPzoC{k{^RA7fp$c^49vW5 z!!*Q!>4FqYFLFLvCga<_wxneTHE2(lUeK}_erV?^8N1Z|{o)JBn`Zp+Li=~F`u!4q zcjtYofxXay-M)?zjh%35tk8yIYoP;2VG53Y)I%M^8hGYstQW_Sue|+hSGLT8j!&05 z{c+WL{Y}&X8ci*@QgWRl$>^%}ZkbcU~a^_dyXtFUdwf7OlF$)~Z=dK)e#@B35m zVpdB5@+#H}&e8wal1ZDlC!2BH{TQ|_`X|;39*s^aPb$xEW=7+?Zhan&S2D<6_sa>7 zLf=cD**eVE@C=j&m1*s=cxeMaABUTrAA_6UQ5)UG&6~1U9J)~**&<>QdB=OJe1&~34&nH>?2mTDEOhH$XGJjE^ze>)_cbdigdu ziDPGUX#SxWQ|qo5Il{B;&NVQ^*i)?CH)uUcgT*D%xniY zIq+2O)4@=!mB;zT`3XNfb(C?&H^37k;R*5)sk2I~H7A9in}weZ@Y2Zg{Q07D>4rF#zo!B;Vn@X#ZQ#{t(}QwEsSMiGM4N_J@=k z+85o6{$1LC4;g*Fw7(75+&LBPw?of6u;a$EM-6`(f6&KTuWX-!mOJn@I=IRPC1x~Y zlVjHn|D$xSqhm{Ld}9+Gs=!9GZK8ZfU)lJM@vN(_y!bZ0kt1td9Tk4-yyWmMuZ~iF z&-u#X_J_cEw)p8R9d&3m`{;tod^kK4@I?&w-K#vz#z&G%84Ub0yDF)Vzv3-vI@RQTkFUTty zjIMGy|J}8H+Mfh(m-?`4T)eq^9*yl|@E3aox_Yt?e<}TbX}Qtw!lQJ&Yy12f**k!K zACRto0GuvQ4@6g|8~gP80f(-lPCP>A5h@;W?77}5;z=pnFg+fj{2}yMimvo~3;m|z z5sn^HOeP!KFxMv?pKI&*jp+BH{`etwX7KV9c!_UB&J~rX>_Xv2H08AiRToTp{yW0U z*?PVoUQ~xcw6)BGmwf}!){EzXmn*k_a=gqtU%YGuFQo(H<;%j$R`61Ket7xPC%{YT z$Kd5|4_?la(b$8JJoU+WDT_V_<0Y>j5gljaqkZS#yfj3-w6l+wQZjm+EstbNigsLH z%0Ca>xH9@zo6pTl<39#B;m1EYZd&PcFx>Q$GtXE?#zZF#uD{+~18$z_!%a%gOtR%n zx*zcx^7nk@%(p)VH_?VZIWrL5y#2^0$IbF{;HDqlTOD;}omzP3-m>)``p-C~KeN@l*Yrhgd>w#|Cm@-1YPq&}*`9S?3tBQEQ!gjyzA! z&{|i*wS+4<1+~TGr|3C*J#l7_);iSBLh@1qSF#t0|Bb8{FCZ?a7{Bsk139xoqesjl z2PZT2eXjbuTJs?~Ra`qG{DUWxoU;;qSG5GSzp9413a0iWdU+Y+DRs`+3{f*Dh~8bu z|38tx%|730XTii8tMV2%&amn%e8@#NQU{84VAdV$a=?k&)mfgcz`7q;+lufpN8*Q; z3Z9~Hm4lDDTx~q8SXT-jYOEEk#gh|8oBq+%HsN1ucv0bt{lKOC>$AZheKY|3TjW!^ zu;+5`!p{DV4V!cZOBz1Y`>SR@fob1qZ;jTD9bCKx9BzB}sy+6yM8Laue$v}d|BT&} z=v#}m=Ty%q=6C@#>)z*k?sGi%ncRE(YrmBJRM=IqQsSH=iOm$L21g(f21m-Tt609E zXC?oas{Yx(2En&KdCamTq&k;W@gg51vl$z5QDBseXr zZs(&?6NR}^&Qgr=317N6#!!>@zcd7RR z-UR}0r~IBV#2Yi0 zjy7j|>s{@45r4JAPueT5xOO2p(faagYKDroRO?iEAD?1vRWz~^7$cL2f$+ZeQo8wp zsw*pa?YXvde(ih_fA|h)K(I#~{QS_t&tUtD)}-w((i$qYJ*G>BiN`V+do^8nJ0JGcgz5eGqzh!@+s4)9)Lb z)Gy~UgYOALvzyQ7-3!r-GqQ=2m&~UG%4X zI4`cckZb#vFYUo6GWGm8TdySozN0sQ>oRz>5`2Sq;amF>I>CPtezfTDUFgjAf&Jlp z!+Sbo+aJzx@eUtpkB(^bHsKy#im|_A8}E78$>e*Ttn{1p$O(VWdSqq)^FH@oO71Oj zAU}AiMs`099g7|#)S0Nho|=5`n#9;+#EUBVUixq* zGP?{J;A3vLA-l8qe1PjlE2~yKtaq;9of$eWS$gJH^3%~P%FVNwt4K9`ceihP`_HWU zP0oJzAN^-?L-g+Q=|1+FM}HQq_p#U9*J!oC7iMqhBI>cks_nekJmyOGqgX$YJ`6nU z3;7-eXY?z%XVxq#Gt8PrHM**V8luuGi>OZ_eKLxx+wVs8OH4}rdf#*LGT~+$FWbRO zWIpr=9!AjyI`8?F?CBjvyZ&ryVq~x%96op3T|>L&IArH73q?Gq`+X z5M0uia;9Gbh8Xwhxa@}u(T^97gTMj(d>kA%3J%VlGjJR{HyqzS4>-nv>sIireueLq zT)l9%LTg_!^j8%AcgE(<#n=Jn!tcz5b9Ud9I{F`_xmW_fc;-TDmrv1F^-We?7j3Kl zaO@W7ph>#JK4(XI$qR?%llQag@@+#tXq{4VSJ9|y<4G4B#qMIyQ!;WddW71{ks8j( z6|L3Uv=+P9&W%_8TYHUo2z!rvcWfX0US|=Se0Wo1q?~h%1MH#xJmV>4Jkkl`UHADv z{J}oE@b`RwitnHF)Li=|e5JY(MV#eZbjBZQ=l3ndT()LFlZ>GZc;7_UXMwvi@c*#E zwQ6kH^%vp|jKjoIIA;d^JDPLGS98wzXCK7ZX@Is3z8E`gvCr3>ci6!@#m;%;s%K)y z-m}8{{|297Ht)U_J}Zx@gSm^;0xz&DFGVn0 zr^tsv7R_cX2bc%tG{xZ6*b2d`JrIijWSjgM7v@4>ZeOAC+qiXg)E4?XN^Xeur(=)N z2m7TNtJaX*eyMYje3iXDl3nh(zT2oz{VTmk&cUYTr9CT<3E@Nn4KE9^{_}+ld zrMK9_RFzG-exxilL%Sk|^RWWp;tv_;rJ2!>r$OE*oE0>b=(=ZVV+=a-ePB=Fjd#X;X9hNZR^m>4 zgBbjiiM(ia^oMw46!SC|S=G^M)wiODq&Hqier5ArC)ZwltA)^#o<+f>`1X2eJIc9~ zk{_(^*Ta|fF5kK_aE(E7>;YiY{TSxO=!EsYkRP33=l~eC1|a#d9sFLz^IM2(r|Sxr zM=mk_+VayoN1fPpo#JEG$zrC>T=b3V&}UO)#7d4uF9;8F#jDd;KXi0kmU#4T%ivaH zvEU!+oEUT9<&&>5f5N#_Gx56iyXo&X*4`MG*5dV9bD3Qn4E;Id)%S|M>zQ$-zEJU{ z{!s2^R!B74LHnD&V}*7y7roA0biorpWA1d#%M8}D23X(AeC!AJvwbVpJ;Qv|a&7Qs z*KT4DoeTf_r#$oU@*wj7Y?_Bs%>(!8^B{QCuV5ChJO>=m`fism_ZzE%bmi{PXjIxcbeQ1sG7Zsu0(3!Y=bx8DeWiCVJ@*bYxjBVk{ZpWYa6^euugV)Y8U+(o^tIh zc*+M)8Tq}n`9k}<`dG0^MeUZnXS@k&2We1bje0a7!ZR&r3Q*S*B^4*EG zXunftLcZJ>#+=3f5k7C0|6PPGE7iE|n9G+o!0*Hi;zgW~M$S{bRCP{*$(#7z504o8 zz|@v>_Fp|@`^|qTxUltq&HT#Fcl~AUfBa}jQ7RXD?eJi77xlb0QESi-f6M2aUu_-I zzO36v+BwhAI`Y)6Nv^$ldZvPXSxrO9fnK_(rw05>{%K!;?bnp|DDJf6NU|TUra8F! z4`3SRr`{C%vo`vNB}%9xeyWrjtbQwb7QEo(EO=#eBXceG>3I8_m)75BQ{<-s` zy}jQ3JDQ(E)Rb(@G%>_v&HqpKw|))&QB3fwT-`mPwa$0TxOV;8nS1ClMvO)N=S#wi z{Ldkr;pyUrJ!GN*AN#pn+-P0Q#YcDA{w(3+8t@T8-V=*7`1s%2|9Y)wtk-z%C!2eF z|La8VLj#O`xo7NerHy^FXY6k~bm5MFnHhiI{;L3She~QN7TuQ}n$NyfR~PB~Tc5P; z^r9(Nas+%DxY2p`Ml0Fx*_${o*M0UTE2&s-(Tucbg4l@eGeLYx&MYr!{2ck0R@hpg z+C@1n4X?QIJxBI9F`mym^e_7$oxbM`?=KG}@3dzDS(eNgtvZ>Et=LMMynf`MYJOS9 zrk{qLBN?>(h0G>=0IrHjZ7j&>hleI=xLpL?(#ehZ9wrWj%v4P;?R^*x|IS3mtiCVv z$p`MEM#q_k$5$Vl*}R&2|24$8&dhwgdc^9)JmkPuV(Gps(ficfD>?Pe_bhC(A8M}Y zS8WXkZ|r?i%#M9Ap9VMgyzuK)zy^)Baj*ThTi0gxgKsNs9Dl;G8O94fa_wnLx~~EM z;!$Mn)7X3g^wx#6Z?`>#vD;_i9-#dw&r2UH%HXUecOONqlOKI7+XrW7pLD*0ga0G@{00%V*fJ4vNGS;Cj#vyt0 zCFWMRSisee%VvddcD|d>^)L7@a@J_vxYu`E9Jxc>>#scg<<{3;^Ci(_Uwv)uSBMjz z$pUW&E(?Y@Phev1f(jFZRordWpQ5Mbw_~4l&!g@&&ze0BxjD@T3bLCIphu64U@sXl zva!f0`H5K7iN8+m|lclbwkTIxIMSEN%QB=5!3S z_HZuyc70iiE#>4SVk4hqP9jcUE=(>gstclbc6`CweS|mx`*>7GCpqR~&amV2gfjRA zx~GoJ^ZWRX{bf^oiQTA9hW1oV<~p8y#cKMS_56cRQ2#8^2yef_9!>F{{4XQF)B5i$ z>%+&K&stMiw`2cOW@10S%-h7%27~v<=NQXN=lD(a@CR#?jZhlWYi+u7&0x^ZgDlgsZi`%T`&4t;>R(>`{^u~jScZ^4E5?TF4` z6TLoN8JY~e&Lz&!N`InPn@;nf)53mq`o_w^>2w>l*VE|~|6#A@rRx^zu{*SSjQEdo zyu9=}5n7}F!#^3C*F5+5eeb=#bmAVtx*eL`>Cmh`KS*x=EZ~2D>v6^;cq^{9s=l9F z*!p(cX?Z1x0 zRtJB=!8rIqbRazb9=`4fTo9JbTi}fUZRFM5PZd5n`TCimTRxom-jR#uCgzla+xolr z%pDe7cW24lPgMIZFynvQmlqD#U%h7~<}nz?N9o+IGl z0CXg}adEI49E|@(_Ou7V&BWcTTXX*41aNW0Dol*Jlzrdzcl3xyHVrUFY^tgbVm$Uf zz_Z8qVdLO@@=J0M2I7;BY5(={X-;2v#wZ_CpT{CYA7gBWM@CTVaQS4jmgw@)*Lki& z`*G0C%Ha;OPOR8$IXSy8vZvQNoISOJ&##l4>*6+D)(e;JoT%Mu+VtXBH3i5K=+{T| zTJ*5yi?-kUfHNCeODTS@x2i*Pd#%oN&1pWLekD`XXT<=0XdIP8%R?KHw{uvhSxo(b zBI1nu583_b{Cd{0&N(i({fPs#56qtq{;aR9PXe#(J0Ia2>7&Z zI9nfm{O1b{fB%Q_YS1s5*Z0l6_6TQ%-!u0)e4iCQWbO;O&kO&=+^Z%+VfbxxKZN@W z!UxU0-R7H~=l6T=f6TpY*P8t1T_wTKwEX$srhR99rlpGSB7p+a-}B~u$)cR_3+7%h zWrv^PzQ|*HwoSrLyA)dz-?xW-tnS(?Yq@++?9UT3a{avt$cpsy4%)CsyNHG7kFJ=0 zjJ*{bKMd4uQl8IjVzbrgYiz+puQmNBap7*(dh{&1JgN8M*r;ZWi8YdZ-_WTYCRT0N zhtc|oJwJ9mbl0z&-g`i4-o*wT?f9R1&#cK{ zn`%vFOpr5#d0%^!wI(w*NE?>FCCL6tMaX=@I|XsZnI(SmKS!M{lpznG3cZtNRG=%Vv5Ff6Vxd$dKRjE_ETMMR@NL zwPR@0KF7+7Km8u%eeK28yPc)zNZORIBY%9b_w=mcVcwH(XJjYWS@5jdbm35Y+K;F{ zju1;ehCT8cXDEyxA56YUOrYax&i%r7lMGhgTq81gUslgcomT^gWtq10uD3ny$({oq zvV7nWKYScxZ)5DT9ql-({I0Cm5>n&1(h z5l&QFC>_@?>GwhAV%Ir-Q*M!4w^V0Tb?wXu9R&{Y=>=Xsbn^4V}t&Q%id8Ul(v_K);pp{?;sO zO4Q1kDtWDU7xa7go4kARRKDZg`_6i|DTDKjSNGK?Ip10%0na<;+|b)O3zWVCp86za z%?nsL3$rdxO_K^M@HVTA>q>gQL5`vI*9(WPe4+&S@jvR6m!|PZwhwf5@g@0oveH|R zV|XeC9lgg&#_lElgT7gfjN{z9aO)Xl9B>sC`=@6Tuj&A&IS&48I=Hz<{pG-0UCYPz z$j4R;UGa?U;yL7sTk5MBkY)UqgD1k`51dev(lL>X~R#u zih1Yre(WBbKjSNu(+E%A>+mRY(3}-Czma$G5AmDYcxIbry~rN7i4*Q$@Ip7=X-z+l zoFYcB*R&-&i8d6^2&!+Mi8yV5aM#C-O-+-40N&uT+H0wGwjeBkTu_#P^!l`lEs6jrJ(6`!=Y+gWHjrlz<#b~1(85KpRx%hVR zY-9=Z<9;7UhI!{fWA^rqJslQ4+jvg%WAMY=nzm_2c%XLEG;)XbPM$s|^hM;~HsoJh zrInnNNp4SJFgfX>IiazCCLC)&V;=LYnxFaM&bW^{Bt_vvs#80{)2)ujHI@=2>mUXvc0Z+pP6>(5Cu|;(Mj42noUj{AZ7FSHi z=9<<`Kh$$I^l55;Fz-5-FohRjXydzuRz`|Op+oxP+zQ%@^1kXa*))QlW1jW9=1j85 z{eJOx%gz28eYZVm*LyvJ?Ry+wY$tJtCB417i%VvQMwPR^hJC2@x>v9XJD{uf8svGk zWGUyUU9I?mzvUnMKkyv` z&$5l$mZ0z7Yh*m&{#yK|GVtG^SfJwz(^eE3$^V?C{>@x`1v`yc^^}|HYkQ{C=J;zl zE53eGkM_pp0rxy&Ck>ZdbvF{rK3ZudnV-6atZn5#9}L~Z+RX&wS%r-MIJ&d&dgOJc zb#e`7Vm$|*8t|DX;}dVxci6)h<1XJbMx8wuhI8Ro{U;=|nFEZ95e+4FF3Y@6 z<7YwxoZkZtH12J+@@o_5Sm}_4F?JrM;;qsJ4HGzL1^l*RKP2c^_Hr4qcAE$6vn-w= z9y*6OMc%iAp?u_;azmvjZ26N%u8!=yeC4IB*BlRqH_?NsdjWoPx_fu0)1%^4qH7x; zXVc_6_YF>yAxO|zbV&l;czm|TEB|r`I33!L2iKlsymx(q@ftco z*B(QzA4fNQ08jo#`pu#9A@C%y8J_$aJjue`ltcA*_ng4qxRriRObaF_|6k(X2R^Fm z%>TbLlgZ3L5G=OZqD?{&2w<(%3aQ&>l7Rft*7hr1yR~hA@Fy7m)M{4{Z35x{)Rif= z?Bee7PlOrUm9@1(yStz$ifOwd?e2HmZplpkGoWJaHlx^l-=A~u&D;zDX}hoAkJl^A zojdoQ^PK13dCv1Z=Q%Z2;-^cm>{VR>@y7}HrwF?$!}ynQuNB!zp+iQ32ibALNiXl( z*B2yzXRd8ry~%a4N0;i1>5i+>g~ihOA5MOX{kN`OZNC`3ay5FTIGWv!j&*H8ecJY* zt#1<_9vFXdV=IcQbTzOpSwtUo=w0-$?1|Cvv;TwEHRbrVk)a8V_-*~@j`F1qdnX{z zmA;||KR*7G@cDip^|r`OE`RWWqcayT-pgLk2KlMWk@NM?w32u0$YGuUUbe_zeF?u| z=S;Y;D5g2*4siMqIQ=yI@DBL|=%s8e`sg8ifur#SmS01T1iE9z2dvqXmQLIoVSX&X zO81H~E8dR`M~24AhYgLX9@|9eMEuCw^V3LOcEz^4r5hv2HS#k7|5^rpg3M=55@(P+ ztA?8`&$bU`)`JfojV)>D%}lhi&Gi#{g$vmu-zCpeb<9d=BZW@KHqR`kcBff8p<}9+ zl=OC^bN*UwGG~?Y+`qG?YeEm}J+_^vAe; z(d<7$gK}cKw3Ah=QoIXt0*Ekq_p@mus7{0vq_ydpym4f2ozj?%R= z6KUq))Rn9^%^vP+;&(42rg$Z~kGZc6d6^qFan(J_ontL#X>VZV{{A4mrAlUNVg`;C-?vjzIh0T=t(PqJfA^JaZ-1qb2> zt%0>RSc5zY-|9o{yYN)Oi^}gAA7ajh7e)VkJ~{KdEx&%`*BQyu4PZG(GR1d{8r6xHT*U;ae5H_p!}&b@*lvh$$vO)Dc)@MQ#V5+<${c)Z{;Z$ zgLC;?l)G%6C4N2NS=Jz7_gT)0i-?bq{{hdS1Nz8gFzt~8S#_ngr?jcS&3}NeBJs)} z4W9q-E_)PPLw0_otMiP$JLuS#pOC(Le{TI-hb@MVYm=_KkG0zxD?5yJ@P7P!P0U5w zw%G&)}Cr$cYS%t#U6{i z(R+^DzP!{;mO00-t=SXzzlJ?*v4$#3YV!wOh-==?kFC+J$4Ek2KS{0QgjB%?azu_xZ)A;yk!Gd0M{g?7%X?;4H zoJ8?~n=3dPzFO{#rv$#T-=6><_{=^Y@p^h0?>YR_56^uLJn+%of`{)09(ZZ=92buA zc=`rxh;ddn;QAvP8KZmx*RkeCM-A$a80YvSc-E|gu@9oWqjj(GM_k9c6n&<=8umNw zYv;L@mi07i@(DX1m}Aa2Osfs~A$ZsILl_-c$(nv5wB;SMhNmt0FkfUG-TZZpAy