diff --git a/.gitignore b/.gitignore index 8d29ddac8..d83c25f5c 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,10 @@ # Output of the go coverage tool, specifically when used with LiteIDE *.out +# Vim +*.swo +*.swp + .idea/ vendor/ build/ diff --git a/cmd/importer/importer.go b/cmd/importer/importer.go new file mode 100644 index 000000000..ae2adcead --- /dev/null +++ b/cmd/importer/importer.go @@ -0,0 +1,55 @@ +package main + +import ( + "flag" + "fmt" + "io/ioutil" + "log" + "os" + "time" + + "github.com/wavesplatform/gowaves/pkg/importer" + "github.com/wavesplatform/gowaves/pkg/state" +) + +var ( + blockchainPath = flag.String("blockchain-path", "", "Path to binary blockchain file.") + balancesPath = flag.String("balances-path", "", "Path to JSON with correct balances after applying blocks.") + nBlocks = flag.Int("blocks-number", 1000, "Number of blocks to import.") +) + +func main() { + flag.Parse() + if len(*blockchainPath) == 0 { + log.Fatalf("You must specify blockchain-path option.") + } + dataDir, err := ioutil.TempDir(os.TempDir(), "dataDir") + if err != nil { + log.Fatalf("Faied to create temp dir for data: %v\n", err) + } + manager, err := state.NewStateManager(dataDir, state.DefaultBlockStorageParams()) + if err != nil { + log.Fatalf("Failed to create state manager: %v.\n", err) + } + + defer func() { + if err := manager.Close(); err != nil { + log.Fatalf("Failed to close StateManager: %v\n", err) + } + if err := os.RemoveAll(dataDir); err != nil { + log.Fatalf("Failed to clean data dir: %v\n", err) + } + }() + + start := time.Now() + if err := importer.ApplyFromFile(manager, *blockchainPath, *nBlocks, false); err != nil { + log.Fatalf("Failed to apply blocks: %v\n", err) + } + elapsed := time.Since(start) + fmt.Printf("Import took %s\n", elapsed) + if len(*balancesPath) != 0 { + if err := importer.CheckBalances(manager, *balancesPath); err != nil { + log.Fatalf("CheckBalances(): %v\n", err) + } + } +} diff --git a/pkg/importer/importer.go b/pkg/importer/importer.go new file mode 100644 index 000000000..f8758eb90 --- /dev/null +++ b/pkg/importer/importer.go @@ -0,0 +1,97 @@ +package importer + +import ( + "bufio" + "bytes" + "encoding/binary" + "encoding/json" + "io" + "os" + + "github.com/pkg/errors" + "github.com/wavesplatform/gowaves/pkg/proto" +) + +type State interface { + AcceptAndVerifyBlockBinary(block []byte, initialisation bool) error + GetBlockByHeight(height uint64) (*proto.Block, error) + WavesAddressesNumber() (uint64, error) + AccountBalance(addr proto.Address, asset []byte) (uint64, error) +} + +func ApplyFromFile(st State, blockchainPath string, nBlocks int, checkBlocks bool) error { + blockchain, err := os.Open(blockchainPath) + if err != nil { + return errors.Errorf("failed to open blockchain file: %v\n", err) + } + sb := make([]byte, 4) + buf := make([]byte, 2*1024*1024) + r := bufio.NewReader(blockchain) + for i := 0; i < nBlocks; i++ { + if _, err := io.ReadFull(r, sb); err != nil { + return err + } + size := binary.BigEndian.Uint32(sb) + block := buf[:size] + if _, err := io.ReadFull(r, block); err != nil { + return err + } + if err := st.AcceptAndVerifyBlockBinary(block, true); err != nil { + return err + } + if checkBlocks { + savedBlock, err := st.GetBlockByHeight(uint64(i)) + if err != nil { + return err + } + savedBlockBytes, err := savedBlock.MarshalBinary() + if err != nil { + return err + } + if bytes.Compare(block, savedBlockBytes) != 0 { + return errors.New("accepted and returned blocks differ\n") + } + } + } + if err := blockchain.Close(); err != nil { + return errors.Errorf("failed to close blockchain file: %v\n", err) + } + return nil +} + +func CheckBalances(st State, balancesPath string) error { + balances, err := os.Open(balancesPath) + if err != nil { + return errors.Errorf("failed to open balances file: %v\n", err) + } + var state map[string]uint64 + jsonParser := json.NewDecoder(balances) + if err := jsonParser.Decode(&state); err != nil { + return errors.Errorf("failed to decode state: %v\n", err) + } + addressesNumber, err := st.WavesAddressesNumber() + if err != nil { + return errors.Errorf("failed to get number of waves addresses: %v\n", err) + } + properAddressesNumber := uint64(len(state)) + if properAddressesNumber != addressesNumber { + return errors.Errorf("number of addresses differ: %d and %d\n", properAddressesNumber, addressesNumber) + } + for addrStr, properBalance := range state { + addr, err := proto.NewAddressFromString(addrStr) + if err != nil { + return errors.Errorf("faied to convert string to address: %v\n", err) + } + balance, err := st.AccountBalance(addr, nil) + if err != nil { + return errors.Errorf("failed to get balance: %v\n", err) + } + if balance != properBalance { + return errors.Errorf("balances for address %v differ: %d and %d\n", addr, properBalance, balance) + } + } + if err := balances.Close(); err != nil { + return errors.Errorf("failed to close balances file: %v\n", err) + } + return nil +} diff --git a/pkg/keyvalue/common.go b/pkg/keyvalue/common.go new file mode 100644 index 000000000..baace3fb6 --- /dev/null +++ b/pkg/keyvalue/common.go @@ -0,0 +1,22 @@ +package keyvalue + +type KeyValue interface { + Has(key []byte) (bool, error) + Put(key, val []byte) error + Get(key []byte) ([]byte, error) + Delete(key []byte) error + Flush() error +} + +type Iterator interface { + Key() []byte + Value() []byte + Next() bool + Error() error + Release() +} + +type IterableKeyVal interface { + KeyValue + NewKeyIterator(prefix []byte) (Iterator, error) +} diff --git a/pkg/keyvalue/leveldb.go b/pkg/keyvalue/leveldb.go new file mode 100644 index 000000000..e7ca83c88 --- /dev/null +++ b/pkg/keyvalue/leveldb.go @@ -0,0 +1,66 @@ +package keyvalue + +import ( + "github.com/pkg/errors" + "github.com/syndtr/goleveldb/leveldb" + "github.com/syndtr/goleveldb/leveldb/util" +) + +type KeyVal struct { + db *leveldb.DB + batch *leveldb.Batch +} + +func NewKeyVal(path string, withBatch bool) (*KeyVal, error) { + db, err := leveldb.OpenFile(path, nil) + if err != nil { + return nil, err + } + var batch *leveldb.Batch + if withBatch { + batch = new(leveldb.Batch) + } + return &KeyVal{db: db, batch: batch}, nil +} + +func (k *KeyVal) Get(key []byte) ([]byte, error) { + return k.db.Get(key, nil) +} + +func (k *KeyVal) Has(key []byte) (bool, error) { + return k.db.Has(key, nil) +} + +func (k *KeyVal) Delete(key []byte) error { + return k.db.Delete(key, nil) +} + +func (k *KeyVal) Put(key, val []byte) error { + if k.batch != nil { + k.batch.Put(key, val) + } else { + if err := k.db.Put(key, val, nil); err != nil { + return err + } + } + return nil +} + +func (k *KeyVal) Flush() error { + if k.batch == nil { + return errors.New("no batch to flush") + } + if err := k.db.Write(k.batch, nil); err != nil { + return err + } + k.batch.Reset() + return nil +} + +func (k *KeyVal) NewKeyIterator(prefix []byte) (Iterator, error) { + if prefix != nil { + return k.db.NewIterator(util.BytesPrefix(prefix), nil), nil + } else { + return k.db.NewIterator(nil, nil), nil + } +} diff --git a/pkg/proto/block.go b/pkg/proto/block.go index 9e0a24a81..5ba28f77a 100644 --- a/pkg/proto/block.go +++ b/pkg/proto/block.go @@ -3,11 +3,12 @@ package proto import ( "encoding/binary" + "github.com/pkg/errors" "github.com/wavesplatform/gowaves/pkg/crypto" ) -// Block is a block of the blockchain -type Block struct { +// Block info (except transactions) +type BlockHeader struct { Version uint8 Timestamp uint64 Parent crypto.Signature @@ -16,13 +17,60 @@ type Block struct { GenSignature crypto.Digest TransactionBlockLength uint32 TransactionCount int - Transactions []byte `json:"-"` GenPublicKey crypto.PublicKey BlockSignature crypto.Signature Height uint64 } +func (b *BlockHeader) MarshalHeaderToBinary() ([]byte, error) { + res := make([]byte, 1+8+64+4+8+32+4) + res[0] = b.Version + binary.BigEndian.PutUint64(res[1:9], b.Timestamp) + copy(res[9:], b.Parent[:]) + binary.BigEndian.PutUint32(res[73:77], b.ConsensusBlockLength) + binary.BigEndian.PutUint64(res[77:85], b.BaseTarget) + copy(res[85:117], b.GenSignature[:]) + binary.BigEndian.PutUint32(res[117:121], b.TransactionBlockLength) + if b.Version == 3 { + countBuf := make([]byte, 4) + binary.BigEndian.PutUint32(countBuf, uint32(b.TransactionCount)) + res = append(res, countBuf...) + } else { + res = append(res, byte(b.TransactionCount)) + } + res = append(res, b.GenPublicKey[:]...) + res = append(res, b.BlockSignature[:]...) + + return res, nil +} + +func (b *BlockHeader) UnmarshalHeaderFromBinary(data []byte) error { + b.Version = data[0] + b.Timestamp = binary.BigEndian.Uint64(data[1:9]) + copy(b.Parent[:], data[9:73]) + b.ConsensusBlockLength = binary.BigEndian.Uint32(data[73:77]) + b.BaseTarget = binary.BigEndian.Uint64(data[77:85]) + copy(b.GenSignature[:], data[85:117]) + b.TransactionBlockLength = binary.BigEndian.Uint32(data[117:121]) + if b.Version == 3 { + b.TransactionCount = int(binary.BigEndian.Uint32(data[121:125])) + } else { + b.TransactionCount = int(data[121]) + } + + copy(b.GenPublicKey[:], data[len(data)-64-32:len(data)-64]) + copy(b.BlockSignature[:], data[len(data)-64:]) + + return nil +} + +// Block is a block of the blockchain +type Block struct { + BlockHeader + Transactions []byte `json:"-"` +} + // MarshalBinary encodes Block to binary form func (b *Block) MarshalBinary() ([]byte, error) { res := make([]byte, 1+8+64+4+8+32+4) @@ -33,6 +81,13 @@ func (b *Block) MarshalBinary() ([]byte, error) { binary.BigEndian.PutUint64(res[77:85], b.BaseTarget) copy(res[85:117], b.GenSignature[:]) binary.BigEndian.PutUint32(res[117:121], b.TransactionBlockLength) + if b.Version == 3 { + countBuf := make([]byte, 4) + binary.BigEndian.PutUint32(countBuf, uint32(b.TransactionCount)) + res = append(res, countBuf...) + } else { + res = append(res, byte(b.TransactionCount)) + } res = append(res, b.Transactions...) res = append(res, b.GenPublicKey[:]...) res = append(res, b.BlockSignature[:]...) @@ -51,12 +106,18 @@ func (b *Block) UnmarshalBinary(data []byte) error { b.TransactionBlockLength = binary.BigEndian.Uint32(data[117:121]) if b.Version == 3 { b.TransactionCount = int(binary.BigEndian.Uint32(data[121:125])) - transBytes := data[125 : 125+b.TransactionBlockLength] + if b.TransactionBlockLength < 4 { + return errors.New("TransactionBlockLength is too small") + } + transBytes := data[125 : 125+b.TransactionBlockLength-4] b.Transactions = make([]byte, len(transBytes)) copy(b.Transactions, transBytes) } else { b.TransactionCount = int(data[121]) - transBytes := data[122 : 122+b.TransactionBlockLength] + if b.TransactionBlockLength < 1 { + return errors.New("TransactionBlockLength is too small") + } + transBytes := data[122 : 122+b.TransactionBlockLength-1] b.Transactions = make([]byte, len(transBytes)) copy(b.Transactions, transBytes) } diff --git a/pkg/proto/block_test.go b/pkg/proto/block_test.go index e6bc7d2c6..20a516a06 100644 --- a/pkg/proto/block_test.go +++ b/pkg/proto/block_test.go @@ -19,7 +19,31 @@ var blockTests = []blockTest{ }, } -func TestBlockMarshaling(t *testing.T) { +func TestBlockHeaderUnmarshaling(t *testing.T) { + for i, v := range blockTests { + t.Run(fmt.Sprintf("%v", i), func(t *testing.T) { + decoded, err := hex.DecodeString(v.hexEncoded) + if err != nil { + t.Fatal(err) + } + var b BlockHeader + if err = b.UnmarshalHeaderFromBinary(decoded); err != nil { + t.Fatal(err) + } + + bytes, err := json.Marshal(b) + if err != nil { + t.Fatal(err) + } + str := string(bytes) + if str != v.jsonEncoded { + t.Error("unmarshaled to wrong json document:\nhave: ", str, "\nwant: ", v.jsonEncoded) + } + }) + } +} + +func TestBlockUnmarshaling(t *testing.T) { for i, v := range blockTests { t.Run(fmt.Sprintf("%v", i), func(t *testing.T) { decoded, err := hex.DecodeString(v.hexEncoded) diff --git a/pkg/proto/transactions.go b/pkg/proto/transactions.go index 325c1e23d..bd7c59e58 100644 --- a/pkg/proto/transactions.go +++ b/pkg/proto/transactions.go @@ -3,6 +3,8 @@ package proto import ( "encoding/binary" "encoding/json" + "reflect" + "github.com/pkg/errors" "github.com/wavesplatform/gowaves/pkg/crypto" ) @@ -91,9 +93,75 @@ const ( setAssetScriptV1MinLen = 1 + setScriptV1FixedBodyLen + proofsMinLen ) +var ( + bytesToTransactionsV2 = map[TransactionType]reflect.Type{ + IssueTransaction: reflect.TypeOf(IssueV2{}), + TransferTransaction: reflect.TypeOf(TransferV2{}), + ReissueTransaction: reflect.TypeOf(ReissueV2{}), + BurnTransaction: reflect.TypeOf(BurnV2{}), + ExchangeTransaction: reflect.TypeOf(ExchangeV2{}), + LeaseTransaction: reflect.TypeOf(LeaseV2{}), + LeaseCancelTransaction: reflect.TypeOf(LeaseCancelV2{}), + CreateAliasTransaction: reflect.TypeOf(CreateAliasV2{}), + DataTransaction: reflect.TypeOf(DataV1{}), + SetScriptTransaction: reflect.TypeOf(SetScriptV1{}), + SponsorshipTransaction: reflect.TypeOf(SponsorshipV1{}), + SetAssetScriptTransaction: reflect.TypeOf(SetAssetScriptV1{}), + } + + bytesToTransactionsV1 = map[TransactionType]reflect.Type{ + GenesisTransaction: reflect.TypeOf(Genesis{}), + PaymentTransaction: reflect.TypeOf(Payment{}), + IssueTransaction: reflect.TypeOf(IssueV1{}), + TransferTransaction: reflect.TypeOf(TransferV1{}), + ReissueTransaction: reflect.TypeOf(ReissueV1{}), + BurnTransaction: reflect.TypeOf(BurnV1{}), + ExchangeTransaction: reflect.TypeOf(ExchangeV1{}), + LeaseTransaction: reflect.TypeOf(LeaseV1{}), + LeaseCancelTransaction: reflect.TypeOf(LeaseCancelV1{}), + CreateAliasTransaction: reflect.TypeOf(CreateAliasV1{}), + MassTransferTransaction: reflect.TypeOf(MassTransferV1{}), + } +) + type Transaction interface { Transaction() GetID() []byte + MarshalBinary() ([]byte, error) + UnmarshalBinary([]byte) error +} + +func BytesToTransaction(tx []byte) (Transaction, error) { + if len(tx) < 2 { + return nil, errors.New("invalid size of transation's bytes slice") + } + if tx[0] == 0 { + transactionType, ok := bytesToTransactionsV2[TransactionType(tx[1])] + if !ok { + return nil, errors.New("invalid transaction type") + } + transaction, ok := reflect.New(transactionType).Interface().(Transaction) + if !ok { + panic("This transaction type does not implement marshal/unmarshal functions") + } + if err := transaction.UnmarshalBinary(tx); err != nil { + return nil, errors.Wrap(err, "failed to unmarshal transaction") + } + return Transaction(transaction), nil + } else { + transactionType, ok := bytesToTransactionsV1[TransactionType(tx[0])] + if !ok { + return nil, errors.New("invalid transaction type") + } + transaction, ok := reflect.New(transactionType).Interface().(Transaction) + if !ok { + panic("This transaction type does not implement marshal/unmarshal functions") + } + if err := transaction.UnmarshalBinary(tx); err != nil { + return nil, errors.Wrap(err, "failed to unmarshal transaction") + } + return transaction, nil + } } //Genesis is a transaction used to initial balances distribution. This transactions allowed only in the first block. diff --git a/pkg/proto/transactions_validation.go b/pkg/proto/transactions_validation.go new file mode 100644 index 000000000..3d62510ca --- /dev/null +++ b/pkg/proto/transactions_validation.go @@ -0,0 +1,171 @@ +package proto + +import ( + "github.com/pkg/errors" + "github.com/wavesplatform/gowaves/pkg/crypto" +) + +type AccountsState interface { + // nil asset means Waves. + AccountBalance(addr Address, asset []byte) (uint64, error) +} + +type TransactionValidator struct { + genesis crypto.Signature + state AccountsState +} + +func NewTransactionValidator(genesis crypto.Signature, state AccountsState) (*TransactionValidator, error) { + return &TransactionValidator{genesis: genesis, state: state}, nil +} + +func (tv *TransactionValidator) IsSupported(tx Transaction) bool { + switch v := tx.(type) { + case *Genesis: + return true + case *Payment: + return true + case *TransferV1: + if v.FeeAsset.Present || v.AmountAsset.Present { + // Only Waves for now. + return false + } + if v.Recipient.Address == nil { + // Aliases without specified address are not supported yet. + return false + } + return true + case *TransferV2: + if v.FeeAsset.Present || v.AmountAsset.Present { + // Only Waves for now. + return false + } + if v.Recipient.Address == nil { + // Aliases without specified address are not supported yet. + return false + } + return true + default: + // Other types of transactions are not supported. + return false + } +} + +func (tv *TransactionValidator) ValidateTransaction(blockID crypto.Signature, tx Transaction, initialisation bool) error { + switch v := tx.(type) { + case *Genesis: + if blockID == tv.genesis { + if !initialisation { + return errors.New("trying to add genesis transaction in new block") + } + return nil + } else { + return errors.New("tried to add genesis transaction inside of non-genesis block") + } + case *Payment: + if !initialisation { + return errors.New("trying to add payment transaction in new block") + } + // Verify the signature first. + ok, err := v.Verify(v.SenderPK) + if err != nil { + return errors.Wrap(err, "failed to verify transaction signature") + } + if !ok { + return errors.New("invalid transaction signature") + } + // Check amount and fee lower bound. + if v.Amount <= 0 { + return errors.New("negative amount in transaction") + } + if v.Fee <= 0 { + return errors.New("negative fee in transaction") + } + // Verify the amount spent (amount and fee upper bound). + totalAmount := v.Fee + v.Amount + senderAddr, err := NewAddressFromPublicKey(MainNetScheme, v.SenderPK) + if err != nil { + return errors.Wrap(err, "could not get address from public key") + } + balance, err := tv.state.AccountBalance(senderAddr, nil) + if err != nil { + return err + } + if balance < totalAmount { + return errors.Errorf("transaction verification failed: balance is %d, trying to spend %d", balance, totalAmount) + } + return nil + case *TransferV1: + ok, err := v.Verify(v.SenderPK) + if err != nil { + return errors.Wrap(err, "failed to verify transaction signature") + } + if !ok { + return errors.New("invalid transaction signature") + } + // Check amount and fee lower bound. + if v.Amount <= 0 { + return errors.New("negative amount in transaction") + } + if v.Fee <= 0 { + return errors.New("negative fee in transaction") + } + // Verify the amount spent (amount and fee upper bound). + senderAddr, err := NewAddressFromPublicKey(MainNetScheme, v.SenderPK) + if err != nil { + return errors.Wrap(err, "Could not get address from public key") + } + feeBalance, err := tv.state.AccountBalance(senderAddr, v.FeeAsset.ToID()) + if err != nil { + return err + } + amountBalance, err := tv.state.AccountBalance(senderAddr, v.AmountAsset.ToID()) + if err != nil { + return err + } + if amountBalance < v.Amount { + return errors.New("invalid transaction: not enough to pay the amount provided") + } + if feeBalance < v.Fee { + return errors.New("invalid transaction: not eough to pay the fee provided") + } + return nil + case *TransferV2: + ok, err := v.Verify(v.SenderPK) + if err != nil { + return errors.Wrap(err, "failed to verify transaction signature") + } + if !ok { + return errors.New("invalid transaction signature") + } + // Check amount and fee lower bound. + if v.Amount <= 0 { + return errors.New("negative amount in transaction") + } + if v.Fee <= 0 { + return errors.New("negative fee in transaction") + } + // Verify the amount spent (amount and fee upper bound). + senderAddr, err := NewAddressFromPublicKey(MainNetScheme, v.SenderPK) + if err != nil { + return errors.Wrap(err, "could not get address from public key") + } + feeBalance, err := tv.state.AccountBalance(senderAddr, v.FeeAsset.ToID()) + if err != nil { + return err + } + amountBalance, err := tv.state.AccountBalance(senderAddr, v.AmountAsset.ToID()) + if err != nil { + return err + } + if amountBalance < v.Amount { + return errors.New("invalid transaction: not enough to pay the amount provided") + } + if feeBalance < v.Fee { + return errors.New("invalid transaction: not eough to pay the fee provided") + } + return nil + default: + return errors.Errorf("transaction type %T is not supported\n", v) + } +} diff --git a/pkg/proto/types.go b/pkg/proto/types.go index cce28e2ea..17c21e139 100644 --- a/pkg/proto/types.go +++ b/pkg/proto/types.go @@ -169,6 +169,13 @@ func (a *OptionalAsset) UnmarshalBinary(data []byte) error { return nil } +func (a *OptionalAsset) ToID() []byte { + if a.Present { + return a.ID[:] + } + return nil +} + //Attachment represents the additional data stored in Transfer and MassTransfer transactions. type Attachment string diff --git a/pkg/server/block_batch_test.go b/pkg/server/block_batch_test.go index ff4b0a568..2ca65b7d0 100644 --- a/pkg/server/block_batch_test.go +++ b/pkg/server/block_batch_test.go @@ -17,16 +17,22 @@ var tests = []batchTest{ { blocks: []proto.Block{ { - BlockSignature: crypto.Signature{1}, - Parent: crypto.Signature{0}, + BlockHeader: proto.BlockHeader{ + BlockSignature: crypto.Signature{1}, + Parent: crypto.Signature{0}, + }, }, { - BlockSignature: crypto.Signature{2}, - Parent: crypto.Signature{1}, + BlockHeader: proto.BlockHeader{ + BlockSignature: crypto.Signature{2}, + Parent: crypto.Signature{1}, + }, }, { - BlockSignature: crypto.Signature{3}, - Parent: crypto.Signature{2}, + BlockHeader: proto.BlockHeader{ + BlockSignature: crypto.Signature{3}, + Parent: crypto.Signature{2}, + }, }, }, expErr: nil, @@ -34,15 +40,22 @@ var tests = []batchTest{ { blocks: []proto.Block{ { - BlockSignature: crypto.Signature{1}, - Parent: crypto.Signature{0}, + BlockHeader: proto.BlockHeader{ + BlockSignature: crypto.Signature{1}, + Parent: crypto.Signature{0}, + }, }, { - BlockSignature: crypto.Signature{3}, - Parent: crypto.Signature{2}, - }, { - BlockSignature: crypto.Signature{2}, - Parent: crypto.Signature{1}, + BlockHeader: proto.BlockHeader{ + BlockSignature: crypto.Signature{3}, + Parent: crypto.Signature{2}, + }, + }, + { + BlockHeader: proto.BlockHeader{ + BlockSignature: crypto.Signature{2}, + Parent: crypto.Signature{1}, + }, }, }, expErr: nil, @@ -50,12 +63,16 @@ var tests = []batchTest{ { blocks: []proto.Block{ { - BlockSignature: crypto.Signature{1}, - Parent: crypto.Signature{0}, + BlockHeader: proto.BlockHeader{ + BlockSignature: crypto.Signature{1}, + Parent: crypto.Signature{0}, + }, }, { - BlockSignature: crypto.Signature{3}, - Parent: crypto.Signature{2}, + BlockHeader: proto.BlockHeader{ + BlockSignature: crypto.Signature{3}, + Parent: crypto.Signature{2}, + }, }, }, expErr: batchIncomplete, diff --git a/pkg/state/genesis.go b/pkg/state/genesis.go new file mode 100644 index 000000000..61d4719c2 --- /dev/null +++ b/pkg/state/genesis.go @@ -0,0 +1,88 @@ +package state + +import ( + "github.com/wavesplatform/gowaves/pkg/crypto" + "github.com/wavesplatform/gowaves/pkg/proto" +) + +const ( + GENESIS_SIGNATURE = "FSH8eAAzZNqnG8xgTZtz5xuLqXySsXgAjmFEC25hXMbEufiGjqWPnGCZFt6gLiVLJny16ipxRNAkkzjjhqTjBE2" +) + +var ( + signatures = []string{ + "2DVtfgXjpMeFf2PQCqvwxAiaGbiDsxDjSdNQkc5JQ74eWxjWFYgwvqzC4dn7iB1AhuM32WxEiVi1SGijsBtYQwn8", + "2TsxPS216SsZJAiep7HrjZ3stHERVkeZWjMPFcvMotrdGpFa6UCCmoFiBGNizx83Ks8DnP3qdwtJ8WFcN9J4exa3", + "3gF8LFjhnZdgEVjP7P6o1rvwapqdgxn7GCykCo8boEQRwxCufhrgqXwdYKEg29jyPWthLF5cFyYcKbAeFvhtRNTc", + "5hjSPLDyqic7otvtTJgVv73H3o6GxgTBqFMTY2PqAFzw2GHAnoQddC4EgWWFrAiYrtPadMBUkoepnwFHV1yR6u6g", + "ivP1MzTd28yuhJPkJsiurn2rH2hovXqxr7ybHZWoRGUYKazkfaL9MYoTUym4sFgwW7WB5V252QfeFTsM6Uiz3DM", + "29gnRjk8urzqc9kvqaxAfr6niQTuTZnq7LXDAbd77nydHkvrTA4oepoMLsiPkJ8wj2SeFB5KXASSPmbScvBbfLiV", + } + recipients = []string{ + "3PAWwWa6GbwcJaFzwqXQN5KQm7H96Y7SHTQ", + "3P8JdJGYc7vaLu4UXUZc1iRLdzrkGtdCyJM", + "3PAGPDPqnGkyhcihyjMHe9v36Y4hkAh9yDy", + "3P9o3ZYwtHkaU1KxsKkFjJqJKS3dLHLC9oF", + "3PJaDyprvekvPXPuAtxrapacuDJopgJRaU3", + "3PBWXDFUc86N2EQxKJmW8eFco65xTyMZx6J", + } + ids = []string{ + "2DVtfgXjpMeFf2PQCqvwxAiaGbiDsxDjSdNQkc5JQ74eWxjWFYgwvqzC4dn7iB1AhuM32WxEiVi1SGijsBtYQwn8", + "2TsxPS216SsZJAiep7HrjZ3stHERVkeZWjMPFcvMotrdGpFa6UCCmoFiBGNizx83Ks8DnP3qdwtJ8WFcN9J4exa3", + "3gF8LFjhnZdgEVjP7P6o1rvwapqdgxn7GCykCo8boEQRwxCufhrgqXwdYKEg29jyPWthLF5cFyYcKbAeFvhtRNTc", + "5hjSPLDyqic7otvtTJgVv73H3o6GxgTBqFMTY2PqAFzw2GHAnoQddC4EgWWFrAiYrtPadMBUkoepnwFHV1yR6u6g", + "ivP1MzTd28yuhJPkJsiurn2rH2hovXqxr7ybHZWoRGUYKazkfaL9MYoTUym4sFgwW7WB5V252QfeFTsM6Uiz3DM", + "29gnRjk8urzqc9kvqaxAfr6niQTuTZnq7LXDAbd77nydHkvrTA4oepoMLsiPkJ8wj2SeFB5KXASSPmbScvBbfLiV", + } + genesisTransactions = []proto.Genesis{ + { + Type: 1, + Timestamp: 1465742577614, + Amount: 9999999500000000, + }, { + Type: 1, + Timestamp: 1465742577614, + Amount: 100000000, + }, { + Type: 1, + Timestamp: 1465742577614, + Amount: 100000000, + }, { + Type: 1, + Timestamp: 1465742577614, + Amount: 100000000, + }, { + Type: 1, + Timestamp: 1465742577614, + Amount: 100000000, + }, { + Type: 1, + Timestamp: 1465742577614, + Amount: 100000000, + }, + } +) + +func generateGenesisTransactions() ([]proto.Genesis, error) { + res := make([]proto.Genesis, len(genesisTransactions), len(genesisTransactions)) + for i := 0; i < len(genesisTransactions); i++ { + txFrame := genesisTransactions[i] + id, err := crypto.NewSignatureFromBase58(ids[i]) + if err != nil { + return nil, err + } + txFrame.ID = &id + sig, err := crypto.NewSignatureFromBase58(signatures[i]) + if err != nil { + return nil, err + } + txFrame.Signature = &sig + recipient, err := proto.NewAddressFromString(recipients[i]) + if err != nil { + return nil, err + } + txFrame.Recipient = recipient + res[i] = txFrame + } + return res, nil +} diff --git a/pkg/state/mockstate.go b/pkg/state/mockstate.go new file mode 100644 index 000000000..f43a05b26 --- /dev/null +++ b/pkg/state/mockstate.go @@ -0,0 +1,64 @@ +package state + +import ( + "github.com/mr-tron/base58/base58" + "github.com/pkg/errors" + "github.com/wavesplatform/gowaves/pkg/proto" +) + +var ErrNotFound = errors.New("Not found") + +type Account interface { + Data() []proto.DataEntry + AssetBalance(*proto.OptionalAsset) uint64 + Address() proto.Address +} + +type State interface { + TransactionByID([]byte) (proto.Transaction, error) + TransactionHeightByID([]byte) (uint64, error) + Account(proto.Recipient) Account +} + +type MockState struct { + TransactionsByID map[string]proto.Transaction + TransactionsHeightByID map[string]uint64 + Accounts map[string]Account // recipient to account +} + +func (a MockState) TransactionByID(b []byte) (proto.Transaction, error) { + t, ok := a.TransactionsByID[base58.Encode(b)] + if !ok { + return nil, ErrNotFound + } + return t, nil +} + +func (a MockState) TransactionHeightByID(b []byte) (uint64, error) { + h, ok := a.TransactionsHeightByID[base58.Encode(b)] + if !ok { + return 0, ErrNotFound + } + return h, nil +} + +func (a MockState) Account(r proto.Recipient) Account { + return a.Accounts[r.String()] +} + +type MockAccount struct { + Assets map[string]uint64 + DataEntries []proto.DataEntry + AddressField proto.Address +} + +func (a *MockAccount) Data() []proto.DataEntry { + return a.DataEntries +} +func (a *MockAccount) AssetBalance(p *proto.OptionalAsset) uint64 { + return a.Assets[p.String()] +} + +func (a *MockAccount) Address() proto.Address { + return a.AddressField +} diff --git a/pkg/state/state.go b/pkg/state/state.go index f43a05b26..36f3e3fc9 100644 --- a/pkg/state/state.go +++ b/pkg/state/state.go @@ -1,64 +1,416 @@ package state import ( - "github.com/mr-tron/base58/base58" + "encoding/binary" + "os" + "path/filepath" + "github.com/pkg/errors" + "github.com/wavesplatform/gowaves/pkg/crypto" + "github.com/wavesplatform/gowaves/pkg/keyvalue" "github.com/wavesplatform/gowaves/pkg/proto" + "github.com/wavesplatform/gowaves/pkg/storage" +) + +const ( + BLOCKS_STOR_DIR = "blocks_storage" + BLOCKS_STOR_KEYVAL_DIR = "blocks_storage_keyvalue" + ACCOUNTS_STOR_GLOBAL_DIR = "accounts_stor_global" + ACCOUNTS_STOR_ADDR_DIR = "accounts_stor_addr" + ACCOUNTS_STOR_ASSET_DIR = "accounts_stor_assets" ) -var ErrNotFound = errors.New("Not found") +type StateManager struct { + genesis crypto.Signature + accountsStorage *storage.AccountsStorage + rw *storage.BlockReadWriter +} + +type BlockStorageParams struct { + OffsetLen, HeaderOffsetLen int +} -type Account interface { - Data() []proto.DataEntry - AssetBalance(*proto.OptionalAsset) uint64 - Address() proto.Address +func DefaultBlockStorageParams() BlockStorageParams { + return BlockStorageParams{OffsetLen: 8, HeaderOffsetLen: 8} } -type State interface { - TransactionByID([]byte) (proto.Transaction, error) - TransactionHeightByID([]byte) (uint64, error) - Account(proto.Recipient) Account +func NewStateManager(dataDir string, params BlockStorageParams) (*StateManager, error) { + genesis, err := crypto.NewSignatureFromBase58(GENESIS_SIGNATURE) + if err != nil { + return nil, errors.Errorf("Failed to get genesis signature from string: %v\n", err) + } + blockStorageKeyValDir := filepath.Join(dataDir, BLOCKS_STOR_KEYVAL_DIR) + blockStorageKeyVal, err := keyvalue.NewKeyVal(blockStorageKeyValDir, true) + blockStorageDir := filepath.Join(dataDir, BLOCKS_STOR_DIR) + if _, err := os.Stat(blockStorageDir); os.IsNotExist(err) { + if err := os.Mkdir(blockStorageDir, 0755); err != nil { + return nil, errors.Errorf("Failed to create blocks directory: %v\n", err) + } + } + rw, err := storage.NewBlockReadWriter(blockStorageDir, params.OffsetLen, params.HeaderOffsetLen, blockStorageKeyVal) + if err != nil { + return nil, errors.Errorf("Failed to create block storage: %v\n", err) + } + dbDir0 := filepath.Join(dataDir, ACCOUNTS_STOR_GLOBAL_DIR) + globalStor, err := keyvalue.NewKeyVal(dbDir0, false) + dbDir1 := filepath.Join(dataDir, ACCOUNTS_STOR_ASSET_DIR) + addr2Index, err := keyvalue.NewKeyVal(dbDir1, false) + dbDir2 := filepath.Join(dataDir, ACCOUNTS_STOR_ADDR_DIR) + asset2Index, err := keyvalue.NewKeyVal(dbDir2, false) + idsFile, err := rw.BlockIdsFilePath() + if err != nil { + return nil, errors.Errorf("failed to get block ids file's path: %v\n", err) + } + accountsStor, err := storage.NewAccountsStorage(globalStor, addr2Index, asset2Index, idsFile) + if err != nil { + return nil, errors.Errorf("failed to create accounts storage: %v\n", err) + } + state := &StateManager{genesis: genesis, accountsStorage: accountsStor, rw: rw} + return state, nil } -type MockState struct { - TransactionsByID map[string]proto.Transaction - TransactionsHeightByID map[string]uint64 - Accounts map[string]Account // recipient to account +func (s *StateManager) applyGenesis() error { + tv, err := proto.NewTransactionValidator(s.genesis, s.accountsStorage) + if err != nil { + return err + } + genesisTx, err := generateGenesisTransactions() + if err != nil { + return err + } + for _, tx := range genesisTx { + if err := tv.ValidateTransaction(s.genesis, &tx, true); err != nil { + return errors.Wrap(err, "invalid genesis transaction") + } + if err := s.performGenesisTransaction(tx); err != nil { + return errors.Wrap(err, "failed to perform genesis transaction") + } + } + return nil } -func (a MockState) TransactionByID(b []byte) (proto.Transaction, error) { - t, ok := a.TransactionsByID[base58.Encode(b)] - if !ok { - return nil, ErrNotFound +func (s *StateManager) GetBlock(blockID crypto.Signature) (*proto.Block, error) { + headerBytes, err := s.rw.ReadBlockHeader(blockID) + if err != nil { + return nil, err + } + transactions, err := s.rw.ReadTransactionsBlock(blockID) + if err != nil { + return nil, err } - return t, nil + var block proto.Block + if err := block.UnmarshalHeaderFromBinary(headerBytes); err != nil { + return nil, err + } + block.Transactions = make([]byte, len(transactions)) + copy(block.Transactions, transactions) + return &block, nil } -func (a MockState) TransactionHeightByID(b []byte) (uint64, error) { - h, ok := a.TransactionsHeightByID[base58.Encode(b)] - if !ok { - return 0, ErrNotFound +func (s *StateManager) GetBlockByHeight(height uint64) (*proto.Block, error) { + blockID, err := s.rw.BlockIDByHeight(height) + if err != nil { + return nil, err } - return h, nil + return s.GetBlock(blockID) +} + +func (s *StateManager) Height() (uint64, error) { + return s.rw.CurrentHeight(), nil } -func (a MockState) Account(r proto.Recipient) Account { - return a.Accounts[r.String()] +func (s *StateManager) BlockIDToHeight(blockID crypto.Signature) (uint64, error) { + return s.rw.HeightByBlockID(blockID) } -type MockAccount struct { - Assets map[string]uint64 - DataEntries []proto.DataEntry - AddressField proto.Address +func (s *StateManager) HeightToBlockID(height uint64) (crypto.Signature, error) { + return s.rw.BlockIDByHeight(height) } -func (a *MockAccount) Data() []proto.DataEntry { - return a.DataEntries +func (s *StateManager) AccountBalance(addr proto.Address, asset []byte) (uint64, error) { + return s.accountsStorage.AccountBalance(addr, asset) } -func (a *MockAccount) AssetBalance(p *proto.OptionalAsset) uint64 { - return a.Assets[p.String()] + +func (s *StateManager) WavesAddressesNumber() (uint64, error) { + return s.accountsStorage.WavesAddressesNumber() +} + +func (s *StateManager) performGenesisTransaction(tx proto.Genesis) error { + receiverBalance, err := s.accountsStorage.AccountBalance(tx.Recipient, nil) + if err != nil { + return err + } + newReceiverBalance := receiverBalance + tx.Amount + if err := s.accountsStorage.SetAccountBalance(tx.Recipient, nil, newReceiverBalance, s.genesis); err != nil { + return err + } + return nil } -func (a *MockAccount) Address() proto.Address { - return a.AddressField +func (s *StateManager) performTransaction(block *proto.Block, tx proto.Transaction) error { + blockID := block.BlockSignature + switch v := tx.(type) { + case *proto.Payment: + senderAddr, err := proto.NewAddressFromPublicKey(proto.MainNetScheme, v.SenderPK) + if err != nil { + return err + } + minerAddr, err := proto.NewAddressFromPublicKey(proto.MainNetScheme, block.GenPublicKey) + if err != nil { + return err + } + senderBalance, err := s.accountsStorage.AccountBalance(senderAddr, nil) + if err != nil { + return err + } + newSenderBalance := senderBalance - v.Amount - v.Fee + if newSenderBalance < 0 { + panic("Transaction results in negative balance after validation") + } + if err := s.accountsStorage.SetAccountBalance(senderAddr, nil, newSenderBalance, blockID); err != nil { + return err + } + receiverBalance, err := s.accountsStorage.AccountBalance(v.Recipient, nil) + if err != nil { + return err + } + newReceiverBalance := receiverBalance + v.Amount + if err := s.accountsStorage.SetAccountBalance(v.Recipient, nil, newReceiverBalance, blockID); err != nil { + return err + } + minerBalance, err := s.accountsStorage.AccountBalance(minerAddr, nil) + if err != nil { + return err + } + newMinerBalance := minerBalance + v.Fee + if err := s.accountsStorage.SetAccountBalance(minerAddr, nil, newMinerBalance, blockID); err != nil { + return err + } + return nil + case *proto.TransferV1: + senderAddr, err := proto.NewAddressFromPublicKey(proto.MainNetScheme, v.SenderPK) + if err != nil { + return err + } + if v.Recipient.Address == nil { + // TODO implement + return errors.New("alias without address is not supported yet") + } + minerAddr, err := proto.NewAddressFromPublicKey(proto.MainNetScheme, block.GenPublicKey) + if err != nil { + return err + } + senderFeeBalance, err := s.accountsStorage.AccountBalance(senderAddr, v.FeeAsset.ToID()) + if err != nil { + return err + } + newSenderFeeBalance := senderFeeBalance - v.Fee + if newSenderFeeBalance < 0 { + panic("Transaction results in negative balance after validation") + } + senderAmountBalance, err := s.accountsStorage.AccountBalance(senderAddr, v.AmountAsset.ToID()) + if err != nil { + return err + } + newSenderAmountBalance := senderAmountBalance - v.Amount + if newSenderAmountBalance < 0 { + panic("Transaction results in negative balance after validation") + } + if err := s.accountsStorage.SetAccountBalance(senderAddr, v.FeeAsset.ToID(), newSenderFeeBalance, blockID); err != nil { + return err + } + if err := s.accountsStorage.SetAccountBalance(senderAddr, v.AmountAsset.ToID(), newSenderAmountBalance, blockID); err != nil { + return err + } + receiverBalance, err := s.accountsStorage.AccountBalance(*v.Recipient.Address, v.AmountAsset.ToID()) + if err != nil { + return err + } + newReceiverBalance := receiverBalance + v.Amount + if err := s.accountsStorage.SetAccountBalance(*v.Recipient.Address, v.AmountAsset.ToID(), newReceiverBalance, blockID); err != nil { + return err + } + minerBalance, err := s.accountsStorage.AccountBalance(minerAddr, v.FeeAsset.ToID()) + if err != nil { + return err + } + newMinerBalance := minerBalance + v.Fee + if err := s.accountsStorage.SetAccountBalance(minerAddr, v.FeeAsset.ToID(), newMinerBalance, blockID); err != nil { + return err + } + return nil + case *proto.TransferV2: + senderAddr, err := proto.NewAddressFromPublicKey(proto.MainNetScheme, v.SenderPK) + if err != nil { + return err + } + if v.Recipient.Address == nil { + // TODO implement + return errors.New("alias without address is not supported yet") + } + minerAddr, err := proto.NewAddressFromPublicKey(proto.MainNetScheme, block.GenPublicKey) + if err != nil { + return err + } + senderFeeBalance, err := s.accountsStorage.AccountBalance(senderAddr, v.FeeAsset.ToID()) + if err != nil { + return err + } + newSenderFeeBalance := senderFeeBalance - v.Fee + if newSenderFeeBalance < 0 { + panic("Transaction results in negative balance after validation") + } + senderAmountBalance, err := s.accountsStorage.AccountBalance(senderAddr, v.AmountAsset.ToID()) + if err != nil { + return err + } + newSenderAmountBalance := senderAmountBalance - v.Amount + if newSenderAmountBalance < 0 { + panic("Transaction results in negative balance after validation") + } + if err := s.accountsStorage.SetAccountBalance(senderAddr, v.FeeAsset.ToID(), newSenderFeeBalance, blockID); err != nil { + return err + } + if err := s.accountsStorage.SetAccountBalance(senderAddr, v.AmountAsset.ToID(), newSenderAmountBalance, blockID); err != nil { + return err + } + receiverBalance, err := s.accountsStorage.AccountBalance(*v.Recipient.Address, v.AmountAsset.ToID()) + if err != nil { + return err + } + newReceiverBalance := receiverBalance + v.Amount + if err := s.accountsStorage.SetAccountBalance(*v.Recipient.Address, v.AmountAsset.ToID(), newReceiverBalance, blockID); err != nil { + return err + } + minerBalance, err := s.accountsStorage.AccountBalance(minerAddr, v.FeeAsset.ToID()) + if err != nil { + return err + } + newMinerBalance := minerBalance + v.Fee + if err := s.accountsStorage.SetAccountBalance(minerAddr, v.FeeAsset.ToID(), newMinerBalance, blockID); err != nil { + return err + } + return nil + default: + return errors.Errorf("transaction type %T is not supported\n", v) + } +} + +func (s *StateManager) addNewBlock(block *proto.Block, initialisation bool) error { + // Indicate new block for storage. + if err := s.rw.StartBlock(block.BlockSignature); err != nil { + return err + } + // Save block header to storage. + headerBytes, err := block.MarshalHeaderToBinary() + if err != nil { + return err + } + if err := s.rw.WriteBlockHeader(block.BlockSignature, headerBytes); err != nil { + return err + } + tv, err := proto.NewTransactionValidator(s.genesis, s.accountsStorage) + if err != nil { + return err + } + transactions := block.Transactions + for i := 0; i < block.TransactionCount; i++ { + n := int(binary.BigEndian.Uint32(transactions[0:4])) + txBytes := transactions[4 : n+4] + tx, err := proto.BytesToTransaction(txBytes) + if err != nil { + return err + } + // Save transaction to storage. + if err := s.rw.WriteTransaction(tx.GetID(), transactions[:n+4]); err != nil { + return err + } + if tv.IsSupported(tx) && (s.accountsStorage != nil) { + // Genesis, Payment, TransferV1 and TransferV2 Waves-only for now. + if err = tv.ValidateTransaction(block.BlockSignature, tx, initialisation); err != nil { + return errors.Wrap(err, "incorrect transaction inside of the block") + } + if err = s.performTransaction(block, tx); err != nil { + return errors.Wrap(err, "failed to perform the transaction") + } + } + transactions = transactions[4+n:] + } + if err := s.rw.FinishBlock(block.BlockSignature); err != nil { + return err + } + return nil +} + +func (s *StateManager) AcceptAndVerifyBlockBinary(data []byte, initialisation bool) error { + var block proto.Block + if err := block.UnmarshalBinary(data); err != nil { + return err + } + // Check block signature. + if !crypto.Verify(block.GenPublicKey, block.BlockSignature, data[:len(data)-crypto.SignatureSize]) { + return errors.New("invalid block signature") + } + // Check parent. + height := s.rw.CurrentHeight() + if height == 0 { + if initialisation { + if err := s.applyGenesis(); err != nil { + return err + } + } else { + return errors.New("zero height in non-initialisation mode") + } + // First block. + if block.Parent != s.genesis { + return errors.New("incorrect parent") + } + } else { + parent, err := s.GetBlockByHeight(height - 1) + if err != nil { + return err + } + if parent.BlockSignature != block.Parent { + return errors.New("incorrect parent") + } + } + return s.addNewBlock(&block, initialisation) +} + +func (s *StateManager) RollbackToHeight(height uint64) error { + blockID, err := s.rw.BlockIDByHeight(height) + if err != nil { + return err + } + return s.RollbackTo(blockID) +} + +func (s *StateManager) RollbackTo(removalEdge crypto.Signature) error { + if s.accountsStorage != nil { + // Rollback accounts storage. + for height := s.rw.CurrentHeight() - 1; height > 0; height-- { + blockID, err := s.rw.BlockIDByHeight(height) + if err != nil { + return errors.Errorf("failed to get block ID by height: %v\n", err) + } + if blockID == removalEdge { + break + } + if err := s.accountsStorage.RollbackBlock(blockID); err != nil { + return errors.Errorf("failed to rollback accounts storage: %v", err) + } + } + } + // Remove blocks from block storage. + if err := s.rw.RemoveBlocks(removalEdge); err != nil { + return errors.Errorf("failed to remove blocks from block storage: %v", err) + } + return nil +} + +func (s *StateManager) Close() error { + if err := s.rw.Close(); err != nil { + return err + } + return nil } diff --git a/pkg/state/state_test.go b/pkg/state/state_test.go new file mode 100644 index 000000000..82d7b7a7d --- /dev/null +++ b/pkg/state/state_test.go @@ -0,0 +1,76 @@ +package state + +import ( + "io/ioutil" + "os" + "path/filepath" + "runtime" + "testing" + + "github.com/pkg/errors" + "github.com/wavesplatform/gowaves/pkg/importer" +) + +const ( + BATCH_SIZE = 1000 + BLOCKS_NUMBER = 1000 + FIRST_HEIGHT = 900 + SECOND_HEIGHT = 30 +) + +func getLocalDir() (string, error) { + _, filename, _, ok := runtime.Caller(0) + if !ok { + return "", errors.Errorf("Unable to find current package file") + } + return filepath.Dir(filename), nil +} + +func TestBlockAcceptAndRollback(t *testing.T) { + dir, err := getLocalDir() + if err != nil { + t.Fatalf("Failed to get local dir: %v\n", err) + } + blocksPath := filepath.Join(dir, "..", "storage", "testdata", "blocks-10000") + balancesPath0 := filepath.Join(dir, "testdata", "accounts-1000") + balancesPath1 := filepath.Join(dir, "testdata", "accounts-900") + balancesPath2 := filepath.Join(dir, "testdata", "accounts-30") + dataDir, err := ioutil.TempDir(os.TempDir(), "dataDir") + if err != nil { + t.Fatalf("Failed to create temp dir for data: %v\n", err) + } + manager, err := NewStateManager(dataDir, DefaultBlockStorageParams()) + if err != nil { + t.Fatalf("Failed to create state manager: %v.\n", err) + } + + defer func() { + if err := manager.Close(); err != nil { + t.Fatalf("Failed to close StateManager: %v\n", err) + } + if err := os.RemoveAll(dataDir); err != nil { + t.Fatalf("Failed to clean dara dir: %v\n", err) + } + }() + + if err := importer.ApplyFromFile(manager, blocksPath, BLOCKS_NUMBER, true); err != nil { + t.Fatalf("Failed to import: %v\n", err) + } + if err := importer.CheckBalances(manager, balancesPath0); err != nil { + t.Fatalf("CheckBalances(): %v\n", err) + } + + if err := manager.RollbackToHeight(FIRST_HEIGHT); err != nil { + t.Fatalf("Rollback(): %v\n", err) + } + if err := importer.CheckBalances(manager, balancesPath1); err != nil { + t.Fatalf("CheckBalances(): %v\n", err) + } + + if err := manager.RollbackToHeight(SECOND_HEIGHT); err != nil { + t.Fatalf("Rollback(): %v\n", err) + } + if err := importer.CheckBalances(manager, balancesPath2); err != nil { + t.Fatalf("CheckBalances(): %v\n", err) + } +} diff --git a/pkg/state/testdata/accounts-1000 b/pkg/state/testdata/accounts-1000 new file mode 100644 index 000000000..135dbba62 --- /dev/null +++ b/pkg/state/testdata/accounts-1000 @@ -0,0 +1,1825 @@ +{ + "3P8dpAGBNsECCcZKohYtGNgQtkSLx1dvgA1" : 149199867959, + "3PKxiBKhfNFazixNqRuS9QHv8mVj3WNTVin" : 821617461595, + "3PHLpg6q3Efd4d7JPvbwQwuMW71e8oYp5y1" : 572355108015, + "3PMPRVLNEhZpJtCCSpQaqLtg2ErB3yUpUL4" : 2983997359180, + "3P9vNrUuYVka6rCgraQEESuJqsdDZckVK6B" : 17500000000, + "3PNUydgTUKBrJKyJbteuVJU5CrLeMMM8pbS" : 1898907410387, + "3P6BQKJ3b5caC5Po3dMojTxuDrAsizLzkha" : 1231654733321, + "3PJLywH36JE6BhSRdh4vreq258GBekfA43L" : 1409693902832, + "3P45Xioe6XnihzJZDsxNmGmBJSrukwYecM7" : 279072487198, + "3PGCGvjB7NyzZikQHixEpo7sNqTeB55kpim" : 34927248720, + "3PM4Y9zs4j2DDFNZzPAwADCkPVJKQBunfGL" : 493997633712, + "3PPm8mR8rfP52VA5vAbnsYUwiCh4mxKRaMJ" : 143409119063, + "3P28k3HrwkobC6XYipgEKJQAULjZrqKCLDM" : 40690873080, + "3PPru9igWnqeQgYBvo8NcyjovnsAyEDmKYg" : 4771134374083, + "3PNmk9Vp7L7d53Fp8DGCmZ69oFbiWwTjBsz" : 333989336414, + "3PP29XtSVQWjKhno6zoEawYeSARt66YBf62" : 284836111558, + "3PMCFncwU4rJfZruCdPxCTxvpy27qgN9v3B" : 1482371430870, + "3P3K6b3xfXzVqMD9D7r2rfPjwsNWVBt4DGR" : 56684269645, + "3P2aCZZ8qVZzrYMiTiE4efrn7rekkNj1EzX" : 10300000000, + "3PFBJ7P6T3EoZSPmGWKd4RQ9gyLhQWUAAHK" : 453555583489, + "3PFqqMqjskfWVEaCmvQh36zW3zuZrXqNdCJ" : 10300000000, + "3PNc67aMtcdHKzBsAmg7nsmwaCiyGmrd2H5" : 84040216534, + "3P9KdLbEVVpdggBYja7HkWZB9QbczmefkYX" : 59245911204, + "3P36XgtSAnq8u5NzMPiGSCcUMKEFZyciN2G" : 135907296356, + "3PC1beQBcLPQ55HyMZBAsW3P89kPALbdvhF" : 19830018814, + "3PKRY4ERpwp4hTCEVVPkTGyroJA9UtstreL" : 7200000000, + "3PJitrUqZUZFGPmQ7U4MHR6FFUcePgL7Xit" : 52626862516, + "3PLZNXuiMAmVrqnR8sYsVKrDRDCLs1E5ywk" : 46400000000, + "3PPb2Qit1ZTJvA64ifUdKGzt5cJ3FtdvdG4" : 539218514009, + "3PHUJMxzr316QGUa7UheQt5z4BHiay8x8e3" : 1468163546533, + "3P6pkbx6MCc8QRSKUg4ukjPLDMCJaVtbxsn" : 67790994551, + "3P9XJwHS8w123hBcbDfXFXp4pfE79QwLscB" : 18396432331, + "3PA7WLCosEejWwkaKh7YrgAHn5eJEDpVdcg" : 2653522364376, + "3PCAEDaqAhZVw85xFzcynaesvKkkb9fjqKw" : 542544974396, + "3PEy7LLKeZdrun9fSDyZwVfuRZGTVV4yshv" : 15000000000, + "3PQ2SUu83aeMTcQJwxwKYTRcZ2YMHbbzpot" : 163659100780, + "3P3LrR4Nnsd1TN4jdQgWkienLo49wc2v61s" : 334717958513, + "3PJLHq2XqNxXJaSpUsgcVq6ASYqNgHBF2k6" : 6771769266, + "3PEyRQgL2neFb8ejVQHeF1RzcWBLdJXvKa5" : 13406540406, + "3PMiDK48uQkcgJPhDoT7N95bb4VNhW1kYi6" : 23992254761, + "3PQaokm435P3XTGLU1MRUHDxKfcc6M7Jc3d" : 215513343448, + "3PDPkPCkTBha28MfLDHCaLeyYFWc3cE9t49" : 167613844390, + "3P5NfqnhBuj19TUSetcz1a476oUpaSXpPDQ" : 37039973592, + "3PPNqUofXZvaC3o5voqcvYfFbkxy8ZtrSNW" : 66341912766, + "3P8bJ8vYBVBeVKC6zmDmAxgD5UCHZp7MDq6" : 18730102102, + "3PMbjRTVXGML41o7aWyRtnNf2GE6NYyEwbK" : 578125092275, + "3PEWs8zWmUg5b1CjA9mZknmLC3Cc9TPbsw3" : 96507195903, + "3PBKuUPFbJLjqbx1rSGEfAWNwGkSC5LLK8T" : 606499471836, + "3PAJDU2UnGk2g2GHytWsubKLr1bSYt1v54w" : 127077644549, + "3PEvopYPXFNTV1LkKRCTuhSWFWj9qFMAmnb" : 145634850454, + "3PGgTbr3eT8HiWUrKZZ42p4n8HC1rGa3WJr" : 1908807658950, + "3P65AiQGN8NWuoWdyi9AQtxtMS74wuvHebP" : 2094078173777, + "3P7PMEoEegm16ybGteg2EJdrpPsACRonZPV" : 251637902335, + "3PBy5ycKREr1DAEp38t7nhRPQ587SjuGETz" : 789928623, + "3P7uZyJaDBCp85p4Tb69EcqXdUEDXSZ8A5A" : 3161677794618, + "3PFsUXeZcceDrc4RraRw27hsPnKCvKFm8vR" : 1901407410387, + "3PPmVkmZAxbfKm3GaLsehNHcbQuEr1ooSVJ" : 979080953914, + "3PEpGodj3iGEYiY3Sosxy5N2hZM38Rxb8nR" : 352389424168, + "3PGfeHY6ii6XmRBThs1R7vuvBvHT6yDZnyK" : 34927248720, + "3PCgxsxcatfFgdM7zzEdVzfnxoyj8DarSp1" : 3407193121744, + "3P64nBPqQqnnnnwytHDxE6FstEdH4ah7BjE" : 17500000000, + "3PFnDL4SpY6F3Dr1z9RdAfzE4S49ihCKr8b" : 17500000000, + "3P7vLnBQeXNMGxmZsq8dijfwEXEVdJjbWrD" : 998, + "3P81E9thzu8VEDGSmcAuZXVUfwwfpXAs8NB" : 227160666774, + "3P2AugkRACa8wZLUAcmzEr6m9HeZr58AJ15" : 9703623437580, + "3P7AQh2UmTuKbqcC2yjmhFeLb27bP6wBKNV" : 11029488922205, + "3PKY6A9GaiZWFwuXLd7G7Ym7aR5rYfM8eCp" : 10300000000, + "3PDceFF1iwwVGzWARFhCDVjEMLfHUYV6a2B" : 21496790477, + "3PFZc6qivpdxgdYWEUtVpGMj6GrgX5NQUjC" : 7200000000, + "3P5AngbUMBfEaQqEXG8BwpDWoo5x5FBK7aN" : 642915794660, + "3P2ykLMLtiScWCvb1uvJsXPgjVkEEkXb8e3" : 944967070106, + "3PF5Ph4xtG9jwYsgrmXr78eccynPtfhSWgW" : 4347255199992, + "3PEjqX7NNRCyyrVqyDT4rdbRVdTxHwk5RK7" : 25564513, + "3P817T8EnwBy76fm4yQMucRdTVEtfW6tQFu" : 21701798975856, + "3P6heYAbnV4AXxfLnLrFB5PgbzdT3VevNNM" : 11393680500000, + "3PEbonP2tDqxkybxdthrYzNarGxNLycTCWp" : 1827701810474, + "3P7zb3QJ63qMpSs3wnp4PsxEBym5ugDkyQD" : 29400173987925, + "3P4VCGookYVeyXPwLDxvMn7JyzFspf4H6YK" : 2215367336171, + "3PC7GoRGSy3Ge5joZUvmgaKFTtxg3fGhWBb" : 72240290676, + "3PD9ohVnu6NEDzmxtH8wtCEnn7CTvUjeyFQ" : 270702814975, + "3PHPZQfDF9fMDSTXYvB8LeQkzuw7VjuqcnM" : 2049837996815, + "3P6qrHqvumRMpPbHfVbJRVBBCKgjRGm4d8x" : 50532734526, + "3PMfTx4dpKu6boTE4iCz3C4t2pa4TuNEQ5m" : 17500000000, + "3PQtn2U4uYtPPXvbrX6jcBf9iJJuxgFxJsn" : 31262581448, + "3PFunYrmEy7oo19obDAgxgy2jmMcvADfozP" : 229028138760, + "3PDzkiiTTDFfKFKwvKtH4CbhpeMPG39ygfC" : 9700000000, + "3P9gZHSEBJezjmjBFUwegX2HMBgHrmXKYp3" : 651053969276, + "3P6r1d4UNtEZPzinSfiRrDHpsDcWxPpJ2Y6" : 10300000000, + "3P6Ym1ekEZj4R1yLvUh2wbJcGJmrReHPeGd" : 49212707285, + "3P8QmVqXEJq5TBiyB2bijF4WPEDeS8KFKGT" : 3255269846, + "3PLiuYseohG6VmGMD3rz5mY7GKzmRfqt1Ry" : 17500000000, + "3PKbLRk2wvd5y7mUmrZikuhGh3E1hgBmSAU" : 49810660890, + "3PBHGdnyHmXyAWNXMDPLRvPBZgnb4wSmzt4" : 339090608998, + "3PJdYoeLjwQSeft9YBaTf85tFFzFEi7CiFw" : 63545998144, + "3PBa7xxKhTvzjugpBciA6GnMvgerVhRztZW" : 57500000000, + "3PDEpgruS4X8av31ESaUdBHuUC9RRX6JeBM" : 10300000000, + "3PG6cUpCNsMJMLushcBMXhQisiALLcT4Y8W" : 42083034527066, + "3P7NaMWCosRTbVwTfiiU6M6tHpQ6DuNFtYp" : 1100089948790, + "3PDYZwukY8q911LX9waZPChYkEt6udmAcdi" : 930587434152, + "3P2zFi9C2ZwTo9FhcXY4ZGq4ecRvpa6vjqg" : 8852138480, + "3PPr329WkvBHRHFh4aLvnz7JeyLVz6PGS81" : 9700000000, + "3P496SGNWUZKaZFNdVMjeEkgSo7ksA6SUYc" : 1988487879861, + "3PNoQHFGMVMurYP8avEwqs4CzYUVP9gt3TA" : 205929232749, + "3PREyKDrvoNb1bQJF9Dxaw6nq19mJGfu3xd" : 1092879561758, + "3PGGv1e6FYgQeEysNVonwJTkQdRsPNEBQjU" : 37161858546, + "3PQ93QF8t2j34Jhg1LxtbGvramFjQZjTYjY" : 31312547833, + "3PMLrDrC85JSQtgmcrzwgShePunGAEb8rXf" : 9509016669, + "3PL6XibeSUtzhuVQTzf2fxBFnsE4Ar8a1fk" : 145798348781, + "3PHTmHZi5bxpLjfnHof3SACyxqsWkPoAJhQ" : 195075001466, + "3PAMPmrnhnzBsLgCWQtdaQZUHE4V7Uwk1ok" : 1974525532187, + "3P3dBurpbEBjqHnEvJ3SrFpWWCAhFgHMwPF" : 2085840148984, + "3PMsKmfsrHt1qoWAQA4fodgURUdtBqbGBzP" : 59184778308, + "3PEdRHZd8Mn6LmxiEMHef6sbeab553JCdpB" : 2425176035552, + "3P4oK82wEsoDNP5LPWFYLHuGZzYLGVkfchz" : 17500000000, + "3PEzxbzZmg5E6nyzGthNnFvSoZnXcEQnQVL" : 22421587060, + "3PL4i59TLd4NXJjRrCJZkRmzVoNgJ6W6avx" : 2983997359, + "3PR6Z2LHA6CBp4z2qEfALfExYvH8xaX9UhH" : 276069497960, + "3P1yokLetz6vVuzxf9pQLH8eHHo58NYz8dQ" : 189890741039, + "3PHZLDyPLuGaairDFCmZ7oFELu9ez984MYW" : 2135407057845, + "3PJ94L2hQAGHtDNBafqQEsNES9zCeDkSibN" : 1397401990546, + "3PLQhuG1FbTk59TCDTTervabN2CZH2PscCe" : 21510539693, + "3P4beUcQnFNSq63yaSRySPoZ7n2UpyGrURL" : 542544974396, + "3PBVmT5DCX6KpF8qeRkVykife9UcJk1fW12" : 128295935299, + "3P2gcy9zGHDHpLsBWsuPHBaXJ36gF2Ly5KM" : 17680667476, + "3P4wvfA6EdrMiiw1dghZTwk3BqKFN7kXShw" : 5696488936823, + "3P6U29EHrifxNB94JttQ79H1jbr7i1pi4pU" : 1524178107111, + "3PAqurD4ECukixo4c8vkLggbCeKt463ucT7" : 2018617177673, + "3P6uvn256dMCkXJLuvRAsFxVUaVptXR9yC6" : 334537524331, + "3PJVDUEdb2gtb8M1xWSSNezNdZDoYTtyJsz" : 271272487198, + "3PQbAAQfzba4fDWKjK2Kuw1AfqHrYuPugiv" : 869508334674, + "3PLi285ETGP2CA17wFXKerkGsNXatRi4EQf" : 162033981179, + "3P5pFXYFLggBdXVhfx2t4TPe1SHV1hVne2S" : 17500000000, + "3PJN497dtqGFK5t3srPNMHFrDZhnaEaBMFY" : 271489505188, + "3PK95wrh9nna4ccSth1peBnwPfnYhhRAG4m" : 4234350800292, + "3P6WUD7jLEyL1FGP8xQzGEH5CsY8uFxp1CG" : 137072619239, + "3PM6jpKdENE1x2w8NxBBrDe52knMTBr1mr1" : 7301423990134, + "3P5zxoMBEfJxja7eodVe6W24fYEirxnpAzr" : 2015832367226, + "3P3hZf6x2KGWEMYde9QUEQrsnYtZuLSHdVM" : 251402693504, + "3PQJCbvnTKyAfkGQM5fjmiB3VDt8bJZ8oZf" : 62200000000, + "3PHvqsTsLpSeto18yxd8Uwy3PiKmQEujL19" : 1802633852051, + "3P2YP7uwrKs628Li1UPMCiifRy1vbUFqqAt" : 17500000000, + "3PKGKyLxyPgUg7UkvZTgZnpezvhtcFtbqoS" : 201997659270, + "3PAca5adcvyitdHhkesoMbepsv1WKS6J5LE" : 101400000000, + "3PH5ijkEf4BtXJMgRNYMp3WgBToHMhtVheT" : 17500000000, + "3PF9Y5uFFKuXsv33N2xzJ2AhpPsthyQjqbw" : 5573815775231, + "3PNqoRoef2xSx3E5xBGXuL9bW1rfWTy6t6t" : 1378609885103, + "3PQSvJmwofhrPep4gp1iVcRGmx1QvTSffeH" : 470737778493, + "3P8SHvhp9iP6iGiVXtKnmtPhXMUez5NBeFC" : 7200000000, + "3P8JRyJ2CSvk7M8coRhFvadkDMJj3uUw7Ma" : 21368360778, + "3PGJoskNr3skVJqE7sMYz7W1A4tfBPPMJMu" : 11093093369, + "3PNvgaCZkYdEGZ2A2VnT3EdPhXeqwpuTMRM" : 986280953914, + "3PBNEyztsP42tqCFiZbFnm6RVjdGPSYiAsd" : 72314502569, + "3PHaPre2vLuYc36NyiatUwcHXeWXcVnVcH3" : 90429958847, + "3PMwMrrizuo1aimfHBaTQ2nR7EscbYZKwFa" : 8548925668115, + "3P4TuPiZxZuivojSCnwwogxQ1mQSvpFdsJY" : 17500000000, + "3PN8uLJJAN3JZyuKUxCDfET6qqSEYVHb9ab" : 25533747106, + "3PPtYiyqaRS1TU9vyzbKVgwy2zXRMJjzPx2" : 161274418215, + "3P9RRo9uwAkHwnfadaLt1PMqchjGkgURSeQ" : 36393914428, + "3P6QRKebzvyW5KwCv6AR7sbVxstLHSNg6bD" : 827225491393, + "3P9uUZR3whjoCEWwuEnaT1zeBsW1VAZbkfY" : 303023350306, + "3P3nAPwFhVXtgEZJJBT1cFfsuhdGQuAZEPk" : 465316621867, + "3P9oNhv9kFiGpiSFp2p3MwVnWnj7cT8L4Aa" : 20981130153, + "3PMZoBMuNqmBHD4Y4ap32pxbapFT8E5sdZJ" : 157623296446, + "3PFKWiE9iMVNNrsrTBrCY8y8cnb6Xeyeyhk" : 33752094216, + "3PPnA7kSnBiUgZwMGXDvu1e5Vj645xSwNqi" : 9700000000, + "3P3QRhAtRCxCcu9NN1MG1e5AieSmh3VAb4p" : 17500000000, + "3PN72nqm1QXyf7cKMcEVG8TKr7mmjQSDkeU" : 1106757079403, + "3PQvpoZo5i2TGB1L5f6gti6ddtd7v7JZBCU" : 9700000000, + "3PPDz3ZpebKq7V383YZhYGtuvQHprYB5r6i" : 7200000000, + "3PPJJ7BDWqeYiyJewJ88h1Uq4ADgtJua6VJ" : 813817461595, + "3PC6UF44GywhqV5codazUb91SVFX7aMCMux" : 474840518984, + "3P49LnztaDNZNp9kzk89MvGo63Dft7AXaXJ" : 16377964814, + "3PLTKFQLWYNZqDJfkCZSdRNjoQbvU1UiuRt" : 7800000000, + "3PFtTvzDnDHxjUaDFw7btuWyFEqcejuhWYb" : 7200000000, + "3P3y4Xi1CHbxxyYkj1Xpr6TzH5SCFVDSJLd" : 9494537052, + "3PKe59ZXvPYw1xs2sJpLeLu6x3Yh6pzQC5w" : 660753969276, + "3PQ925obLU9rYCi6pLzxLtQtNeznXui8usn" : 14043254369, + "3P93oqpXzHvpaDqmQBgpxTWgmCxkrwTaKo6" : 2968962424425, + "3PB7E66cqNrrYsF4yjfJz9ajE2eZpP4a1zc" : 92101970978, + "3PLYPnRxoBzCgLR6hgdmbjb2PdFsBMxE6z4" : 741953969276, + "3PKCh9BBpX5PC7mMmp6je1c2VTh46eMQtGm" : 5696713580283, + "3PBh2T4haSeo3VmCgfierPCeEgjsuFow5Pm" : 2239619096527, + "3P7qVRoKqCzfXTyAv63hWeW59EcWZjLmoBy" : 111221719751, + "3PLHpzhhtZfaYHCRBfUG8xAYX9yP29RbgRW" : 6772925670599, + "3PA9CDQ6CgKrBMPRZYwJP9izBpp74QFrYAK" : 2500000000, + "3PEt2NMcqd8cGFsJG7tMKhZZJzn98fRmrtg" : 1997789156547, + "3P5euQUuCrD5tbxbRas4aL8FvUpP3Gw3Tyv" : 54096027065, + "3PQTXjEuzRVyqTfYbpehiKkYh3g13hH8hpG" : 78305643333983, + "3PNKxrLegbwFmnUBF9AjHEphv4aSkvTMdPs" : 10000000000, + "3PDh2FtgoL8ZMdbu3Zs5tCk6HuqE674SWnn" : 15724810418924, + "3P5M7yPgEXUvkWxiWSt6FTPwqoA5MHGGtDK" : 81922494402, + "3PLWXMSAm9ttZTjUSc21fGMF4hvTTzGpfm4" : 4556399835434, + "3P9MCchvMgMQhj6e13kcHXN7SZLikS7QQvQ" : 106764203093, + "3PQRtk26GYNch4hdvjsLUpSsVbMe95jGktR" : 340526984638, + "3P4TBwaAR4qDDBzRhNYLm49mZgdy81Cm4ea" : 180926167792, + "3P5hN5mZepg7SkpD9sWrYY5UnUKNux6jJrk" : 7200000000, + "3PNP9roKB6w1cy7ZxWqDaWJWxcuhNvr92hs" : 47083783909, + "3P5oXUzEKXB6X3rYyGQjrestvjoqgjiGuUo" : 17500000000, + "3PKTSQKNqfNh1XPyqcNFKxtZ5Ytxjhja7AE" : 122787647115, + "3PPcpwiKy1icjTAJ4FAe4oNi5VZwXpChqxN" : 210103465911, + "3P4YFPYVse6ch8g63CGuzyMSGMZUzJPEoL8" : 109700000000, + "3PGVChDmLxeiU5dPb5owwPicPhwbMVfshUf" : 112657784757, + "3PBdWtfyZXYfikzjJS4gJ6VDJ4Ef7Jcoa7B" : 912699207754, + "3P8YRPSQ4nL8F885gn4vdvv5vP15b6XEATN" : 136239510207, + "3P7pU6hoBAyGtsjNTs1YaYMzsnvEMKdAwGz" : 4303874416057, + "3PNVNUF8K8RHBXKwuf3gDdsGDxWkfkq8qkQ" : 653667125467, + "3PK4Pxm6znwEQRJkczRKPMN6kYGruUjBEno" : 292115519445, + "3P7oVfH715fKjHqAUDWJw4NUjZAH9Wm4kna" : 1, + "3PPDsx7yDXdk8BTMMNSfReMjdbtW9qxAnhf" : 101845838451, + "3PAPMd19LqT8Z1KGkJp7g6qY2GwZnA2bpDe" : 464449611088, + "3PEf4d4vVbVF1sHPrn1VbuyBXeJHka2p289" : 614263260079, + "3P3CG7Rk2bRXQGjocPsKwkFbFaiQuowS3ci" : 1187021752329, + "3PAdQUcvFsQXfsQmAiSgoJxaZH2KVVXcDe6" : 607099471836, + "3PGG3hsAZyKYmM2u9LSCjb6xG58ypJCXaYY" : 17500000000, + "3PDwj4FYtQzKLDfArCpKAMVZ7pJvXttyivf" : 17143448042, + "3PETTcXMXqS1zqcqGVUg7ccWDsjFw8EsR7w" : 1356389563240, + "3PRGJTvT4zk1xQew4Kvs8hddxPUuviXXoKT" : 17500000000, + "3PLVgN4y2DWaYSUrRY5qRHYjyZdquEHT4ud" : 17500000000, + "3P6KfqNY6LadZVnnQFJHmUET2N8oM3GF3vb" : 754610822508, + "3P4uf2nTonWrDD5hbvNB9PFUiY3hzxsvBYH" : 39053340224, + "3P7tuSTM9LcepXGTtJZCPDXEJUYwFhC4QYp" : 7126644743417, + "3P5HRrVHdaxZsocdAX27uLrKxkxWg5fZiPY" : 4150469054132, + "3PB8TB1CigpBWu9nvKgCSfLbBFL58xeFtVu" : 455455283043, + "3PCtPKzbr8JPR7ngbn1xHWMGAR5skzWNoxs" : 9010539693, + "3PEh7qmSTN8xBeCzuLQXwYeNn2C6mDVCYpL" : 1627634923189, + "3P9yXEr6Yj9WTgvYAQh8va9zYcAqtqxSBhE" : 17500000000, + "3PHwo6PnWxi9kzSY6oao41LezyNR32PRDS6" : 57808167022, + "3PQZ46ekojRH53dQZ3QBNgRL6MK5pgCeD4V" : 1004670990968, + "3PGwm8BdyPtiBdZGecb7ZByNa6qPM6F6hBC" : 128414772640, + "3PDQ88xisSZTjuB9SguL6ssd1DoDsPDRbvb" : 891609876546, + "3PBPRjBZB1Hi2cVkS3AdXyGfoGVaJfydVLt" : 33809606073, + "3PPJNbygnfYt5xfkzWGroVr1wftu1YpveTT" : 81381746159, + "3P28sSYAMuKkc7CJJBAHrTSW2Uu7wu7APmD" : 755927912826, + "3PKxekL6dorxNKUe1Pa4fftbz93eqdKLcW9" : 10070978742350, + "3PJjKctk2MgrzmcWxi5HBnCbEfgoGnjsxZ3" : 62054497440, + "3PFtmx5pQzr8SQDeNfjX5kcK9ofoJYxnRQB" : 247353436580, + "3PNnbF6uBAxH2hUYa7ZE6gYyThbEEnvgkmU" : 3826905429770, + "3P24LxKaGaYHvPbZu7eipszqWvgq9qG1VyY" : 249380797481, + "3P4h1PMtzcGFG5qMr7sPTRocBtAbTnfwtdc" : 310000000000, + "3PNCiF2J12PdaBpN77BHrBo331XjvE1WN28" : 17500000000, + "3P9wFgvYGakqyYbggodsjEdPZwNb7qeWtLN" : 328671321155, + "3PNVwwQj9Lkrn1NVAzDQWEwDseGXYfJAfsV" : 79098197598, + "3PLWhJ8t2D9SPfEGs11eDnKNKo48wp6qgMe" : 4069087307973, + "3PPcU3cjhL8xY7MJ52XJFVnLnoBjoB7mgG2" : 1616021710034, + "3PR8h7yM1SK95CMEfWpY7P3oiEM6DQxBBiB" : 831317461595, + "3P2QFKqhAMWs9sdZYVdQ8RRcPYwwCeYA8Sa" : 1099945095867, + "3PLVJjaSmv1paKv9UWC6YAdE7zzYaMvkDDB" : 682190344914, + "3PBuERFKXcJw6dgN2aazZGU6Dse4Y1rTt5d" : 2512355563795, + "3PCg41FfWn93XeRqXE9r7xqmu3sMirLyg9Q" : 15783144139, + "3PKCDkgw9CfYUddLUTJZ7A6UBYNNpZ7hGPy" : 17500000000, + "3P8KgxSD6iXwYnRGtL1SGf6jLz5vmFaWW9u" : 157418055779, + "3P9bzrSsPByfXiE7UkK9exn7CRKJAYaSfgZ" : 10084569266, + "3P2fPKUw58vuhJgEjDY7jAPAJeFaZ39Dep6" : 3064107753368, + "3PMV3NRfTCW443QNoBrFi8q7KJK2XjPE3xX" : 29568673977355, + "3PPEoc9jvX4d5eXAAhukUNU4anmyZpdaTb4" : 17500000000, + "3PPXcUvV94CHPu85RefU1zfdhnhdimmy47Y" : 9765809539135, + "3PNG4UEr5t9iKaAfqBeveWiw4BrkMXvKESb" : 1413872528804, + "3PCq6VV6sD2Bu1hiuGGPiqgKUqUhaUp7L3R" : 2661014879857, + "3PDTL5kAgS76KLkdeeXJx2ywmKdQkn3EnAX" : 607099471836, + "3PH2vgYPaWCm9ySs2h7TbVh7Cjwt2RPwMt4" : 991609966506, + "3P4qpYaQYKdjrQaaFSeZTyt371jxwaoL85e" : 57686327955, + "3PQeumpcsKYnNSqjAFBmoESMAybG7NJXySU" : 376513564600, + "3PDkhUQPWqqjei91vbeq8ttmqNtd6QcG7GD" : 273985212070, + "3PA4uenq2ngzwuJuJbVGPP7LqGJzS3dQJg9" : 33058712977, + "3P8qzfc97QSqiMyT5xQL5PbJja7dzAUP3rM" : 46797428617, + "3P9woesgtDm1hD8qyecpRZE4PCMAoTb7BYn" : 21080484868, + "3PLvpFdmruWH1oGphq6PTMppk2USfgNio9k" : 7428216689384, + "3PDoVBGsASeXN2TC8y6zNbXfiwaHnkRXrfa" : 108927555442, + "3P6GbG6dZBPtW8QVxanfS6eksfAcnhqXMvQ" : 579246773372, + "3P2Qb1iC1Yqhx7dJ9oULPYa4bxgWo4mYTfC" : 16627634923, + "3PBGknVkTs8xFBKmahdvzmAHX2CwLe7xhZR" : 657149673914, + "3P835EDNF32SdF9sx8CeDUUkHqmiqTNvsDW" : 115888433912, + "3PGsYWE8NjLf2AZgTBQb6F8B9NN3mUsKigQ" : 19387559323, + "3P5QgGjo17FfnfUQXvqW7RPgwedWkh5TRgD" : 36292235030, + "3P5dbEBbk3ruBhQb1qD8VtnscPzGUyXewyp" : 49472559164, + "3PCCWNgjYt9dhqxCvoMTmEUWeoLvRARnDzu" : 278472487198, + "3PQvvjkMmfEXsWEzgEcXgRQSFKVsTLQZrRN" : 17500000000, + "3PJeATGynXr4w2j95WdhDMVvJUZJdUBEMow" : 17500000000, + "3P34pBRr1gHfTD3hRuDxxZKKdeQ9Ha7SJ1U" : 2784857137804, + "3PJExtJHvHi8Bdzr86FLZpL1KJ2AwcQmbms" : 31188809600, + "3PLG1J9DaM8ndogbEvsfcVy8w5t2ND6iE6G" : 17500000000, + "3PN1cyZbPZtmfE15eNJrTPHeAKbVR94z4pj" : 62054497440, + "3P8Kq8R7YkwNTUKq39J2SbGX1hQjGw1ecbf" : 94856591172, + "3P2yy7PuQFy1PSe2DgWESfgWQ7r2P9BxEmP" : 496446378809, + "3P9pvdijNyipbg8QjAGWgCyikHgedcQS47U" : 63780841327, + "3P4636RdvZ4TFhqNTt5FgSWEVkrbdb3mTj8" : 727122750415, + "3P4gGfVmq8y5TK4RvPukbivLvR3KSL2qe89" : 1118852695079, + "3PMb1D14ZwdLmVHbXRH1ikU53vPCGs1BeZy" : 5931459717432, + "3P2o2gMQqvmPGvxdBPeky48bW6ys7zebs9B" : 7200000000, + "3P6ZWP9dczB6BwWGFgDN3vpc1wES5XGhMAb" : 2451110237260, + "3PDS9A1vn47YvxK4YV25uy3VW9SrMm64KNK" : 298399735918, + "3PRER5eJcm559TtgXsEmVkv4dgsZFogRhFE" : 11026813362, + "3PLq7LW8oLGznaf9rwpLi6ecMBv1Q1z8YpN" : 2126040934855, + "3P9avTbkf9BaDzTyTT9BnsjR1NQT4ihjbSa" : 9989391144, + "3PCmX53DPP2TUxPGz5xeoG6PD5BjNFaARfE" : 10300000000, + "3PC88zSb8Cbza9v7R9s1wFQRNYSBZYh3N7E" : 17500000000, + "3PQbFjEqPhxZj6kz4CyfCbusFmzPj4dXKc5" : 35657733565, + "3PQ3zNZ13HkF6LZP8isFM524TULi87A4L4i" : 40690873080, + "3PFagDGsq19ZwpL4CgxH1jjTsioSMQVik3d" : 1637240914251, + "3PBgBqbB1HNJdrtxCWrZj7iwo6Qynh3tW58" : 45109685557, + "3P7n9nEMQ7E3EeQyA2m9QmFYJuYjScKWpym" : 1358862435991, + "3PQDYEpQqjcYcVxVosFUA6hp1z25CNF2Y6Q" : 6424801650182, + "3P8PJW2edTMSh7VtyCsamUFGLMmLbHbg5wN" : 19980134675, + "3P9eHTgLk2e1pWQ7DhBTfNv3yGePr2PK8kA" : 110842124485, + "3P4vLZzxDG6HYZR4vLYCkU52r4MJUpVDuUF" : 613400767529, + "3PM1yjfaYhnQmBeKpANhV8kCQKSwgecckJB" : 409408730797, + "3PFqqzEaDKMi98eWdZLMTjo3twXVgRBj7wP" : 54254497440, + "3PPefmu4SPi2KReQm6LLmnYwufsAkDtdLnC" : 4119130524079, + "3PPMrbV2M5adukRacfvTQejTqMZca6ZYkx5" : 26855976233, + "3P8GX4itT29JSBJzKZMjSpLaf1Y13NWbSxx" : 71209027890, + "3P2iT1nawotR2QWmjfMAm18xytUiK6cWtHt" : 26210559564, + "3PAvaWwqMdHPqw3Eap5EWbtE5GDZiUvDuV3" : 14730096055, + "3PMFZZXwem4ThveAt3XajmnuxETef6FCa3j" : 288908123442, + "3PDQHh9pdfqkA72Wr7TojFHi4x8YiDgqubC" : 14074706568, + "3PQfLcZ3nzFn1hzoVecwC8SnRwY3z98r7HB" : 550317847148, + "3P9vaAc2hmpfdTR7deYSgKsaEYkbgcNavsP" : 307414344196, + "3PAz5gfnNafnyFvXTCBS32jyxajqk9CZcC1" : 27144748719820, + "3P5bECVvFpTVYSCr2bgHiUxFiyjNSicmkDS" : 758902419040, + "3PMaD7YkuPDRpqZ8yFbWfrgMw4ZWDAiq4tB" : 11592181176727, + "3PFEvAiqDbs8MDgkpUu8jCMwCP6KCf2sLo2" : 139357110853, + "3P8vENcrcpdw7APkEbwf1TiynDw7b29UX8h" : 117609426842, + "3P6zPwVqMEvAJWQhxaWbf15fZUJT7Vab1C1" : 7800000000, + "3P8q5887C2iLMwV6Zp1Sev1VnEik6qv8spi" : 70286701433, + "3PJ3qxaaMW3N75BfiVuD9aYj8hCG5m4ipca" : 373967483081, + "3P62ZCyquEdeMYuGwL2gfsU6xUWsFrMKBmS" : 273772487198, + "3P4mp9q3rjYMZEfF1aGc9fbn6U2J4N6nCF3" : 1169226844808, + "3P7hisC7w9PzpeEL4SbUWT4FfhAnssCeuAf" : 1491998679590, + "3PKFBJGh85ivjbsW6c2fFJtn68daZuCFQdT" : 71600000000, + "3P423zWonR97LNGZ8swpK5igX6vx3rqL8LS" : 20851109737, + "3PFWyqbQWYVY2q3eErgupjK82FUqGhP1XrN" : 72500000000, + "3PDnELaShNxWvGBYNKu7UXKXR4pKxbvjd5T" : 183677979041, + "3P8rCcZm1G1s63Ww5ftEN9fLQKPSGmBGpzu" : 27127248720, + "3PPKbUzKEmzRNh4iiEKARYWVgpB5vKJ4bEZ" : 17500000000, + "3PDG2XbCVPbBFUg32k56rbiQWjw8bH73LMs" : 74899999985, + "3PGJHsjWX8F1v8isXWDVhHtkmSZvCwHpjpL" : 3257769934271, + "3PDv3gcAX9iCMvuVA6e62KgDioAq8KWexMz" : 158578564565, + "3PEpn8ZutD1KNkwWap9W7Q3hWNpXBcX8sMX" : 271272487198, + "3PHcSJiYa7b26WnJJKoeDrxoYnm6JRSRZ2U" : 462661091828, + "3P2ScKXGxQCUZJ5QVTmpSdGrfeKvNgG8cHi" : 15000000000, + "3PPWGGu17YkSGZ31KVwi8uYJ2K5sVNLGPu4" : 325526984638, + "3PQXFDURoE6wsC4stJhwrySboL5wUBVhpLT" : 167739392458, + "3P6vd8Y2LLpYKUXwDh3UtqYBom8x385ZhkB" : 126649081817, + "3P4XcCf7TLUvd22CMVAtUvfAo2wEKafczkq" : 545637480750, + "3P8oU9EtfRAFkmaMrFnHYGf3FkvDFrFkAFw" : 100917309798, + "3P9hGG4SrrrrfAfzhumKZtRNRxCVfEeQAhm" : 6033344792220, + "3PP2Tr6wmQCHAajKPmhaTCPG6LCRJmKFUYU" : 722645703223, + "3PLcfg4W9j795vDBJKERGAteNdsf8NJLVFJ" : 17500000000, + "3P4U4DfUQqkfKDz9whSikqpvC9oKtWbsPtu" : 404026984638, + "3PKut3tfzCNoyi6LnUQb5rgZmxVqDPZ29xn" : 15000000000, + "3PBa5yU6cJSNyD4QNSwHoyWXq9xVmZMadCL" : 596446817603, + "3PKoPNNBDNC3FbPyypYnMp7CM7YzBUThSV4" : 82938378901, + "3PHGmq7ckc4tdKLKP22HQaviUx2DgnBvFms" : 1092889948793, + "3P74CruX2sysygK74sUQACz8TdcMkxbGY5g" : 1312307938550, + "3PKvR2HyXLza8TSBs2MwrXivGk56TgpaFV4" : 398000000, + "3PCMAQfbXmYZxN459Dbjs8psJy7hut1CSCV" : 96108256250, + "3PAuGEDEYRE2hGAWTf7YquV4J2BCTkzsH8o" : 603834256720, + "3PPnfsPDWEkHZc4HdHBKNkQ8EVGxNq6eqCm" : 211041640527, + "3P7wBJ8zekq4CKUaS6hMvSB3rbdBkzsskge" : 937110807026, + "3PFRCZr1G8ayJgyGMmrf9133LRzaVmCfaLK" : 40690873080, + "3P8tkcqLEgEF3yCG434wtjbF3ZTYZ5HGivG" : 123508994879, + "3PMc1UDttkiNF2wxACedu5a4h26YMP1jQ1U" : 1323918246522, + "3PPaKbXmK4hHpzwfVFLgtPMPdcBcahHerxT" : 998011480402, + "3PL2a1ammNviP3Wj2ujbED6qB9XqFJjKaic" : 39612640899, + "3PDZ8NbUcsWF4KPjUcbVRrciMDWu1dFYhjH" : 100001000, + "3PDNept6S2jYAjX9voUURNdvX43a9aLbNAy" : 742735715435, + "3PG3k77VbHdosCcTjYv2STmnpuVuHAqdkut" : 522593798956, + "3PQJy94CJ8dqeG3RF2BkTfB1h53iwTPwXLB" : 1758710360107, + "3P5o1iDdgitPjbaBmKqSZaNuM7pS6Ah6YXL" : 2500000000000, + "3PGqt4od8WxgGh7Q1SRpjTjr2b8U5YiXHcJ" : 1250000000000, + "3PHsLwrHHegxqF4kQocpdpcocxabRjkLJxD" : 252283413094, + "3PDvjTCq5GQTqh21CMXGe4GpLukBKnSrEJC" : 17702110183, + "3PHZUhmkDzsq1bKzfvrULJUESxoMWda6jkR" : 965362496238, + "3PGLB49YSSucJEPUxHFsaoJdMewMaqFSvYb" : 2500000000, + "3PNARHFv5YFgyW8dYUrJb3sFn45UjUkSn7r" : 249209065979, + "3PGj6qFjAdRdWmMH9WPMkQcpcDq1WYCaAwk" : 2500000000, + "3P5Zgq6h76d3pHxNHYNm8EAahZqpWdrrBVQ" : 343239709510, + "3P39CzcsFX7RsztoW5nKfPLefyDTKGPvTiG" : 37427248720, + "3P6xa66NuAh76uETnHatZgu36zgkZxCAbzT" : 1373742435990, + "3PRG7WFMb6p5U6g9hYde2mMsw1oLF61uDGv" : 5425314107720, + "3PEC7mHuz2UyiCbvibpxFWX4pBuFzE2QpY5" : 1311807938551, + "3PL4ZvXAtwGmEKXJcJwhrYv1CJFnpxCawe8" : 2720524871982, + "3P5ATwyV3Sm1VxhBS7cvp5tcQNzcs3Hzxu2" : 6510539693, + "3PH39Z24xMWpD7yErokw4jJmPGLQ1AqWRTc" : 197816190783, + "3PBRTpcPDRzsK2yq4zhB2qfDskEnYMWDyr1" : 1906707410387, + "3PPrcgVuHyFy55GnzmTokHvQJVPqshJuiwT" : 83197264407, + "3PQvx8FoXjcjNEtAQahofvR6RzQ9vGrWXhY" : 18399050843, + "3PH9qCxyZvQbg3Jqz1dvdW4ZXtkbCcXdV2a" : 2500000000, + "3PMAkBsi14JwnYcMNMTFsaPwPpMj4A1s6hh" : 81381746159, + "3PMq9uSKi4LuJVFYd4rZeosDxeueYzkwFzb" : 271272487198, + "3PEvva67UbuDnTH3TCfhYYhqmtz578gC5rk" : 85112658851, + "3PNHAJ7n9G9vx8Q1tKasUGBWpvWkHMRoJkr" : 200000000, + "3P4iNghUKts6hoEYyzQD2oSjjqZjX23XJjn" : 749346332368, + "3PR3hB577ahYar8BWFVWs8FmQwx7yCRT1Hz" : 37427248720, + "3PB6Af5S25EGn8v1j4wdHncWTfLsUyK6b65" : 1139344446232, + "3PCRJ75kLWoRK2VAY94FsKXh1L7Y5paK455" : 159248016190, + "3PFQb3hHUcY2Z9TVGZ8KQ97LsKnpYsYhEyr" : 1091425209865, + "3PN88wtjxvLv6UEy8NTU4VBKpqSX8d3h2q6" : 5696722231162, + "3PMiar2s2BfGTTGT4pH3SjyHhLkGcjR5QVo" : 91644547268, + "3P5ExjhKfk4g4JKLXyX9Gvy6oNmzVLcf9Zd" : 495643362292, + "3PCmiQ33ovgXC9qSY7Wojp6kyrPeEQqkfhj" : 34927248720, + "3PJ9GTFJqiTSFxV5ofqfQJYwWvLuPSmp3Y4" : 17500000000, + "3PQKp35rmL6jgp7y9JxLwU33NGY39nnrgf4" : 722210099030, + "3PFjZYWVc7onUmFQ8bBm1EhDSeJYpRDfwUn" : 300000000, + "3PL2Y7kFtgMyYVMXB9xvnP2FBoLWt7mpoLa" : 24831511031, + "3PPSEprXsVXNPyVEzgsy54zautLScReFepX" : 17500000000, + "3PFFhiipM3ykw5o8CMfZ6tdjy3Nciy4QLF2" : 545072101645, + "3P6QX3c6PXuSXcR36R5g74dRb2Krt5sz3tv" : 68967986451, + "3P4A4LeqU1NXvTdMTUNzjkXGUYB6tV2YQfu" : 17500000000, + "3PBxfd3PAbV9A4rQ5QTTkDSWEPMuXPhhDmU" : 18229885496, + "3PBunRoKeg6uspKfR68X2Kti9Cmz7HteTZa" : 57889548768, + "3P8zBJAivUW6f6i6C2UQZjLaELZxsBAnRut" : 818863129856, + "3PCUBdWRnDsnPbPashxZ55DUjGP72kzQEA4" : 72500000000, + "3PChw93hTq5C2Hnf6sb8cMCR91t6tgWwGTb" : 300298643328, + "3P4x5DrHN8FQ9WJ6v1bf5onG8X3wuHVtuiS" : 100000000000, + "3PEeRYa9DQX8q6BUQCZvDHh536c9A7EqhQw" : 2172679897586, + "3PHRgZ47E4GNgFMgi51uVxanrmJGugwm3sY" : 63410859876, + "3PHSoVVHfsdxYYxMpNFNPCeFiu5ZkRQGy3k" : 580643601946, + "3P8569bGTVA4W5WSSMav3dcf7K3JiKD6rnK" : 71626540662, + "3PCnrFmMd3amKoqCec5X8CWk4ChqEahcYXM" : 32903984155, + "3P5Qpq6mrtzdG4u1hTrmobu87NEFAC2B9HH" : 182848968471, + "3P9VKSUmii9zGYS6JNHHWH2G1BCTSgg363t" : 9700000000, + "3P86o8HPP1qXJaCiuuqhMYu44FiR2TMMXeN" : 273772487198, + "3PA4TWbQYwEG6ock4RQmc4MDkoBnm92DhhU" : 2336983981422, + "3P2Cuxifwh1t7sZf1WbnsebmCKaFRbfrWaa" : 44222943039, + "3P37iqtCLNtofbTht9CYuKVu6wPbw68S3WD" : 17500000000, + "3PABh5LDVYYqjvzttWnGzxfQTkcPBxNMQFZ" : 101996360963, + "3PEXpnqSzfhHH3Pj8ntR2hi1UoQHnK8paQp" : 65568175611, + "3PGM9dZLnjt5ChV1MhHAEahMhZG7fqSLh2p" : 44275963029, + "3PCdNvs7pRDrqxgujzrpWsfraBwSd4yd86F" : 3881366746832, + "3P3VzdyH8yHedftaGEbdavhfHD5t5VwkZV5" : 702910629779, + "3PQ9PQKJfVunqYtb7VAmvykeXE4aYkyiE5L" : 328026984638, + "3PCUXaqZxbYfc2KYqQpqrEGBYtp8ksPtpik" : 333326984638, + "3PPFxXWEZZVknChWRmJUVGH93hbTkQspKTT" : 11258554662952, + "3P9KMEsdkxR2VP7kP9XZh8hEQLykpGhEytD" : 552809456690, + "3P27uvhREg7UCB8ocvfSANPg5uUwRrK169W" : 17500000000, + "3PFKv1fdtSrY8eExovqseuXQhVrNK9bWcRX" : 17500000000, + "3PFjEC9XL69xWxo8Wdxe62hjsqDfDwMEDnr" : 9199722405968, + "3PHeeJZKzs3CJAZiLPKpxB9NhaV5FhJiJi1" : 100000000, + "3P6Sqf4N37oycp95iYuKXx7SdfrkGvZZxnP" : 1370745723753, + "3PB9ysxSdYgr1pV16gTKidxB3w7oG75WS2Q" : 788522932227, + "3PGAMV32YWnZXR7Qd6AwKH7nvzZy1pqtWBE" : 1415441898998, + "3PJYwzAuSKjTWn5VWJpzvCL4KfzC61S54cx" : 242300468918, + "3P8s46het9z8gceUcvf5DpLZapMPvvZyx23" : 17500000000, + "3PGWHBkJbwvyqHYPQeGnKj9EuKPHYn42qzd" : 542544974396, + "3PB253t4v6HaS8w3mJB8dmHZZRen5DuZT18" : 100880500323, + "3PCLNJ4aX2nqQVGCmSvEu2p9Q1cawAo3fK9" : 1117338834306, + "3P5pneUwdZQJY2zdg7JVxrawHxsGak7WX5m" : 27073661553, + "3P9UvmWCqCvLDU6wz2FjCL7ZxcuqGfwi6Xz" : 17278688892, + "3PLJnXnJ8GHrx4ccTJQqabEyc5AWTNfkVtw" : 157895972999, + "3PNhBeBeXcJJku8RWvGK5LCZxiPU5FHAcfG" : 564897593139, + "3P1xS9JBmqQNKHRKcN7Rp16fBen3KG9YCSp" : 33268791396, + "3P4TnTocoTJu6CspvEUHtkVqLGLVJBUpT1o" : 4696279128328, + "3P9vrB55JcnZs39aEKhoZfDyKqaGG5ZEHCD" : 574376066601, + "3PMyxurFQ81ezJAE7388phvSWZBVjHCobJ8" : 34318894206, + "3P97VHmsMM3PLkzBmWS1St8mvLycsbiwYsp" : 771116682765, + "3P5n28S29XR1SjfA9tmvQLqpveTFj7j3i2t" : 317564639584, + "3PNUVRQmUqJnpArzUthWDTCf4WfyRnZvnpp" : 115446090661, + "3PNidPHxszcv8KHnQ4AipcBEHbiU4iriXW4" : 155346566128, + "3PBEE1wHZZoXeWrYmgRzr65wrGbzggLU6AE" : 12813040572307, + "3PHinQDxsHqgLAPMutibokmRyTM8XpR3StH" : 641472709381, + "3PLeGiNqjxmc1E5sM3A82VxbBZvaj35uouk" : 821617461595, + "3PAyEXoCyE9yCVZppLCk4DwbEGXxMp8Bi8n" : 2902561115581, + "3PJu8UEawR3JticfkPjM2JWjiqvy2MQgPfo" : 2441452384784, + "3PNy3ki5oRJWrREPY3XPkU2kwJfz4sjwvvy" : 110300000000, + "3P9KTJgiBxXtYtrtoByzzmJcjoj1gMZL78G" : 262921587710, + "3PL3Gz799hkCCKobWTGR2CFHUEwQZfY1z67" : 61673412045, + "3PBH1DvNCjpKHwTA4fzFtpEz1tFaWcHH4yS" : 294536111558, + "3P3cTX7Fa5SfAXPSVVrM3CBsauDE88hBHdf" : 553828045314, + "3PQ7wUeHK4cVUzzUzkn1R8VbzcXqU73onzu" : 1494471552341, + "3PBmwCHPeNf4wrgPZmVj6YBYzdGtKLb5AV5" : 2338101860279, + "3PF9vtU55DB3sVENPAobzsNGwvUbSFG3inJ" : 76498841390, + "3P6Na9DT2FJkZdDAqkUDPwwsz19gDD3pmhX" : 2500000000, + "3PEHYpxm2Za9hqyxHHnJWHtPDSVjbHZGEsw" : 17685597623, + "3P95iUNArK38J3rwiDFy9oy2Z1dHhDmEVns" : 178827116679, + "3P6iops4pqYnAo3m7HWFCaFtHZ93qWjqHR1" : 1091981193446, + "3P5A18ybj3xkPYNzje194tbhhMZNUrKFCY9" : 12035839026187, + "3P9GnXeCA2XwBbusnbCB95LC5ph5fS4k4zZ" : 241942505882, + "3P93GB88cqtSHAXT9Jec3ePmJabakZNXq9A" : 886195936211, + "3PGntoty1X4A2PWJY1YoWJSnoXLQePSKc2c" : 403770464886, + "3PBVok7U8iyjNHkz4FXwqSUgb6kRDAcg3ma" : 638652156149, + "3P4rHkJYvRBdXf9LAAGL3mRoqGbGJ1U5gb6" : 3876800000000, + "3PEZuXm8n7EP3emFU52reYjtSS7V4Tb4Jth" : 2804957518, + "3PN8cbbdsyKUQ2xRnTUfCnwJP49Pb7r81WD" : 2500000000, + "3PFyZoRxVUZCGPgzzvJ3LN3tHWgf6uCwTU4" : 1210278914613, + "3P4SJPzHRKaEG4RZHQLvUKQtiNCpxgMismo" : 17500000000, + "3P9BpF3YvbEQt9NjeotZQtDVevP9temabjn" : 108887407819, + "3PMAs83aiA2no578DttgNsJkur8Lt3geUVc" : 10300000000, + "3P3gXZobt65p8kpT4nL5twe8ygaFWWKK9tX" : 17500000000, + "3P5o68MLjQt3wxn6TpWVd9aHhcXA4221zfZ" : 794876717397, + "3PK9yXmPWdZ4QqxyKu19JSaEsrvvryNWnFK" : 19629681923831, + "3P9SAvjf4fWLYV4CyrnZ2BdtK35PG4N2qmA" : 1116124545913, + "3P5mPHPBH3hMTVF2vMMuF6z9ozqDZbfrLP4" : 81381746159, + "3PP6WrHydLQ8LgVCdTXMA8wX9H6EyjRnUuX" : 176916146907, + "3PLaprsVyTvK2XsdbsM8x7ME61q1BWwy31T" : 279132574054, + "3P5jr4fCnEjprBwDYnaoSUYdbr7RzLGpxJv" : 1056566705406, + "3P741JcL4oUSWiagAM4Wjm1NzGhHY8WQGYH" : 17500000000, + "3P696Y9sGCCPZ5SAVoRYXE2kaWnBzTLZqX6" : 1200000000, + "3PBdzWEnkxe1fHfbeGmWFDf5mUfxzmHYviK" : 335826984638, + "3PGSPYzc6Ew7UQ5efgndQUFSAXhS7ced1c8" : 13572238177371, + "3P4ULHaLAPtn58X5tZprwBn5dqN2UQvS714" : 27521509819, + "3PQgHzARDXCufMysXGX7vg3Eebz3JLbE6tv" : 99999998, + "3PCgo6hYPPs9eWY3MBABEaR74KDHk7GfLxo" : 5704386594919, + "3PJaDyprvekvPXPuAtxrapacuDJopgJRaU3" : 100000242, + "3P9o3ZYwtHkaU1KxsKkFjJqJKS3dLHLC9oF" : 100000433, + "3PJKqaMrmUVRpaeSayWi7bUKzZGriz4e17F" : 17500000000, + "3PA2ugGQthcporMVYraNXYVxQz3njGJwugd" : 125456300247, + "3P3UsDskvfLWTWB1JAwcRufGf8eZ5PTqGef" : 279165447762, + "3PMhKHyUQqy66ZEj9nub7mPUaWvPr569Si2" : 390632381565, + "3PKGSCWDzTmEbuusxpP92hhrHv7wYPBUMfU" : 210159828347, + "3PAMeHKLDtvADSg3KcmJ1x5kbPkB6ZuqC5z" : 7241049374, + "3P5RnB83TmbxhWzgHLoXGkw2xW6Z5ZBiGAX" : 7935636244, + "3P65Cv7iaANskjicnaJVcKSthrxw3Mrh2ed" : 273501214711, + "3PN2uDWGCnEtZNLwuHPurd5dRqbAcThWd36" : 344273425306, + "3PHyQKCtodwKy18oaEn74nJ9WFJHqkD1QyW" : 25104674951, + "3PAtohPRCr7hTd261m5b1TYxJYBChQCjNfA" : 2712724871982, + "3P7vU8yvEJmou9vD4UQ2r3KCqENPGFbWuPY" : 1422177073711, + "3PMLZNUY1QLMywkW8kDP7sbxB2mhNiWnpRd" : 1660754581, + "3PHJgQUj1mVC2VJLHHwJ3Rj4WZ8eDoGBjLo" : 7200000000, + "3P9ubCbgHrT3pZM9STUUzWh6ijpsTLrTQ3X" : 24031565549793, + "3P4gVy2r1xtqwbkasSr4ea6nFJHuMKCbToZ" : 273085672503, + "3PJZYax5F4dLbYf2bdJQZafSazPPPs58jeF" : 5241516016533, + "3P6K4xoFJadPR6kzS7fyjxB1GBkNuFgYZDU" : 17500000000, + "3PMV73gw5MHJfyEP56KKF2Q5oGtxDhjVtnb" : 198230766651, + "3PPCVkDLns9wydRXQ8f6QJEEidytFR98Lb8" : 85402752224, + "3P7gJS1jbgFv3oKg6aQw5qzaRXgGqRPh8T9" : 20014259208, + "3P6XbrCdEArfJJDWuy3ZPd5XSbQZiR7PedX" : 816181825351, + "3PMtE9MYt8a81EPi6kzAr9Y7r9uvSPX3y34" : 33484755180, + "3PMyfRz6dj6XG6wVHKFpKZ3qJYNMN1GSavw" : 588504158157, + "3P89sKcuSyGM4Egbjn9Bop3c9mkzB92Gpr1" : 17500000000, + "3P7teXQXdEKJixLPmc75H6iVe8PLAT873w9" : 834708367685, + "3PQD8xE3dapurrwz4JeDr4SnRMP3Xim27EP" : 8777968147926, + "3P3DPXg5jwSgp9BfzSCUqbXxYgzFaun7HhG" : 473543943417, + "3PBtnAb4K1NAHEpowJGndhxEghfnLRwDKkF" : 34327248720, + "3PFvK4wDTsHN2grtZtY8XNkHB6YTrfUptPd" : 1456216043458, + "3PFiEmZi8r7JJjmtKo32TxvhJeeGW6pXi4S" : 15072013056144, + "3PGVsDYfhrbhdHy1rtjbGc9mB8ok4MVFvdq" : 298399735918, + "3PHZhEmQJMCQUaBTnoxgFzwWBMvzdKt8qTE" : 1419549060482, + "3P54NkMmfgyvnCw5WWmxJX9D5sojgmUuFnY" : 17500000000, + "3PHVjK9wDfFGiYkNcjyLa5xzQwSVcEbjian" : 3602929411300, + "3P9Qz45jxQHuJ5YMA4u7NGawSrZNH5YxK6u" : 118454497440, + "3P4s2KSASRkf1yc8nQ3rJRCatWhp6D5aU58" : 17500000000, + "3PBFuNGZ36nmsJpoGDXmue1wDKCV4WDDoiA" : 3171675411923, + "3PG2ZT95Cz3Phn4XMzMJkGpz84Tcecbfkks" : 17500000000, + "3PHP2zk52TWirmAsSJcQVnM9NjHLihKBVQY" : 7800000000, + "3P5vN1gHrPBjznWa1auRe3eR5tDTKY4CCpC" : 13046754418, + "3PMsQEXyncWcuLXmScuhyg28VmtcSMZZ1nA" : 67818121800, + "3P7N8K9GYv83LcrLNeaeseabmzLUDJP5nzG" : 31063624360, + "3PHPwqB8CUfTKNr89tazSbf1KWvEdR73Csh" : 86814967591, + "3PFBwgd3Fd745eM52t3wg1dzm7ZB5xhH4hY" : 7800000000, + "3PFSfmmR29PMc7RXZmLT7GBQpfWCgohHvG8" : 636376670715, + "3P9KrZdmSLwUtfZVoCH4wMjA6Dqcbfw24Zk" : 31556841145, + "3PC1UszV32XaSgCk6xG1KiTj6LJzTeoiv5n" : 1175016778299, + "3PPoWimFsxdwtpSuZj5xm56kUt157ZDuBK6" : 10300000000, + "3PMZn3n8TdrJvWsDLM2paoPyswugVhG8irE" : 10300000000, + "3PHVsFDsBFfD8mA2QD7sN6YuH8PPYxnYJFL" : 347950552896, + "3PBZcZfxJVYhA5MgHDcmtsonxrAt2SLmtbW" : 3797603966354, + "3P59BJBNPhru9VEvUVPZXb2NjLSuhNg3Q9Y" : 12383349413, + "3P6xY9kJBVwtkfAkAKcd84QXdRv2LAnbLij" : 9700000000, + "3PGjk85388uXLGqPxUW3Lj2pfsyfreSMyFY" : 110000000, + "3PBeTq1GADicd3WZ7T8ZohCZDUkbiDq6WCY" : 144496924449, + "3PB5cjbfhernCJkFUwxCHTKkLDk1TmTDwqq" : 154750103047, + "3PL1WbNem74fZZGJbKXZt5wfs2EdFks4nWT" : 2500000000, + "3P9qYJA5RxiQLz3EPY6UaFaQ3rg4p1pdHRU" : 1853332267251, + "3PBwvFQmhfQVz2ofNj5t9cMmJ7nXdZMTSYE" : 2500000000, + "3PHZ4jPcrPJ41WjsAmsdtVdJixikdwpk3v2" : 48098023276, + "3PQWk4vrxbWG9wQGZSbwZNhZFUBNNb5tN1z" : 596074089205, + "3P9qE7KQQdaLMmS1SYsVoGRiYAo8s4Brq9w" : 4760044091572, + "3P8MQFYA6ViiYvmaAFDEWuqHkjXbz673gnj" : 17500000000, + "3PEpGR4RiEHQWSBewnh3eoNJNyJmyk8HF3G" : 17500000000, + "3PPA6JiRuRS6vLdBpGAqwqwwEgYFZvWgFuu" : 9645152054, + "3PPCvAtUiUfyeMhkuLxq5mFGn1tzdYJUF8q" : 1063036527098, + "3PNeaaKMrSTi5PmYuEHKARGAfaVmbN9BGqi" : 7200000000, + "3P3UJ7ky7g872hzXvmuRPY5K2P87N42m52W" : 307905552059, + "3PAdQjf92Zvx5JpojJgrMXCGsHN3oVqM9YQ" : 8645114541991, + "3P5SabWzR5ckXzBojULzJwPtsQp2ZUpMEzD" : 2034443653985, + "3P7cspQxkvkpTbeuRU3n4ghFAczZVwKRXKw" : 117500000000, + "3PNNDUxYXTiPLCN3v3H5AQYGhgoUcCxShb1" : 1936168695087, + "3P4pwoxtA24MXaPffQsbh3Vhsxk2UwsiMKj" : 2902615613021, + "3P8gjxRkVzrRosNFVVaw9kxSZuJZM4ov3z4" : 1228313467520, + "3PJWPSfrcxxpuK3jU6BR8XW8JGXJ9yGuM3E" : 2800621879136, + "3P9bfFxXTfb2uFBSM1ksHrhXmJcULxWUz1i" : 3609252126167, + "3PNkWjx9dNhUjBw692YummDbDDWJUcVfxpi" : 81728549547, + "3P3ZQJnaj3APtTfRUxzuFLbS8jkUAPUxDMj" : 20949804514, + "3PDBK7kTFVqgcRYsH2PShisZZeaKKWi8m7i" : 511491474324, + "3PD4Zc5nd9P7KaTPujSyDLYhkQvuYPEpf4D" : 17500000000, + "3PBj7wbJXvtfkwDqHgcCowbTX3GsWFKsBQM" : 5, + "3P2JkKac3m1b2Q56itvPhG8SsR3u3G4BR7W" : 1568599214375, + "3P3XH6pQTmCyyKrrNr9DRcrp2QdrPxX7Esm" : 396377801726, + "3PKPNezRdynCtbWEncXFmjKVgb5VqouWYCu" : 1264525708700, + "3PLvK2Hvo2mG89kGSGsYDDZdVZ8nMtCm7Ft" : 956294064989, + "3PGEMi9zdvVvCR745r5jk1MCnjShECnkwkd" : 44137345297, + "3PFBV9LVXParhdAhqZaAwfDJRSQnfy1CyhG" : 19204220313471, + "3PPcyXyXvsa6Q16796fWpXjFdvusQHyy8i7" : 50323970951, + "3P9v5jvb6TurDYWyx87zCBvmePRD6HNLpyu" : 2739852120702, + "3P2YibPkoAaQpAADnb3i7qvm43YbLUd6Vn6" : 40842147274, + "3P8GVxK7AYxMGAVF7B9DfXZoZ1MFnb8My4c" : 1091028894324, + "3PR32t8qHqyWXqzEdS7wJYRYC6TQsNYVQ1d" : 2500000000, + "3PFRGFtUgWDRVReVPcdxY3mzX4WivcG6HEn" : 143436243599, + "3PQhzZhDs146HZtST6VLmDNhqCuoQa6Ltuv" : 44923879759, + "3PEjH4DxsDSXsV32MwwQf1jjGGinVfeeBYZ" : 5, + "3PE4TaXL7sv6MKtDXUhEDFXAse2CcXvdc7W" : 352870920653, + "3PDCexzPpV4dzByWH1Q7sEaEvKLkAYY3mpE" : 992290099096, + "3P5hn4EfWctoHBwmR9MTiHtz96utoxrM9Bf" : 74733766519, + "3PMMYosFihGHdne7mv3qNCXPjXrbsof7Ljc" : 498590476957, + "3PE9zpnjp2Y3MYpqNHJByNDZxM4oXuZDJCn" : 17500000000, + "3PC4Sb2DwnDTsdnoKk98oSG3qA8SY2mD5T2" : 17500000000, + "3P328cCAwZDXBfAgGAGTVvrKiJdtAAg94DA" : 732408609888, + "3P8ATwK7GDBnFizVodxMhhaEcFDjs5EuNqa" : 10000000, + "3P9v1J62suCDpMMmwqvrGWH6o5CngLfTvWq" : 49363238157, + "3PME93njy8rMSd4vojDNSZqkFnEo8Hnk1C1" : 7200000000, + "3PMRCQnS8cQLnxp5wKdJf7CEWCdvRyz4dan" : 162763492319, + "3PCXuqmdCTWKWmUKL994Pn1ymHz8HemUbSb" : 82959508124, + "3P6Tc6kKo2dTkpe8KrWKe9toegQRpuELwUk" : 2399999999, + "3PJPYrE6iYQn3UCBMsvqhHBwxA15JSdVZRM" : 368592407974, + "3P9zZy3HfLe18Vkjk8GLjdnEmJg382hBdnf" : 593900091596, + "3PKhFiRYmEUdCP3bovfzv7YfnBnSeuK93hu" : 207557043253, + "3PQXg5fLCVBQFg8UG6uDYoRvfnDzceHM9u5" : 17400000000, + "3PAPH5cVsVhfR2WhbjthC7YLMdRA9H1gcr1" : 57646319523, + "3PFNt8oBrqbmkTWWAFBd5iqQrvi7z6SBBjn" : 1085089948793, + "3PAUxBaFJu7VoxySsMftpBx99j5HJXvKJBD" : 3544042333577, + "3P2Z26H3a8Hfvv88GDVT82omNPvQjbmPByp" : 813817461595, + "3PMbqFMA24ZHkyuiUDxZBsXiJ5bFJxDZAm9" : 3054402271534, + "3PMPHJ25dawE1KR5gPRDMowz726SmzDfpie" : 17500000000, + "3PNwnbPrCsqMhpjDCLZzW5fD1v9twsnksCY" : 1569601970822, + "3PDJjBymQPpt2eSUMuWMfn2yZu3Fn2QoNc8" : 885571959031, + "3P7T1BigJaTwN6ywymvXWGHuQGF3usWYWYz" : 165263492319, + "3P528FAcWBrgkZ62HJEwaGhcuBQScxUSB1i" : 36417360157, + "3P98VRNF5EzEUZcmfg4kWbVv74HnQcf1ZCE" : 15000000000, + "3P2WW5i3PoCDYJjbyxZ4jAs9QS3G1yNb6Mk" : 419584344391, + "3P4goCFqKT72LUAc9hcArypL3a3FCgaZT6Y" : 2715852010366, + "3PGutdSFKDghVmnEmJRbpRC6NapoxHAb2Wn" : 23467994718, + "3P5vr6iYRM7cSdgpmmoEqe2Bfc7ro7KZQae" : 226063492319, + "3P27VwppdW9j57uddbR3Ng7dYq5yM49AWa1" : 149199867959, + "3P4A8QRPoijQRZEojLAvZaqxr9ZQDLRMdpE" : 291566593816, + "3PKXVED2F7TrU4eXgBi6CeWk3rzhyNtghEA" : 17500000000, + "3PKLfZLmVDGSTuUXDZ8cmEVg35y3cQo1AxG" : 191520947625, + "3PBB1CDo7LAGtv4SNjx9D8tLsVDvk1YmGWU" : 14062231457053, + "3PM6iwZdyyjtZLfwr78ESVCCRWAQvjEAKDQ" : 17500000000, + "3PFBy5cjfYtita6obdpnco7ixKhkck6Comv" : 2647619475054, + "3PA2mBWqsY1xsZhnLe82uKbNJXm2Gn38o97" : 10300000000, + "3P8RBftMoQpxArysPDLHctpQ3Z4SUaC3JiJ" : 905501941760, + "3PDfs2NPKn2QZHhQjghk9AyfW8qdzfKgEVa" : 160061889755, + "3PDem9fsMM3xPvekn7jvRKzH69C8Xfs7GHx" : 74531668801, + "3PQwSn1wnc8dqDPEBtLuXnPjkxvxAstqVai" : 17500000000, + "3PCPYYFuq55vDrhTPtaP6asug2qrzDdsmoF" : 7800000000, + "3P7EmouHBgFjQ7b4eVVF6oBovdMB67qgrGV" : 19327190208, + "3P78xxW94cRQ8Yfm7KJKRCHZw94ffQAxLnj" : 17500000000, + "3PKda2g1TupVAuR7ydJTbYKoscw7R2v8kw6" : 115000000000, + "3PGQcqf1Lv8ZfYWGeNzGRDkc1Y7hWV161t9" : 110970430579, + "3PAuUys3WFLsMaf4673RXKFePbK2s4ytYyD" : 64700000000, + "3P3tzADQyWRHq5RA4rraJo2EVVeBtCmiCjf" : 17500000000, + "3PQeyzNd77hNeKetRwo6anv9s9121aWjXS3" : 18053246416, + "3PJ3GkTbcR7LWxCU168tRB6S75LPNESzEY1" : 3, + "3P9GLNqnxXMSuXi1DvE4oai98aL2qTyYXBS" : 62204522600, + "3P2efx1sAiC7oiagjqf7CdiBDa7tLDnokj6" : 29819305341, + "3PJWAWKF5qPuhtsAydmMnpfTVajNtwZQZBe" : 1039880953914, + "3P8x9Fbwb4HVhSdNRttGf9uMQTtbYq4vrvF" : 106946768270, + "3PH2BeWnt4CeMmjgehH64qM3SdCDuBtMbYC" : 17500000000, + "3PQ8e1fend6zV8Rbe6Zhte3TURJYUeH4TvP" : 596799471836, + "3PR9zHo817oXCoec4bqTmSTsKgMuVcsJcQ9" : 17500000000, + "3P8vrLhea64j97UgdKMbaL2YAhBm2XbiRTf" : 7418209699316, + "3PCHpuKHWhtTzdZh9JWRYVtkRT98urtGiVt" : 33167130647, + "3PGTvYwCS9xHjGb3tx1Apx4QqRDjcBfVLCx" : 885319005320, + "3P5DZAQSWNoLTKPxonRjphTEzFobovFiFAG" : 149920823423, + "3PNAbABLrn4fziAPoWu4415cJgxCCpu3AES" : 284416555196, + "3PAwTK5C9c8QrHiiLpcHQTkynY8mfTUPE3s" : 57800000000, + "3P92kDzPxzi9sfta5TiNDETyXp14wfy15yk" : 79400000000, + "3PGmBsDkGMniXGcWFL6VSTePrwSwhQ7C4DC" : 822331314548, + "3PHDkxG7yE8yy2XtK4A3QAUfkg1KVEw7LQh" : 54254497440, + "3P9v5kf7i9QQwcE9s6vi8dnASJ4wd9DxPwC" : 1096974608308, + "3PDKGwy39xTSERgE42G7e2ztyu9zRZbUqxk" : 199999999, + "3P3djfkUerHeVnz8nu2oxbo1ehHu6YCmeKN" : 391327715343, + "3P7oBv6kz9bKUN19x5TkeSJji17tPiLjHrU" : 17500000000, + "3P6xpzk5x14hgJZC1v3m7rLfCbygnAUiS7B" : 370045360599, + "3PEnepoCucYDNQuread1acF9JEotgrwF8EB" : 35052698464, + "3PHM3vZrGxkN6BBpapCkk2FLTEexoY3mMdK" : 666840723753, + "3PE5e6chQwreMNUdoTXkw2wqT4aKVr4SwBQ" : 3434309687929, + "3PJNoQmksUpTnDc368QU6ws6JDuV9DECVEX" : 29845138620, + "3PR4jBPtXhJvaxK5hQTyRQAJopwv4HdgqQ5" : 500000010, + "3PKpTXm64yJpZGw2UqyggoCGKQq34VVyF1D" : 77085317574, + "3PGiSxwdRzkqAjmxdHnmtLGTExrc6uMDzC7" : 52559960388, + "3PFWCjHzHEaz8sk6kaSc8u6mG6VP1FXNFEM" : 335101534894, + "3P6V1dPTarKz5CokxrGpeirPLBNp71zbrE2" : 7800000000, + "3PLLZCDsAUHDbBhAFSiuHMnRK66cosVJbuA" : 523010169671, + "3P7AkoXTdtVHRXqYgen6NQ6zXYUdwaPmtCG" : 9700000000, + "3PGj1c1Fvnv6cvCsgduYWdGtSqNBaKu4bqj" : 1383435430213, + "3PJwrqstEQ8eD8DfyJEUvciGhhtvED8f3pp" : 2500000000, + "3PDfjViA8MaLGsk8spLv8uWLxGXdpzS7BX9" : 1262853441112, + "3P9TpYqbP1czmwGYeoVsgThYax5BSbLjDrf" : 3816418727512, + "3PKyN8ugHUju1JuJszkFyfZ2Bm8gzxqmnDu" : 8125526985, + "3PPoBK8P7Cf87wqwH3CLotjM28BLnzM6C5o" : 3286333470736, + "3P3Bb9AxrsRxQy1ubJnoszNXDvb3Ewd5PuQ" : 52674626685, + "3P536WwTy2xNHpQbbvbdtMC5PxrZHP9araH" : 340526984638, + "3P62MT6w97mb4dRmzeZJCjdPa9op4ptQEJM" : 20782397095, + "3PFtuUn1HeVu7iJEbqoYuvbMEJdijrF6QEG" : 357209922920, + "3P5ohj2dbMfZ8nBzUHcpiKtMmpa48F1kFX3" : 82596732484, + "3P342vqZS1J2qBqMBb5MbUxRRKHTW5qXLZ3" : 21363624360, + "3PGoYdyZqzAi7ri4Jg7rUeXswig6Hr6qfYd" : 1705918521206, + "3P9HyHmsUaizKEmp31khYzvqJosnJVHKkES" : 301821946392, + "3P23ZrKP2iV2sWsX5SXAMqsY6oedNpgrH6j" : 166063508562, + "3P9Mo9rXZJqSYrRp1ynNGYieWkKEKuCLSmg" : 143436243599, + "3P5iEAGvSbbjUKEe3poD5YCphXkZtpZUgaz" : 271272487198, + "3PH9wzguwE9xZtAsMoDkjASMaoktsAtJwPQ" : 126998068972, + "3P4RFZ89eQrpduamTh9LmSMM2XutS3Pz6az" : 6791082686537, + "3P4naLv4zqV2RJzxu1q36TwhMBK6iGqL3Be" : 541067584488, + "3P2UFFyzAWvXKUzQP2jSchrqzmtufeKmt9e" : 600336508654, + "3PFb2vPRHGxU67yUqHrku2R2cbf5i77RNry" : 80285910999, + "3P3TbiE44ApfWM1y11aYrZuticFQxZvzi7D" : 164279724489, + "3PEBMczS9kM6jXvGfp3hpqj6ZRTHYN5obHF" : 17617404020, + "3P9KvArVZM8GiHpxKo3MqL8BgPJACmVfBzh" : 17500000000, + "3PBQE4Ka1fHtrKGVYpu5MiVwtE9LdoSdEkn" : 2199999999, + "3P96KMtPz7rajCGAuCNGqdwrvMgcHyZhVHy" : 69700000000, + "3PGyrXCLRHsVDGVNe6HcgDhDzzgNYgmGac7" : 13225449744, + "3PPGhJ5QPJRi4RbjhHxuAviGP3JyPR7RyUq" : 34927248720, + "3PFHb4fZwJqG5NuGeXK3r1fJxFQQifAPNSH" : 271272487198, + "3PL71Wjqz7kDsU2B7CNLoSqFJC8wMbMNt7X" : 17500000000, + "3PFMVKJdfvPmQB6dTMMAdT9twku1VKQok7H" : 18017544366, + "3P8mshJUWLmozhQfqzHRBgJay9VhzvxTbAQ" : 9999, + "3P2C7pSFBJ4YtdPjueVCDo6ovXm1mvJnjC8" : 5508396461102, + "3PMdur44Nq9s742hw4JpK7JxoyvmZU6wyJN" : 17500000000, + "3P5qnkaZ6RttJJNVwG4UNcPDbv9REPpYyR3" : 227868889246, + "3PLeMegcztJ5NRZnMpwwXMkNi6sbXscKeHL" : 73490547959, + "3PHSxCMoifSW7D6CNXgzRUCd9Jnm4j1Xw8L" : 43019114623, + "3PAYMxprKf3w8zpVt8NsKPhnWm5o7x8owPM" : 284591214895, + "3P65Gdv6Pfne1CiCsHKCECUwSAJeBp1LE6A" : 271272487198, + "3PJCh8EZ1toiXRM2schLUNG3Zy2L1fYvsGF" : 166786127184, + "3PH7HYnSnJMg3ENgd3Bg1PpeS5Q8z5sGCzn" : 544990719899, + "3PBvB6grMoGfCgFTNzzKmAYr12P8sbrQqLQ" : 17500000000, + "3PCBDNkgYGr3u2BgvdjGw2L9RYdCU8yK1wG" : 4589930483394, + "3PLsSMNGuMqxmBSGKBZ5ZcWbuBqQ2JChkWB" : 17500000000, + "3P7B2p1ULjU7tGi4ho4u9dhGEbb2TGGbo7A" : 61166244380, + "3P8L5ZfSK3ZaQHfPWnzwBS29gdHoN6b72zW" : 2697397976, + "3PDrSZkLyyyZca9eR8Mh9bLuKrdJYbjVjjc" : 45000000000, + "3PAXaBxXFjCwGLEqBmMx4d6TRuNJ6UYfMat" : 64446094679599, + "3PPLBzbsA4nzvZayLFP1Dwq6EbRNMMvkDGL" : 187234170, + "3PGUn1oCkLYz4UdCfWLKMdayRVQ43dcoAXs" : 9999, + "3P2vQbsggDoCkx7YjVuZwMLjFRvSMfDwy4n" : 1455244182150, + "3PGupGLiZvJ4gNEWNmzCQ2wnkY6wcWX2GqG" : 27331422229, + "3PAmSt1VusoRqWvdLVzWRyuWqBbg6f43zte" : 428647016, + "3PEgxrWeLukSJwVnLqYeUr8biPmqqs9PARn" : 82292022692, + "3P3XAVNYA1sDJEUd4T1qF7gqpEaiBxz7ZwL" : 542544974396, + "3P9v6SjRKUZPZMG1aL2oTznGZHBvNr21EQS" : 3257982571243, + "3PF1nZ4ryLiTwoMs3RHUTDZ5b7Kd4fmP6GX" : 271272487198, + "3PAmHXZPNcvHk75qbzbPpJtgN8gVbywg7Tv" : 584797672860, + "3P6tjwy6EEbnQGZEpyMxyaD2boMaqcxquPH" : 370700906841, + "3PNigWPadnJJVpaT6NvrFCgL7bXhPzQgjno" : 3385472438581, + "3PMQATFRMCncdHgzmvgt17wUR1BXUk4aPb7" : 208483865318, + "3PJNFffjCAmWKJzR1uxJ5k6iCTMJVdCmeML" : 277459996997, + "3PHt9x1kc2KEFAxpXpbfnSMTDiQspVkXrA6" : 24212724872, + "3P4FMoymp8NYUam3S53deFXLsF4MC5w42pz" : 112742336553, + "3PKuHnNjYdqraZ85Xpd3Mrzvb3GFgFJDHbF" : 331157897330, + "3PCZSZaSvzApMqJYWtqYyfeCEfmLHEwfe97" : 1660330142792, + "3PKsojcHa2RDU7XvLMiAeqySZoip5KawKtQ" : 8426754499678, + "3PNthZdJQJRPK6b3GK8p4LWiMjx5xLh6c6S" : 25017789127, + "3PPJtBZbBLsQhBEWLSQoZhq75HK4oA1r46b" : 980586169749, + "3P3ocygEJBoaExQ6snVjMv77VsghCXAM6Ku" : 72200000000, + "3PNdKHnZbhpUFhES89H63yfHdqhTGKGMLpg" : 5558228019360, + "3PNyfS4dEiuAWS7y6p9wKoPeBHKmausVmWf" : 829881085955, + "3P8nm2hEsNRqDDr8LDotwTQWKwRUd7gQ1q5" : 17500000000, + "3PBx7Mj9gU53K6osxNqi2HtSMNuXLoXi9bA" : 907108371055, + "3PDUucZpU3rHnptkg4svDPWNMj5Wuz8tuwy" : 17500000000, + "3PBppvNLaRkgoYtvVkG1E9mgQpjHTPs6uLo" : 2737307411837, + "3PDK6hPkVV3NCDp7zQZGMUeDg8qV31wPiXD" : 298399735918, + "3PAPu9T4exd8JWCh29RQKnxhRuWNZqAiCRe" : 872990212875, + "3PGWEovUMMnyK2pGvhwUX4NWUA3zbcjUTAe" : 182744560673, + "3PMhcWcWEkywLTSYXyfQF9h5bod4wn7zK76" : 2500000000, + "3PJe4y8HwFF87n8kfy67THHqAX9BunwtgYC" : 848456260718, + "3PGe5KV8DJ7X3nynb3ayvzocctTf6jw4ctf" : 3985827419227, + "3P2Yiq7NrS5cQv9tYrAm8D66ZrQtRYsXXEw" : 1951925909673, + "3PPJr4HPMFHDZ2Y63kA6uHeSfBXtRk1oK3N" : 82818121800, + "3P5NEw7Z9WaeKLHazCYTtze9Q3FSmfiai6x" : 690899471833, + "3PQzwkSDWQRiumEAnSqaQbopX51ayRf1Lsg" : 15000000000, + "3PQMiW4PKkm6JvMnFgEdZpfL8uo89UsgHGV" : 9999, + "3PH7rpCifNWpvFymWQNWbKCWsbg8Sjp1Z31" : 229836530772, + "3PLLU4zGzyD7aLwaVcN6HYVnbGdttKhRUqM" : 7200000000, + "3PA54r5fGHG9f75oyojbjtYdJMmHL1bPXaD" : 23545083347, + "3P463MmFwr3PLbrHtMzvmn29iD9btzktjws" : 8463559631, + "3PE5RjQieHh6wySDHTHBYtY84D7XgwaTZrM" : 10000000384, + "3PGvrr7S3A9rELLYgK73wfYfn5pG8wgoX5U" : 335931200515, + "3PDFk9n3WZhHe1HbU3b2zMGVumB8mPrXH8c" : 20233580042, + "3PKFqKynDCBPDybu6Ntqa9Q1aA4MwLhAQj9" : 71212371865, + "3PMrz646XFjU1p6g862oXPaPEmKBGAPz5i1" : 102929412626, + "3PJyhtFwgeyj13FLZPHyKL8BPPWmN9G5gwG" : 24010539693, + "3P3RLQbniFfqJDtD7Pr4oA48TTbRHUbEuup" : 308099735918, + "3PL1c45r5UsCKCbwqEouLiG81v7kpwvoL9X" : 9782781554481, + "3P27qXDEC4r1JXPKM45LihLaNBjyLnMx9Uo" : 10692035986, + "3PH1hjyA7ZrbY2KJcYUDTvQ5sQ3L3AxqaSG" : 8156378845874, + "3P3rFPBoJZsQnWMK7JYr2FGp8wriKopv3FY" : 2578330550682, + "3PFLamGjZZyfUX1HimZSGXnaKJFuCrW4xLJ" : 26714297246, + "3PEZLvaQcswbgR8b9p4XEuAWn1DRgXRX9uv" : 17499999999, + "3PEfkNVbPUYJtkQCK4W2fHYmyJo2Mxtg8Zc" : 1088008840755, + "3P5vpsh2ChngpYynR2zFgS1B53YSrXkN1SV" : 150609116350, + "3PLiEL6PXQEZJXiggVwS432uw2pfZuK31da" : 120000000, + "3P5dQFFs51NfjcPgNnTCx9G5CLArF5bpobr" : 13283997359, + "3PA9He2f3r5fT3F2mfBZV5rGyYrtAkaDAtm" : 48704083555, + "3P8sxeFUXuA2wxy9MFe9DJgVUkjmiEdyYtH" : 3018665309180, + "3PAmJVt2BU717kuMMhzeLbUYTaE1KkHYU7W" : 81945008513, + "3PFV6RpMPptBNGeg3oqE2RPdc383z3macFN" : 1356362435991, + "3PD4gT5d3ZvaHnqaRx3fLPtR9XCne5TNpRK" : 1927420298857, + "3PESBoqKCi2ceDwphoP9s7gDRm7AWcMBGrB" : 23777949496, + "3PLXCGEjzf7rRiPLnYe84EeawgQA125gfyd" : 6324327895614, + "3PFT4XPZ9DouHfUm9beQC7oZ6o6QoXM79ww" : 100000001, + "3PJBbE5kKBXJAFi2zp6wpUmQnyiJ83qnfiY" : 444654905763, + "3PBk6bu2mC1Tca4qxfSRv1SWueNsAN2FwvB" : 1497482676949, + "3P6VARghukz4Azax7g12cP4gy1nrKRConZx" : 10724317412, + "3P85uk5FrhJgJhM8ovLEH93fPjdYHY9W9LE" : 813817461595, + "3PFWwEgdseukToWm25uFbfYbqfGMmMebxmp" : 16624494009, + "3PLLVQxFxarf9F6a5kz9xuLtTDpBQEMzPWB" : 340716545600, + "3P8Ma4afmkXtbC8MeP5zHfZ3ni8eC16f69L" : 257674513408, + "3PHNokTJ6SxtqbarQHruciAvu9sophndkPK" : 572172223116, + "3P8xz9ZK33Mz89aQjHEMFgUfxpKQCNfPpVb" : 187178016167, + "3PEst4cKskPAe8Hv1RZcE31FGysqi72vAye" : 1022348603021, + "3PFUpeFMEzSa49EtRcQiP4tFoSMn48MgSRb" : 16078157552745, + "3PEUaxKPExNgqx4Vr14DCN9QgCCMCXq7W3U" : 162838906070, + "3P81ERCUdmLyfSY7xe9d8smmb8Pz5sYLVaf" : 17500000000, + "3P9JPJpoDveGTHiCtQsJuomxcnpyakAVvAX" : 19143596596, + "3P4StSt2qd7K9mGu98LRJcujpNNUv67jaB4" : 18802107939, + "3P8cQEGd7CJFUDWFTA6T2aj7JAi2ec78w7C" : 41830250079, + "3PMoudRCeuZ7jbAzjoaGpVN722tZknA4vQC" : 2695311674690, + "3PNj5SiqvjRrNk7RjfUmSK5HDzxyF98vdMx" : 1183553507132, + "3PBjz8FvHMJWkE8WsqCaVm48F9bn2Lro7SG" : 94876864749, + "3PQ6UqkzXVvfjUmApnfs2AznhPyjJqPZTTq" : 14872206440982, + "3PJHGtk8gtuc3pezucWLcSuY9cxMg7yESSP" : 138136243597, + "3PRBjBm2qAQF7Y1UwJw1vkgZxmokXnwV3Ny" : 271272487198, + "3P88WNNcAaXb1yhCKb3w7cVCnxG6Sec36Yw" : 196210429148732, + "3PMV8b4FNZGZWWf3hQTBRsjwQE3FNNBC4ud" : 542544974396, + "3P7yBjxRVG2WpFWHJ9qYGEsvafR8peGFP9T" : 271272487198, + "3P2aWckPnKRn6vPZrvCNPaNWfBsBdwMCf2v" : 330016949927, + "3PPcgc1rp2v3uW5G6JkHDxMa2xEchBt1m1k" : 1662128135929, + "3PJhRv96FyuWn9qxUky2G1emnn3xQjZCM1r" : 821617461595, + "3P846xT218qiYk6itXEKwDfqgEC683whKqP" : 100000000, + "3PKwTFJx8uEFH8PVDhMfBWMQFyeogWHtx7N" : 947169756328, + "3P7xSheJHQWdB8cFXM4XwYavojgXuwsJTPz" : 225299456607, + "3PPdbW1dQACxQ2aJ1UUyYCVdZ9NVmtqh1rY" : 628723008698, + "3PHoLickXt9dm7iSSB4SnbeF6W2dW7QggRR" : 1629673318912, + "3PC8mq5KgDwYnnGqiaVVbiHbMdDhxEPkJnc" : 10335665320, + "3P5zxJCMrPYMKX4apJrUxoPmFMbYfKza48w" : 1176336990408, + "3P2UbFRc2XPECcqTsKiWCc3bGSTbuG5DzQy" : 220597418048, + "3PJ4k71RxoqK1NnWp1P7q3oNcHy9EZCND7y" : 272357577147, + "3PPVivhxQjDKHm5qk9fswVK4hZGxew2mbt1" : 71600000000, + "3PBfitTwCQ7bAAxEopuufqUuAkq31H5A8js" : 712895741843, + "3PGiUWxV5KTMxjvGymhY5qgmdkSYuw3iEWN" : 1003353426141, + "3PBUgavmooN5rUhrsyZFSUEdQMqHiotP9ZF" : 17500000000, + "3P39YKWE7nZ53vgF1HX3heAZUcx1RnfrR5G" : 65003894901, + "3PHxPrUDEMGYTyZZNjzP9M3VUAekViVqsXK" : 100000000, + "3PCprrVoJgRDBUCsH6w4VJ8Rrh7DuEraLEF" : 520843175421, + "3PRF3MqoDmLH2sTCzbz2HPuNQDBp4F9xHyb" : 7800000000, + "3PPquPdxh1iSKsCC8q11Mp71DNoPdxv9ifq" : 250723185221, + "3PBxKi8bTLXqEfYJLhYDi9s9kqmjpjyPVFm" : 7595629641550, + "3PLsCBJFqNTNt43TCfHDZvnBCXp4fnGhzqf" : 816317461595, + "3PB4ocRpcDsGeg7HyUCabFA1uCsRHNPTiQe" : 1478915262194, + "3P8q4Vvav47bXEoPhnHPbyZoSyUbt7ecqgi" : 62809212547, + "3PQC2BwzCsSCt8TzFqGYQMEBS46gpqFdhSs" : 550344974396, + "3PLqFFPeUv3jZEfqXeCSnvS8tViXnRcHix6" : 730836899375, + "3PR3mvy14KvRge5EAiFTVR6KeLFdG6h6kfw" : 976074389614, + "3PMFbPmuPT2rvrW32Wn5V1dxNh74GoPfsbi" : 1078513541319, + "3PDRNjGYcP7ztmRnmZEv3bxMCR6rzX19Bf2" : 17500000000, + "3PQyDexh95gDdN5P7pcwtXdS47ntbj2atmn" : 45061440450, + "3PKCyzsE2gpDjDt8Yhe99Eof15hwboMs5wQ" : 78500000000, + "3P2NMauTk6i2rHhfPzbuYMdjdjwHe341nxM" : 2722570694725, + "3PDv1ZKZ2U9kBEB3RBsAbNVhQVWvUPBF2vk" : 36080156790, + "3P8imcUvfZRYsFh9FF9mXupkxrgBhizzki3" : 295732911030, + "3PLQDqd9zyWdjhHQayVvnzVdWjdGvxBZzd8" : 76200311620, + "3PErXmeMxkRKGM5GHBq5NdFayrhbTNJtGuQ" : 527093700434, + "3PHGx6DpyMPKuXqYyvVrEX9xAwAoFMQZqYt" : 58237252279, + "3PHLhEaqDx5J7MMcrG6WocMp2QSzPqxQtsz" : 7800000000, + "3PQJurh3EWRKiW266sTJaLx8BPEhdk4ZCt9" : 886681251656, + "3PR42c8rjJG9Wg7oD1CDmGNgfcjPQ6k5Ktx" : 995019128529, + "3PPY8NJvekp7n814vMZYB4W1PiKX46pBGYJ" : 7800000000, + "3P8U1WCeeixk8Pvkpaw7zJeiMmWTyFrujew" : 10512724872, + "3P76xJyjrcZAS5Gw4achsGgicHD1L9JhYV9" : 17500000000, + "3P5hNES2juuwzZz7Gyxjt2DNLsT21up35rm" : 285492048432, + "3PC8YA6j81rUeLXE4KKioaEHesoeGdYn3Fh" : 550344974396, + "3PGfohvVPcymCYAzTES9bYetbpRFWuEekx6" : 17500000000, + "3PQVDMpGYHDpKz3o3JVcBV5j43fhQDBkb8B" : 10000000, + "3P8qdmC3zJKV3biWGi9ZmadM8jZfY5SujyN" : 1448768696, + "3P8feuh3ha27ig18U2dGSstLKL7H9F8JZGn" : 61443906, + "3P5Y3C9nsnfKsAzFP3pt7vAjeLoHbRgJsrG" : 69254497440, + "3PCDKwuPjMFeeW7uWhbNVsqzb55e3FVDaeP" : 59572794551, + "3PFzJaaGuqATwNURuBkaFSom1FStacMzS1T" : 300000000, + "3PAy5ymSTTwjMuPtUuijwNB1Ub1b71Qq7nD" : 13985995622477, + "3P3eLDY37zjTevLbyLuAhigupLCsmtuxDrZ" : 129140775806, + "3P9sig5KyzuSbNsiMUBsSRPKeXAJecotb9X" : 1943077719028, + "3PFiBHo84Rm8kyN6RPm2p2pYTzRvjUo13iE" : 27435588307859, + "3P5JP7sskGSYQ9QJ585pTucdFwncoHBhykX" : 67306530821, + "3PJ3xyvaERx8pQ1RmbQvfVtHr8B3AYsuqXP" : 596938736798, + "3PQNrzayKZt11kCggLz2RRnLPBsLCs1Hdom" : 10300000000, + "3PDrR2pso7d5fnD2VoxCvt6UXEH48w7RLtR" : 219075265763, + "3P5kTE5pLAQBkf85v6ijqRQQ7tYFMjanEuS" : 585870408480, + "3P5t4JumBDKCXcxKAm3Ht9PRDchK2rYQ5Ud" : 18650899488, + "3P9gPAYTFgwLvoXS2FYN6ccmXCgS2oqVCht" : 844189012614, + "3P7wWxLdKHVDjLRTN2bKDspCcEpgGkbHBJd" : 7200000000, + "3PHK1oCHrfD26pXTvgru8Rj7i4pUEfWoaUQ" : 9700000000, + "3PLyT2bw1prRV3jxtAnp93xqTFo2RqZN7Df" : 7940573890, + "3PLsmfUqXoqoSESsZ8NLY6o4mFMD8nDJmv1" : 102000001, + "3PRAQVD7GAPiASEQCCmdpDo6Zysq43d1aXt" : 89968755348, + "3PRAETa2WEmDYRDX8QZxprh6HoDKwK9GqUa" : 383262931044, + "3PMds182NbfDJv7oiQQUZRAFL6rQvXMskAD" : 1250642001193, + "3P5YJoVA1rfj6hfkqqUkPNvpyDtGVnLHBoM" : 17500000000, + "3P8xG8ZukYrNx3umK716eM6hufqpgMujLgG" : 17500000000, + "3PQBJaA5w4GV6vkLPFL66o7uytMpwtrjKqP" : 75989744313, + "3PLJsmMdXXLnXDZX1m5mzB6CNLzKdKy28M5" : 273442667096, + "3PLYpwfwU2BSyceajNGoy4E11mce9R92zTV" : 16394083241, + "3P8Skxj7tsWfG2CTGhLn6zAi7tGFV6Ua4K1" : 17500000000, + "3PKVQ8kVvXyyV6ZteeQjSo6FAsxmsLkYeBp" : 303609001863, + "3PCu62gW6pnZ6Wk36Dj4fEehfddMNHS8v5p" : 324299196886, + "3PF3s2maMzhTCFpCzXqJjqRxegpVVXZEWV8" : 170422430626, + "3PKVCZEtoMhd2efP6vxvoWcGRe2Q3je6HCP" : 999, + "3PMMa4PEmGbyAfo4TsTEVRyebwQ5xSPRRSr" : 31342647711835, + "3P5w7EVe5ExDPPojpuDhwsziFdA6VFgAfYW" : 417181603549, + "3PNUGo9L4WQ7L2J3rpTLpufYvqFmdaShDb6" : 17969683355, + "3PDAoV9xjMa2BnFaC3FoL6GqH3b8ViQy164" : 68699999999, + "3PDdCA4pRcwpFM1wS4c7HNAEzzWemccXVVZ" : 124989335703, + "3P2tU1d9kSoFX7SSBXYLWByPi3GGmDqYZhb" : 3419437261305, + "3P5hkq6rscGUhdrj4cip5iDf91pdsT3LwFc" : 21363624360, + "3PPcg1KUfEMAmGEV79mxNTUVjnw6Rmm4a5p" : 408165638406, + "3PKBkdZt9343D23UvS3HbaKmSgsHokE1e75" : 2500000000, + "3P2KxTfy8SvoC19Dg5u8zm5BXEhu1r9EWh6" : 165227248720, + "3PFbjXddQ3vWHwZo6y6zMW3dKaACz5LpEvm" : 540637712472, + "3PNp9ZuxkVktpeKcuU2oJxEx94kFAbTwfYz" : 45628712189, + "3PFkDh3VjCgtiJtYgWaNqgrn37eRh6bCmMf" : 622570358118, + "3PMyNXStm76JUYAHNczjJrkuyG4M62M6w8f" : 14113969334306, + "3PAzhcQaSVm527stLWmUE6STPsJyr8zFY3j" : 650384214866, + "3P6LNfxxirh7hYWnxcksRKDqnS5jDwbqhgM" : 1000638742261, + "3PEYbTBe8tfFQJVnVsmSNzvSLpXRKrJVdCM" : 9808662237599, + "3P6ijWeTA7ddQJmHyX799PPFhWB6xxop1Rc" : 10300000000, + "3P7kvi88qL51QQKThrhVgkroKXRMQt2DFeR" : 81981801119, + "3P6MCSP6nuifqS9q9MqbkkBzHZRmzT1h9kD" : 10156999999999, + "3P9WQyU67WF9e8JE8yxRLhduhic6aZEcrpo" : 17500000000, + "3PN4LyNotw7UDcg7CeFtt2E4gKDinwXhpt7" : 3012752803232, + "3PGcrYSyUJemgjkegFjsKBBiG9DCa8qtNLT" : 64400000000, + "3P26i3FDk6eMCV87txaCnakXwK2kE9vfzdw" : 80425904530, + "3P99HLFCSCzuxHacg72Xqr82gLazu44UZSB" : 1211311668544, + "3P23HcJ8wvpNktk5PxWNaxbUaCi1SMhyzx4" : 42696933123, + "3PL2T9zaFRN8wK2F17qchezQyCoUtc4V1jz" : 14757379734, + "3PAc1nMnLQ1u1VHsBdsAfGk1MprM23NEtxE" : 10300000000, + "3P5dPxxX7UHyVPy3jNRn9LBEFkr33QMAdAT" : 64700000000, + "3PKxow1Kucrh29QC2n4iwXRNhS1aCGUpmyj" : 355369882805, + "3P8yuUNh3f17tJttNoQQ8XvaNAU3URQ2w7g" : 410612076318, + "3PEWm5cC1Da2ws2ZTYMAVErePUqpq2H9XoC" : 244590879753, + "3PLa3vgqhEnBqJ3BCTeWvDwZwHoXoucezFw" : 17500000000, + "3P61fzMVWVoLgzhhqLKXtKFk7PUDWiB7UiF" : 233133071594, + "3PGgWWV3X1ujDTdUpgVt3H1bcnWo9CjoGV6" : 695572709001, + "3P4xivjR6zraKZLqWL3k2NFj9EtNKRdQVJd" : 17500000000, + "3P4p88nihZ6Y32cLbHMV3LHFpXiuUJ6wvab" : 10783997359, + "3PBfxTtGZvxmtgij3E41jgE7yRU8mijGrnv" : 17804909796125, + "3P5RxX63AHCWhjcDqs9Z8U8EpWswB3Rcm4g" : 3658973608822, + "3PQF1ERLpdCVmZvEVkTiBWNdBEMGtSvcKdz" : 42672598611917, + "3P7wPHWkMSo2sMGTNsrBLMvwCKJLUrvk5vC" : 399945802416, + "3PNWpdrXUe5GinzH7trnSDDCktLTv5PXKwW" : 62370538649, + "3P5E6pyHzpY7SBTPv9XWH4fAXiiYv1VUjBa" : 357506421943, + "3PDQrY1dmawdRvoptP4iHEV2DhRcPtVvvpK" : 15670721645, + "3PKANczZUwoYaWtbKnSLpz6uGaAmELmYbiK" : 9700000000, + "3PJJQCMaTbbsDLFFutfbTVG4nC3kq77GhiQ" : 50052698464, + "3P5Ph33Eqmew2GuFd3uQx8A66xcu6pu6eTR" : 6142736974849, + "3P7gFMLWBNYgN26XBmgXqjYuP2zBXQXzJh5" : 1642634923189, + "3PJncxyVMYSo6FjrNMmzdy4QhjhvKbkLyrL" : 54580940417, + "3PEq4jtB516JMTzNUHhWDGgRAi8nwq37atc" : 29355976233, + "3PFseoCSRxrD8L92QqaEH4hysKpZpmjVkxP" : 34126170295, + "3P6bdrPaXzHFK8u6Hp7Rd1CcDZMPmGFiCus" : 2204917424661, + "3P9V1RBRQ4K4nSLQWwQHQ9LNG3nbCnh1Y6c" : 7800000000, + "3P9X9yHzyVTDB94u4syn5RAJpL83BRq3M87" : 62054497440, + "3PLkcJar7biPQKAiGdU4EPWTn6DPAhqYnbZ" : 123237722392, + "3PHDxjht1ZDb6xoGoZxVrN9HwGApkJ5ABoo" : 7200000000, + "3P7dTuLGKY1R6M7xFfqmYJKqdcMTSDhznJR" : 29778267239, + "3PGBry6y4rJ6epNg675c8SfsiPGSMctNzC5" : 1228401070249, + "3PDKuBuTSag8QGMwwx8XmHJNr8vdDaH7UgB" : 322171714790, + "3P2W2Ra9TQmFQFRcEbBdqzCjEFypsnrDjf2" : 5653270168604, + "3P7UPmQHPKB6Q55hp9s9cwg8DTixWqS9xPi" : 52448419231, + "3P8JdJGYc7vaLu4UXUZc1iRLdzrkGtdCyJM" : 100000419, + "3PMYauM873JVbsBeysCb6cHRrjJvUaiust2" : 5108431248693, + "3P7DDFN8mbx1y2Q2vm2BPBgFUJ35BzdUCJD" : 821046971037, + "3PCwe9WfWBi9xyMBFBUUhKRApv771URSqt4" : 9314717750, + "3P41kDdEbPpEzj3BcPffAduJEti5Bwq2JwA" : 159635504203, + "3PNt561fWfHDWEZhcfQcjzHviHoU1XNFp2R" : 1184382732, + "3PFhoJYiDADwG37SX5wyWZ2M2vAnYPrZu6a" : 488290476957, + "3PErNnF92aBkG8b9oBgqRqVXdeCXt2yooB1" : 339063481749, + "3PAjT5v2uVQGwHjabMT9UdJShx3Qivkb2H6" : 398399735817, + "3PAbbb68HfdCeXzxAnVKeHVUpftLfXk6Npu" : 2500000000, + "3PKqRvU1N6sbQTRP4hKrHERsAL61WQLd5Cv" : 15407798999998, + "3PFLKqQD4E3WfqVq2Pmidbnkg7XnS8aZrYx" : 100000, + "3PHALQaaoinSjCVZw8KuUJdyr8hX67QY6SL" : 1874914308348, + "3P7M9t4Wq2oQfojQWJwNTxC9LCBVCDSQJH5" : 96331784780, + "3P4g3eXGwNeunGTuFGTUvjtQfwZv3qr5R6c" : 100000000, + "3P4kJqL67kBM7iRUWnmdUrmRBkFvryCfDyY" : 459306882668, + "3P9bc324bTL1jB3zuxGeTE3MtWiPP1pkREN" : 17500000000, + "3P8xzEWC9kVVb5kfiEweV2qG4KEEPwCbmXT" : 684593188605, + "3P3qHYnFUHF8cQhFrSMZ4NYLGvtet3jrPCR" : 25651249950, + "3P2zZs3WcnpukMipe8gWS8asRdkGV2Sdj3y" : 273198745888, + "3P3uR2hkE6n2C6CpRNFzb8DWMMrjV3npho2" : 753799339795, + "3P9t1jbpKBwJYXHvMwvt3W4WbSTKe1q1bUG" : 2500000000, + "3PMXc8t1YvTXqgLMJuPzG4LK1RXJFHsCMwN" : 831530186467, + "3PD6aYrFhrjEVWuDgCSvQURqQHnin5yKzxn" : 29627248720, + "3PAqMAdHNTbDDynEdBoh8yExXguojwFjM6q" : 326297103344, + "3PFxsY4xdfxLYHawWrqayEaqgCnSh2vGro5" : 8766538446, + "3P4bsE3TKE6AgUx6H6QHrBRZnDFJWNf93aD" : 503290476957, + "3PP6v91JYx5ebMEwmEm2iYraQbvE7tJyfeU" : 4478430874819, + "3P31JQ5BieauvJ13WAV64wAZBJkHaeXjRZE" : 121135808216, + "3P8MnXHoc3age6CN4N4eF7S7og6pqdPKhSv" : 1963461907827, + "3PQHtBXCt1VH7wBCh4nixt7mFM3BKNC3L7A" : 1950316471287, + "3PKigFGK4KC25UMfZYd1nhtiNLZxnSNwTph" : 30174725876, + "3PGjvou8JA8vWE1bqfhatrknD9NXo1HYv6C" : 1371362435991, + "3PNTY1ZLmUGfQSbe9yHWdkebE7NjpGUrECH" : 3807514820775, + "3PFh6fYKYhWz1axtCPwZcHgPYMgJjHrKwdc" : 78500000000, + "3PFsjtWFdyNSNBteTJSTBLxcqWh87cBVJDo" : 100000000, + "3PPetT1tFVPwpxwxhpvNSbBZcmJkE5ihhvx" : 787303452952, + "3P9jJBmSEK1vdA6aFQqhLx2JzFbmKWGaCov" : 44316417692, + "3PE1kxixS56EVU7kAgSWm5SP8VxEjhbxfzp" : 17658470375, + "3PBozi9t6HokZLsKfBtE9wBFj4Fk6Hwxh92" : 64700000000, + "3PC5hR3wwWu2Vp5jucEnwiMXE3nLEDoTPyE" : 670782997860, + "3PNhvw9A4kN3b8eJ78BTabywosaMHtJqGbn" : 15000000000, + "3PJh63XkQ8wHhN2VAsxv5DqVvahQaZdHCEw" : 15228377589755, + "3P6hrGUVo32hAxbJvXTZdykeFCj4nAo7znt" : 265237590351, + "3PJjdyjUZNZhHmqWKLMARiHjgEq9HWefBTR" : 106964367344, + "3P3s9QpQ58jLUG4Xk5nCa1NundMsVvEccTm" : 352274451876, + "3PFm8qbQtUw2keiR1Hkq9Z1ymsXLV6SALA1" : 2968442378425, + "3PLf6AniAvQ8MbkS72iUPhNbjvrfi6iWSDM" : 313372608669, + "3P46WdGkXKZh6bmyiEeenMGLnFVVfWqd3np" : 67327342628, + "3P8Xg9FhD8GWuXnxB6jZbDkaP6E959hwaBS" : 88079952159, + "3P3GN7qmVrfbJ1R92YBMWtqujiUsE7GxE4V" : 955675728869, + "3P68wp5ceVTR16oM6bJsJ1BsQTuD7fWU6uS" : 22208471135, + "3PQRwibhJLcQ3CgpWNAXUmPQW4hdpKGq3ng" : 53521127639, + "3P4ACQnvPfEY45GH6mAFWWPmufsWvUMhUow" : 199183396198, + "3PMTXDYyzGwxHJXoznNbeMNQU42GrRfaStz" : 31199999997, + "3PH7vifBjrbrjSLSkzEwq3pvpkC5LJ3EVxi" : 44973841560, + "3PEBnCR9JLLaDoVxF6babq7a17bYWk3s1g5" : 5533958738843, + "3P8mfGqUy9S2XTGS5gbuLq3FZkSnBK2H8F3" : 234297960644, + "3PDZoaYW59kpsxAFQV6mGpKnkTos5ujmqbQ" : 2971346525141, + "3PGLuf25jcZp8sTuyv8SxqddpRfxCUwBD4c" : 268212050272, + "3PGwGqmNZgkzHBbgzos6rUZLnkdVVL7GE43" : 17500000000, + "3PPudVK8uQkXipmzXwPSMLowGAS7ygtbC6f" : 38376421699, + "3PFaZNDT1QWx6spdQ8sFf1QjLfgtSkNLe5B" : 11283341064, + "3PKAY1V5Em5uBM5dzjfMdiYD9FnX49fh16M" : 16732541840, + "3P9n9Ki4GxP4s5m4xkSjPkKcMS2rWFK3NPN" : 1377653359324, + "3PE52JvcsJ9H8xuLuYedCajCd14cy4yC1ZE" : 2500000000, + "3PE5eExGETmsuxUDKK6v12U1oxvoh9faunW" : 5448375193708, + "3PC7TKXB9r3DLWNMCmTM1tNTDYvaqtw24Tn" : 151361693343, + "3PAZSSoeMbv8Fi64W18HN349tPgiKgeetYD" : 906552021525, + "3PHKc19oMzRr8U26h8csL9QrJqKkwm3hvzC" : 53918088387, + "3P6BPixEyvYZWEfaHGpdHadBTk9WGnLJD22" : 45800000000, + "3P4oWQ4SCH6CB4k2QohoT4ZizpHzNaxAyTn" : 69826669724258, + "3PGCq9heKiAn8EWBpU2aCm8KZ279AqLiCu7" : 19838744200, + "3PAWwWa6GbwcJaFzwqXQN5KQm7H96Y7SHTQ" : 6934047128827513, + "3PEVSy2w768MsAj12ShERjWwEUYneDSD5xz" : 135367994717, + "3P5EzZqCnPY2pRfEuzJEeyMLc3MpUtmf8M8" : 16085089949, + "3PHTp3wdVA3HxEphmBRCqFDwh5oiZCGMUHT" : 81381746159, + "3PQg6Kn7uL7n6Z1zg2NyPUMzzXH9Ausi1g8" : 286272487198, + "3PGPu8ezz6vMsz9ZZDzshGfWNxbvNpBFLDY" : 86348908843, + "3PJWT6JKaaMNy9zKoNeCGvcCcqwCGwFTmi1" : 1392443590334, + "3P8QyniUJKNLkxqXqY4huCBuxNiRfucNoqY" : 15000000000, + "3PDenrzi9AtuUUtxiymn42EFjXyM1tVgwrC" : 2113703890327, + "3P3h5v96F1qLyJBiMf9sByBdGhkKu7aeWFs" : 9563135531, + "3PLf7kPz7vLf8ZDtrSGVticUjgLCiLpAN1e" : 57645739908, + "3PBY4M7tT7hGdZ6vpAzdwxMCFzjKs99GRSQ" : 35677084340, + "3PKaLoAsmZH8cbziDF7sdb4y44FXuLtY6NQ" : 2500000000, + "3PAymGF9ZCrpDD4xAcN7xk9yk2A4KagMs8V" : 1750725730248, + "3P6DFn9briPL2mufCKoBTDDGCsus94gSQ56" : 1156828169883, + "3PEVpnMJAK36xcA3rsAyM1CzTJfEXvCXF1u" : 70612747227, + "3PFMjFtB3tGCrN42Q168GHcm2ZG6tKFfpWp" : 276168889246, + "3PM76Z2awCbMMgTxKsF3qYPWc2sML7gQx2z" : 550305947144, + "3P9EhhQfKDCe1MDAM66CB7VQgdo69dzhEZ8" : 942914271984, + "3PCHxvAVG2vDXrUHfXjaMVji1VTJR51Jqom" : 582454522125, + "3PHwSUNbupkt6uyrAfkWk4FbXTDEobz1rbT" : 130279527970, + "3PD5WFRsRtLtqj91ykPyotAwhKFnKjKnEVd" : 434713199102, + "3PAKogKCWgdCyAsQhXLJn3pvdrmR6iVNnc8" : 679800188734, + "3PFcJ1QXY6WKpPn5iMRwrsgveJUmpywGx2c" : 101400000000, + "3P51cZwqxgmcQwkPxkkFWvbGzLqjPprARti" : 47339973592, + "3PLFGvcJfHd5MmyRC1BvhWvhn1QaY9GNGRn" : 48829047696, + "3P2tcAYuGFvnoH12pgtVRhEVKAn3qWUrd5V" : 15651053969, + "3PMQAi2DzPq68J5fue8xVHetPCLRbKxovgV" : 1530762241402, + "3P4ftCJDeExDu9DSAwtvq3Y1W4cnifsmHhg" : 9700000000, + "3PCQ3JksTYriRZoCJBTqzWY8wePLbrEZR3p" : 109705518399, + "3PMnCqREnTpX6cMXXF5v66ysCJjVZwkCfW1" : 300605264887, + "3PPSYc9JDVUqBvknzyEzsSbiKU1YhJ945oJ" : 17500000000, + "3PNW2hxFPChjqkZL1B1HTktrMkJpGms14zr" : 52815890869, + "3PN59VR6ZNZD6F3zhD4VfsHpYQHADDJ41jd" : 9999, + "3PQCJMpA2rH4KJsAHYUamWukir7bFH8yvn3" : 60765953125, + "3P2FBF1MKeSawdmunqbN3rj2hA5F5wvikfH" : 9700000000, + "3P8JUJcowUmRgzBaQkCcf88P7fEo4VtL6Vy" : 892201180182, + "3PNTUXKTjp5tt4ULfWZHoQ44jE5T12eHAyf" : 69100000000, + "3PGQ2iJ7eq7hJXvoTCs8wW6yGpGPEUe1wDf" : 1741856212507, + "3PM7Mv5ZKBFWwugNSCXEa2Vc7NUsgR57qFL" : 2158243908149, + "3PGeULEx4n61TLebfkAmR4j6wcFSTWoqtPw" : 1006744661013, + "3PF9dA2iA49NdMt6Fk2mzYgQcTJNH6ijRQo" : 229259322599, + "3PAYXjhNL9ZwFbNqqMLBSk5hrEfn3fYA1VE" : 57454144247, + "3PJnt7hMbTfuFeQiad11ET5fSx74ckmunWp" : 52394912360, + "3P9Fc95ba6Bigj4cY1n2i4EGhDT4Pe1UDLv" : 57498916387, + "3PNtAwmupJt4hEBTu2MRe2NaeWhMdKuTZWW" : 57500000000, + "3PHHQ2WwCRmQKDGwUVJpYk2ziW8UFHgM99z" : 73399999999, + "3PLGoH6M7gDTJgJsYa5tXMgLZVL42qUKWEp" : 406881603549, + "3PQbqJWafSutZsYtvD8NjCFpusd2xWeHHi5" : 22996418356, + "3PEEM1AkK7NJZMa1u97rw9KcdKuxFLzi3Ni" : 271272487198, + "3P8GbmkC8fUt2vmvo2w2B92RqCPVxHm9A5u" : 12062466613, + "3PJmeG8E4tU3JBbVTY21LndvnVvH7WZyZfr" : 62698219008, + "3P2rjHy3NPeVtEqCSsvfV5N9kvz25NbeTXg" : 57274145429, + "3PFfiB3xMgG5De7Z3advs7qMHBVqxU23HsL" : 17500000000, + "3PMsgBAoyWZvHnzPuqu765MW6Zj8Hcqu3q5" : 572369557574, + "3P8whhaKaKsJ6D7GfiGjDP8ryUz8p7PSrWs" : 145936243599, + "3PGU2NCZusfkvbW56oz4RgHLAQVmsEEqCEW" : 3060924578064, + "3PPjY2iXypqkUgpvXDu4grxppvtpLC9MuLy" : 83881746159, + "3P4RByo4HxhGtG4b5WnJt3m1u8oiE2HUjfc" : 110959333789, + "3PKDvNiBBP6XUXUYWLPuZbNoQQVpKGv47Fi" : 13225449744, + "3PAEc2st3sTJ39ybANaPn29Thr2XHdS3KvY" : 73168415408, + "3PPtZqyW5Cqq1RCJ3z3xKN1oYXHuonorSig" : 1865897216443, + "3PNU64uNqwW18EKB2SA6LmRPmsMtaSSttMz" : 10000100, + "3P3FCsy5SvhXwMxNWFxLCCdmwyJhUfvhYSt" : 35115783098, + "3P5agzACndG3oqHwuPDbTbVjZmAJcDUa419" : 95626476313, + "3PJieBJsGk89cZtJXGs2ojDaicZmPjaFSbW" : 28483611156, + "3PKpd5CZcJM4QAnvoehB7pezdZjKqRAT71P" : 85935054857, + "3PLyafVvy5ic5gzzhYhiSaQvZikJqXyTiNX" : 2500000000, + "3PMQZcbAiGrpjX1r22YNQfT9BzsfJtFKJV1" : 37138119490, + "3P9zjxieonE2pkh249b3X2cKixZwAR8DTDP" : 1302079161966, + "3P3K9u3r27tabXEWArkJFcFhXrGqZQxVrZK" : 11393444462324, + "3PGWsdUWHJTnscBC9AQdTr16nt2CpKBHK2F" : 2500000000, + "3PFex5TNTjCqpRoCdjUHC4SVu3rR2hYoV5b" : 13700000000, + "3PPTYaLGdA4zzf3wiM4TcRUTDMxWS2eeLo3" : 17500000000, + "3PP9NQjWdS3ty5iJW4nZonuGp27JNFt5zAL" : 606672100342, + "3PCU9Lw529Ybay1zmNacsViVmQGcNkxwdA2" : 10990164449, + "3PCAZ4nNWVMTytG1CXBsBaoU48BjYZ9pFV5" : 651053969276, + "3P6cYhaYXkG9RJScmiSm5kkt7xTsUDBjJAw" : 211379815143, + "3PEc6mMhaH2c37dmww4TyuUrZzribepNXiz" : 2528259580687, + "3PH3LhfViYvsDPnQaM3CgMmKmTrSMyeGBT4" : 16073810860, + "3PETtmLuvtgF1mxieSshH7Dep4z5mbuLMVZ" : 230003587382, + "3PDhQUaQckWpAw7oPYGiwkJy8VNzhHMk4CV" : 86971082464, + "3P6NqSjAyf86s7tJPaABCc8BEJEKPjDt3zR" : 330739709510, + "3PAGCKJgirmVvVbXKKmcqpjjd9BUpCKqoFT" : 2335443389905, + "3PEfmSVxz3PUi14F8ift52JjRHVG1UFixG5" : 15000000999999, + "3PDYKgrohVvVnJRoboMF1LZJqacKa1ghVcW" : 1087240363777, + "3PHiQr8Lpz9rCBZJrQAgcjhnrxSnBJsvrwM" : 67818121800, + "3PKnhk35BBxwDLcihhf6BV2KpfHbB6zkLP4" : 271272487200, + "3P5dj9PhC297tcWwHdApYJtiZX7auo6HAKT" : 257972811105, + "3PMteAqV2hAhHc6AGpe5uB8uTDkYZYTE2Px" : 2722397744733, + "3PDd5ECRkNrTPrsixoCaYCWvY19GukBQB58" : 2722424871982, + "3P3MZwR95phCJiJTpWiJSZkUbm3ZiNJunzs" : 271272487198, + "3PFzdSjQxTDNSTqjovVEwQU1nxA1wKveMro" : 11935989437, + "3PFu961bHkBkh7SFS8HXwoQQNHfjpbhggGz" : 1911087545063, + "3PQgeucR13p9GnD9dJ4AYej1pq6y1zED4SC" : 98471004348, + "3P3Y1rtsX96kPKGKq9WRvY2TkjfV2zc1XXN" : 816367422974, + "3PLbSLVxcbA9Dna4QqyUdzaruPMYwWWSdnZ" : 615246000966, + "3P8WS98mTSE6qBmYnx1MFUZQAm5Au3FyFxS" : 668553969276, + "3PA913gwo3EdHYcRomWH85mGmhdK68JiRmw" : 1358862435991, + "3PGsmEAstGvLFfEZJ55PqjLBXfqoZnQfXTw" : 139910793855, + "3PEYCFYoCR8b4pMuQg5fgUh8Qoi5TfgdKuL" : 1147144446232, + "3PQCfgojhdidJqKiwvETbWkoLfhisi2o9Pu" : 406908730797, + "3PQ4gqBnXmBqmGXV9DtmSCMBJwkGSS5zoBC" : 271272487198, + "3P77nXfmtHYEcPY33yf5ieNtXJrnD9xSPBm" : 1115081327427, + "3PDnK7WAoNTMR5S5j9tgYakQrTXK8SkTBrx" : 13564912589685, + "3P8QWpgmFpMWBZnj6v7t84Gqk8qrVR2KRyG" : 17500000000, + "3PHwMciVVnGpS86FBFqNeE5MSpNS2h5DdVR" : 206719896358, + "3P25KYhv6gpMX81AiEPkuBV5Q7sk5HJLNXi" : 9726975195278, + "3PAa6p7JSMe2BMby8NdcEU9urTdn6KSKguA" : 279045359949, + "3PQFkw34xcb8XggHSuyTSCVQoago5Y6fJ7E" : 439626265275, + "3PH2uiinaGGsupcjnhYj7YveVNAoVQnbAAW" : 37598105356, + "3PJszhTXs4TunDHehc8D1pTbD9C8YBkmn5V" : 14827761380, + "3P8pXSmhhov76yyco9uMdq42CKx8NY2Gvwt" : 2500000000, + "3PEHWwBxfNjkvwgeM59fTEQ3ue3zRv4E2by" : 17500000000, + "3PFc2AMRNGsKmKVvRc531ykXDvvyHxudqap" : 28325178516, + "3PJ7FMy3V8P8uY4a9sWGeLLi8VQ6D8kR5sg" : 2052588122025, + "3P4pLKtMFMJNM3aytjUZAPWwxGPpsYKWTR8" : 175526428806, + "3PFRf4B3NPoCXh5YwstSQkCvSa52Vr1UvRs" : 1586731325237, + "3P5w3rmnpuxdKxrihwTHmA5nVQvE73MLibQ" : 191413536158, + "3P4XLgHt7DjhihZKVmWQEAfA3k4aaQbiKyH" : 149438587748, + "3PMMmjQijggFhhiYfN2YFMpJfFa5PiZk2Se" : 1424180557791, + "3PG6Q8ViVmFAteG7BLXepUpwGrfrg9dA1zD" : 122045491990, + "3PKnCR5HAjk7aRA5NdzFKjFVUyYH4oFZsBR" : 83838538217, + "3P79GhejTqEs31ZPtYhDwWaPmUqjZP83Dzw" : 823517461595, + "3PKDWwYBdD2XRgVLRuUiF8pKCUhibpKq91B" : 13514467, + "3PAuUDfmYwQgKs6WMKVTDvWLW2raAtyvKvB" : 270729942224, + "3PKLw9TMJzZENNyZQCNxzbQAjtwCYjf68sv" : 16200000000, + "3PNrN7Yh9KUfXJn1vh6MSSBGNT1H6ve97mu" : 68800000000, + "3PBmsV66Pf5wrf8KMLtJbJS4d5fGKTok1Pm" : 379289346544, + "3PPGbmwrWmKHMT8yLtJ48sMPqUv5xeW7Jim" : 7200000000, + "3PBAmdfjjx9Xf1RT94ZovRkyfaPLhkns4SF" : 837365371030, + "3PLuD9bvmKLuPFXXxdCH144X8jQ4x8QoSvw" : 486642175588, + "3PLmf9wAVuJQhdkEmPt6jP5UCpYB7azkWcE" : 17500000000, + "3P9sYgWzFKWhwo1fkTYxkdnGeV95EUBZSJu" : 352654233358, + "3PKdg6UG6vxgV3WEC5RjHyoQcpigY9XavLP" : 17500000000, + "3PNCqkFmgTXcvM33aKq1JeDcMY2ShbZZKMT" : 62054497440, + "3P9o8wmXBDAe161SZcsDqFrz3y4Yf3i5iDu" : 22488327809, + "3PJdKTqYgrCzCuWKbdcvP85R9K5m8ZJyLjQ" : 3780824878077, + "3PA5Ks53gEu32jEG1NKZgW5vDHtLQpqVNc4" : 1638206336738, + "3P72uvTFxdoesLA2vptZWLEM9jj3KWr1p8B" : 289205025754, + "3P8bepiEKDTQfJhUfAxVLZxcVwPXYZxEWdx" : 1193571816423, + "3PQugZyW3kCmwiLyuTDKapsnqiMVtkNzMQg" : 2519058018, + "3PJzwqFtgdVK5wVYHrSDXDVXWRtHbRGqkSt" : 108733859874, + "3P2JXoiSjnWV5dsJC6Ae69eLV7WBukqyKEy" : 5954529214643, + "3PGoYuWKfx6N67SkjfA23YnaUfmUA46KWjv" : 131132038193, + "3PEirrhACFLmyRf62Dc5wz8hBt5CJuwPiE3" : 71300000000, + "3PCvFnXEqqjcqG2JpCeF1AZWFFeKsPVNDWs" : 2740290919803, + "3P9PKaWedZuc25QHHpy78Kpnz8VFjFs2Q4L" : 145869972435, + "3PJyrrMgPHBjTdRACS9L4jrrUo7usaJ3Ndv" : 17276944610, + "3P5yRx87mQTQybLW4GcZoVQsJAFMXfjN7ie" : 625710649737, + "3P3BcGC23VishBcPMYBgM4i2H754CDC1Vmj" : 4565177784930, + "3P5yXNdQF74jBJzLDdTmmtFKUjpGVDt7wk8" : 10300000000, + "3PJWFAzj7NGbYoG6vdU8kVbAgyHPvZCNqRz" : 859933784418, + "3PHczhn4SLeqyatWgrbV3JxWXPTuaFB837Q" : 2, + "3PD5jk9ReH8GPPvN9rJvw2zPAuZBgDGUDDL" : 3010418312001, + "3P3MUH2SoibxCxRQoL1M6SDoxx51cMz36kS" : 6784312179955, + "3P8bRiZeN7xTveASJTxkFfPMyVweGP6U2MN" : 10300000000, + "3PPV3nmAW8tQEjz6mRuqjJ4WCNVXnPw1dZj" : 21786105298, + "3PHSnXJGRMZogTcsvXjGpHpcJ15vjBPQo9m" : 306199735918, + "3PGsq9rRE1ELKVAEQjBx8QzrFtrauLqZAKr" : 10300000000, + "3PQFE2cjH13Ju67sNhRWxUsFH3r3XqwKiKc" : 17500000000, + "3PQboZF3HDiyr9Rds7gSAd6GxGqFkdS7SUW" : 8521210851544, + "3PGmRUhzUGssLkfVuX5kQpvUM6FVoPkcPg1" : 169154239886, + "3PCWrpDdgLj8kfYPksP187MvtF5Sf4Wav9c" : 596770273151, + "3PAqEDMAmJJSsR443AZSAraRXCRBTce18i6" : 94544622387, + "3P9Q4YGEEK6BQC3zj85GWisxXWdyuJPUxpa" : 130552597189, + "3PFLeeu788ERHkD66rY4BGGFoSac5U8usuV" : 4290965003957, + "3PPZkKqgiaRr5zwuvQLsyZPw7vduM7DGFGu" : 46400000000, + "3P2Z6cq9fgMhac4DMRLmtmpZwnDm2zP2ExU" : 34659442958564, + "3PF8RmZmWrSmsqcxUNvzGKNB4VfP8utZE4T" : 8186191651, + "3PC9mo7A7nTVUSEA1nyqKHwKxuRFtPdDy7E" : 130210793855, + "3P2mKAX7TjWoKW3ijnHrfRTQtFPyA323H3A" : 144798302757, + "3PD3K1dt7LkDJwEuQvrqXqqhj8K9b9xkgrA" : 37837086514, + "3P7auEbAaEWihEVfFSUoMsTHSB6w3jZym9m" : 17825526985, + "3P8EvrdQjYndMGk5mETcdjB5v21SENMFToD" : 9999, + "3P8brvhthFQWFAizH9v6widwUma1orrTsjB" : 1474710945402, + "3PFZZ7mdhFXFZyxeEeGAM7Moatrm7SN9Mpo" : 542544974396, + "3P511dR1wLqiwD1PvDBZog7hGUAGyvg9h44" : 325580989565, + "3PJXkHCKZvUZPNEevW2fwjdLZSkQvpZxHqx" : 8342544974, + "3PFN7avQk6tntWiA38bsV41brpEPzFJjthy" : 406908730797, + "3PBmfxaR1o9CE5W6PPaJNfzjGpqs21gq7GT" : 1364701044802, + "3PJaoUcfJ7ArtbodoyoyLvnDWr3uTfV3LLE" : 37574164053, + "3PCtxRNaCsDDPEYfTKo9htsKggcA7sf727j" : 1081417263533, + "3PK5ajt5MHv16qZpQQJ96K5MpANsLQBjFwz" : 20002500000000, + "3PEFAxAawCxtDNNpoEYFy2HGWCn7W4UADKq" : 1491998679590, + "3P4ZM2UHBNjTkmRye3s82Jo4uMxSHbWP1r7" : 8826802683908, + "3PDMGhGzmZmrVbPTGdwAJj8EZokorp8zCCk" : 2500000000, + "3PL1DBnkHyb7dXRCGbycbFqrTHA5gvhrvMB" : 1464871430870, + "3P567tPng9kEBu1nmx31nHKVZzki7swMfVu" : 514215772219, + "3P83MU2sWhirvGeZsJYRJBQVEHxyHSx6YAJ" : 14853084667, + "3P97sPX1JjeDC88JmkWReP5hz24XznuVSRY" : 99999999, + "3PHjMrrWV3WzANPLBYnWnSQNbtNfNvMLswB" : 72400000000, + "3PP4hNGAJaMqmx9vpdYUHk8owF3mwbUevoz" : 910924657498, + "3PKTM1DabVpVEL8GnynLPaB329FBwNpQsT2" : 299729182956, + "3PDfzhoqTRKcNbJCvJdT2eu8JrGFqTcipeF" : 596799471836, + "3PK4ozjNxz2fL29iYLHmNrVsyrawrvC4SJ7" : 7874616210, + "3P8ySRW1cYdE2pGfFRupszSrkcBTuTPcSx6" : 435857798297, + "3P5A41gJur1iJZaGBY4dTez76HDTkQC6Dew" : 58400000000, + "3P6UtRYRdzJFkYLyBbKEd1fZnC6Yb9n5co8" : 234974065461, + "3PF3PN2DuvpEbyiguJKuaqbB3F8stfygwtw" : 17500000000, + "3P71U7c7MWZCwedMX8jKbRV8qNLxW7gi8DY" : 1356362435991, + "3PJYDAEJjiBznHchVajxG3jTPPU3kXoGEj5" : 12245731735990, + "3PLNuCVoBesWNRUSKieDx4ZNJnHPmQTstWM" : 10266111791725, + "3PJEJomcQtSQa1a9i1gbvRfvq2V7bRncqyu" : 992659075835, + "3PN3Aukv3o2gcGqUYtw37b8orkcmetbb3sB" : 831197658984, + "3PG6dBujd5NbWoEwmtkvaUBCB24jZb96AF4" : 35473430739, + "3P9uyN5gwPoni5T76y42qBud2HV3cA76prA" : 42119831059, + "3PN3RshNUXcHTZLFV4uqajkBNEC9YcyjVKn" : 26845533043, + "3P7pdyhS9TdsGz2idPy4UZgQNqEcqVEV8ML" : 821617461595, + "3P3b2xDNNoLNcL8d9i4PNgMYRzpdbz3ykFU" : 128951825255, + "3PPtAFqVbnhzWcc91chyrfKzYMzsiccoGDF" : 75685163905, + "3PLCJrFuuodFkwWDF1JgCYV17XQvcuY4AVm" : 17500000000, + "3P89ndgKAn2JLETnpdfBRHLMtLJcu1r2KTt" : 3237684595216, + "3PLtyhps2KgLqo8P3ogsSGXL5JSDmwdqFjn" : 240600432752, + "3PAWFxj8KUVacs9G4a7rVF5VJRjRJaMAeXi" : 17500000000, + "3PEGoyTFCAZ6zDbsBEydZFJhraMGCNVmWie" : 1326037907931, + "3PMbvYWW3dtBZ9K8VXLWhj8KVwG3882SKJE" : 216800971769, + "3PA5U6cqF2QF5DpUDhPEWyTwP6j3oZpM4RK" : 216999212535, + "3P8cpwy39tqjkBUXf3jvTrewY9AzEtPCwfA" : 59336390196, + "3PFu8LmZihDP9CfShH2jxsqHKc5NNYzVCf8" : 53408583276, + "3PF866tRGhmhowruXcRrfvsoESKmNtJk5fy" : 1234289816752, + "3PEzyWGzbyuJzbJzWn4QG4pDfpeYJcm1zKu" : 22467411996, + "3PAx8FKJDX226Qd9k9K8qgfeE6ATq9Rom2Y" : 300000000000, + "3P2d8iybB66RvejFt75chLj3mcLysL3aFo2" : 3580796831016, + "3PMcfGKEstEzgDZxNQJDW26SCWbNsRFtKHd" : 1627634923189, + "3P6AGc23hYaNfhE5XqwjBDnGGhDe9Ty1aCN" : 603915319490, + "3PB7StzSte5c3539FgEQe517tN4ynfko3E2" : 2373615325574, + "3PKNteaE5DUGUW5etDmUv2uxZ7xPbBGHoZZ" : 7133551140, + "3P82hVbeSBbtgobDfsDw79ygW6cwcgndAwy" : 663341027681, + "3PBcYTbG3MDKUwidaoM7iBNDLLz89akYNJB" : 32331331079459, + "3PNrQME81y8xiXF9hTNFLeoe8pukeYbY532" : 7754560628869, + "3PDGZeKSedNq7DhkrvQ4ZzJrE9enxEzUMUP" : 61900000000, + "3P7NEJ6xbDNuN6g3V4oqsWrVphHfS6nAjXa" : 82888503718, + "3P64EtGUn737zTwGfU8dmiqV8Se62UMMqdH" : 786663085626, + "3PEGktdeTtS8z3F1W8eQtVBavFvdPC82zq9" : 140715210193, + "3PQ8sY7yrgLnMGqfgYV4kjHie74A4Uz3APQ" : 1309470343927, + "3PGU9uKFb8KKHczVBUNdVdDmjEbN4XuVuCL" : 114703336106, + "3PFd7iyyckgq8DZ158GeVJDxWA3ZHEhKawm" : 17500000000, + "3PQHxnFPEefD6LLRgoQyofr57H7AMyMySEu" : 435974829089, + "3P8GooNUnSJJmJ9T8pRqzsR6AVbGBZFhkV2" : 125206269885, + "3PQDVtrvqDr7JnkJBasykPA7dGe31ig5hxd" : 33728720673, + "3P6Eiw5LNGJbtb13N9yurcnhu88gsBekgvQ" : 996884028542, + "3PBGCtBsW5Sw4A6xTPPYkAUpL2gzgayeta3" : 420824613455, + "3PAGCCCSLg1krnT2LW7uPJbXJs5TBvD22dG" : 15461776500451, + "3PERqji7ejJikckJGvf54CQ9JPWmQGABvRe" : 217017989759, + "3PAQdPnQFLhLrfRknt8NdfNGkTWErZPBdGn" : 35354502887, + "3P3pA4rfuwnV5f2rkLk2eJhaEic5ZGJbZ9k" : 7591970387548, + "3P5YD9kDiNMLAYnXdM49dPkfm6eqZHcoEXH" : 1854042338233, + "3PL4heGXQ64hKzQAbAgR1Br9YuZTDzEAUoN" : 1193598943672, + "3PKgjj8WjDwimGKDRRj2R1jSwEx6n9QVJuz" : 328026984638, + "3PBqr8zaoG2ND4QhiaTr6NoFCELVMooYZad" : 135636243599, + "3PRGUZ91SRgfWx4cxWtYEkgfbvVw1qUUDQ2" : 1701021397240, + "3PK86Uq6ZnskXC4hDnYBtACqPVnimZMjDPT" : 208030155126, + "3PC5EM3gbDBqwGrmcvQbZXLx7WW6oKrN9QV" : 17500000000, + "3PCh3N1fB8URxoKBvVBp8ZxqUfKUkYFh5J5" : 2500000000, + "3P2Y1XXijYuVH6os54cDnbge6xMgr2FTZTt" : 327213167176, + "3P29KnL9DAeMty3hdZsTY1Mv3h1s4TnPNMo" : 33656387939, + "3PJiq84ztCFkFaA3Mo6hRy8rkUakAsFN1sU" : 2665196584310, + "3P2D962kn2RpDaFcd6EPY64FuF5NuUz4qGN" : 186300000000, + "3P55YAVtEdd3eBwh7TBEJJLcgcVNi5YTu5j" : 69683189975742, + "3P2CVwf4MxPBkYZKTgaNMfcTt5SwbNXQWz6" : 569772223116, + "3PH7JbuPaFfFDr6GvxYf4dNiRnzUfvtfyi5" : 17500000000, + "3P5Ka2v2WZWz4A9GckhQwk9uGYHX696JSuT" : 13926038977357, + "3PEcfD1tvCqfBtvSMWuFskD6qH9P46rtXKX" : 2142995681643, + "3PPxAcByPVpAmmFM1px3FeDFhgkyb24Lk63" : 1548753177030, + "3PGK9Y5Gme1MzC6pcK7N8VogGqErPBtgH4B" : 17500000000, + "3PAPNZvrrz2besnZHLrrH6VaBnPH1VCU1Qs" : 4160965930845, + "3PKTaUXsJPtwD78ieTbch2aNE1k9fxSP6Ne" : 760273698071, + "3PCKns4rAXgw89idBxcBcmb2ZBFtTTjBaET" : 691708491842, + "3PNBeknRcwQvobv3Dk3x2TZpmphQm4t1ozr" : 15108508995, + "3P9syNJYKMuMFVRirbvkfDrtyK9uLVr2mr1" : 80299999999, + "3PBwJdTfEWZGSURPesbwKuAxDXtVihP3WtY" : 691660567176, + "3P9zY96jWn5jS9jGAHeUTBNGy5r1rp5KoHC" : 470445040417, + "3PAis12F1evKbQMrBfKEbhRsAsekkiAAs1Y" : 82605396928, + "3PLPEGcb5z4pmTAcrj543xX5SRvBtGW3M68" : 75618121800, + "3P8djvaFegPTgrnLCScsufzCX8ye4ESvins" : 18650899488, + "3PAUwUhuLNw84ujRprMxSpmEi157HBWPhDb" : 17500000000, + "3P5Q1B4qtBBynGg7dQextkwzEVLGQLJ7v9M" : 75405396928, + "3P4EN56HiFdwUJY6ZfjaPwWLKusECaxAsT7" : 24076349232, + "3PFzPha2vnHkQModUVtCbXzqvoSfkD6Nrvq" : 585879788496, + "3PCq6rZQbbcka8qzVYb55uTjeqw3D5bHx7K" : 27127248720, + "3PEqNRwuyvEHbuVNN3q8gysLmSZAD7i8rMK" : 282030388280, + "3PCfcMyozhmt8ULXrH7fmowbGgr2HzPGeRm" : 12000000000, + "3PFWXTak1m9xTdgTGcjfGqWsjqWQiMNrHS6" : 44759960384447, + "3PNoxnjmSR6HW1uroRdSfQnMUYHaBzKXwDN" : 599299471836, + "3PKtq5NZtvEk9uqEbueQjvQ6i2aSW8v17pd" : 62054497440, + "3PNdoxmckeWhZX6q7eKsKbmvT8Buq2vbWbw" : 9700000000, + "3P76TmRjfjhdN9KEmwSnzQHpLrMRuf1qV29" : 165263492319, + "3PNfEc785eXGZZ6YFbQ2vCyjCdYypBzWkCY" : 9700000000, + "3PQLeFzkDEnmvGtpcV4tkNcERT7sqq14u3R" : 1783531636744, + "3PK2H8eZZGH59Ck4Woc2RyMX9mhEy3sBa3b" : 187269616209, + "3PHrXZBk2hRM38cMLYjV9GzynfgzxsPmsWE" : 78330846672, + "3PJNV6jLQHrgMc8MBxVAU5uPoc7L2FDEJPE" : 31406131836, + "3PDymCwaBGh2kkcXzTdn3dCbDngLxhrzhB7" : 30415093646, + "3PNQFFn2zfQVwVEVmv9xsytXsV4q7kKTo27" : 458112328749, + "3PGYynLjAfKoxWioLQCn1USLKCoNfE5w6wR" : 32339973592, + "3PFmhyMQSvCTsvU3eiaXttEyiGRPLC83Jse" : 13102461132, + "3PFLWwXuny5KfRB6j86FChQWSwMPmvVnwYi" : 2302109052119, + "3P9fo8dS49PiWcti6TSV5ssQoLgYZUFPseT" : 9999, + "3P4QHgAhqY9HHxHphdJXuRqWNAJKy9PXjqN" : 33412195499, + "3P9bPzFBgDEh8bQv8xc8WMxJmH4mWRa2vd5" : 8885089949, + "3PKfMmmxVsvkroc9v74oDLYZKPHxgxnhJtG" : 204364232839, + "3P4hJmpjKGK1H5aRzEqnkGqcw9wf2upT3ht" : 13767994718, + "3PR5LGkJ2ufzPv4KhXayzqyCoWi8rPFzCho" : 4947692341385, + "3P4z9HLZdoU87bcSk1GKHqiakc5iXh7Lq66" : 1331927903084, + "3PCWgZLdFWaAWia15xjvsQp9NUuzLo1gUYt" : 111221719751, + "3PPPmz6Eu9YDKBRufpWy7mcciMTMBgqiPh5" : 1227359638308, + "3P6SPn3x39vN8oY2noCPmmtHFJm2nepofKd" : 264107079445, + "3PKzD9rvnRud6Uvyp3TziRdVPSPF8QdFQ4R" : 492477153310, + "3PHMJK8vJmPnEDR8Ex6CrbPLwBH1hx6gDEc" : 271222263810, + "3PHTMs6LYza3DWVnQ4wxUgAJtPZUtH7SiV4" : 111151774853, + "3PJHXYAGs8Etdy3GRhUW4291qWA1oXhJGCj" : 1876139126850, + "3P3sCHp9T17Pd4GhwaEHuMWuLzzicRvnqtm" : 585080500389, + "3P9cDCy5roYKMSgAPT1CFwLgG8mxtXxjNiW" : 67818121800, + "3P5E74jyb4UttjfKXWjvuyjEpUbrPxH91ce" : 218376766427, + "3P26jWWN7idaVKyBRia7vuVGKM7V1AMQyCB" : 10300000000, + "3PEzWq97ZsTsL7pPcFbB5sC5h7qd4gQ2mVH" : 418780393975, + "3P7ZugN2zRcBCMtkU2TxfJyYJwsfaRgXPrx" : 31449560756, + "3P4rvnKD9GiXVYxuGMrP2F8WUMR7bpM9bfK" : 486037782981, + "3PBHLM7zXw3jb94scfFu1NTEUq9dohVFLni" : 56346298577, + "3PAeniKgChxHbF4nvuU8N2sYR7RGuydEqNy" : 1259198102643, + "3PQbutC544gscRFXayF4436thjEBuPypM1g" : 25871717983, + "3PHHAq5aGxv2vbQrrwuwiKDCXrjat7GieFj" : 643153204924, + "3PN9Pi4CZF5JaidTFfsRpe5zDvDiQfA6oeS" : 17500000000, + "3PCnrihLWh1CNfA2tG2Het3xmjtz3s8wSM9" : 42896626431, + "3PEymbCaZqLxHgLCciApj6SyfrYg93TvNk6" : 139826034984, + "3PGELsTUcqSBG5BPLj9948g8RVMThAFS5yJ" : 9700000000, + "3PD7jKKtMdhAFGMS7N4PNXoAZb2CbNiLnmJ" : 61900000000, + "3PGoJLQKqPZhUKCr2MrQjyEqmuSY4DcqGS4" : 1218741174048, + "3P3X3Audjrcx77ufzieEMDgNcoDHA62UGTr" : 19528540448, + "3PB9rY1N5zvrMxiHVTcnys3mGWdRC3Lnmok" : 21065868231403, + "3P7rabJNYpjPpqxS9EhezgHnTsojCzbiDou" : 44053283379, + "3PA1mB3N8apJvNzMM26Ekm7XGmLidkMwd2s" : 542544974396, + "3PD8dUmzWU9D6RtbtRShXxQztQRi4pDKofL" : 112898680151, + "3PFXzWJ275JR2UgU5k6ajtydU5ydyvTiQMb" : 1856991655570, + "3PFzkWDgjoP1wPaeSdFF3QAo27JnBQRHUEB" : 7800000000, + "3PL3fUPYSAGYTBdbGru2VwuDATSUXJgCXWY" : 231020479007, + "3P5jebWu94FEPPEugm3T5bMWKAEwcy6DEzK" : 284141672072, + "3PRAP5k66GcsCQ1ShdRFz5qEM4up3gEcw3J" : 8209929113386, + "3P99nYusCT3JbLCHF5mTTz5puHuFTJMU79j" : 2594588628383, + "3PQGdv5d6pYkj7ZtqfjgeT1pkjS2q4BFVxo" : 390228397410, + "3P4Yi6ce6Et4ur6hN6tj2mXPdqq8w8dShYZ" : 1358889563240, + "3PPpHfmtVwkE7gGsCEfCDYHkKDwJGSrEsXo" : 398432381565, + "3PKmHXfTrrAv2AuqyaRg6urQNAEi37kob1E" : 813817461595, + "3P3Z89ZLpLRYZ8w4pJyR3Tkk9ero3iGB6xC" : 661353969276, + "3PCG8n4Q7A1MJ4YGSL1iBsgaNeQdQpsV8yi" : 55385638606, + "3PEVpxcYDpQ1cdgQVMcdgFP2zTnn5N43qzm" : 10300000000, + "3PBUeunXwKAzLeva6Mec7bvKCmBhVh8s4WD" : 992369012668, + "3P2p3Wqy9hTcGMHfVs7wjYBGGkTNomhc1MZ" : 10458470375, + "3P9rozQ9Yb3vdbGjKdrYYmSFwn8haWx9d2N" : 17500000000, + "3P2D42WL5kNAE4U5odEd7jcjjw2LPfAuUKx" : 93977843733, + "3PF5N1YJyPSLMPidbd7eMCmJMnwqcYtd8ns" : 284836111558, + "3PC3gUzxKcme6jVb7V6uU9ThXgGuTuihoLR" : 1091739049305, + "3P66JseNjhWqxJRzRdMZmSjYLBKKAusUh46" : 108508994879, + "3P3EmKXwXmXaP8cRgqK9xHfTHfARwWYfH8u" : 271272487198, + "3PE8kX3t5wseGDhxSd17ikFNhDjywy45ZfE" : 1105275546416, + "3P51tb3HmkixHb3hDELwQUJNxk2w6pBhiRv" : 542544974396, + "3PEVh5ibkd3hpAa7V1EucG9VGJtJWuXL4wZ" : 1329235187, + "3PBskrBwDGcjThA6k3qYf693KtcnYqBMLcM" : 418379457659, + "3PR3dkS3i25PvDeasUqRFSczkf7T15aedBM" : 1017217572496, + "3P3fm1rtieWpttiQj1KjegMng4krYZjmoXW" : 103518154808, + "3PLfaeDByiMU5FQuvucjzAwJjWnF9MgsBHJ" : 17500000000, + "3P5rkwKRHuNgpnEV2j3x6ys4MgUoDf43FbX" : 59630967065, + "3PQPAeLTKb6tbxa8sVsLnUHVdNun3LWAGXF" : 1627675850069, + "3P4z8iWCt5Lq3yTgBTfVh9M23tgkppv3YEM" : 30000000000, + "3PJiBSdAM1vW2QY1pK51EX37f5ioPHdf1Pi" : 43644985014, + "3P7S437tCnJL4THtsts7ATgPcV4aChXN9AC" : 2500000000, + "3PNdATRRWJhuoz4n5iHexaXgEUuo1WKy5SE" : 1236904883528, + "3P5KidHA4tLPNqDfZe8VDsopLBhC7WBSTfE" : 2500000000, + "3P24M59gxxbHoHoYD9uWZrNNkmkmGh322U7" : 1276227410941, + "3PFdsoy9wNnsphp1Yw7Jc2sQKvK1Xeijycp" : 946990779056, + "3PCttGpptxjLBe1Dzb2L5fMfgsNgyAL91M3" : 764504416540, + "3P7XoXL3p6wnWYHs6WmxPvxB3nC5AthNKbZ" : 207704397420865, + "3PBRoEYDq25Y6i7dWK3McRm2xjW8Jpxm6Yx" : 7948587606, + "3PHmctbWLETLotJ5bPoYiUZDGYX37jx28XE" : 5210931754205, + "3PCcdouKJFydf4X4AoBNRkTStTaiKCymam7" : 706898335082, + "3PHc5dKSwCG5eEejcXDAZwK8hnsSp9mujx7" : 633796776413, + "3P2L1BYTiy2KbkYvHFTqSC5mC3ahpaxUopg" : 185200848028, + "3P6kxZAEfXfB2SyXs4GRcTQGXmET8HasT7b" : 9700000000, + "3PLXYwWpBZ3QF7hq5Bg2pXgD4GpDckfCFgy" : 70372240878, + "3PCBtaVtuNmz6Q3CVZLrRUMwn5ZEtiLXcYz" : 1397053309071, + "3P56xCWRjjCDcWPrummoJaF3vajLu7nGmWK" : 17500000000, + "3PR96ztnmXYyjjeHm7TUSxEDKH5yyh2WbR3" : 361576169123, + "3PM6ApH6m6SeWGYWQGghaXMbVohNE698uft" : 8038719789, + "3P4JqHzzKfB4vMwLEupkAhF2gH44dKQw3JM" : 69003787828, + "3PHXwtdaeassJ3ftix37Rye6YbAqGyVvQq4" : 840809074071, + "3PB88WqNK3b5wEiwt77WuuL1QGHC1gY9J27" : 5859458596232, + "3PCG1NYQa6F9mPKdPFCGfu1UdLqXEs6LPk5" : 42318508003, + "3PLALExvb5NihPez7Uaqxnr5F8XdZHBJ5Lo" : 328026984638, + "3PNUaXNaukMQUmCW6hjoe6A8riWmuGbenog" : 25963701601, + "3P9uDpPd2kyFBVec1xtKr79rn4St1qbx9T9" : 9631955285, + "3P7Y9Ncws2JWDSj6FhNotVkeohZ7AGM87kN" : 78815936620, + "3P8dLzHThddiocAkxacJZrpJV6C4KuaRTu5" : 258211205230, + "3PJM3Zej9e2bytdTUTr7Hf6MrrM5KhuveLY" : 18245999340, + "3P7ZJz1VNNj4YzBk7oDikZ7kgzJD8AGCyQp" : 45845050336, + "3PPibTSCK7Qrto7kqXtoMGKn9m3kcUeifow" : 27127248720, + "3P2ZwCcYgmQabr5kPsagGRj7MEB41dn5UmD" : 17500000000, + "3PG9Tk8QWHM2Zg6FhzaKSE4eRhFpptWBimE" : 100100000000, + "3PE11LYpfoib8gwhAJBPUwZ5gpiGSeQWKB9" : 542894753141, + "3PH3DCoEprEGQ6spmeAV9KvQ3GCkj9puZas" : 23444302905, + "3P3h6gXYuM2uHmF3YHLePoLgV8suQMEessq" : 17500000000, + "3PE865oVgHb4S2V23ksUK1EXRHEEwDxiXfi" : 1494982676949, + "3P79B8N63Xyo1UT8UEKdifvf5VFL2YvgyFt" : 227860534733, + "3P7yAjEG1jeW7X2bgg6DrWbwbkiTXuCJXmf" : 325526984638, + "3P5L5tPJ4NoL6oExTQesV1UGVnYz1ciLwPa" : 7800000000, + "3P9TbeDQnfuuQGzVsyW328aoQUse58neTFv" : 104239470435, + "3PJQsza8odTV5d8uL1DajmW3cdcMXTr93Cq" : 81381746159, + "3PM9ewVt5jF8RHU4TpqQdmnfnWEGgYPDKFk" : 1139270551607, + "3PNBm7LhDEd6hzu27X8NyYwNjwFsrmBXLsg" : 232967679674, + "3PQL81CriMZu5tXjdbS5HqBVnrVpy9eRzp2" : 115158095391, + "3PEAG1MyKC1DNYuupABwEkYmVoFX9ZqekmS" : 64221998073, + "3PHa2G3cR1XNZpvuC5knED8pgrsD259v9Ud" : 5398322495, + "3PHr3BcpCqtae33Y3BsShKYZ2V4FJocmwue" : 511694301910, + "3PFSzuh2ypL5r7WeQTPo73AJwBek9tES1C2" : 10639572795, + "3P994drEj7teQTpEjY5zL1zrDWXSWcUJHY7" : 260584351203, + "3PLDLAA1FJgfvZBYVK8R6kz5XBbFbWwE1eA" : 57588978933, + "3PAfoyPx53GECcFf5PN3j5MufbCDCcdEJC7" : 1249999999999, + "3PMnfjA8znbBwuwQz54tD854MTiBJrry87e" : 295088855212, + "3P5oSCRNCUWtHgu9DF92zxsY9st2tKKhNTX" : 605554087052, + "3PKgohEA33d4oJBt7BQzYWVfBdTWZn171L5" : 434035979517, + "3PGjKddL1oBZgzdyq8vhjviTttxmyKjiaQZ" : 7503362646472, + "3P3P7KFWmvys3qfjvEk4pPZFTmYgGYmbdVG" : 994136927481, + "3PLw3kT8UV1QhtnS9B1tLUXHJBErmpDiV5V" : 9036568506, + "3PEzaHyQFkbucG4vo7tby6PmKtAroo6FQB5" : 8395401469, + "3P3TTT85oDLzEYXq1EkHwDkyMtoHQyptQ5A" : 28485459594, + "3P8nUi8U1w8qP1k6TN2aF7VSZYq4ypQh7Jf" : 9999, + "3PPNys7V6fYaiwqCjfmHr74Yxt4pNoTDZCk" : 64700000000, + "3PBZ3pB3ga4XMokqpqf8PiXDXkeLMyZPA1s" : 270012210861, + "3P4RUeMUTniCTJ85G5SJtYFfwwfXSWPZjAY" : 17500000000, + "3P86vYLXZ4mVxTrouGdoEJCzYzWRtK2H8Dy" : 669287081286, + "3PGGUDbpx9xvqnmZ3xMViaVMRgEJhxEUSBD" : 70182946029050, + "3P2juQF3bvMHS1TCmq2TqqpMoYLEPrF3e2T" : 18584872931, + "3PK253csmxpCFiNQKXKSr2LSSdwg8JsoZXw" : 13374842940806, + "3PN9nc6edsSgdYhUJtUydnFgYU6i8yeAU7y" : 75590994551, + "3PEZkACJxVSHeWB7LXsCx6w7DfafDh2LWub" : 2715224871982, + "3P7ZieYFWQuYy6V744cn4pUQf3xjuiHkQa4" : 3372887519416, + "3PCNbNup1A8kVtrfGX3Admzexn1CYf7ag7k" : 10000099999999, + "3PK91yFJbB8kgSqcCD5fqoy1quRZYVn1GQu" : 2500000000, + "3PBUMRF3NxG6DumRVEbkjjzua1A1hDL8doT" : 17500000000, + "3P9fgkZX6iSmAbQ6yotmn9enNMNXZMD9Jys" : 989706403656, + "3P2b4VKUvjKaXSNBFi8oyDmBAcjiK8kEMBW" : 56967222312, + "3P6ZsmVyy6URJ2pa43D3Rj6jXq7Rw6SRUmF" : 16151992078, + "3PJstDPAUeC81yjowonmdxZQfHLuhtv7nS3" : 17848361116, + "3P7ueH1kqRP3QvRQgU1Sz67fTuRNqLjVfGA" : 230451296620, + "3P3eRpbqJTbZtDGaNagQqBZG4b7PfmcQEcK" : 10055815196, + "3P8bfi3UgBfnT8n8Y7HeCY37rMih7PaZ1ua" : 101954519068, + "3P2UhaneaC7vphs1niZtPTrnvLW5kBQLzoK" : 159499867959, + "3PFKmYRRxYASs5681sYLDdYvNUKktmfFtdF" : 24700000000, + "3P3J3wQbTkjKGyRaFVGNDBNSuX66q5q5irZ" : 9700000000, + "3P3xcyoJPVuBki5hFC1eKp2cNschSj9UJNq" : 9700000000, + "3PBE3BboUEMv1V3unRNiES83ELpJtPi3WuT" : 1679970914040, + "3PHt6Y1fP1WhDECNiawgd3qJSse6sHn1XeS" : 42852698464, + "3PCdv8AZZvkvNdCVguPJzdwXdJ7Uy2xTgpv" : 132196085535, + "3PDnWFrR1DqkvdB9mw5gXkLfPMZgfbk582K" : 550286374114, + "3PPgXDuopShFXvfEvjSCBw7gHHwsHiz34PR" : 327980434279, + "3PA3EDH9ej89Sdt8CQL8d3UGVuyD4L91HF1" : 1356362435991, + "3PLhviKkMWhuXAqxkCfffT8Uc4nGu62CG7q" : 69298118056, + "3PQPMcvPohSBGWwGH2ctCmkvb3YMeHthjCj" : 24043799789, + "3PNLEJFK27t39xaKr7s7nne8mga5rD9VQRV" : 44759960388, + "3PJejtPVypevy9zydNSJGxcRzWmram1Kzj7" : 1627734922188, + "3PChFu7DiRBA9BzFmJqRxY5PgpMH9MetBnA" : 100000000, + "3PArkCdcx6c3p8furA3GaYQsfRvnUWA8Mij" : 9700000000, + "3PKkw7vBRyD4cyKD3dLoWyCTtvDPWx6XtNM" : 67789427098, + "3PHphud7sDRp1pqEGNmGjE9zXzNYc954i6S" : 720938976093, + "3P4TXRsqDJm2ZGBD5mAZjePf5agmXMeuDb9" : 2774173249935, + "3PHA13rQzUFws8ZS4zfdwmTCafuoonGaKZz" : 1, + "3PBgQbMY8J9kefqbCbGHyQz2sksaYabbjvW" : 21875413368, + "3PAvLUBNRMR25sPMokyd7wzq2eQAaw6cUHT" : 414708730797, + "3PAsHu7Z7ggtAvEXB5CVtDFKDfWRfySrzBe" : 560044974396, + "3PDg92jTXDYNKkpHMKL89Vskde387KqbSVW" : 813817461595, + "3PEF9YHAcL2f7uAdJucvhwhTPqNi32DNW8M" : 2097615531762, + "3P5nSXogcNFcC5rzFJLFeb8cXrFw6wD44Wd" : 18230934765, + "3P65BFh7jwaFSFpYtTRZ312Rww8JXQ3FmFk" : 478159365553, + "3PNjgF9qqhd9VoYEZySd1vpZ6e7Uxyk6SJc" : 162763492319, + "3P4Ze9nk8TB2jdCr3vYs9DuwdxWfaRxoeLM" : 11502869450, + "3P9UVcLupEVmkpbjrJeSNSrf7SpPjnoM1vu" : 30000000000, + "3PFSQLZgTvvSeBQHufexF6RKnj5Eie1eDWQ" : 5544809638331, + "3PBfJQaRzd1AAhcSjmvK4MhHS6te3NCKuzh" : 15675279931, + "3PPSSpx6rYxYCTwjBRh6gNWbPQ5KtYXPRy9" : 61332876083, + "3PFkma1pYcuLnYS8JP4oaSLWFu2hbB88A8g" : 542544974390, + "3PECBNVnxTgHbqpoh42HeofUWus3kfsGHwB" : 83433143065, + "3PErSYNpAbJbgxfNMX3Fb2Yj7Wkuiaxgqku" : 1535954727217, + "3PJB7ZFGa6Ei3NwwmSJqKS8YX6mgpcxQi3z" : 7421458056, + "3P3joD4n2j6eqmCwKQDyqYVdbF21puYBFds" : 18467540446, + "3PJ8aowRzJYoLb3JNdbdNAvVS9zuer7fsju" : 573353602618, + "3PQBBBVTcMGhCm2hRUyKyYDxoKZP7UARK31" : 44681503217, + "3PGSmAe7dec3XCyttZ29TBfYLXgR1j1S2E3" : 445091249363, + "3PEkCZ3rG3za3aVeQJXh1RnXXLbw6JurM8B" : 101834475770, + "3PEJ6WviUPySBJf1dvTRpPQPYs9T2ntwnE7" : 9485790319, + "3PPJYMNfrF3311wKGDH9D1yB5GvZCZ2KY51" : 7800000000, + "3P5E7fvqRn6HiYxWMgrdW2pN4aacYVaMRqB" : 1001731650283, + "3PQNAEtVAtJLY2JS7qujt3PmvQeAu2qp3pQ" : 7200000000, + "3PNqJ6aaGAL15fmPHhWvk3V6yqL6RpptMZp" : 2100000000, + "3PLx3aQS287RF8RbfFguXpEfkDvnWpHnneW" : 100402240630, + "3PCsJoTQdGy4oNxDx4CW8NefzarSnKTKcwg" : 2500000000, + "3P8oMzgxEbMfNzoLjS5a8paWU2MzSwmeB8w" : 256134113870, + "3P5fygw4ADtk5m2K5wPNsrAZaUNd3CKYfZx" : 10300000000, + "3PQ6MV5TLo66z6CVBQTDWBQJPZu98BNxe6W" : 1630134923189, + "3PAR6oa6xSFsZ6UH4Xx6FXq95GRS7FdjH1U" : 1420889806182, + "3PMRFfaGNcro3eg9MXHr3YjTvQ1jBvZyqBE" : 2863242367880, + "3P5awVyb1tw1xUcPVMri2PfcgDzTp8Gy29i" : 1452151842642, + "3PG3Jk3deqy2Gr5ijmWHmwv6SiSZJTztYXE" : 11679196567, + "3PCKFbWcYSfsVefUyfp8eRGb4ZJTzVssCxd" : 14184981222, + "3PFm5zqbXDVg9HBBrKciBpmcjnxvbpRek1m" : 9700000000, + "3PKaRy9x33kRAuGmBWPEN5WBUDzEQjiDJDr" : 1560927650045, + "3PJPFYiDmACqVVVWXiNNVmkpuxbWpwEoTTa" : 8994627880, + "3P7UWXwtZP6wfPYnwGVkcbbgk4ipGEE2eUZ" : 3222717148, + "3PGepJZaMSecjijTj9RqwoWWdnS1qFZK6PC" : 10300000000, + "3P5LQCeeoQLy3HwcCgBdBWdvAPppgwtvvPS" : 31634963837, + "3PJQxaQekz9WzxZioeYJLPh8eaZnXXjGeU6" : 136011161165, + "3PH3JkCXUpqFizNBZsmuPcDzfvaEZPQywGR" : 17500000000, + "3PBC9j4ocu1V2Z3YBmqXfuxD1uHAeDsPkb7" : 6510539692757, + "3P9t24tdq12MJTvKNZkr7e1jo99sWAMEAAq" : 70949541284, + "3PCrNBDGsU66aM8PhavDNTCwZqj8ZHK2b2J" : 322061467763, + "3PCrr2ogeMMGrMdQGb1efqnDajg6VLVmGny" : 515417725677, + "3PBoMGv5V2VoX5t62k19aAPqm8EBpaBDGxp" : 17500000000, + "3P79RUgoUpFHzw7wfBo61yrAKHmWcCCPH81" : 1045380953914, + "3PLW4FwuTYHPAiFTQ9vGzD2gPiM7XejpjeK" : 9999, + "3PHE2hXB3qj4awQQpfGrZ2WJXN1S4hbmKPb" : 498029159247, + "3PARCepeymChhDEC7HooioJmkqfqpwvNHKy" : 17500000000, + "3PJQ5r9aAXMPxgb6QTB5asXefeRHaVLkpUA" : 45331858196, + "3PMTc3jEQ2isKr2K7vzzGYdvrLbfjN9W7Jw" : 3800381270355, + "3P6abtVgBqNnAUXn7r7eeJ71zib7r7DHwTM" : 26340279545, + "3P8kci9RGcX1o8eLSEzfX8kdQ832eTMVvTj" : 160419909880, + "3PK5CwbKh4pRBGtBVVAEZmyM5vS16GbUXJg" : 100000000, + "3P7mAiCNPRvdmVFByzEmxRNeXBKjXDZaTX7" : 7800000000, + "3PFNaqDRY2bJbBDjiCJ8Ce4aiUtCAmvKdge" : 542490719899, + "3PGp4AmCw9YL35oaVFsr6cxrWpQLJutZD2k" : 18581808889439, + "3PKFaHtM2LGFcX3XTAsoP1UEHBzkBkY1icJ" : 17500000000, + "3PDBF1oQVbAxKiEWjmiz4vrBfh7V6K4B5Fd" : 143206030916, + "3PPxpEPwieajTBoSXoDtwMWwXfbmjp5VhFC" : 2346365198434, + "3PHmJNLs54A194MSxpRM4pqFLroDQv1ToQF" : 17500000000, + "3P6znfAnoNQ1j7DgLU61GQZQdMBdX2fToo8" : 1487211851656, + "3P239h9QG2by9X3vMpKV3uTyxyRgWPebiFF" : 2825671884752, + "3PJWqZCfPbLN7SEGnZxzC7qiUfeZNhbtv5w" : 17500000000, + "3PGyuecjvQEGFS8GyRQeAnd6eChvmvmCFH2" : 49400000000, + "3P3K5kG47eR92Hd8NMoaCcKFPg4ncVUyyM9" : 913820695458, + "3PBWXDFUc86N2EQxKJmW8eFco65xTyMZx6J" : 100000438, + "3PHHq2Z2jJoTpCEPxYXYLsaJqLrBftmBFq1" : 101400000000, + "3P6yRWRrPVg2Pe4tteNQPLXwrrisFT8Wq6p" : 4069087308, + "3PNFb3QGwnCR4ByPFjy6Q73rjBf6L8L7pc6" : 302336111558, + "3P59RUApvri6pS2LpCuem3ypsF8hGbTuhJW" : 542544974396, + "3P5Zg6RukWtGAuZj1pCxDts68iBCf2mCVgK" : 871650585685, + "3PK3XeaptnDrQxyW1pycdLwiXNNPnxkdfBj" : 651053969276, + "3PJwd2cjWF7sTeRDYUZwDJpnoD3XU483nFc" : 17500000000, + "3PAVZ52tvkkpT8GLEANzax3vjFGDbdNRrH8" : 275513565563, + "3P4FS8uLK9nGQJHcheUd1CN5XdujonUpo2B" : 458214496, + "3P5bimocrzjg6UKGQNmB8AuQQ2kX66UGp51" : 105458095391, + "3PEoLDc6A843m5fjirScfPWCdeWxyhTEzML" : 2712724871982, + "3PRGRkAx8F6jw2hNr3EPbPyxnbkg1c7jQYZ" : 18806071270, + "3P1wtFCbGoTEyzez39rcWGE4HYsTjJBDhv4" : 2500000000, + "3PQKMc3gGBkKZfaBeaZyAvLboxT2dfZwBxd" : 17500000000, + "3PN99hYJ8bR7iVXsJJCfop5fz4sbAXt9Ss9" : 259272487196, + "3PPtkgTMK8jiNHMWjc37NSqXv54qRvv9VkG" : 324741874818, + "3PDFQARgQY4q78MVhFD9swzT4QFrH7YPZs7" : 17500000000, + "3PGJkoUhcCa11aPv79hTdzxYjsEbgSVsUMG" : 3162836596034, + "3PMyh7vyxtdH98vsejUu4k4xtZsoEmBjBiv" : 114950822246, + "3PG873NwS6EA3WvXbn5eKTLjextLgk5dPX9" : 51329047696, + "3PK247pxk4TEeQBuQQcESnkjbJX8LoYFaqr" : 835269408449, + "3PLvFRjGrTaLB4RBosAPAwRqLQX7T8WAuqp" : 651510444089, + "3P6eYweJ2MvuVSJEPRdGn4rXva9K2AMniSh" : 999999, + "3PNeHFYA5PF6rgzvQDwHXhj1TH1jagVxGeh" : 86499075566, + "3PPWiLBWLcP3mYDGe9AScJBCu7DcUJzjwam" : 2500000000, + "3P5WAW8B6q7fH92g2ztCfWoM9Qro6aLp3Ye" : 2884105656763, + "3PLXcYTReXAZ5tHfYot2KK2Vw3t1cHuUsGr" : 1085089948793, + "3PHY5SUwWm3MsuuWooK8XNyA6ZhBqJGdMp5" : 9999, + "3PMt2VwyVbEjqGB2yM9TA4xq3tH5sGu5L1s" : 576116469762, + "3PQ1wfzpPsfHuHwxWWkxMwMxz8Xby6QVNTc" : 21617637528, + "3PFjVLfMrnFfPXpafZFRS8pY5YjboNsSBe8" : 284836111558, + "3PJf8rCigpCjjiqCaUfT8R32KFcPXScs5U1" : 16063860585, + "3PCW1xqHcXLb9irik43tDrYY2xuVGsdvfH3" : 550344974396, + "3P6Fn2DeEfNsLtSSnzFBoVAoxwcpARp7TJm" : 1678756904296, + "3P3sfQ6KuYsqt8gkPihT3RWkEmZxoB8xKDW" : 1000600081835, + "3PBis87xv7uJqRfwbCBTXUN1BB3yeHWPwBj" : 13909864804, + "3P42nxxAVGZ4sYR3hve99muvf7NzKmmGMPH" : 1133918996488, + "3PJmGBQmkV6XLzXhL9Wc1Pwccc65ntL4FQL" : 70784811595, + "3PBJZwk5xWjbPG1r9VZHRZgGNihdRkgzWSi" : 3257114499291, + "3PNNhm6e1t7uMHfATvb1Q16tj6YzUw23RrK" : 434035979517, + "3PJizwY74yDZnGVaHedcxhjgrdvrGJ6jqQH" : 271272487198, + "3PD7fhGbZow61Ak7PLSdrNDWry7gaSEGoDr" : 324733394515, + "3PB6KkBVYdqMW8aEao5Bkv5ivmD99XsYby4" : 2831295441796, + "3P9MbSa6tC8gnVo7SMB3BG8a7isGGqbSKw8" : 17500000000, + "3PRCeAfr4obMBmfxvVQdjbuiGQEKjv7d1Ce" : 38985577230190, + "3PDZ56ZpLWSSQrM1npFjcyXvRdhfGDcwtyF" : 254368468365, + "3PBFfW9NEvht6is81BoUuCx8UJg7VjCwhaT" : 11473560544223, + "3PQf3P5MdGwQDYByv6bThJcZCqjfmnUA9pS" : 2726101532889, + "3PA2H3ZC8HmLvEU4cNT57WJUY1VphPNasxE" : 117767792479, + "3PFsr44jTCWg1vhtGJwsjrvv1cCcg2B2Zno" : 162763492319, + "3PAk3tGY7gXC3TTaJ2WUMWrLY9Ud9awuxWy" : 1403586245522, + "3P4WsuAvNyQTRVcWzLiaAW7zSzazeeKt3wJ" : 83800000000, + "3P2NqG7vvf8XjjHk51eKAcVSS25r9fKaaaZ" : 227634816614, + "3PMyhXNux4HbFR7MYkvfMrQLYz5Suyor6ry" : 50000000000, + "3PESyRqYseiNymihU6PQErafFGyDEDUMVe1" : 643588061020, + "3PND9itiyHncvuXFsNbLQoF4i1DpNfv3Fnx" : 61289426288, + "3PJJUQx3PXJEd5x2arsrSXGeMehgRp8x49A" : 11230816919, + "3PPu2YhSuBCMNvbQEn1b6DicQ8iajvWcAHf" : 32090166693, + "3PF9zfeBf5FTEzJvgTsqKLP7THNtfkDBQa4" : 49564990178, + "3P4c1wgWBvLwy9Xhf3mg8o11UbGFzyhtjsc" : 28540753919, + "3PQm5Ch6gsYu4ka9U1P1aL1vQGSbi9z5F6E" : 145941277195, + "3PBb61JmEDbPPWnEtexyahFW8tVcKzy8Duv" : 17500000000, + "3PGqw2q2CnU1fK6xfTR8rW76CaEQoEQNCdF" : 10, + "3P7psAu4kMs74NCiXHnwWJRVQmZvkCQnZuN" : 17500000000, + "3PM8dohXg9XsVNicNaGJXXcpgP1knw9uNDn" : 10238513614971, + "3PPZxNrLvN4RWVMnQS5zSCHRNZHjcAXbFZB" : 60729555370, + "3P4H5V2qbBFQ3WGZJR4CcLtBqNLiH8aeijf" : 135636243599, + "3PAJEP3vJmfadg55r17SGhr1R1HQikzPkvr" : 1645134923189, + "3P4MQWrVRTapqbzAbiGDRNkSCzxFQ8Q5T4K" : 827381085955, + "3PFZPStCZvsjjGTKCPFRLBmxmtK6J7vWXsM" : 100000000, + "3PAFYk89L1DLhyTzV8n4pa3Tu3Ag6qJAJof" : 2720547108323, + "3PEJ31emPsYDApNbHEBATXKyWGMrQ6AjhAs" : 140945962167, + "3PQSJcitfqgDUwxG5GYY8MmAEoCBfPzkjsh" : 21140718289466, + "3PNmQBsZkHPvErJZt5Jwv3FnNJkACBPFtDt" : 14636066677, + "3PBxajWvSRayJ32NagzngQK1cqNmC9iJ83L" : 9876201165, + "3P1y6WPuhP69FLPd4yjRhjDEaBukyJdHq2y" : 204430946353, + "3PJb7NT1cDhM3oznoiRqLpemYmJ575rxYyg" : 16570595805901, + "3PNwJNLye8yMo8Hz7ZV5A8JvbzwsgFyo8KX" : 43331584778, + "3PGtKuJgPXntJ6gHRZirjjSwLDBdHqxJxgL" : 15542520574, + "3P37SxPgSPpbeD26v3F6coQao74n7oH2XW8" : 847568055375, + "3PJqKy4bHhprPdNmYnQaVJUjuoDwyxKimCf" : 130900254162, + "3PKyXZhE5dhpMyYLbTmLGSqmGWQY2NxCJyn" : 1736255351639, + "3PMEiWrZfFMpy1cnu6KabcsUn6MUJjbCbN1" : 7800000000, + "3PExCrMwdm9F7Cd2MW7vLAp2RQSYFSFqiUU" : 1137692784963, + "3PN3LaExY8AoMCJ1y4iB83V6RhWbdM4GZyF" : 37217464373, + "3PMsSfSwQ2P7tHcXZw1MVmGzadVjEeyTe4x" : 508374516712, + "3PB7KZbjXdcRQmqYVMqmy7TZGeP2fkZMrSG" : 2570550810, + "3PLhR6v43n3pCJZww3S9df7ridpy26mjmVf" : 337786219237, + "3PD1QMEou6UCPk4KxhhTtxio5R2mDcXDrfV" : 1424713335479, + "3P9vRpvP1C5EBQ4d8fp5QWY9TcmSVQ8p2td" : 1077259848169, + "3P4MBAnuQhcqgAM3WKGSQnCntBm91RnQ5x3" : 10512724872, + "3PDUc6dEbTPYqM5e84fG2esSqjJ5FhQKcJ5" : 1549097083622, + "3P7KPRUkwhdjYMjfJzkVnqFJEU3yUHcE2LJ" : 174311636970, + "3P9wmLcesQ9Rptmv5P811gDKVPzJ4z2Fc6S" : 27324642858, + "3PDf3RT3Y9trvVyxWEVn5Yv5T5DRFebi29B" : 12196475764, + "3PAEXyjQ5kcqYoSSZtK2wRMuuCpEbKPyLB4" : 277729389566, + "3P598bHDEyFVbo6zJQ38N65VvQtPc6rzZUc" : 76643800320, + "3P1wRqwnK1obLMwvovLwNb9oGEMpKT92xnT" : 164258873061, + "3PCdSAmyk9v17a3dUTBzWP56snfnqP3pXrW" : 7800000000, + "3PDo11Cw38pXptJYUxpCwaVaLdhJHuQ32Xa" : 205243296824, + "3PK3SrneQR5qUx9PFPDG97pCW7KR62EFKGt" : 712090278895, + "3P4RastFjqhtQFHP2qVKCfXWMK5apRaCa4g" : 1041880953914, + "3PP3EMFU4xA2dsgE7rLaSmDqhhBcYg5SDYZ" : 12511241590, + "3PQkfvX8GaAqwdtwtP2vWq5MrGMbX63rVCc" : 288765678259, + "3PEUno9EppmVXPQzgjCV6i5hNCZQrzJnGU7" : 1385989684711, + "3P6zqr3e5vEpuzZvWNPam2cLXvup3rxBz7j" : 720735623428, + "3PEFWRE9ay9hwSauUH8rn8mytQay9ccK7CS" : 57029717159, + "3PMd182WLwCyFa3zpE18qrZKMfhSH7r2BJd" : 7462882450, + "3PG2fJBbDLWK4kusrrHNutfhjfNRanmwKYC" : 6434043775943, + "3PAiXBgbDVjzeVcT5DY4gNKdPBGvAyM8q3D" : 979048401215, + "3P72P3iGB9RwJjtLP9esEEsX5QznKXg8nH7" : 104519920775, + "3P2s9xw2iME56NVKcpaxZHtqoERD8vUP8NY" : 71600000000, + "3PB8zT8HnAjo5UDrQe4Z5Mw2FrbyYeBCkgZ" : 4773528237043, + "3P7wBJ4mvszYYtynKtFseQk1LcWWrkogRer" : 361256283927, + "3PJZX5xv6t515zpgZYFvF41QVT6Ex3ugua8" : 52986075563, + "3PKuiqtKDx2b1nJyzVrPyioArv2g99tUgM3" : 457152688544, + "3P97UxYXE4GHzKF3p1rJqP9Zno74gbqWhXE" : 80638174616, + "3PDqpbMo8jBonCqLqrKavQWrDyUBLzS7DxR" : 1383031446058, + "3PM32h2dnRNayT61ABx7VrGhrVp345vymza" : 678045581752, + "3PErRhVVUcdQ2BQD8QVN9wNJGLnLMSLicK2" : 1684389420629, + "3PELgNge8tKBheZyirVtsnczHF7n3dWeEcQ" : 10300000000, + "3P2CenECd8oRHCfk8UN5ukJpoF9GDW4UB5b" : 273171394609, + "3PBQ5aouPAdn4d3og9Lw9bf5coMuWTtqdaz" : 115180101259, + "3PLHfQgnRvLKgxv2bQ2DV1kQ1n9tGDv2aHW" : 33435250040, + "3PJU21hfBhPRm2bcJeLjHhNPVTeKE7vpRoE" : 54254497440, + "3PPhQezXGvE9NwMb5a4hRXtzgnjCv5Y21RS" : 3575231073975, + "3PKf2Dnr6rda3QqdTsJacE5tAwCwEULiYDz" : 173818762165, + "3PR86NSwpqZtUyeiyQvVg3h5EcpugMcxUkn" : 278692705716, + "3P9F5u6GQ2YvZXhb5Fak3txtc1xBBRCKCKm" : 327994431939, + "3PA68zR4cH1A4Gf7u7WRVbVg9SZ41wAM3kg" : 1509173152605, + "3PJs2maNm64AkgbQJ9JMughsW257BG7ogsQ" : 89519920775, + "3PGvXKYoQdeNExiYs9mX6JbXbH4HSbdVDMd" : 604056926862, + "3PEdHCSqxJfcM4pE54aagaKJncWkhLAcySc" : 17500000000, + "3P9CffgKmZhkZJj27JR8Y6Bt24cR7AdzL1K" : 135636243599, + "3PES5tfxkyvVjc231ZHJ1Hk7FsGQnMBWQNu" : 1048391493606, + "3PJWfsY2hSZ3swqWV2n7ATTHSBahjQUztTB" : 1681633822808, + "3PNiCaTvJKa4WAd1DQuGNRX6QKod7A3bDR7" : 163006730152, + "3PHspXiciLqKNTGj6u6fa9DmG3HzP6szVKM" : 446332554477, + "3PCSgwomiER7JZ3LZfGfi3tGp7rnLhTJ6aB" : 276353874315, + "3P7TVD83E4tNiEGarRXjDYYmvpvw47JtC5U" : 154947938953, + "3PPykXoFjWUUtL4QufB5R44Z37EgArWJT7P" : 6917448423554, + "3PNaDkgah7rAx1bgSR2C93GLLUNBZMPYbaa" : 14338759531, + "3PFsWXPA5M1aeSyr5ri4C6asHD8F425C3TD" : 107990281872, + "3PE49HezWTc6Ayx6mnjNdVbniJgRJarty3M" : 10713793219, + "3PP3QoNCEHUdypRf12D1aq5jhjgGTJvnLKM" : 3257769846378, + "3PM4U6sPSSMwvLjyc3jWpTxoa5xKG39VLbj" : 1021714820021, + "3P7qtGBEpqKndHKxNvvou3Y1SiiFuBxpyQa" : 413678362328, + "3PGsYfHDemMjL9HWfKyRQ7GcZuw5mayfrsv" : 3324082724532, + "3PNeX5JHDjbfV6Tz1aTB998SGoKZQzo2hi6" : 37946568470, + "3PPjwJvKCNurzv9YwEs5cEg9x8masSmeNjd" : 818262802514, + "3PKLZDfwVy85iKaDD3QjV8iRFsvsdWkfhDh" : 158111381014, + "3PM2WACp1N6qVNTmmFDeJZ2xtDsfMxcvwQR" : 416608730797, + "3P9BRX4WCsiyEWFAzPDacFqXQbXLvgRedPv" : 62092455594, + "3P3k24Uj4Q1T4Uyd87kJWRkc4vkjEK24Uus" : 500000, + "3PBcD4jUp1eCCq6W4h9FQvJsvYkATDDmNFW" : 248081614118, + "3PAC11MTUWYGfPsbfYXjVwxveRwaSgX8GSR" : 92592980, + "3P5P8W1pspSdByojcRGLdAmSmhnHWCKP13F" : 36301694180, + "3PMEYWca4bY3QavHV2EhprMuJbzA3kpL5Q6" : 3201680698968, + "3P6sDrRp93sVkKXZ1WhGKwWuYWFbi7gbPp5" : 78815936620, + "3P8ymsuDuAdJEEXGxihjXxs1uEwBmjMEUx6" : 68800000000, + "3PDArvr8jdzQz8o8v1fLaWKCkyWHWWB6Xgr" : 127818683182, + "3P3uvyPu6voZxNNyCsmKfZMXcP4oT6tEkgB" : 27112345009, + "3PBthbtUkEq3EK5cQbXS8VZYML2VzfhaSn9" : 98849193461, + "3PFnbq8kQjYyPwHMaSnbyQ78t15uU6nbkqi" : 560100000000, + "3P7T9DCZ7gzoHLKu61FUedBZYPRvxxAfEks" : 27162318583, + "3PKDheiaUk7gCh9yA26NRqBDKZaTvyPaGYb" : 271272487198, + "3PC1yFGH5bLxxmHH8PTrMpY4m8kHw1h6TCe" : 11412778689977, + "3P6AdihTY5CHpJwqpsqEWB7rojRT6yqHFjH" : 10300000000, + "3PF5jGUDGz6SZpPaRTmKtzQJznmPHhxZV3a" : 298399735918, + "3P6YMCtEzUZGEAKTkvStLYmpYYS72Hy624a" : 542544974396, + "3PQ9ms7SzhxfyzmUrAYxPPxd3Z64NVwcWLQ" : 798764763131, + "3PA6eu58aoP74SoxYVmUW4F7a7BdJQatkL5" : 9291998680, + "3PMFeG5fjY6czocq7cztxDXD5uA3dpJujph" : 4069087307973, + "3PHXFG5Gb4WjFiTzjn1X8xuNjwp6D96pa14" : 63041297865, + "3PA5s4QB5qBcQewGAWYwjRCbghu7PuEuusk" : 51538036020, + "3PFU8z32HNn5BNtBGRf94VEtAgpUDq71bCF" : 104738307307, + "3P2kQdkjC5mftTi6VfMHxbiZsu84TSkkYdv" : 232531351660, + "3P5n4GC9Mnbsg5v2EpNyuLfTqC4XGDrubW4" : 116308994879, + "3PBgKrABJgfwxwNHVbD9SV3EXLQ429CHPDm" : 5722717148, + "3PMFqp9N4cjihe3bAJuD4Di52E9KazYw6eZ" : 21600000000, + "3PENiMzASJRBqVxjDg4rRmp9C6QTEdZc1KN" : 6300527546, + "3PLwSGwBrVgGBehMZec5gcn25HNXx51cxRs" : 1020841527872, + "3PEwLS2YHUebA6h9QquTk6545GkGfL9g4WA" : 9700000000, + "3PK5JTJmqta2yvSDN58Xxrms2h9jpXWssyR" : 17500000000, + "3PQoni8TSUvyr1Q6ee33WPC1Nt5NJwXkyu2" : 299647616486, + "3P9AYHgVPrXvxxThfwSLfjUujZfhQj8S5fY" : 2480585510316, + "3PCqZsP3sPMj3cWuYuTvhBbsUBq6kSeHCiL" : 235641761998, + "3P99q7huo3oPHxneD1wFxz2TkhQt4GaYFoS" : 42072994222, + "3PKRe3xi8B9grgbvTLt3NtQfVMPAAGUQecQ" : 29505463515501, + "3P9sMFTap3FQVP6AyWe5VHi7N1YtNbh7fPE" : 10300000000, + "3PGBDioYWFZXyfMvEwwrwKMBzNLxVZ3ax7G" : 2415240919428, + "3PFFtMEn8gdCMRz4XGBVprPx7RQJB8NgimJ" : 45724414092896, + "3PJryBe62deHuiiJ2Vf4nV9fJrqMHG4hd1Q" : 39752698464, + "3PL2bB1zA6eYkSL5U3KNz8R6shCnySLEEoE" : 110354497440, + "3PGPJSQSPKKJGh9DbCtJbjwztg81bqbsg8U" : 136810613298, + "3P6MQQBmAKndatCKQ5dE3iLPF2YTVzdPEUo" : 5443342877, + "3P9sruo3qcog9EcGHQhvipXvEDgNDa2RCzK" : 271272487198, + "3PAGPDPqnGkyhcihyjMHe9v36Y4hkAh9yDy" : 100000549, + "3PQTBbdymWHUScJNZDbDYvsZKUQQUGtwZ3v" : 41914523848, + "3P7S6Vrkeq7xNfxpENA3m9bee9e7aBTA9Xc" : 545176317522, + "3P6V2UirKDLufC5s26u5uDwpE967XHRzHd4" : 26213448358, + "3P4NgXVNmfPqKKxhVMm6xQmwvsFwMVfMHpD" : 39581580458, + "3PLjDng2bjaVhgFtNB7yunqQgsiGSBFRuTZ" : 17500000000, + "3PF8WKPvhC83VYD6oytS4Z72iU28F7K9kos" : 27706411439, + "3PBAHyZscKagpkAqAzTxGRyA8PjbWwuaKPc" : 17500000000, + "3PF7wyopLfuLk5MhEyQJtJsKy6Dg54iUhPN" : 117554497440, + "3PMWrUypuJpLhktfUVRZMbc9D9bWMh7DAEd" : 43582825514, + "3PBMQpMKhTJVyatmb5jty4m8yfxTXgAuWPA" : 1314265714948, + "3PNaPGR16WCT9NmC1wP3iTFPSYJZeX8D7Ns" : 1166988748726, + "3PNrw3oemNLPQ1fuA2BVdzdVfxZsRJGupRi" : 17500000000, + "3PBtrkqcTzUeuhyhtp8PfTRnexGhX7f95EW" : 14600325442, + "3PMCYDsnZkV5qiaUeeK8oRwnxJyawevXZoR" : 17500000000, + "3P27ZVsTexdWMPxS5UzwuDEKKCjzS6Av39j" : 4749768525968, + "3PFTeWz9b9LSaVEGrXWY6sRJ8H6GcURhS2f" : 57500000000, + "3PNunTNubR7Sj9LEtizWkDi7qWBvGxo33ii" : 3282397095098, + "3PJrUe4SLWSEaX4dYtHeHSsnm11YarT9EeF" : 202189611045, + "3PCDMUisDe9hnV546NpyRwAYZmcwFpZ9mSk" : 925391835579, + "3P2ERQFFg6tJyrrU8gE4aPRWchsVqTBG7Sv" : 678181217995, + "3PBr1xwC5fYAmgwKw9PsDcCLUHb1yuFaApM" : 2730197744730, + "3PEn7rvP8qW7q8y4mw3zFtqgZfJjTMmgjuU" : 13012724872, + "3PNoF6qUPHEoAtfowaZg5bNMKfoKgGpyVqQ" : 17500000000, + "3P9y5hn6KPVcooPPhVNZEuNyM3JGLNUiSwZ" : 501114215374, + "3PJvzcC4r6dsEtmzf24i9P75D3TBjseri5U" : 550344974396, + "3PQE9AeTsLo3uKz7dAHujNP5u3mQtoxXVNh" : 2220727578274, + "3P49NsXTfGMnGmMgJaVEPnPKwSYTj2pDyti" : 10512724872, + "3PJuCXRUPnDxRMTgqTmc8bcsgMsT4tgQPn1" : 868071959034, + "3P8ZNXKNd2D7uf4Rd92gLhynovxZNSCo7De" : 89438539029, + "3P6UDk1fGg5nikUiGbcKThYpDzshZe1Uhqc" : 271272487198, + "3PPyhk2TLoRvEjb7FSYQUw3H82EaA58Ww9a" : 1111704478948, + "3PKy3MvzpTQhtyYxADpqxnDdB1ZjdG6A3hw" : 2500000000, + "3P6QJdqUXdZn5a8iGcmCozezQhUmU8TX3iE" : 134306105074, + "3PKH4XVC66EpoHj8EUV3TxgjTo5v28dN9rw" : 153136243599, + "3PDhTqtF7CY5FRjpGPv3CJnefGk25vjGk4W" : 17500000000, + "3P3pReCmGk9T4tbgNBEeC1haYSQGWXdFB1w" : 284836111558, + "3PEbW2MKF2Dt9ntCPRW126d9BjLxbaHYpY6" : 20763624360, + "3P9Y6Kyo36zUm2EQgfFBBEJ7c78Vtqf1Hgj" : 952836933364, + "3PHouWynbsoeaymoKMLVwRkTR7X9yBQdi2J" : 468040406532, + "3PDx9ASnH9wxGGyEVNDwSDwSxzUNBJ4KQK3" : 17500000000, + "3PNrgDnGekSbds9uvtiKCmRNevc1vnx1HvL" : 30939924106, + "3P4EYn8EupBtbxtsgUSc2utiUdyryQGiT2T" : 869475016947, + "3PBUtmrj7aE4eCqLKj7LFwngmWavWY8CfDR" : 17500000000, + "3PH4ApntLrcSV7F9PAxxk5KUq2zYTTm82sT" : 14012228167062, + "3PMkhQia57r6Cud4CxbDpyLbdtgfbaP2oSk" : 2500000000 +} \ No newline at end of file diff --git a/pkg/state/testdata/accounts-30 b/pkg/state/testdata/accounts-30 new file mode 100644 index 000000000..e07574e57 --- /dev/null +++ b/pkg/state/testdata/accounts-30 @@ -0,0 +1,105 @@ +{ + "3PBKuUPFbJLjqbx1rSGEfAWNwGkSC5LLK8T" : 606499471836, + "3PR6Z2LHA6CBp4z2qEfALfExYvH8xaX9UhH" : 276069497960, + "3PHZLDyPLuGaairDFCmZ7oFELu9ez984MYW" : 2135407057845, + "3P6uvn256dMCkXJLuvRAsFxVUaVptXR9yC6" : 334537524331, + "3P5zxoMBEfJxja7eodVe6W24fYEirxnpAzr" : 2015832367226, + "3P3hZf6x2KGWEMYde9QUEQrsnYtZuLSHdVM" : 251402693504, + "3PPtYiyqaRS1TU9vyzbKVgwy2zXRMJjzPx2" : 161274418215, + "3PC6UF44GywhqV5codazUb91SVFX7aMCMux" : 474840518984, + "3P93oqpXzHvpaDqmQBgpxTWgmCxkrwTaKo6" : 2968962424425, + "3PBh2T4haSeo3VmCgfierPCeEgjsuFow5Pm" : 2239619096527, + "3P4TBwaAR4qDDBzRhNYLm49mZgdy81Cm4ea" : 180926167792, + "3PNVNUF8K8RHBXKwuf3gDdsGDxWkfkq8qkQ" : 653667125467, + "3PEf4d4vVbVF1sHPrn1VbuyBXeJHka2p289" : 614263260079, + "3P4uf2nTonWrDD5hbvNB9PFUiY3hzxsvBYH" : 39053340224, + "3PCtPKzbr8JPR7ngbn1xHWMGAR5skzWNoxs" : 9010539693, + "3PBGknVkTs8xFBKmahdvzmAHX2CwLe7xhZR" : 657149673914, + "3P2iT1nawotR2QWmjfMAm18xytUiK6cWtHt" : 26210559564, + "3PGJHsjWX8F1v8isXWDVhHtkmSZvCwHpjpL" : 3257769934271, + "3PDv3gcAX9iCMvuVA6e62KgDioAq8KWexMz" : 158578564565, + "3PCMAQfbXmYZxN459Dbjs8psJy7hut1CSCV" : 96108256250, + "3P6xa66NuAh76uETnHatZgu36zgkZxCAbzT" : 1373862435991, + "3PH39Z24xMWpD7yErokw4jJmPGLQ1AqWRTc" : 197816190783, + "3PB9ysxSdYgr1pV16gTKidxB3w7oG75WS2Q" : 788522932227, + "3P9KTJgiBxXtYtrtoByzzmJcjoj1gMZL78G" : 262921587710, + "3P6iops4pqYnAo3m7HWFCaFtHZ93qWjqHR1" : 1091981193460, + "3PJaDyprvekvPXPuAtxrapacuDJopgJRaU3" : 100000000, + "3P9o3ZYwtHkaU1KxsKkFjJqJKS3dLHLC9oF" : 100000097, + "3PL1WbNem74fZZGJbKXZt5wfs2EdFks4nWT" : 2500000000, + "3P9qYJA5RxiQLz3EPY6UaFaQ3rg4p1pdHRU" : 1853332267251, + "3PE4TaXL7sv6MKtDXUhEDFXAse2CcXvdc7W" : 352870920653, + "3P9v1J62suCDpMMmwqvrGWH6o5CngLfTvWq" : 49363238157, + "3P7T1BigJaTwN6ywymvXWGHuQGF3usWYWYz" : 165263492319, + "3PGutdSFKDghVmnEmJRbpRC6NapoxHAb2Wn" : 23467994718, + "3PJWAWKF5qPuhtsAydmMnpfTVajNtwZQZBe" : 1039880953914, + "3P9v5kf7i9QQwcE9s6vi8dnASJ4wd9DxPwC" : 1096974608308, + "3PE5e6chQwreMNUdoTXkw2wqT4aKVr4SwBQ" : 3434309687929, + "3PFWCjHzHEaz8sk6kaSc8u6mG6VP1FXNFEM" : 335101534894, + "3P9HyHmsUaizKEmp31khYzvqJosnJVHKkES" : 301821946392, + "3PJCh8EZ1toiXRM2schLUNG3Zy2L1fYvsGF" : 166786127184, + "3P7B2p1ULjU7tGi4ho4u9dhGEbb2TGGbo7A" : 61166244380, + "3PDK6hPkVV3NCDp7zQZGMUeDg8qV31wPiXD" : 298399735918, + "3PGe5KV8DJ7X3nynb3ayvzocctTf6jw4ctf" : 3985827419227, + "3PFLamGjZZyfUX1HimZSGXnaKJFuCrW4xLJ" : 26714297246, + "3PA9He2f3r5fT3F2mfBZV5rGyYrtAkaDAtm" : 48704083555, + "3P88WNNcAaXb1yhCKb3w7cVCnxG6Sec36Yw" : 196210429148732, + "3PPdbW1dQACxQ2aJ1UUyYCVdZ9NVmtqh1rY" : 628723008699, + "3PCprrVoJgRDBUCsH6w4VJ8Rrh7DuEraLEF" : 520843175421, + "3PNUGo9L4WQ7L2J3rpTLpufYvqFmdaShDb6" : 17969683355, + "3P2tU1d9kSoFX7SSBXYLWByPi3GGmDqYZhb" : 3419437261305, + "3PNWpdrXUe5GinzH7trnSDDCktLTv5PXKwW" : 62370538649, + "3PFseoCSRxrD8L92QqaEH4hysKpZpmjVkxP" : 34126170295, + "3PDKuBuTSag8QGMwwx8XmHJNr8vdDaH7UgB" : 322271714791, + "3P8JdJGYc7vaLu4UXUZc1iRLdzrkGtdCyJM" : 100000000, + "3P4kJqL67kBM7iRUWnmdUrmRBkFvryCfDyY" : 459306882668, + "3P8MnXHoc3age6CN4N4eF7S7og6pqdPKhSv" : 1963461907827, + "3PQRwibhJLcQ3CgpWNAXUmPQW4hdpKGq3ng" : 53521127639, + "3PAWwWa6GbwcJaFzwqXQN5KQm7H96Y7SHTQ" : 9697330943297224, + "3PAKogKCWgdCyAsQhXLJn3pvdrmR6iVNnc8" : 679800188734, + "3PCQ3JksTYriRZoCJBTqzWY8wePLbrEZR3p" : 109705518399, + "3PGQ2iJ7eq7hJXvoTCs8wW6yGpGPEUe1wDf" : 1741856212507, + "3PPtZqyW5Cqq1RCJ3z3xKN1oYXHuonorSig" : 1865897216443, + "3P5agzACndG3oqHwuPDbTbVjZmAJcDUa419" : 95626476313, + "3PEc6mMhaH2c37dmww4TyuUrZzribepNXiz" : 2528259580687, + "3PLbSLVxcbA9Dna4QqyUdzaruPMYwWWSdnZ" : 615246000966, + "3PGsmEAstGvLFfEZJ55PqjLBXfqoZnQfXTw" : 139910793855, + "3P72uvTFxdoesLA2vptZWLEM9jj3KWr1p8B" : 289205025754, + "3PJaoUcfJ7ArtbodoyoyLvnDWr3uTfV3LLE" : 37574164053, + "3PP4hNGAJaMqmx9vpdYUHk8owF3mwbUevoz" : 910924657498, + "3PN3RshNUXcHTZLFV4uqajkBNEC9YcyjVKn" : 26845533043, + "3PMcfGKEstEzgDZxNQJDW26SCWbNsRFtKHd" : 1627634923189, + "3P82hVbeSBbtgobDfsDw79ygW6cwcgndAwy" : 662341027681, + "3PBcYTbG3MDKUwidaoM7iBNDLLz89akYNJB" : 32331331079459, + "3PEGktdeTtS8z3F1W8eQtVBavFvdPC82zq9" : 140715210193, + "3PGU9uKFb8KKHczVBUNdVdDmjEbN4XuVuCL" : 114703336106, + "3PBGCtBsW5Sw4A6xTPPYkAUpL2gzgayeta3" : 420824613455, + "3P3pA4rfuwnV5f2rkLk2eJhaEic5ZGJbZ9k" : 7591970387548, + "3P5YD9kDiNMLAYnXdM49dPkfm6eqZHcoEXH" : 1854042338233, + "3PL4heGXQ64hKzQAbAgR1Br9YuZTDzEAUoN" : 1193598943672, + "3PKgjj8WjDwimGKDRRj2R1jSwEx6n9QVJuz" : 328026984638, + "3P2CVwf4MxPBkYZKTgaNMfcTt5SwbNXQWz6" : 569672223116, + "3P5Q1B4qtBBynGg7dQextkwzEVLGQLJ7v9M" : 75405396928, + "3P76TmRjfjhdN9KEmwSnzQHpLrMRuf1qV29" : 165263492319, + "3P4rvnKD9GiXVYxuGMrP2F8WUMR7bpM9bfK" : 486037782981, + "3PCnrihLWh1CNfA2tG2Het3xmjtz3s8wSM9" : 42896626431, + "3P3fm1rtieWpttiQj1KjegMng4krYZjmoXW" : 93818154810, + "3P5rkwKRHuNgpnEV2j3x6ys4MgUoDf43FbX" : 59630967065, + "3PNUaXNaukMQUmCW6hjoe6A8riWmuGbenog" : 25963701601, + "3PQL81CriMZu5tXjdbS5HqBVnrVpy9eRzp2" : 115158095391, + "3PLDLAA1FJgfvZBYVK8R6kz5XBbFbWwE1eA" : 57588978933, + "3P2juQF3bvMHS1TCmq2TqqpMoYLEPrF3e2T" : 18584872931, + "3PKkw7vBRyD4cyKD3dLoWyCTtvDPWx6XtNM" : 67789427098, + "3PBWXDFUc86N2EQxKJmW8eFco65xTyMZx6J" : 100000000, + "3PExCrMwdm9F7Cd2MW7vLAp2RQSYFSFqiUU" : 1137692784963, + "3PLhR6v43n3pCJZww3S9df7ridpy26mjmVf" : 337786219237, + "3PD1QMEou6UCPk4KxhhTtxio5R2mDcXDrfV" : 1424713335479, + "3P598bHDEyFVbo6zJQ38N65VvQtPc6rzZUc" : 76643800320, + "3PEUno9EppmVXPQzgjCV6i5hNCZQrzJnGU7" : 1385989684711, + "3PAiXBgbDVjzeVcT5DY4gNKdPBGvAyM8q3D" : 979048401215, + "3PDqpbMo8jBonCqLqrKavQWrDyUBLzS7DxR" : 1383031446058, + "3PBcD4jUp1eCCq6W4h9FQvJsvYkATDDmNFW" : 248081614118, + "3PQ9ms7SzhxfyzmUrAYxPPxd3Z64NVwcWLQ" : 798764763131, + "3PBgKrABJgfwxwNHVbD9SV3EXLQ429CHPDm" : 5722717148, + "3PAGPDPqnGkyhcihyjMHe9v36Y4hkAh9yDy" : 100000000 +} \ No newline at end of file diff --git a/pkg/state/testdata/accounts-900 b/pkg/state/testdata/accounts-900 new file mode 100644 index 000000000..4f2ac4416 --- /dev/null +++ b/pkg/state/testdata/accounts-900 @@ -0,0 +1,1825 @@ +{ + "3P8dpAGBNsECCcZKohYtGNgQtkSLx1dvgA1" : 149199867959, + "3PKxiBKhfNFazixNqRuS9QHv8mVj3WNTVin" : 821617461595, + "3PHLpg6q3Efd4d7JPvbwQwuMW71e8oYp5y1" : 572355108015, + "3PMPRVLNEhZpJtCCSpQaqLtg2ErB3yUpUL4" : 2983997359180, + "3P9vNrUuYVka6rCgraQEESuJqsdDZckVK6B" : 17500000000, + "3PNUydgTUKBrJKyJbteuVJU5CrLeMMM8pbS" : 1898907410387, + "3P6BQKJ3b5caC5Po3dMojTxuDrAsizLzkha" : 1231654733321, + "3PJLywH36JE6BhSRdh4vreq258GBekfA43L" : 1409693902832, + "3P45Xioe6XnihzJZDsxNmGmBJSrukwYecM7" : 279072487198, + "3PGCGvjB7NyzZikQHixEpo7sNqTeB55kpim" : 34927248720, + "3PM4Y9zs4j2DDFNZzPAwADCkPVJKQBunfGL" : 493997633712, + "3PPm8mR8rfP52VA5vAbnsYUwiCh4mxKRaMJ" : 143409119063, + "3P28k3HrwkobC6XYipgEKJQAULjZrqKCLDM" : 40690873080, + "3PPru9igWnqeQgYBvo8NcyjovnsAyEDmKYg" : 4771134374083, + "3PNmk9Vp7L7d53Fp8DGCmZ69oFbiWwTjBsz" : 333989336414, + "3PP29XtSVQWjKhno6zoEawYeSARt66YBf62" : 284836111558, + "3PMCFncwU4rJfZruCdPxCTxvpy27qgN9v3B" : 1482371430870, + "3P3K6b3xfXzVqMD9D7r2rfPjwsNWVBt4DGR" : 56684269645, + "3P2aCZZ8qVZzrYMiTiE4efrn7rekkNj1EzX" : 10300000000, + "3PFBJ7P6T3EoZSPmGWKd4RQ9gyLhQWUAAHK" : 453555583489, + "3PFqqMqjskfWVEaCmvQh36zW3zuZrXqNdCJ" : 10300000000, + "3PNc67aMtcdHKzBsAmg7nsmwaCiyGmrd2H5" : 84040216534, + "3P9KdLbEVVpdggBYja7HkWZB9QbczmefkYX" : 59245911204, + "3P36XgtSAnq8u5NzMPiGSCcUMKEFZyciN2G" : 135907296356, + "3PC1beQBcLPQ55HyMZBAsW3P89kPALbdvhF" : 19830018814, + "3PKRY4ERpwp4hTCEVVPkTGyroJA9UtstreL" : 7200000000, + "3PJitrUqZUZFGPmQ7U4MHR6FFUcePgL7Xit" : 52626862516, + "3PLZNXuiMAmVrqnR8sYsVKrDRDCLs1E5ywk" : 46400000000, + "3PPb2Qit1ZTJvA64ifUdKGzt5cJ3FtdvdG4" : 539218514009, + "3PHUJMxzr316QGUa7UheQt5z4BHiay8x8e3" : 1468163546533, + "3P6pkbx6MCc8QRSKUg4ukjPLDMCJaVtbxsn" : 67790994551, + "3P9XJwHS8w123hBcbDfXFXp4pfE79QwLscB" : 18396432331, + "3PA7WLCosEejWwkaKh7YrgAHn5eJEDpVdcg" : 2653522364376, + "3PCAEDaqAhZVw85xFzcynaesvKkkb9fjqKw" : 542544974396, + "3PEy7LLKeZdrun9fSDyZwVfuRZGTVV4yshv" : 15000000000, + "3PQ2SUu83aeMTcQJwxwKYTRcZ2YMHbbzpot" : 163659100780, + "3P3LrR4Nnsd1TN4jdQgWkienLo49wc2v61s" : 334717958513, + "3PJLHq2XqNxXJaSpUsgcVq6ASYqNgHBF2k6" : 6771769266, + "3PEyRQgL2neFb8ejVQHeF1RzcWBLdJXvKa5" : 13406540406, + "3PMiDK48uQkcgJPhDoT7N95bb4VNhW1kYi6" : 23992254761, + "3PQaokm435P3XTGLU1MRUHDxKfcc6M7Jc3d" : 215513343448, + "3PDPkPCkTBha28MfLDHCaLeyYFWc3cE9t49" : 167613844390, + "3P5NfqnhBuj19TUSetcz1a476oUpaSXpPDQ" : 37039973592, + "3PPNqUofXZvaC3o5voqcvYfFbkxy8ZtrSNW" : 66341912766, + "3P8bJ8vYBVBeVKC6zmDmAxgD5UCHZp7MDq6" : 18730102102, + "3PMbjRTVXGML41o7aWyRtnNf2GE6NYyEwbK" : 578125092275, + "3PEWs8zWmUg5b1CjA9mZknmLC3Cc9TPbsw3" : 96507195903, + "3PBKuUPFbJLjqbx1rSGEfAWNwGkSC5LLK8T" : 606499471836, + "3PAJDU2UnGk2g2GHytWsubKLr1bSYt1v54w" : 127077644549, + "3PEvopYPXFNTV1LkKRCTuhSWFWj9qFMAmnb" : 145634850454, + "3PGgTbr3eT8HiWUrKZZ42p4n8HC1rGa3WJr" : 1908807658950, + "3P65AiQGN8NWuoWdyi9AQtxtMS74wuvHebP" : 2094078173777, + "3P7PMEoEegm16ybGteg2EJdrpPsACRonZPV" : 251637902335, + "3PBy5ycKREr1DAEp38t7nhRPQ587SjuGETz" : 789928623, + "3P7uZyJaDBCp85p4Tb69EcqXdUEDXSZ8A5A" : 3161677794618, + "3PFsUXeZcceDrc4RraRw27hsPnKCvKFm8vR" : 1901407410387, + "3PPmVkmZAxbfKm3GaLsehNHcbQuEr1ooSVJ" : 979080953914, + "3PEpGodj3iGEYiY3Sosxy5N2hZM38Rxb8nR" : 352389424168, + "3PGfeHY6ii6XmRBThs1R7vuvBvHT6yDZnyK" : 34927248720, + "3PCgxsxcatfFgdM7zzEdVzfnxoyj8DarSp1" : 3407193121744, + "3P64nBPqQqnnnnwytHDxE6FstEdH4ah7BjE" : 17500000000, + "3PFnDL4SpY6F3Dr1z9RdAfzE4S49ihCKr8b" : 17500000000, + "3P7vLnBQeXNMGxmZsq8dijfwEXEVdJjbWrD" : 998, + "3P81E9thzu8VEDGSmcAuZXVUfwwfpXAs8NB" : 227160666774, + "3P2AugkRACa8wZLUAcmzEr6m9HeZr58AJ15" : 9703623437580, + "3P7AQh2UmTuKbqcC2yjmhFeLb27bP6wBKNV" : 11029488922205, + "3PKY6A9GaiZWFwuXLd7G7Ym7aR5rYfM8eCp" : 10300000000, + "3PDceFF1iwwVGzWARFhCDVjEMLfHUYV6a2B" : 21496790477, + "3PFZc6qivpdxgdYWEUtVpGMj6GrgX5NQUjC" : 7200000000, + "3P5AngbUMBfEaQqEXG8BwpDWoo5x5FBK7aN" : 642915794660, + "3P2ykLMLtiScWCvb1uvJsXPgjVkEEkXb8e3" : 944967070106, + "3PF5Ph4xtG9jwYsgrmXr78eccynPtfhSWgW" : 4347255199992, + "3PEjqX7NNRCyyrVqyDT4rdbRVdTxHwk5RK7" : 25564513, + "3P817T8EnwBy76fm4yQMucRdTVEtfW6tQFu" : 21701798975856, + "3P6heYAbnV4AXxfLnLrFB5PgbzdT3VevNNM" : 11393680500000, + "3PEbonP2tDqxkybxdthrYzNarGxNLycTCWp" : 1827701810474, + "3P7zb3QJ63qMpSs3wnp4PsxEBym5ugDkyQD" : 29400173987925, + "3P4VCGookYVeyXPwLDxvMn7JyzFspf4H6YK" : 2215367336171, + "3PC7GoRGSy3Ge5joZUvmgaKFTtxg3fGhWBb" : 72240290676, + "3PD9ohVnu6NEDzmxtH8wtCEnn7CTvUjeyFQ" : 270702814975, + "3PHPZQfDF9fMDSTXYvB8LeQkzuw7VjuqcnM" : 2049837996815, + "3P6qrHqvumRMpPbHfVbJRVBBCKgjRGm4d8x" : 50532734526, + "3PMfTx4dpKu6boTE4iCz3C4t2pa4TuNEQ5m" : 17500000000, + "3PQtn2U4uYtPPXvbrX6jcBf9iJJuxgFxJsn" : 31262581448, + "3PFunYrmEy7oo19obDAgxgy2jmMcvADfozP" : 229028138760, + "3PDzkiiTTDFfKFKwvKtH4CbhpeMPG39ygfC" : 9700000000, + "3P9gZHSEBJezjmjBFUwegX2HMBgHrmXKYp3" : 651053969276, + "3P6r1d4UNtEZPzinSfiRrDHpsDcWxPpJ2Y6" : 10300000000, + "3P6Ym1ekEZj4R1yLvUh2wbJcGJmrReHPeGd" : 49212707285, + "3P8QmVqXEJq5TBiyB2bijF4WPEDeS8KFKGT" : 3255269846, + "3PLiuYseohG6VmGMD3rz5mY7GKzmRfqt1Ry" : 17500000000, + "3PKbLRk2wvd5y7mUmrZikuhGh3E1hgBmSAU" : 49810660890, + "3PBHGdnyHmXyAWNXMDPLRvPBZgnb4wSmzt4" : 339090608998, + "3PJdYoeLjwQSeft9YBaTf85tFFzFEi7CiFw" : 63545998144, + "3PBa7xxKhTvzjugpBciA6GnMvgerVhRztZW" : 57500000000, + "3PDEpgruS4X8av31ESaUdBHuUC9RRX6JeBM" : 10300000000, + "3PG6cUpCNsMJMLushcBMXhQisiALLcT4Y8W" : 42083034527066, + "3P7NaMWCosRTbVwTfiiU6M6tHpQ6DuNFtYp" : 1100089948790, + "3PDYZwukY8q911LX9waZPChYkEt6udmAcdi" : 930587434152, + "3P2zFi9C2ZwTo9FhcXY4ZGq4ecRvpa6vjqg" : 8852138480, + "3PPr329WkvBHRHFh4aLvnz7JeyLVz6PGS81" : 9700000000, + "3P496SGNWUZKaZFNdVMjeEkgSo7ksA6SUYc" : 1988487879861, + "3PNoQHFGMVMurYP8avEwqs4CzYUVP9gt3TA" : 205929232749, + "3PREyKDrvoNb1bQJF9Dxaw6nq19mJGfu3xd" : 1092879561758, + "3PGGv1e6FYgQeEysNVonwJTkQdRsPNEBQjU" : 37161858546, + "3PQ93QF8t2j34Jhg1LxtbGvramFjQZjTYjY" : 31312547833, + "3PMLrDrC85JSQtgmcrzwgShePunGAEb8rXf" : 9509016669, + "3PL6XibeSUtzhuVQTzf2fxBFnsE4Ar8a1fk" : 145798348781, + "3PHTmHZi5bxpLjfnHof3SACyxqsWkPoAJhQ" : 195075001466, + "3PAMPmrnhnzBsLgCWQtdaQZUHE4V7Uwk1ok" : 1974525532187, + "3P3dBurpbEBjqHnEvJ3SrFpWWCAhFgHMwPF" : 2085840148984, + "3PMsKmfsrHt1qoWAQA4fodgURUdtBqbGBzP" : 59184778308, + "3PEdRHZd8Mn6LmxiEMHef6sbeab553JCdpB" : 2425176035552, + "3P4oK82wEsoDNP5LPWFYLHuGZzYLGVkfchz" : 17500000000, + "3PEzxbzZmg5E6nyzGthNnFvSoZnXcEQnQVL" : 22421587060, + "3PL4i59TLd4NXJjRrCJZkRmzVoNgJ6W6avx" : 2983997359, + "3PR6Z2LHA6CBp4z2qEfALfExYvH8xaX9UhH" : 276069497960, + "3P1yokLetz6vVuzxf9pQLH8eHHo58NYz8dQ" : 189890741039, + "3PHZLDyPLuGaairDFCmZ7oFELu9ez984MYW" : 2135407057845, + "3PJ94L2hQAGHtDNBafqQEsNES9zCeDkSibN" : 1397401990546, + "3PLQhuG1FbTk59TCDTTervabN2CZH2PscCe" : 21510539693, + "3P4beUcQnFNSq63yaSRySPoZ7n2UpyGrURL" : 542544974396, + "3PBVmT5DCX6KpF8qeRkVykife9UcJk1fW12" : 128295935299, + "3P2gcy9zGHDHpLsBWsuPHBaXJ36gF2Ly5KM" : 17680667476, + "3P4wvfA6EdrMiiw1dghZTwk3BqKFN7kXShw" : 5696488936823, + "3P6U29EHrifxNB94JttQ79H1jbr7i1pi4pU" : 1524178107111, + "3PAqurD4ECukixo4c8vkLggbCeKt463ucT7" : 2018617177673, + "3P6uvn256dMCkXJLuvRAsFxVUaVptXR9yC6" : 334537524331, + "3PJVDUEdb2gtb8M1xWSSNezNdZDoYTtyJsz" : 271272487198, + "3PQbAAQfzba4fDWKjK2Kuw1AfqHrYuPugiv" : 869508334674, + "3PLi285ETGP2CA17wFXKerkGsNXatRi4EQf" : 162033981179, + "3P5pFXYFLggBdXVhfx2t4TPe1SHV1hVne2S" : 17500000000, + "3PJN497dtqGFK5t3srPNMHFrDZhnaEaBMFY" : 271489505188, + "3PK95wrh9nna4ccSth1peBnwPfnYhhRAG4m" : 4234350800292, + "3P6WUD7jLEyL1FGP8xQzGEH5CsY8uFxp1CG" : 137072619239, + "3PM6jpKdENE1x2w8NxBBrDe52knMTBr1mr1" : 7301423990134, + "3P5zxoMBEfJxja7eodVe6W24fYEirxnpAzr" : 2015832367226, + "3P3hZf6x2KGWEMYde9QUEQrsnYtZuLSHdVM" : 251402693504, + "3PQJCbvnTKyAfkGQM5fjmiB3VDt8bJZ8oZf" : 62200000000, + "3PHvqsTsLpSeto18yxd8Uwy3PiKmQEujL19" : 1802633852051, + "3P2YP7uwrKs628Li1UPMCiifRy1vbUFqqAt" : 17500000000, + "3PKGKyLxyPgUg7UkvZTgZnpezvhtcFtbqoS" : 201997659270, + "3PAca5adcvyitdHhkesoMbepsv1WKS6J5LE" : 101400000000, + "3PH5ijkEf4BtXJMgRNYMp3WgBToHMhtVheT" : 17500000000, + "3PF9Y5uFFKuXsv33N2xzJ2AhpPsthyQjqbw" : 5573815775231, + "3PNqoRoef2xSx3E5xBGXuL9bW1rfWTy6t6t" : 1378609885103, + "3PQSvJmwofhrPep4gp1iVcRGmx1QvTSffeH" : 470737778493, + "3P8SHvhp9iP6iGiVXtKnmtPhXMUez5NBeFC" : 7200000000, + "3P8JRyJ2CSvk7M8coRhFvadkDMJj3uUw7Ma" : 21368360778, + "3PGJoskNr3skVJqE7sMYz7W1A4tfBPPMJMu" : 11093093369, + "3PNvgaCZkYdEGZ2A2VnT3EdPhXeqwpuTMRM" : 986280953914, + "3PBNEyztsP42tqCFiZbFnm6RVjdGPSYiAsd" : 72314502569, + "3PHaPre2vLuYc36NyiatUwcHXeWXcVnVcH3" : 90429958847, + "3PMwMrrizuo1aimfHBaTQ2nR7EscbYZKwFa" : 8548925668115, + "3P4TuPiZxZuivojSCnwwogxQ1mQSvpFdsJY" : 17500000000, + "3PN8uLJJAN3JZyuKUxCDfET6qqSEYVHb9ab" : 25533747106, + "3PPtYiyqaRS1TU9vyzbKVgwy2zXRMJjzPx2" : 161274418215, + "3P9RRo9uwAkHwnfadaLt1PMqchjGkgURSeQ" : 36393914428, + "3P6QRKebzvyW5KwCv6AR7sbVxstLHSNg6bD" : 827225491393, + "3P9uUZR3whjoCEWwuEnaT1zeBsW1VAZbkfY" : 303023350306, + "3P3nAPwFhVXtgEZJJBT1cFfsuhdGQuAZEPk" : 465316621867, + "3P9oNhv9kFiGpiSFp2p3MwVnWnj7cT8L4Aa" : 20981130153, + "3PMZoBMuNqmBHD4Y4ap32pxbapFT8E5sdZJ" : 157623296446, + "3PFKWiE9iMVNNrsrTBrCY8y8cnb6Xeyeyhk" : 33752094216, + "3PPnA7kSnBiUgZwMGXDvu1e5Vj645xSwNqi" : 9700000000, + "3P3QRhAtRCxCcu9NN1MG1e5AieSmh3VAb4p" : 17500000000, + "3PN72nqm1QXyf7cKMcEVG8TKr7mmjQSDkeU" : 1106757079403, + "3PQvpoZo5i2TGB1L5f6gti6ddtd7v7JZBCU" : 9700000000, + "3PPDz3ZpebKq7V383YZhYGtuvQHprYB5r6i" : 7200000000, + "3PPJJ7BDWqeYiyJewJ88h1Uq4ADgtJua6VJ" : 813817461595, + "3PC6UF44GywhqV5codazUb91SVFX7aMCMux" : 474840518984, + "3P49LnztaDNZNp9kzk89MvGo63Dft7AXaXJ" : 16377964814, + "3PLTKFQLWYNZqDJfkCZSdRNjoQbvU1UiuRt" : 7800000000, + "3PFtTvzDnDHxjUaDFw7btuWyFEqcejuhWYb" : 7200000000, + "3P3y4Xi1CHbxxyYkj1Xpr6TzH5SCFVDSJLd" : 9494537052, + "3PKe59ZXvPYw1xs2sJpLeLu6x3Yh6pzQC5w" : 660753969276, + "3PQ925obLU9rYCi6pLzxLtQtNeznXui8usn" : 14043254369, + "3P93oqpXzHvpaDqmQBgpxTWgmCxkrwTaKo6" : 2968962424425, + "3PB7E66cqNrrYsF4yjfJz9ajE2eZpP4a1zc" : 92101970978, + "3PLYPnRxoBzCgLR6hgdmbjb2PdFsBMxE6z4" : 741953969276, + "3PKCh9BBpX5PC7mMmp6je1c2VTh46eMQtGm" : 5696713580283, + "3PBh2T4haSeo3VmCgfierPCeEgjsuFow5Pm" : 2239619096527, + "3P7qVRoKqCzfXTyAv63hWeW59EcWZjLmoBy" : 111221719751, + "3PLHpzhhtZfaYHCRBfUG8xAYX9yP29RbgRW" : 6772925670599, + "3PA9CDQ6CgKrBMPRZYwJP9izBpp74QFrYAK" : 2500000000, + "3PEt2NMcqd8cGFsJG7tMKhZZJzn98fRmrtg" : 1997789156547, + "3P5euQUuCrD5tbxbRas4aL8FvUpP3Gw3Tyv" : 54096027065, + "3PQTXjEuzRVyqTfYbpehiKkYh3g13hH8hpG" : 78305643333983, + "3PNKxrLegbwFmnUBF9AjHEphv4aSkvTMdPs" : 10000000000, + "3PDh2FtgoL8ZMdbu3Zs5tCk6HuqE674SWnn" : 15724810418924, + "3P5M7yPgEXUvkWxiWSt6FTPwqoA5MHGGtDK" : 81922494402, + "3PLWXMSAm9ttZTjUSc21fGMF4hvTTzGpfm4" : 4556399835434, + "3P9MCchvMgMQhj6e13kcHXN7SZLikS7QQvQ" : 106764203093, + "3PQRtk26GYNch4hdvjsLUpSsVbMe95jGktR" : 340526984638, + "3P4TBwaAR4qDDBzRhNYLm49mZgdy81Cm4ea" : 180926167792, + "3P5hN5mZepg7SkpD9sWrYY5UnUKNux6jJrk" : 7200000000, + "3PNP9roKB6w1cy7ZxWqDaWJWxcuhNvr92hs" : 47083783909, + "3P5oXUzEKXB6X3rYyGQjrestvjoqgjiGuUo" : 17500000000, + "3PKTSQKNqfNh1XPyqcNFKxtZ5Ytxjhja7AE" : 122787647115, + "3PPcpwiKy1icjTAJ4FAe4oNi5VZwXpChqxN" : 210103465911, + "3P4YFPYVse6ch8g63CGuzyMSGMZUzJPEoL8" : 109700000000, + "3PGVChDmLxeiU5dPb5owwPicPhwbMVfshUf" : 112657784757, + "3PBdWtfyZXYfikzjJS4gJ6VDJ4Ef7Jcoa7B" : 912699207754, + "3P8YRPSQ4nL8F885gn4vdvv5vP15b6XEATN" : 136239510207, + "3P7pU6hoBAyGtsjNTs1YaYMzsnvEMKdAwGz" : 4303874416057, + "3PNVNUF8K8RHBXKwuf3gDdsGDxWkfkq8qkQ" : 653667125467, + "3PK4Pxm6znwEQRJkczRKPMN6kYGruUjBEno" : 292115519445, + "3P7oVfH715fKjHqAUDWJw4NUjZAH9Wm4kna" : 1, + "3PPDsx7yDXdk8BTMMNSfReMjdbtW9qxAnhf" : 101845838451, + "3PAPMd19LqT8Z1KGkJp7g6qY2GwZnA2bpDe" : 464449611088, + "3PEf4d4vVbVF1sHPrn1VbuyBXeJHka2p289" : 614263260079, + "3P3CG7Rk2bRXQGjocPsKwkFbFaiQuowS3ci" : 1187021752329, + "3PAdQUcvFsQXfsQmAiSgoJxaZH2KVVXcDe6" : 607099471836, + "3PGG3hsAZyKYmM2u9LSCjb6xG58ypJCXaYY" : 17500000000, + "3PDwj4FYtQzKLDfArCpKAMVZ7pJvXttyivf" : 17143448042, + "3PETTcXMXqS1zqcqGVUg7ccWDsjFw8EsR7w" : 1356389563240, + "3PRGJTvT4zk1xQew4Kvs8hddxPUuviXXoKT" : 17500000000, + "3PLVgN4y2DWaYSUrRY5qRHYjyZdquEHT4ud" : 17500000000, + "3P6KfqNY6LadZVnnQFJHmUET2N8oM3GF3vb" : 754610822508, + "3P4uf2nTonWrDD5hbvNB9PFUiY3hzxsvBYH" : 39053340224, + "3P7tuSTM9LcepXGTtJZCPDXEJUYwFhC4QYp" : 7126644743417, + "3P5HRrVHdaxZsocdAX27uLrKxkxWg5fZiPY" : 4150469054132, + "3PB8TB1CigpBWu9nvKgCSfLbBFL58xeFtVu" : 455455283043, + "3PCtPKzbr8JPR7ngbn1xHWMGAR5skzWNoxs" : 9010539693, + "3PEh7qmSTN8xBeCzuLQXwYeNn2C6mDVCYpL" : 1627634923189, + "3P9yXEr6Yj9WTgvYAQh8va9zYcAqtqxSBhE" : 17500000000, + "3PHwo6PnWxi9kzSY6oao41LezyNR32PRDS6" : 57808167022, + "3PQZ46ekojRH53dQZ3QBNgRL6MK5pgCeD4V" : 1004670990968, + "3PGwm8BdyPtiBdZGecb7ZByNa6qPM6F6hBC" : 128414772640, + "3PDQ88xisSZTjuB9SguL6ssd1DoDsPDRbvb" : 891609876546, + "3PBPRjBZB1Hi2cVkS3AdXyGfoGVaJfydVLt" : 33809606073, + "3PPJNbygnfYt5xfkzWGroVr1wftu1YpveTT" : 81381746159, + "3P28sSYAMuKkc7CJJBAHrTSW2Uu7wu7APmD" : 755927912826, + "3PKxekL6dorxNKUe1Pa4fftbz93eqdKLcW9" : 10070978742350, + "3PJjKctk2MgrzmcWxi5HBnCbEfgoGnjsxZ3" : 62054497440, + "3PFtmx5pQzr8SQDeNfjX5kcK9ofoJYxnRQB" : 247353436580, + "3PNnbF6uBAxH2hUYa7ZE6gYyThbEEnvgkmU" : 3826905429770, + "3P24LxKaGaYHvPbZu7eipszqWvgq9qG1VyY" : 249380797481, + "3P4h1PMtzcGFG5qMr7sPTRocBtAbTnfwtdc" : 310000000000, + "3PNCiF2J12PdaBpN77BHrBo331XjvE1WN28" : 17500000000, + "3P9wFgvYGakqyYbggodsjEdPZwNb7qeWtLN" : 328671321155, + "3PNVwwQj9Lkrn1NVAzDQWEwDseGXYfJAfsV" : 79098197598, + "3PLWhJ8t2D9SPfEGs11eDnKNKo48wp6qgMe" : 4069087307973, + "3PPcU3cjhL8xY7MJ52XJFVnLnoBjoB7mgG2" : 1616021710034, + "3PR8h7yM1SK95CMEfWpY7P3oiEM6DQxBBiB" : 831317461595, + "3P2QFKqhAMWs9sdZYVdQ8RRcPYwwCeYA8Sa" : 949945095867, + "3PLVJjaSmv1paKv9UWC6YAdE7zzYaMvkDDB" : 682190344914, + "3PBuERFKXcJw6dgN2aazZGU6Dse4Y1rTt5d" : 2512355563795, + "3PCg41FfWn93XeRqXE9r7xqmu3sMirLyg9Q" : 15783144139, + "3PKCDkgw9CfYUddLUTJZ7A6UBYNNpZ7hGPy" : 17500000000, + "3P8KgxSD6iXwYnRGtL1SGf6jLz5vmFaWW9u" : 157418055779, + "3P9bzrSsPByfXiE7UkK9exn7CRKJAYaSfgZ" : 10084569266, + "3P2fPKUw58vuhJgEjDY7jAPAJeFaZ39Dep6" : 3064107753368, + "3PMV3NRfTCW443QNoBrFi8q7KJK2XjPE3xX" : 29568673977355, + "3PPEoc9jvX4d5eXAAhukUNU4anmyZpdaTb4" : 17500000000, + "3PPXcUvV94CHPu85RefU1zfdhnhdimmy47Y" : 9765809539135, + "3PNG4UEr5t9iKaAfqBeveWiw4BrkMXvKESb" : 1413872528804, + "3PCq6VV6sD2Bu1hiuGGPiqgKUqUhaUp7L3R" : 2661014879857, + "3PDTL5kAgS76KLkdeeXJx2ywmKdQkn3EnAX" : 607099471836, + "3PH2vgYPaWCm9ySs2h7TbVh7Cjwt2RPwMt4" : 991609966506, + "3P4qpYaQYKdjrQaaFSeZTyt371jxwaoL85e" : 57686327955, + "3PQeumpcsKYnNSqjAFBmoESMAybG7NJXySU" : 376513564600, + "3PDkhUQPWqqjei91vbeq8ttmqNtd6QcG7GD" : 273985212070, + "3PA4uenq2ngzwuJuJbVGPP7LqGJzS3dQJg9" : 33058712977, + "3P8qzfc97QSqiMyT5xQL5PbJja7dzAUP3rM" : 46797428617, + "3P9woesgtDm1hD8qyecpRZE4PCMAoTb7BYn" : 21080484868, + "3PLvpFdmruWH1oGphq6PTMppk2USfgNio9k" : 7428216689384, + "3PDoVBGsASeXN2TC8y6zNbXfiwaHnkRXrfa" : 108927555442, + "3P6GbG6dZBPtW8QVxanfS6eksfAcnhqXMvQ" : 579246773372, + "3P2Qb1iC1Yqhx7dJ9oULPYa4bxgWo4mYTfC" : 16627634923, + "3PBGknVkTs8xFBKmahdvzmAHX2CwLe7xhZR" : 657149673914, + "3P835EDNF32SdF9sx8CeDUUkHqmiqTNvsDW" : 115888433912, + "3PGsYWE8NjLf2AZgTBQb6F8B9NN3mUsKigQ" : 19387559323, + "3P5QgGjo17FfnfUQXvqW7RPgwedWkh5TRgD" : 36292235030, + "3P5dbEBbk3ruBhQb1qD8VtnscPzGUyXewyp" : 49472559164, + "3PCCWNgjYt9dhqxCvoMTmEUWeoLvRARnDzu" : 278472487198, + "3PQvvjkMmfEXsWEzgEcXgRQSFKVsTLQZrRN" : 17500000000, + "3PJeATGynXr4w2j95WdhDMVvJUZJdUBEMow" : 17500000000, + "3P34pBRr1gHfTD3hRuDxxZKKdeQ9Ha7SJ1U" : 2784857137804, + "3PJExtJHvHi8Bdzr86FLZpL1KJ2AwcQmbms" : 31188809600, + "3PLG1J9DaM8ndogbEvsfcVy8w5t2ND6iE6G" : 17500000000, + "3PN1cyZbPZtmfE15eNJrTPHeAKbVR94z4pj" : 62054497440, + "3P8Kq8R7YkwNTUKq39J2SbGX1hQjGw1ecbf" : 94856591172, + "3P2yy7PuQFy1PSe2DgWESfgWQ7r2P9BxEmP" : 496446378809, + "3P9pvdijNyipbg8QjAGWgCyikHgedcQS47U" : 63780841327, + "3P4636RdvZ4TFhqNTt5FgSWEVkrbdb3mTj8" : 727122750415, + "3P4gGfVmq8y5TK4RvPukbivLvR3KSL2qe89" : 1118852695079, + "3PMb1D14ZwdLmVHbXRH1ikU53vPCGs1BeZy" : 5931459717432, + "3P2o2gMQqvmPGvxdBPeky48bW6ys7zebs9B" : 7200000000, + "3P6ZWP9dczB6BwWGFgDN3vpc1wES5XGhMAb" : 2451110237260, + "3PDS9A1vn47YvxK4YV25uy3VW9SrMm64KNK" : 298399735918, + "3PRER5eJcm559TtgXsEmVkv4dgsZFogRhFE" : 11026813362, + "3PLq7LW8oLGznaf9rwpLi6ecMBv1Q1z8YpN" : 2126040934855, + "3P9avTbkf9BaDzTyTT9BnsjR1NQT4ihjbSa" : 9989391144, + "3PCmX53DPP2TUxPGz5xeoG6PD5BjNFaARfE" : 10300000000, + "3PC88zSb8Cbza9v7R9s1wFQRNYSBZYh3N7E" : 17500000000, + "3PQbFjEqPhxZj6kz4CyfCbusFmzPj4dXKc5" : 35657733565, + "3PQ3zNZ13HkF6LZP8isFM524TULi87A4L4i" : 40690873080, + "3PFagDGsq19ZwpL4CgxH1jjTsioSMQVik3d" : 1637240914251, + "3PBgBqbB1HNJdrtxCWrZj7iwo6Qynh3tW58" : 45109685557, + "3P7n9nEMQ7E3EeQyA2m9QmFYJuYjScKWpym" : 1358862435991, + "3PQDYEpQqjcYcVxVosFUA6hp1z25CNF2Y6Q" : 6424801650182, + "3P8PJW2edTMSh7VtyCsamUFGLMmLbHbg5wN" : 19980134675, + "3P9eHTgLk2e1pWQ7DhBTfNv3yGePr2PK8kA" : 110842124485, + "3P4vLZzxDG6HYZR4vLYCkU52r4MJUpVDuUF" : 613400767529, + "3PM1yjfaYhnQmBeKpANhV8kCQKSwgecckJB" : 409408730797, + "3PFqqzEaDKMi98eWdZLMTjo3twXVgRBj7wP" : 54254497440, + "3PPefmu4SPi2KReQm6LLmnYwufsAkDtdLnC" : 4119130524079, + "3PPMrbV2M5adukRacfvTQejTqMZca6ZYkx5" : 26855976233, + "3P8GX4itT29JSBJzKZMjSpLaf1Y13NWbSxx" : 71209027890, + "3P2iT1nawotR2QWmjfMAm18xytUiK6cWtHt" : 26210559564, + "3PAvaWwqMdHPqw3Eap5EWbtE5GDZiUvDuV3" : 14730096055, + "3PMFZZXwem4ThveAt3XajmnuxETef6FCa3j" : 288908123442, + "3PDQHh9pdfqkA72Wr7TojFHi4x8YiDgqubC" : 14074706568, + "3PQfLcZ3nzFn1hzoVecwC8SnRwY3z98r7HB" : 550317847148, + "3P9vaAc2hmpfdTR7deYSgKsaEYkbgcNavsP" : 307414344196, + "3PAz5gfnNafnyFvXTCBS32jyxajqk9CZcC1" : 27144748719820, + "3P5bECVvFpTVYSCr2bgHiUxFiyjNSicmkDS" : 758902419040, + "3PMaD7YkuPDRpqZ8yFbWfrgMw4ZWDAiq4tB" : 11592181176727, + "3PFEvAiqDbs8MDgkpUu8jCMwCP6KCf2sLo2" : 139357110853, + "3P8vENcrcpdw7APkEbwf1TiynDw7b29UX8h" : 117609426842, + "3P6zPwVqMEvAJWQhxaWbf15fZUJT7Vab1C1" : 7800000000, + "3P8q5887C2iLMwV6Zp1Sev1VnEik6qv8spi" : 70286701433, + "3PJ3qxaaMW3N75BfiVuD9aYj8hCG5m4ipca" : 373967483081, + "3P62ZCyquEdeMYuGwL2gfsU6xUWsFrMKBmS" : 273772487198, + "3P4mp9q3rjYMZEfF1aGc9fbn6U2J4N6nCF3" : 1169226844808, + "3P7hisC7w9PzpeEL4SbUWT4FfhAnssCeuAf" : 1491998679590, + "3PKFBJGh85ivjbsW6c2fFJtn68daZuCFQdT" : 71600000000, + "3P423zWonR97LNGZ8swpK5igX6vx3rqL8LS" : 20851109737, + "3PFWyqbQWYVY2q3eErgupjK82FUqGhP1XrN" : 72500000000, + "3PDnELaShNxWvGBYNKu7UXKXR4pKxbvjd5T" : 183677979041, + "3P8rCcZm1G1s63Ww5ftEN9fLQKPSGmBGpzu" : 27127248720, + "3PPKbUzKEmzRNh4iiEKARYWVgpB5vKJ4bEZ" : 17500000000, + "3PDG2XbCVPbBFUg32k56rbiQWjw8bH73LMs" : 74899999985, + "3PGJHsjWX8F1v8isXWDVhHtkmSZvCwHpjpL" : 3257769934271, + "3PDv3gcAX9iCMvuVA6e62KgDioAq8KWexMz" : 158578564565, + "3PEpn8ZutD1KNkwWap9W7Q3hWNpXBcX8sMX" : 271272487198, + "3PHcSJiYa7b26WnJJKoeDrxoYnm6JRSRZ2U" : 462661091828, + "3P2ScKXGxQCUZJ5QVTmpSdGrfeKvNgG8cHi" : 15000000000, + "3PPWGGu17YkSGZ31KVwi8uYJ2K5sVNLGPu4" : 325526984638, + "3PQXFDURoE6wsC4stJhwrySboL5wUBVhpLT" : 167739392458, + "3P6vd8Y2LLpYKUXwDh3UtqYBom8x385ZhkB" : 126649081817, + "3P4XcCf7TLUvd22CMVAtUvfAo2wEKafczkq" : 545637480750, + "3P8oU9EtfRAFkmaMrFnHYGf3FkvDFrFkAFw" : 100917309798, + "3P9hGG4SrrrrfAfzhumKZtRNRxCVfEeQAhm" : 6033344792220, + "3PP2Tr6wmQCHAajKPmhaTCPG6LCRJmKFUYU" : 722645703223, + "3PLcfg4W9j795vDBJKERGAteNdsf8NJLVFJ" : 17500000000, + "3P4U4DfUQqkfKDz9whSikqpvC9oKtWbsPtu" : 404026984638, + "3PKut3tfzCNoyi6LnUQb5rgZmxVqDPZ29xn" : 15000000000, + "3PBa5yU6cJSNyD4QNSwHoyWXq9xVmZMadCL" : 596446817603, + "3PKoPNNBDNC3FbPyypYnMp7CM7YzBUThSV4" : 82938378901, + "3PHGmq7ckc4tdKLKP22HQaviUx2DgnBvFms" : 1092889948793, + "3P74CruX2sysygK74sUQACz8TdcMkxbGY5g" : 1312307938550, + "3PKvR2HyXLza8TSBs2MwrXivGk56TgpaFV4" : 398000000, + "3PCMAQfbXmYZxN459Dbjs8psJy7hut1CSCV" : 96108256250, + "3PAuGEDEYRE2hGAWTf7YquV4J2BCTkzsH8o" : 603834256720, + "3PPnfsPDWEkHZc4HdHBKNkQ8EVGxNq6eqCm" : 211041640527, + "3P7wBJ8zekq4CKUaS6hMvSB3rbdBkzsskge" : 937110807026, + "3PFRCZr1G8ayJgyGMmrf9133LRzaVmCfaLK" : 40690873080, + "3P8tkcqLEgEF3yCG434wtjbF3ZTYZ5HGivG" : 123508994879, + "3PMc1UDttkiNF2wxACedu5a4h26YMP1jQ1U" : 1323918246522, + "3PPaKbXmK4hHpzwfVFLgtPMPdcBcahHerxT" : 998011480402, + "3PL2a1ammNviP3Wj2ujbED6qB9XqFJjKaic" : 39612640899, + "3PDZ8NbUcsWF4KPjUcbVRrciMDWu1dFYhjH" : 100001000, + "3PDNept6S2jYAjX9voUURNdvX43a9aLbNAy" : 742735715435, + "3PG3k77VbHdosCcTjYv2STmnpuVuHAqdkut" : 522593798956, + "3PQJy94CJ8dqeG3RF2BkTfB1h53iwTPwXLB" : 1758710360107, + "3P5o1iDdgitPjbaBmKqSZaNuM7pS6Ah6YXL" : 2500000000000, + "3PGqt4od8WxgGh7Q1SRpjTjr2b8U5YiXHcJ" : 1250000000000, + "3PHsLwrHHegxqF4kQocpdpcocxabRjkLJxD" : 252283413094, + "3PDvjTCq5GQTqh21CMXGe4GpLukBKnSrEJC" : 17702110183, + "3PHZUhmkDzsq1bKzfvrULJUESxoMWda6jkR" : 965362496238, + "3PGLB49YSSucJEPUxHFsaoJdMewMaqFSvYb" : 2500000000, + "3PNARHFv5YFgyW8dYUrJb3sFn45UjUkSn7r" : 249209065979, + "3PGj6qFjAdRdWmMH9WPMkQcpcDq1WYCaAwk" : 2500000000, + "3P5Zgq6h76d3pHxNHYNm8EAahZqpWdrrBVQ" : 343239709510, + "3P39CzcsFX7RsztoW5nKfPLefyDTKGPvTiG" : 37427248720, + "3P6xa66NuAh76uETnHatZgu36zgkZxCAbzT" : 1373742435990, + "3PRG7WFMb6p5U6g9hYde2mMsw1oLF61uDGv" : 5425314107720, + "3PEC7mHuz2UyiCbvibpxFWX4pBuFzE2QpY5" : 1311807938551, + "3PL4ZvXAtwGmEKXJcJwhrYv1CJFnpxCawe8" : 2720524871982, + "3P5ATwyV3Sm1VxhBS7cvp5tcQNzcs3Hzxu2" : 6510539693, + "3PH39Z24xMWpD7yErokw4jJmPGLQ1AqWRTc" : 197816190783, + "3PBRTpcPDRzsK2yq4zhB2qfDskEnYMWDyr1" : 1906707410387, + "3PPrcgVuHyFy55GnzmTokHvQJVPqshJuiwT" : 83197264407, + "3PQvx8FoXjcjNEtAQahofvR6RzQ9vGrWXhY" : 18399050843, + "3PH9qCxyZvQbg3Jqz1dvdW4ZXtkbCcXdV2a" : 2500000000, + "3PMAkBsi14JwnYcMNMTFsaPwPpMj4A1s6hh" : 81381746159, + "3PMq9uSKi4LuJVFYd4rZeosDxeueYzkwFzb" : 271272487198, + "3PEvva67UbuDnTH3TCfhYYhqmtz578gC5rk" : 85112658851, + "3PNHAJ7n9G9vx8Q1tKasUGBWpvWkHMRoJkr" : 1000000, + "3P4iNghUKts6hoEYyzQD2oSjjqZjX23XJjn" : 749346332368, + "3PR3hB577ahYar8BWFVWs8FmQwx7yCRT1Hz" : 37427248720, + "3PB6Af5S25EGn8v1j4wdHncWTfLsUyK6b65" : 1139344446232, + "3PCRJ75kLWoRK2VAY94FsKXh1L7Y5paK455" : 159248016190, + "3PFQb3hHUcY2Z9TVGZ8KQ97LsKnpYsYhEyr" : 1091425209865, + "3PN88wtjxvLv6UEy8NTU4VBKpqSX8d3h2q6" : 5696722231162, + "3PMiar2s2BfGTTGT4pH3SjyHhLkGcjR5QVo" : 91644547268, + "3P5ExjhKfk4g4JKLXyX9Gvy6oNmzVLcf9Zd" : 495643362292, + "3PCmiQ33ovgXC9qSY7Wojp6kyrPeEQqkfhj" : 34927248720, + "3PJ9GTFJqiTSFxV5ofqfQJYwWvLuPSmp3Y4" : 17500000000, + "3PQKp35rmL6jgp7y9JxLwU33NGY39nnrgf4" : 722210099030, + "3PFjZYWVc7onUmFQ8bBm1EhDSeJYpRDfwUn" : 300000000, + "3PL2Y7kFtgMyYVMXB9xvnP2FBoLWt7mpoLa" : 24831511031, + "3PPSEprXsVXNPyVEzgsy54zautLScReFepX" : 17500000000, + "3PFFhiipM3ykw5o8CMfZ6tdjy3Nciy4QLF2" : 545072101645, + "3P6QX3c6PXuSXcR36R5g74dRb2Krt5sz3tv" : 68967986451, + "3P4A4LeqU1NXvTdMTUNzjkXGUYB6tV2YQfu" : 17500000000, + "3PBxfd3PAbV9A4rQ5QTTkDSWEPMuXPhhDmU" : 18229885496, + "3PBunRoKeg6uspKfR68X2Kti9Cmz7HteTZa" : 57889548768, + "3P8zBJAivUW6f6i6C2UQZjLaELZxsBAnRut" : 818863129856, + "3PCUBdWRnDsnPbPashxZ55DUjGP72kzQEA4" : 72500000000, + "3PChw93hTq5C2Hnf6sb8cMCR91t6tgWwGTb" : 300298643328, + "3P4x5DrHN8FQ9WJ6v1bf5onG8X3wuHVtuiS" : 100000000000, + "3PEeRYa9DQX8q6BUQCZvDHh536c9A7EqhQw" : 2172679897586, + "3PHRgZ47E4GNgFMgi51uVxanrmJGugwm3sY" : 63410859876, + "3PHSoVVHfsdxYYxMpNFNPCeFiu5ZkRQGy3k" : 580643601946, + "3P8569bGTVA4W5WSSMav3dcf7K3JiKD6rnK" : 71626540662, + "3PCnrFmMd3amKoqCec5X8CWk4ChqEahcYXM" : 32903984155, + "3P5Qpq6mrtzdG4u1hTrmobu87NEFAC2B9HH" : 182848968471, + "3P9VKSUmii9zGYS6JNHHWH2G1BCTSgg363t" : 9700000000, + "3P86o8HPP1qXJaCiuuqhMYu44FiR2TMMXeN" : 273772487198, + "3PA4TWbQYwEG6ock4RQmc4MDkoBnm92DhhU" : 2336983981422, + "3P2Cuxifwh1t7sZf1WbnsebmCKaFRbfrWaa" : 44222943039, + "3P37iqtCLNtofbTht9CYuKVu6wPbw68S3WD" : 17500000000, + "3PABh5LDVYYqjvzttWnGzxfQTkcPBxNMQFZ" : 101996360963, + "3PEXpnqSzfhHH3Pj8ntR2hi1UoQHnK8paQp" : 65568175611, + "3PGM9dZLnjt5ChV1MhHAEahMhZG7fqSLh2p" : 44275963029, + "3PCdNvs7pRDrqxgujzrpWsfraBwSd4yd86F" : 3881366746832, + "3P3VzdyH8yHedftaGEbdavhfHD5t5VwkZV5" : 702910629779, + "3PQ9PQKJfVunqYtb7VAmvykeXE4aYkyiE5L" : 328026984638, + "3PCUXaqZxbYfc2KYqQpqrEGBYtp8ksPtpik" : 333326984638, + "3PPFxXWEZZVknChWRmJUVGH93hbTkQspKTT" : 11258554662952, + "3P9KMEsdkxR2VP7kP9XZh8hEQLykpGhEytD" : 552809456690, + "3P27uvhREg7UCB8ocvfSANPg5uUwRrK169W" : 17500000000, + "3PFKv1fdtSrY8eExovqseuXQhVrNK9bWcRX" : 17500000000, + "3PFjEC9XL69xWxo8Wdxe62hjsqDfDwMEDnr" : 9199722405968, + "3PHeeJZKzs3CJAZiLPKpxB9NhaV5FhJiJi1" : 100000000, + "3P6Sqf4N37oycp95iYuKXx7SdfrkGvZZxnP" : 1370745723753, + "3PB9ysxSdYgr1pV16gTKidxB3w7oG75WS2Q" : 788522932227, + "3PGAMV32YWnZXR7Qd6AwKH7nvzZy1pqtWBE" : 1415441898998, + "3PJYwzAuSKjTWn5VWJpzvCL4KfzC61S54cx" : 242300468918, + "3P8s46het9z8gceUcvf5DpLZapMPvvZyx23" : 17500000000, + "3PGWHBkJbwvyqHYPQeGnKj9EuKPHYn42qzd" : 542544974396, + "3PB253t4v6HaS8w3mJB8dmHZZRen5DuZT18" : 100880500323, + "3PCLNJ4aX2nqQVGCmSvEu2p9Q1cawAo3fK9" : 1117338834306, + "3P5pneUwdZQJY2zdg7JVxrawHxsGak7WX5m" : 27073661553, + "3P9UvmWCqCvLDU6wz2FjCL7ZxcuqGfwi6Xz" : 17278688892, + "3PLJnXnJ8GHrx4ccTJQqabEyc5AWTNfkVtw" : 157895972999, + "3PNhBeBeXcJJku8RWvGK5LCZxiPU5FHAcfG" : 564897593139, + "3P1xS9JBmqQNKHRKcN7Rp16fBen3KG9YCSp" : 33268791396, + "3P4TnTocoTJu6CspvEUHtkVqLGLVJBUpT1o" : 4696279128328, + "3P9vrB55JcnZs39aEKhoZfDyKqaGG5ZEHCD" : 574376066601, + "3PMyxurFQ81ezJAE7388phvSWZBVjHCobJ8" : 34318894206, + "3P97VHmsMM3PLkzBmWS1St8mvLycsbiwYsp" : 771116682765, + "3P5n28S29XR1SjfA9tmvQLqpveTFj7j3i2t" : 317564639584, + "3PNUVRQmUqJnpArzUthWDTCf4WfyRnZvnpp" : 115446090661, + "3PNidPHxszcv8KHnQ4AipcBEHbiU4iriXW4" : 155346566128, + "3PBEE1wHZZoXeWrYmgRzr65wrGbzggLU6AE" : 12813040572307, + "3PHinQDxsHqgLAPMutibokmRyTM8XpR3StH" : 641472709381, + "3PLeGiNqjxmc1E5sM3A82VxbBZvaj35uouk" : 821617461595, + "3PAyEXoCyE9yCVZppLCk4DwbEGXxMp8Bi8n" : 2902561115581, + "3PJu8UEawR3JticfkPjM2JWjiqvy2MQgPfo" : 2441452384784, + "3PNy3ki5oRJWrREPY3XPkU2kwJfz4sjwvvy" : 110300000000, + "3P9KTJgiBxXtYtrtoByzzmJcjoj1gMZL78G" : 262921587710, + "3PL3Gz799hkCCKobWTGR2CFHUEwQZfY1z67" : 61673412045, + "3PBH1DvNCjpKHwTA4fzFtpEz1tFaWcHH4yS" : 294536111558, + "3P3cTX7Fa5SfAXPSVVrM3CBsauDE88hBHdf" : 553828045314, + "3PQ7wUeHK4cVUzzUzkn1R8VbzcXqU73onzu" : 1494471552341, + "3PBmwCHPeNf4wrgPZmVj6YBYzdGtKLb5AV5" : 2338101860279, + "3PF9vtU55DB3sVENPAobzsNGwvUbSFG3inJ" : 76498841390, + "3P6Na9DT2FJkZdDAqkUDPwwsz19gDD3pmhX" : 2500000000, + "3PEHYpxm2Za9hqyxHHnJWHtPDSVjbHZGEsw" : 17685597623, + "3P95iUNArK38J3rwiDFy9oy2Z1dHhDmEVns" : 178827116679, + "3P6iops4pqYnAo3m7HWFCaFtHZ93qWjqHR1" : 1091981193446, + "3P5A18ybj3xkPYNzje194tbhhMZNUrKFCY9" : 12035739026187, + "3P9GnXeCA2XwBbusnbCB95LC5ph5fS4k4zZ" : 241942505882, + "3P93GB88cqtSHAXT9Jec3ePmJabakZNXq9A" : 886195936211, + "3PGntoty1X4A2PWJY1YoWJSnoXLQePSKc2c" : 403770464886, + "3PBVok7U8iyjNHkz4FXwqSUgb6kRDAcg3ma" : 638652156149, + "3P4rHkJYvRBdXf9LAAGL3mRoqGbGJ1U5gb6" : 3876800000000, + "3PEZuXm8n7EP3emFU52reYjtSS7V4Tb4Jth" : 2804957518, + "3PN8cbbdsyKUQ2xRnTUfCnwJP49Pb7r81WD" : 2500000000, + "3PFyZoRxVUZCGPgzzvJ3LN3tHWgf6uCwTU4" : 1210278914613, + "3P4SJPzHRKaEG4RZHQLvUKQtiNCpxgMismo" : 17500000000, + "3P9BpF3YvbEQt9NjeotZQtDVevP9temabjn" : 108887407819, + "3PMAs83aiA2no578DttgNsJkur8Lt3geUVc" : 10300000000, + "3P3gXZobt65p8kpT4nL5twe8ygaFWWKK9tX" : 17500000000, + "3P5o68MLjQt3wxn6TpWVd9aHhcXA4221zfZ" : 794876717397, + "3PK9yXmPWdZ4QqxyKu19JSaEsrvvryNWnFK" : 19629681923831, + "3P9SAvjf4fWLYV4CyrnZ2BdtK35PG4N2qmA" : 1116124545913, + "3P5mPHPBH3hMTVF2vMMuF6z9ozqDZbfrLP4" : 81381746159, + "3PP6WrHydLQ8LgVCdTXMA8wX9H6EyjRnUuX" : 176916146907, + "3PLaprsVyTvK2XsdbsM8x7ME61q1BWwy31T" : 279132574054, + "3P5jr4fCnEjprBwDYnaoSUYdbr7RzLGpxJv" : 1056566705406, + "3P741JcL4oUSWiagAM4Wjm1NzGhHY8WQGYH" : 17500000000, + "3P696Y9sGCCPZ5SAVoRYXE2kaWnBzTLZqX6" : 1200000000, + "3PBdzWEnkxe1fHfbeGmWFDf5mUfxzmHYviK" : 335826984638, + "3PGSPYzc6Ew7UQ5efgndQUFSAXhS7ced1c8" : 13572238177371, + "3P4ULHaLAPtn58X5tZprwBn5dqN2UQvS714" : 27521509819, + "3PQgHzARDXCufMysXGX7vg3Eebz3JLbE6tv" : 99999998, + "3PCgo6hYPPs9eWY3MBABEaR74KDHk7GfLxo" : 5704386594919, + "3PJaDyprvekvPXPuAtxrapacuDJopgJRaU3" : 100000241, + "3P9o3ZYwtHkaU1KxsKkFjJqJKS3dLHLC9oF" : 100000430, + "3PJKqaMrmUVRpaeSayWi7bUKzZGriz4e17F" : 17500000000, + "3PA2ugGQthcporMVYraNXYVxQz3njGJwugd" : 125456300247, + "3P3UsDskvfLWTWB1JAwcRufGf8eZ5PTqGef" : 279165447762, + "3PMhKHyUQqy66ZEj9nub7mPUaWvPr569Si2" : 390632381565, + "3PKGSCWDzTmEbuusxpP92hhrHv7wYPBUMfU" : 210159828347, + "3PAMeHKLDtvADSg3KcmJ1x5kbPkB6ZuqC5z" : 7241049374, + "3P5RnB83TmbxhWzgHLoXGkw2xW6Z5ZBiGAX" : 7935636244, + "3P65Cv7iaANskjicnaJVcKSthrxw3Mrh2ed" : 273501214711, + "3PN2uDWGCnEtZNLwuHPurd5dRqbAcThWd36" : 344273425306, + "3PHyQKCtodwKy18oaEn74nJ9WFJHqkD1QyW" : 25104674951, + "3PAtohPRCr7hTd261m5b1TYxJYBChQCjNfA" : 2712724871982, + "3P7vU8yvEJmou9vD4UQ2r3KCqENPGFbWuPY" : 1422177073711, + "3PMLZNUY1QLMywkW8kDP7sbxB2mhNiWnpRd" : 1660754581, + "3PHJgQUj1mVC2VJLHHwJ3Rj4WZ8eDoGBjLo" : 7200000000, + "3P9ubCbgHrT3pZM9STUUzWh6ijpsTLrTQ3X" : 24031565549793, + "3P4gVy2r1xtqwbkasSr4ea6nFJHuMKCbToZ" : 273085672503, + "3PJZYax5F4dLbYf2bdJQZafSazPPPs58jeF" : 5241516016533, + "3P6K4xoFJadPR6kzS7fyjxB1GBkNuFgYZDU" : 17500000000, + "3PMV73gw5MHJfyEP56KKF2Q5oGtxDhjVtnb" : 198230766651, + "3PPCVkDLns9wydRXQ8f6QJEEidytFR98Lb8" : 85402752224, + "3P7gJS1jbgFv3oKg6aQw5qzaRXgGqRPh8T9" : 20014259208, + "3P6XbrCdEArfJJDWuy3ZPd5XSbQZiR7PedX" : 816181825351, + "3PMtE9MYt8a81EPi6kzAr9Y7r9uvSPX3y34" : 33484755180, + "3PMyfRz6dj6XG6wVHKFpKZ3qJYNMN1GSavw" : 588504158157, + "3P89sKcuSyGM4Egbjn9Bop3c9mkzB92Gpr1" : 17500000000, + "3P7teXQXdEKJixLPmc75H6iVe8PLAT873w9" : 834708367685, + "3PQD8xE3dapurrwz4JeDr4SnRMP3Xim27EP" : 8777968147926, + "3P3DPXg5jwSgp9BfzSCUqbXxYgzFaun7HhG" : 473543943417, + "3PBtnAb4K1NAHEpowJGndhxEghfnLRwDKkF" : 34327248720, + "3PFvK4wDTsHN2grtZtY8XNkHB6YTrfUptPd" : 1456216043458, + "3PFiEmZi8r7JJjmtKo32TxvhJeeGW6pXi4S" : 15072013056144, + "3PGVsDYfhrbhdHy1rtjbGc9mB8ok4MVFvdq" : 298399735918, + "3PHZhEmQJMCQUaBTnoxgFzwWBMvzdKt8qTE" : 1419549060482, + "3P54NkMmfgyvnCw5WWmxJX9D5sojgmUuFnY" : 17500000000, + "3PHVjK9wDfFGiYkNcjyLa5xzQwSVcEbjian" : 3602929411300, + "3P9Qz45jxQHuJ5YMA4u7NGawSrZNH5YxK6u" : 118454497440, + "3P4s2KSASRkf1yc8nQ3rJRCatWhp6D5aU58" : 17500000000, + "3PBFuNGZ36nmsJpoGDXmue1wDKCV4WDDoiA" : 3171675411923, + "3PG2ZT95Cz3Phn4XMzMJkGpz84Tcecbfkks" : 17500000000, + "3PHP2zk52TWirmAsSJcQVnM9NjHLihKBVQY" : 7800000000, + "3P5vN1gHrPBjznWa1auRe3eR5tDTKY4CCpC" : 13046754418, + "3PMsQEXyncWcuLXmScuhyg28VmtcSMZZ1nA" : 67818121800, + "3P7N8K9GYv83LcrLNeaeseabmzLUDJP5nzG" : 31063624360, + "3PHPwqB8CUfTKNr89tazSbf1KWvEdR73Csh" : 86814967591, + "3PFBwgd3Fd745eM52t3wg1dzm7ZB5xhH4hY" : 7800000000, + "3PFSfmmR29PMc7RXZmLT7GBQpfWCgohHvG8" : 636376670715, + "3P9KrZdmSLwUtfZVoCH4wMjA6Dqcbfw24Zk" : 31556841145, + "3PC1UszV32XaSgCk6xG1KiTj6LJzTeoiv5n" : 1175016778299, + "3PPoWimFsxdwtpSuZj5xm56kUt157ZDuBK6" : 10300000000, + "3PMZn3n8TdrJvWsDLM2paoPyswugVhG8irE" : 10300000000, + "3PHVsFDsBFfD8mA2QD7sN6YuH8PPYxnYJFL" : 347950552896, + "3PBZcZfxJVYhA5MgHDcmtsonxrAt2SLmtbW" : 3797603966354, + "3P59BJBNPhru9VEvUVPZXb2NjLSuhNg3Q9Y" : 12383349413, + "3P6xY9kJBVwtkfAkAKcd84QXdRv2LAnbLij" : 9700000000, + "3PGjk85388uXLGqPxUW3Lj2pfsyfreSMyFY" : 110000000, + "3PBeTq1GADicd3WZ7T8ZohCZDUkbiDq6WCY" : 144496924449, + "3PB5cjbfhernCJkFUwxCHTKkLDk1TmTDwqq" : 154750103047, + "3PL1WbNem74fZZGJbKXZt5wfs2EdFks4nWT" : 2500000000, + "3P9qYJA5RxiQLz3EPY6UaFaQ3rg4p1pdHRU" : 1853332267251, + "3PBwvFQmhfQVz2ofNj5t9cMmJ7nXdZMTSYE" : 2500000000, + "3PHZ4jPcrPJ41WjsAmsdtVdJixikdwpk3v2" : 48098023276, + "3PQWk4vrxbWG9wQGZSbwZNhZFUBNNb5tN1z" : 596074089205, + "3P9qE7KQQdaLMmS1SYsVoGRiYAo8s4Brq9w" : 4760144091573, + "3P8MQFYA6ViiYvmaAFDEWuqHkjXbz673gnj" : 17500000000, + "3PEpGR4RiEHQWSBewnh3eoNJNyJmyk8HF3G" : 17500000000, + "3PPA6JiRuRS6vLdBpGAqwqwwEgYFZvWgFuu" : 9645152054, + "3PPCvAtUiUfyeMhkuLxq5mFGn1tzdYJUF8q" : 1063036527098, + "3PNeaaKMrSTi5PmYuEHKARGAfaVmbN9BGqi" : 7200000000, + "3P3UJ7ky7g872hzXvmuRPY5K2P87N42m52W" : 307905552059, + "3PAdQjf92Zvx5JpojJgrMXCGsHN3oVqM9YQ" : 8645114541991, + "3P5SabWzR5ckXzBojULzJwPtsQp2ZUpMEzD" : 2034443653985, + "3P7cspQxkvkpTbeuRU3n4ghFAczZVwKRXKw" : 117500000000, + "3PNNDUxYXTiPLCN3v3H5AQYGhgoUcCxShb1" : 1936168695087, + "3P4pwoxtA24MXaPffQsbh3Vhsxk2UwsiMKj" : 2902615613021, + "3P8gjxRkVzrRosNFVVaw9kxSZuJZM4ov3z4" : 1228313467520, + "3PJWPSfrcxxpuK3jU6BR8XW8JGXJ9yGuM3E" : 2800621879136, + "3P9bfFxXTfb2uFBSM1ksHrhXmJcULxWUz1i" : 3609252126167, + "3PNkWjx9dNhUjBw692YummDbDDWJUcVfxpi" : 81728549547, + "3P3ZQJnaj3APtTfRUxzuFLbS8jkUAPUxDMj" : 20949804514, + "3PDBK7kTFVqgcRYsH2PShisZZeaKKWi8m7i" : 511491474324, + "3PD4Zc5nd9P7KaTPujSyDLYhkQvuYPEpf4D" : 17500000000, + "3PBj7wbJXvtfkwDqHgcCowbTX3GsWFKsBQM" : 542544974396, + "3P2JkKac3m1b2Q56itvPhG8SsR3u3G4BR7W" : 1568599214375, + "3P3XH6pQTmCyyKrrNr9DRcrp2QdrPxX7Esm" : 396377801726, + "3PKPNezRdynCtbWEncXFmjKVgb5VqouWYCu" : 1264525708700, + "3PLvK2Hvo2mG89kGSGsYDDZdVZ8nMtCm7Ft" : 956294064989, + "3PGEMi9zdvVvCR745r5jk1MCnjShECnkwkd" : 44137345297, + "3PFBV9LVXParhdAhqZaAwfDJRSQnfy1CyhG" : 19204220313471, + "3PPcyXyXvsa6Q16796fWpXjFdvusQHyy8i7" : 50323970951, + "3P9v5jvb6TurDYWyx87zCBvmePRD6HNLpyu" : 2739852120702, + "3P2YibPkoAaQpAADnb3i7qvm43YbLUd6Vn6" : 40842147274, + "3P8GVxK7AYxMGAVF7B9DfXZoZ1MFnb8My4c" : 1091028894324, + "3PR32t8qHqyWXqzEdS7wJYRYC6TQsNYVQ1d" : 2500000000, + "3PFRGFtUgWDRVReVPcdxY3mzX4WivcG6HEn" : 143436243599, + "3PQhzZhDs146HZtST6VLmDNhqCuoQa6Ltuv" : 44923879759, + "3PEjH4DxsDSXsV32MwwQf1jjGGinVfeeBYZ" : 5, + "3PE4TaXL7sv6MKtDXUhEDFXAse2CcXvdc7W" : 352870920653, + "3PDCexzPpV4dzByWH1Q7sEaEvKLkAYY3mpE" : 992290099096, + "3P5hn4EfWctoHBwmR9MTiHtz96utoxrM9Bf" : 74733766519, + "3PMMYosFihGHdne7mv3qNCXPjXrbsof7Ljc" : 498590476957, + "3PE9zpnjp2Y3MYpqNHJByNDZxM4oXuZDJCn" : 17500000000, + "3PC4Sb2DwnDTsdnoKk98oSG3qA8SY2mD5T2" : 17500000000, + "3P328cCAwZDXBfAgGAGTVvrKiJdtAAg94DA" : 732408609888, + "3P8ATwK7GDBnFizVodxMhhaEcFDjs5EuNqa" : 10000000, + "3P9v1J62suCDpMMmwqvrGWH6o5CngLfTvWq" : 49363238157, + "3PME93njy8rMSd4vojDNSZqkFnEo8Hnk1C1" : 7200000000, + "3PMRCQnS8cQLnxp5wKdJf7CEWCdvRyz4dan" : 162763492319, + "3PCXuqmdCTWKWmUKL994Pn1ymHz8HemUbSb" : 82959508124, + "3P6Tc6kKo2dTkpe8KrWKe9toegQRpuELwUk" : 2399999999, + "3PJPYrE6iYQn3UCBMsvqhHBwxA15JSdVZRM" : 368592407974, + "3P9zZy3HfLe18Vkjk8GLjdnEmJg382hBdnf" : 593900091596, + "3PKhFiRYmEUdCP3bovfzv7YfnBnSeuK93hu" : 207557043253, + "3PQXg5fLCVBQFg8UG6uDYoRvfnDzceHM9u5" : 17400000000, + "3PAPH5cVsVhfR2WhbjthC7YLMdRA9H1gcr1" : 57646319523, + "3PFNt8oBrqbmkTWWAFBd5iqQrvi7z6SBBjn" : 1085089948793, + "3PAUxBaFJu7VoxySsMftpBx99j5HJXvKJBD" : 3544042333577, + "3P2Z26H3a8Hfvv88GDVT82omNPvQjbmPByp" : 813817461595, + "3PMbqFMA24ZHkyuiUDxZBsXiJ5bFJxDZAm9" : 3054402271534, + "3PMPHJ25dawE1KR5gPRDMowz726SmzDfpie" : 17500000000, + "3PNwnbPrCsqMhpjDCLZzW5fD1v9twsnksCY" : 1569601970822, + "3PDJjBymQPpt2eSUMuWMfn2yZu3Fn2QoNc8" : 885571959031, + "3P7T1BigJaTwN6ywymvXWGHuQGF3usWYWYz" : 165263492319, + "3P528FAcWBrgkZ62HJEwaGhcuBQScxUSB1i" : 36417360157, + "3P98VRNF5EzEUZcmfg4kWbVv74HnQcf1ZCE" : 15000000000, + "3P2WW5i3PoCDYJjbyxZ4jAs9QS3G1yNb6Mk" : 419584344391, + "3P4goCFqKT72LUAc9hcArypL3a3FCgaZT6Y" : 2715852010366, + "3PGutdSFKDghVmnEmJRbpRC6NapoxHAb2Wn" : 23467994718, + "3P5vr6iYRM7cSdgpmmoEqe2Bfc7ro7KZQae" : 226063492319, + "3P27VwppdW9j57uddbR3Ng7dYq5yM49AWa1" : 149199867959, + "3P4A8QRPoijQRZEojLAvZaqxr9ZQDLRMdpE" : 291566593816, + "3PKXVED2F7TrU4eXgBi6CeWk3rzhyNtghEA" : 17500000000, + "3PKLfZLmVDGSTuUXDZ8cmEVg35y3cQo1AxG" : 191520947625, + "3PBB1CDo7LAGtv4SNjx9D8tLsVDvk1YmGWU" : 14062231457053, + "3PM6iwZdyyjtZLfwr78ESVCCRWAQvjEAKDQ" : 17500000000, + "3PFBy5cjfYtita6obdpnco7ixKhkck6Comv" : 2647619475054, + "3PA2mBWqsY1xsZhnLe82uKbNJXm2Gn38o97" : 10300000000, + "3P8RBftMoQpxArysPDLHctpQ3Z4SUaC3JiJ" : 905501941760, + "3PDfs2NPKn2QZHhQjghk9AyfW8qdzfKgEVa" : 160061889755, + "3PDem9fsMM3xPvekn7jvRKzH69C8Xfs7GHx" : 74531668801, + "3PQwSn1wnc8dqDPEBtLuXnPjkxvxAstqVai" : 17500000000, + "3PCPYYFuq55vDrhTPtaP6asug2qrzDdsmoF" : 7800000000, + "3P7EmouHBgFjQ7b4eVVF6oBovdMB67qgrGV" : 19327190208, + "3P78xxW94cRQ8Yfm7KJKRCHZw94ffQAxLnj" : 17500000000, + "3PKda2g1TupVAuR7ydJTbYKoscw7R2v8kw6" : 115000000000, + "3PGQcqf1Lv8ZfYWGeNzGRDkc1Y7hWV161t9" : 110970430579, + "3PAuUys3WFLsMaf4673RXKFePbK2s4ytYyD" : 64700000000, + "3P3tzADQyWRHq5RA4rraJo2EVVeBtCmiCjf" : 17500000000, + "3PQeyzNd77hNeKetRwo6anv9s9121aWjXS3" : 18053246416, + "3PJ3GkTbcR7LWxCU168tRB6S75LPNESzEY1" : 3, + "3P9GLNqnxXMSuXi1DvE4oai98aL2qTyYXBS" : 62204522600, + "3P2efx1sAiC7oiagjqf7CdiBDa7tLDnokj6" : 29819305341, + "3PJWAWKF5qPuhtsAydmMnpfTVajNtwZQZBe" : 1039880953914, + "3P8x9Fbwb4HVhSdNRttGf9uMQTtbYq4vrvF" : 106946768270, + "3PH2BeWnt4CeMmjgehH64qM3SdCDuBtMbYC" : 17500000000, + "3PQ8e1fend6zV8Rbe6Zhte3TURJYUeH4TvP" : 596799471836, + "3PR9zHo817oXCoec4bqTmSTsKgMuVcsJcQ9" : 17500000000, + "3P8vrLhea64j97UgdKMbaL2YAhBm2XbiRTf" : 7418209699316, + "3PCHpuKHWhtTzdZh9JWRYVtkRT98urtGiVt" : 33167130647, + "3PGTvYwCS9xHjGb3tx1Apx4QqRDjcBfVLCx" : 885319005320, + "3P5DZAQSWNoLTKPxonRjphTEzFobovFiFAG" : 149920823423, + "3PNAbABLrn4fziAPoWu4415cJgxCCpu3AES" : 284416555196, + "3PAwTK5C9c8QrHiiLpcHQTkynY8mfTUPE3s" : 57800000000, + "3P92kDzPxzi9sfta5TiNDETyXp14wfy15yk" : 79400000000, + "3PGmBsDkGMniXGcWFL6VSTePrwSwhQ7C4DC" : 822331314548, + "3PHDkxG7yE8yy2XtK4A3QAUfkg1KVEw7LQh" : 54254497440, + "3P9v5kf7i9QQwcE9s6vi8dnASJ4wd9DxPwC" : 1096974608308, + "3PDKGwy39xTSERgE42G7e2ztyu9zRZbUqxk" : 199999999, + "3P3djfkUerHeVnz8nu2oxbo1ehHu6YCmeKN" : 391327715343, + "3P7oBv6kz9bKUN19x5TkeSJji17tPiLjHrU" : 17500000000, + "3P6xpzk5x14hgJZC1v3m7rLfCbygnAUiS7B" : 370045360599, + "3PEnepoCucYDNQuread1acF9JEotgrwF8EB" : 35052698464, + "3PHM3vZrGxkN6BBpapCkk2FLTEexoY3mMdK" : 666840723753, + "3PE5e6chQwreMNUdoTXkw2wqT4aKVr4SwBQ" : 3434309687929, + "3PJNoQmksUpTnDc368QU6ws6JDuV9DECVEX" : 29845138620, + "3PR4jBPtXhJvaxK5hQTyRQAJopwv4HdgqQ5" : 500000010, + "3PKpTXm64yJpZGw2UqyggoCGKQq34VVyF1D" : 77085317574, + "3PGiSxwdRzkqAjmxdHnmtLGTExrc6uMDzC7" : 52559960388, + "3PFWCjHzHEaz8sk6kaSc8u6mG6VP1FXNFEM" : 335101534894, + "3P6V1dPTarKz5CokxrGpeirPLBNp71zbrE2" : 7800000000, + "3PLLZCDsAUHDbBhAFSiuHMnRK66cosVJbuA" : 523010169671, + "3P7AkoXTdtVHRXqYgen6NQ6zXYUdwaPmtCG" : 9700000000, + "3PGj1c1Fvnv6cvCsgduYWdGtSqNBaKu4bqj" : 1383435430213, + "3PJwrqstEQ8eD8DfyJEUvciGhhtvED8f3pp" : 2500000000, + "3PDfjViA8MaLGsk8spLv8uWLxGXdpzS7BX9" : 1262853441112, + "3P9TpYqbP1czmwGYeoVsgThYax5BSbLjDrf" : 3816418727512, + "3PKyN8ugHUju1JuJszkFyfZ2Bm8gzxqmnDu" : 8125526985, + "3PPoBK8P7Cf87wqwH3CLotjM28BLnzM6C5o" : 3286333470736, + "3P3Bb9AxrsRxQy1ubJnoszNXDvb3Ewd5PuQ" : 52674626685, + "3P536WwTy2xNHpQbbvbdtMC5PxrZHP9araH" : 340526984638, + "3P62MT6w97mb4dRmzeZJCjdPa9op4ptQEJM" : 20782397095, + "3PFtuUn1HeVu7iJEbqoYuvbMEJdijrF6QEG" : 357209922920, + "3P5ohj2dbMfZ8nBzUHcpiKtMmpa48F1kFX3" : 82596732484, + "3P342vqZS1J2qBqMBb5MbUxRRKHTW5qXLZ3" : 21363624360, + "3PGoYdyZqzAi7ri4Jg7rUeXswig6Hr6qfYd" : 1705918521206, + "3P9HyHmsUaizKEmp31khYzvqJosnJVHKkES" : 301821946392, + "3P23ZrKP2iV2sWsX5SXAMqsY6oedNpgrH6j" : 166063508562, + "3P9Mo9rXZJqSYrRp1ynNGYieWkKEKuCLSmg" : 143436243599, + "3P5iEAGvSbbjUKEe3poD5YCphXkZtpZUgaz" : 271272487198, + "3PH9wzguwE9xZtAsMoDkjASMaoktsAtJwPQ" : 126998068972, + "3P4RFZ89eQrpduamTh9LmSMM2XutS3Pz6az" : 6791082686537, + "3P4naLv4zqV2RJzxu1q36TwhMBK6iGqL3Be" : 541067584488, + "3P2UFFyzAWvXKUzQP2jSchrqzmtufeKmt9e" : 600336608655, + "3PFb2vPRHGxU67yUqHrku2R2cbf5i77RNry" : 80285910999, + "3P3TbiE44ApfWM1y11aYrZuticFQxZvzi7D" : 164279724489, + "3PEBMczS9kM6jXvGfp3hpqj6ZRTHYN5obHF" : 17617404020, + "3P9KvArVZM8GiHpxKo3MqL8BgPJACmVfBzh" : 17500000000, + "3PBQE4Ka1fHtrKGVYpu5MiVwtE9LdoSdEkn" : 2199999999, + "3P96KMtPz7rajCGAuCNGqdwrvMgcHyZhVHy" : 69700000000, + "3PGyrXCLRHsVDGVNe6HcgDhDzzgNYgmGac7" : 13225449744, + "3PPGhJ5QPJRi4RbjhHxuAviGP3JyPR7RyUq" : 34927248720, + "3PFHb4fZwJqG5NuGeXK3r1fJxFQQifAPNSH" : 271272487198, + "3PL71Wjqz7kDsU2B7CNLoSqFJC8wMbMNt7X" : 17500000000, + "3PFMVKJdfvPmQB6dTMMAdT9twku1VKQok7H" : 18017544366, + "3P8mshJUWLmozhQfqzHRBgJay9VhzvxTbAQ" : 9999, + "3P2C7pSFBJ4YtdPjueVCDo6ovXm1mvJnjC8" : 5508396461102, + "3PMdur44Nq9s742hw4JpK7JxoyvmZU6wyJN" : 17500000000, + "3P5qnkaZ6RttJJNVwG4UNcPDbv9REPpYyR3" : 227868889246, + "3PLeMegcztJ5NRZnMpwwXMkNi6sbXscKeHL" : 73490547959, + "3PHSxCMoifSW7D6CNXgzRUCd9Jnm4j1Xw8L" : 43019114623, + "3PAYMxprKf3w8zpVt8NsKPhnWm5o7x8owPM" : 284591214895, + "3P65Gdv6Pfne1CiCsHKCECUwSAJeBp1LE6A" : 271272487198, + "3PJCh8EZ1toiXRM2schLUNG3Zy2L1fYvsGF" : 166786127184, + "3PH7HYnSnJMg3ENgd3Bg1PpeS5Q8z5sGCzn" : 544990719899, + "3PBvB6grMoGfCgFTNzzKmAYr12P8sbrQqLQ" : 17500000000, + "3PCBDNkgYGr3u2BgvdjGw2L9RYdCU8yK1wG" : 4589930483394, + "3PLsSMNGuMqxmBSGKBZ5ZcWbuBqQ2JChkWB" : 17500000000, + "3P7B2p1ULjU7tGi4ho4u9dhGEbb2TGGbo7A" : 61166244380, + "3P8L5ZfSK3ZaQHfPWnzwBS29gdHoN6b72zW" : 2697397976, + "3PDrSZkLyyyZca9eR8Mh9bLuKrdJYbjVjjc" : 45000000000, + "3PAXaBxXFjCwGLEqBmMx4d6TRuNJ6UYfMat" : 64446094679599, + "3PPLBzbsA4nzvZayLFP1Dwq6EbRNMMvkDGL" : 187234170, + "3PGUn1oCkLYz4UdCfWLKMdayRVQ43dcoAXs" : 9999, + "3P2vQbsggDoCkx7YjVuZwMLjFRvSMfDwy4n" : 1455244182150, + "3PGupGLiZvJ4gNEWNmzCQ2wnkY6wcWX2GqG" : 27331422229, + "3PAmSt1VusoRqWvdLVzWRyuWqBbg6f43zte" : 428647016, + "3PEgxrWeLukSJwVnLqYeUr8biPmqqs9PARn" : 82292022692, + "3P3XAVNYA1sDJEUd4T1qF7gqpEaiBxz7ZwL" : 542544974396, + "3P9v6SjRKUZPZMG1aL2oTznGZHBvNr21EQS" : 3257982571243, + "3PF1nZ4ryLiTwoMs3RHUTDZ5b7Kd4fmP6GX" : 271272487198, + "3PAmHXZPNcvHk75qbzbPpJtgN8gVbywg7Tv" : 584797672860, + "3P6tjwy6EEbnQGZEpyMxyaD2boMaqcxquPH" : 370700906841, + "3PNigWPadnJJVpaT6NvrFCgL7bXhPzQgjno" : 3385472438581, + "3PMQATFRMCncdHgzmvgt17wUR1BXUk4aPb7" : 208483865318, + "3PJNFffjCAmWKJzR1uxJ5k6iCTMJVdCmeML" : 277459996997, + "3PHt9x1kc2KEFAxpXpbfnSMTDiQspVkXrA6" : 24212724872, + "3P4FMoymp8NYUam3S53deFXLsF4MC5w42pz" : 112742336553, + "3PKuHnNjYdqraZ85Xpd3Mrzvb3GFgFJDHbF" : 331157897330, + "3PCZSZaSvzApMqJYWtqYyfeCEfmLHEwfe97" : 1660330142792, + "3PKsojcHa2RDU7XvLMiAeqySZoip5KawKtQ" : 8426754499678, + "3PNthZdJQJRPK6b3GK8p4LWiMjx5xLh6c6S" : 25017789127, + "3PPJtBZbBLsQhBEWLSQoZhq75HK4oA1r46b" : 980586169749, + "3P3ocygEJBoaExQ6snVjMv77VsghCXAM6Ku" : 72200000000, + "3PNdKHnZbhpUFhES89H63yfHdqhTGKGMLpg" : 5558228019360, + "3PNyfS4dEiuAWS7y6p9wKoPeBHKmausVmWf" : 829881085955, + "3P8nm2hEsNRqDDr8LDotwTQWKwRUd7gQ1q5" : 17500000000, + "3PBx7Mj9gU53K6osxNqi2HtSMNuXLoXi9bA" : 907108371055, + "3PDUucZpU3rHnptkg4svDPWNMj5Wuz8tuwy" : 17500000000, + "3PBppvNLaRkgoYtvVkG1E9mgQpjHTPs6uLo" : 2737307411837, + "3PDK6hPkVV3NCDp7zQZGMUeDg8qV31wPiXD" : 298399735918, + "3PAPu9T4exd8JWCh29RQKnxhRuWNZqAiCRe" : 872990212875, + "3PGWEovUMMnyK2pGvhwUX4NWUA3zbcjUTAe" : 182744560673, + "3PMhcWcWEkywLTSYXyfQF9h5bod4wn7zK76" : 2500000000, + "3PJe4y8HwFF87n8kfy67THHqAX9BunwtgYC" : 848456260718, + "3PGe5KV8DJ7X3nynb3ayvzocctTf6jw4ctf" : 3985827419227, + "3P2Yiq7NrS5cQv9tYrAm8D66ZrQtRYsXXEw" : 1951925909673, + "3PPJr4HPMFHDZ2Y63kA6uHeSfBXtRk1oK3N" : 82818121800, + "3P5NEw7Z9WaeKLHazCYTtze9Q3FSmfiai6x" : 690899471833, + "3PQzwkSDWQRiumEAnSqaQbopX51ayRf1Lsg" : 15000000000, + "3PQMiW4PKkm6JvMnFgEdZpfL8uo89UsgHGV" : 9999, + "3PH7rpCifNWpvFymWQNWbKCWsbg8Sjp1Z31" : 229836530772, + "3PLLU4zGzyD7aLwaVcN6HYVnbGdttKhRUqM" : 7200000000, + "3PA54r5fGHG9f75oyojbjtYdJMmHL1bPXaD" : 23545083347, + "3P463MmFwr3PLbrHtMzvmn29iD9btzktjws" : 8463559631, + "3PE5RjQieHh6wySDHTHBYtY84D7XgwaTZrM" : 10000000384, + "3PGvrr7S3A9rELLYgK73wfYfn5pG8wgoX5U" : 335931200515, + "3PDFk9n3WZhHe1HbU3b2zMGVumB8mPrXH8c" : 20233580042, + "3PKFqKynDCBPDybu6Ntqa9Q1aA4MwLhAQj9" : 71212371865, + "3PMrz646XFjU1p6g862oXPaPEmKBGAPz5i1" : 102929412626, + "3PJyhtFwgeyj13FLZPHyKL8BPPWmN9G5gwG" : 24010539693, + "3P3RLQbniFfqJDtD7Pr4oA48TTbRHUbEuup" : 308099735918, + "3PL1c45r5UsCKCbwqEouLiG81v7kpwvoL9X" : 9782781554481, + "3P27qXDEC4r1JXPKM45LihLaNBjyLnMx9Uo" : 10692035986, + "3PH1hjyA7ZrbY2KJcYUDTvQ5sQ3L3AxqaSG" : 8156378845874, + "3P3rFPBoJZsQnWMK7JYr2FGp8wriKopv3FY" : 2578330550682, + "3PFLamGjZZyfUX1HimZSGXnaKJFuCrW4xLJ" : 26714297246, + "3PEZLvaQcswbgR8b9p4XEuAWn1DRgXRX9uv" : 17499999999, + "3PEfkNVbPUYJtkQCK4W2fHYmyJo2Mxtg8Zc" : 1088008840755, + "3P5vpsh2ChngpYynR2zFgS1B53YSrXkN1SV" : 150609116350, + "3PLiEL6PXQEZJXiggVwS432uw2pfZuK31da" : 120000000, + "3P5dQFFs51NfjcPgNnTCx9G5CLArF5bpobr" : 13283997359, + "3PA9He2f3r5fT3F2mfBZV5rGyYrtAkaDAtm" : 48704083555, + "3P8sxeFUXuA2wxy9MFe9DJgVUkjmiEdyYtH" : 3018665309180, + "3PAmJVt2BU717kuMMhzeLbUYTaE1KkHYU7W" : 81945008513, + "3PFV6RpMPptBNGeg3oqE2RPdc383z3macFN" : 1356362435991, + "3PD4gT5d3ZvaHnqaRx3fLPtR9XCne5TNpRK" : 1927420298857, + "3PESBoqKCi2ceDwphoP9s7gDRm7AWcMBGrB" : 23777949496, + "3PLXCGEjzf7rRiPLnYe84EeawgQA125gfyd" : 6324327895614, + "3PFT4XPZ9DouHfUm9beQC7oZ6o6QoXM79ww" : 100000001, + "3PJBbE5kKBXJAFi2zp6wpUmQnyiJ83qnfiY" : 444654905763, + "3PBk6bu2mC1Tca4qxfSRv1SWueNsAN2FwvB" : 1497482676949, + "3P6VARghukz4Azax7g12cP4gy1nrKRConZx" : 10724317412, + "3P85uk5FrhJgJhM8ovLEH93fPjdYHY9W9LE" : 813817461595, + "3PFWwEgdseukToWm25uFbfYbqfGMmMebxmp" : 16624494009, + "3PLLVQxFxarf9F6a5kz9xuLtTDpBQEMzPWB" : 340716545600, + "3P8Ma4afmkXtbC8MeP5zHfZ3ni8eC16f69L" : 257674513408, + "3PHNokTJ6SxtqbarQHruciAvu9sophndkPK" : 572172223116, + "3P8xz9ZK33Mz89aQjHEMFgUfxpKQCNfPpVb" : 187178016167, + "3PEst4cKskPAe8Hv1RZcE31FGysqi72vAye" : 1022348603021, + "3PFUpeFMEzSa49EtRcQiP4tFoSMn48MgSRb" : 16078157552745, + "3PEUaxKPExNgqx4Vr14DCN9QgCCMCXq7W3U" : 162838906070, + "3P81ERCUdmLyfSY7xe9d8smmb8Pz5sYLVaf" : 17500000000, + "3P9JPJpoDveGTHiCtQsJuomxcnpyakAVvAX" : 19143596596, + "3P4StSt2qd7K9mGu98LRJcujpNNUv67jaB4" : 18802107939, + "3P8cQEGd7CJFUDWFTA6T2aj7JAi2ec78w7C" : 41830250079, + "3PMoudRCeuZ7jbAzjoaGpVN722tZknA4vQC" : 2695311674690, + "3PNj5SiqvjRrNk7RjfUmSK5HDzxyF98vdMx" : 1183553507132, + "3PBjz8FvHMJWkE8WsqCaVm48F9bn2Lro7SG" : 94876864749, + "3PQ6UqkzXVvfjUmApnfs2AznhPyjJqPZTTq" : 14872206440982, + "3PJHGtk8gtuc3pezucWLcSuY9cxMg7yESSP" : 138136243597, + "3PRBjBm2qAQF7Y1UwJw1vkgZxmokXnwV3Ny" : 271272487198, + "3P88WNNcAaXb1yhCKb3w7cVCnxG6Sec36Yw" : 196210429148732, + "3PMV8b4FNZGZWWf3hQTBRsjwQE3FNNBC4ud" : 542544974396, + "3P7yBjxRVG2WpFWHJ9qYGEsvafR8peGFP9T" : 271272487198, + "3P2aWckPnKRn6vPZrvCNPaNWfBsBdwMCf2v" : 330016949927, + "3PPcgc1rp2v3uW5G6JkHDxMa2xEchBt1m1k" : 1662128135929, + "3PJhRv96FyuWn9qxUky2G1emnn3xQjZCM1r" : 821617461595, + "3P846xT218qiYk6itXEKwDfqgEC683whKqP" : 100000000, + "3PKwTFJx8uEFH8PVDhMfBWMQFyeogWHtx7N" : 947169756328, + "3P7xSheJHQWdB8cFXM4XwYavojgXuwsJTPz" : 225299456607, + "3PPdbW1dQACxQ2aJ1UUyYCVdZ9NVmtqh1rY" : 628723008698, + "3PHoLickXt9dm7iSSB4SnbeF6W2dW7QggRR" : 1629673318912, + "3PC8mq5KgDwYnnGqiaVVbiHbMdDhxEPkJnc" : 10335665320, + "3P5zxJCMrPYMKX4apJrUxoPmFMbYfKza48w" : 1176336990408, + "3P2UbFRc2XPECcqTsKiWCc3bGSTbuG5DzQy" : 220597418048, + "3PJ4k71RxoqK1NnWp1P7q3oNcHy9EZCND7y" : 272357577147, + "3PPVivhxQjDKHm5qk9fswVK4hZGxew2mbt1" : 71600000000, + "3PBfitTwCQ7bAAxEopuufqUuAkq31H5A8js" : 712895741843, + "3PGiUWxV5KTMxjvGymhY5qgmdkSYuw3iEWN" : 1003353426141, + "3PBUgavmooN5rUhrsyZFSUEdQMqHiotP9ZF" : 17500000000, + "3P39YKWE7nZ53vgF1HX3heAZUcx1RnfrR5G" : 65003894901, + "3PHxPrUDEMGYTyZZNjzP9M3VUAekViVqsXK" : 100000000, + "3PCprrVoJgRDBUCsH6w4VJ8Rrh7DuEraLEF" : 520843175421, + "3PRF3MqoDmLH2sTCzbz2HPuNQDBp4F9xHyb" : 7800000000, + "3PPquPdxh1iSKsCC8q11Mp71DNoPdxv9ifq" : 250723185221, + "3PBxKi8bTLXqEfYJLhYDi9s9kqmjpjyPVFm" : 7595629641550, + "3PLsCBJFqNTNt43TCfHDZvnBCXp4fnGhzqf" : 816317461595, + "3PB4ocRpcDsGeg7HyUCabFA1uCsRHNPTiQe" : 1478915262194, + "3P8q4Vvav47bXEoPhnHPbyZoSyUbt7ecqgi" : 62809212547, + "3PQC2BwzCsSCt8TzFqGYQMEBS46gpqFdhSs" : 550344974396, + "3PLqFFPeUv3jZEfqXeCSnvS8tViXnRcHix6" : 730836899375, + "3PR3mvy14KvRge5EAiFTVR6KeLFdG6h6kfw" : 976074389614, + "3PMFbPmuPT2rvrW32Wn5V1dxNh74GoPfsbi" : 1078513541319, + "3PDRNjGYcP7ztmRnmZEv3bxMCR6rzX19Bf2" : 17500000000, + "3PQyDexh95gDdN5P7pcwtXdS47ntbj2atmn" : 45061440450, + "3PKCyzsE2gpDjDt8Yhe99Eof15hwboMs5wQ" : 78500000000, + "3P2NMauTk6i2rHhfPzbuYMdjdjwHe341nxM" : 2722570694725, + "3PDv1ZKZ2U9kBEB3RBsAbNVhQVWvUPBF2vk" : 36080156790, + "3P8imcUvfZRYsFh9FF9mXupkxrgBhizzki3" : 295732911030, + "3PLQDqd9zyWdjhHQayVvnzVdWjdGvxBZzd8" : 76200311620, + "3PErXmeMxkRKGM5GHBq5NdFayrhbTNJtGuQ" : 527093700434, + "3PHGx6DpyMPKuXqYyvVrEX9xAwAoFMQZqYt" : 58237252279, + "3PHLhEaqDx5J7MMcrG6WocMp2QSzPqxQtsz" : 7800000000, + "3PQJurh3EWRKiW266sTJaLx8BPEhdk4ZCt9" : 886681251656, + "3PR42c8rjJG9Wg7oD1CDmGNgfcjPQ6k5Ktx" : 995019128529, + "3PPY8NJvekp7n814vMZYB4W1PiKX46pBGYJ" : 7800000000, + "3P8U1WCeeixk8Pvkpaw7zJeiMmWTyFrujew" : 10512724872, + "3P76xJyjrcZAS5Gw4achsGgicHD1L9JhYV9" : 17500000000, + "3P5hNES2juuwzZz7Gyxjt2DNLsT21up35rm" : 285492048432, + "3PC8YA6j81rUeLXE4KKioaEHesoeGdYn3Fh" : 550344974396, + "3PGfohvVPcymCYAzTES9bYetbpRFWuEekx6" : 17500000000, + "3PQVDMpGYHDpKz3o3JVcBV5j43fhQDBkb8B" : 10000000, + "3P8qdmC3zJKV3biWGi9ZmadM8jZfY5SujyN" : 1448768696, + "3P8feuh3ha27ig18U2dGSstLKL7H9F8JZGn" : 61443906, + "3P5Y3C9nsnfKsAzFP3pt7vAjeLoHbRgJsrG" : 69254497440, + "3PCDKwuPjMFeeW7uWhbNVsqzb55e3FVDaeP" : 59572794551, + "3PFzJaaGuqATwNURuBkaFSom1FStacMzS1T" : 300000000, + "3PAy5ymSTTwjMuPtUuijwNB1Ub1b71Qq7nD" : 13985995622477, + "3P3eLDY37zjTevLbyLuAhigupLCsmtuxDrZ" : 129140775806, + "3P9sig5KyzuSbNsiMUBsSRPKeXAJecotb9X" : 1943276719030, + "3PFiBHo84Rm8kyN6RPm2p2pYTzRvjUo13iE" : 27435588307859, + "3P5JP7sskGSYQ9QJ585pTucdFwncoHBhykX" : 67306530821, + "3PJ3xyvaERx8pQ1RmbQvfVtHr8B3AYsuqXP" : 596938736798, + "3PQNrzayKZt11kCggLz2RRnLPBsLCs1Hdom" : 10300000000, + "3PDrR2pso7d5fnD2VoxCvt6UXEH48w7RLtR" : 219075265763, + "3P5kTE5pLAQBkf85v6ijqRQQ7tYFMjanEuS" : 585870408480, + "3P5t4JumBDKCXcxKAm3Ht9PRDchK2rYQ5Ud" : 18650899488, + "3P9gPAYTFgwLvoXS2FYN6ccmXCgS2oqVCht" : 844189012614, + "3P7wWxLdKHVDjLRTN2bKDspCcEpgGkbHBJd" : 7200000000, + "3PHK1oCHrfD26pXTvgru8Rj7i4pUEfWoaUQ" : 9700000000, + "3PLyT2bw1prRV3jxtAnp93xqTFo2RqZN7Df" : 7940573890, + "3PLsmfUqXoqoSESsZ8NLY6o4mFMD8nDJmv1" : 102000001, + "3PRAQVD7GAPiASEQCCmdpDo6Zysq43d1aXt" : 89968755348, + "3PRAETa2WEmDYRDX8QZxprh6HoDKwK9GqUa" : 383262931044, + "3PMds182NbfDJv7oiQQUZRAFL6rQvXMskAD" : 1250642001193, + "3P5YJoVA1rfj6hfkqqUkPNvpyDtGVnLHBoM" : 17500000000, + "3P8xG8ZukYrNx3umK716eM6hufqpgMujLgG" : 17500000000, + "3PQBJaA5w4GV6vkLPFL66o7uytMpwtrjKqP" : 75989744313, + "3PLJsmMdXXLnXDZX1m5mzB6CNLzKdKy28M5" : 273442667096, + "3PLYpwfwU2BSyceajNGoy4E11mce9R92zTV" : 16394083241, + "3P8Skxj7tsWfG2CTGhLn6zAi7tGFV6Ua4K1" : 17500000000, + "3PKVQ8kVvXyyV6ZteeQjSo6FAsxmsLkYeBp" : 303609001863, + "3PCu62gW6pnZ6Wk36Dj4fEehfddMNHS8v5p" : 324299196886, + "3PF3s2maMzhTCFpCzXqJjqRxegpVVXZEWV8" : 170422430626, + "3PKVCZEtoMhd2efP6vxvoWcGRe2Q3je6HCP" : 999, + "3PMMa4PEmGbyAfo4TsTEVRyebwQ5xSPRRSr" : 31342647711835, + "3P5w7EVe5ExDPPojpuDhwsziFdA6VFgAfYW" : 417181603549, + "3PNUGo9L4WQ7L2J3rpTLpufYvqFmdaShDb6" : 17969683355, + "3PDAoV9xjMa2BnFaC3FoL6GqH3b8ViQy164" : 68699999999, + "3PDdCA4pRcwpFM1wS4c7HNAEzzWemccXVVZ" : 124989335703, + "3P2tU1d9kSoFX7SSBXYLWByPi3GGmDqYZhb" : 3419437261305, + "3P5hkq6rscGUhdrj4cip5iDf91pdsT3LwFc" : 21363624360, + "3PPcg1KUfEMAmGEV79mxNTUVjnw6Rmm4a5p" : 408165638406, + "3PKBkdZt9343D23UvS3HbaKmSgsHokE1e75" : 2500000000, + "3P2KxTfy8SvoC19Dg5u8zm5BXEhu1r9EWh6" : 165227248720, + "3PFbjXddQ3vWHwZo6y6zMW3dKaACz5LpEvm" : 540637712472, + "3PNp9ZuxkVktpeKcuU2oJxEx94kFAbTwfYz" : 45628712189, + "3PFkDh3VjCgtiJtYgWaNqgrn37eRh6bCmMf" : 622570358120, + "3PMyNXStm76JUYAHNczjJrkuyG4M62M6w8f" : 14113969334306, + "3PAzhcQaSVm527stLWmUE6STPsJyr8zFY3j" : 650384214866, + "3P6LNfxxirh7hYWnxcksRKDqnS5jDwbqhgM" : 1000638742261, + "3PEYbTBe8tfFQJVnVsmSNzvSLpXRKrJVdCM" : 9808662237599, + "3P6ijWeTA7ddQJmHyX799PPFhWB6xxop1Rc" : 10300000000, + "3P7kvi88qL51QQKThrhVgkroKXRMQt2DFeR" : 81981801119, + "3P6MCSP6nuifqS9q9MqbkkBzHZRmzT1h9kD" : 10156999999999, + "3P9WQyU67WF9e8JE8yxRLhduhic6aZEcrpo" : 17500000000, + "3PN4LyNotw7UDcg7CeFtt2E4gKDinwXhpt7" : 3012752803232, + "3PGcrYSyUJemgjkegFjsKBBiG9DCa8qtNLT" : 64400000000, + "3P26i3FDk6eMCV87txaCnakXwK2kE9vfzdw" : 80425904530, + "3P99HLFCSCzuxHacg72Xqr82gLazu44UZSB" : 1211311668544, + "3P23HcJ8wvpNktk5PxWNaxbUaCi1SMhyzx4" : 42696933123, + "3PL2T9zaFRN8wK2F17qchezQyCoUtc4V1jz" : 14757379734, + "3PAc1nMnLQ1u1VHsBdsAfGk1MprM23NEtxE" : 10300000000, + "3P5dPxxX7UHyVPy3jNRn9LBEFkr33QMAdAT" : 64700000000, + "3PKxow1Kucrh29QC2n4iwXRNhS1aCGUpmyj" : 355369882805, + "3P8yuUNh3f17tJttNoQQ8XvaNAU3URQ2w7g" : 410612076318, + "3PEWm5cC1Da2ws2ZTYMAVErePUqpq2H9XoC" : 244590879753, + "3PLa3vgqhEnBqJ3BCTeWvDwZwHoXoucezFw" : 17500000000, + "3P61fzMVWVoLgzhhqLKXtKFk7PUDWiB7UiF" : 233133071594, + "3PGgWWV3X1ujDTdUpgVt3H1bcnWo9CjoGV6" : 695572709001, + "3P4xivjR6zraKZLqWL3k2NFj9EtNKRdQVJd" : 17500000000, + "3P4p88nihZ6Y32cLbHMV3LHFpXiuUJ6wvab" : 10783997359, + "3PBfxTtGZvxmtgij3E41jgE7yRU8mijGrnv" : 17804909796125, + "3P5RxX63AHCWhjcDqs9Z8U8EpWswB3Rcm4g" : 3658973608822, + "3PQF1ERLpdCVmZvEVkTiBWNdBEMGtSvcKdz" : 42672598611917, + "3P7wPHWkMSo2sMGTNsrBLMvwCKJLUrvk5vC" : 399945802416, + "3PNWpdrXUe5GinzH7trnSDDCktLTv5PXKwW" : 62370538649, + "3P5E6pyHzpY7SBTPv9XWH4fAXiiYv1VUjBa" : 357506421943, + "3PDQrY1dmawdRvoptP4iHEV2DhRcPtVvvpK" : 15670721645, + "3PKANczZUwoYaWtbKnSLpz6uGaAmELmYbiK" : 9700000000, + "3PJJQCMaTbbsDLFFutfbTVG4nC3kq77GhiQ" : 50052698464, + "3P5Ph33Eqmew2GuFd3uQx8A66xcu6pu6eTR" : 6142736974849, + "3P7gFMLWBNYgN26XBmgXqjYuP2zBXQXzJh5" : 1642634923189, + "3PJncxyVMYSo6FjrNMmzdy4QhjhvKbkLyrL" : 54580940417, + "3PEq4jtB516JMTzNUHhWDGgRAi8nwq37atc" : 29355976233, + "3PFseoCSRxrD8L92QqaEH4hysKpZpmjVkxP" : 34126170295, + "3P6bdrPaXzHFK8u6Hp7Rd1CcDZMPmGFiCus" : 2204917424661, + "3P9V1RBRQ4K4nSLQWwQHQ9LNG3nbCnh1Y6c" : 7800000000, + "3P9X9yHzyVTDB94u4syn5RAJpL83BRq3M87" : 62054497440, + "3PLkcJar7biPQKAiGdU4EPWTn6DPAhqYnbZ" : 123237722392, + "3PHDxjht1ZDb6xoGoZxVrN9HwGApkJ5ABoo" : 7200000000, + "3P7dTuLGKY1R6M7xFfqmYJKqdcMTSDhznJR" : 29778267239, + "3PGBry6y4rJ6epNg675c8SfsiPGSMctNzC5" : 1228401070249, + "3PDKuBuTSag8QGMwwx8XmHJNr8vdDaH7UgB" : 322171714790, + "3P2W2Ra9TQmFQFRcEbBdqzCjEFypsnrDjf2" : 5653270168604, + "3P7UPmQHPKB6Q55hp9s9cwg8DTixWqS9xPi" : 52448419231, + "3P8JdJGYc7vaLu4UXUZc1iRLdzrkGtdCyJM" : 100000419, + "3PMYauM873JVbsBeysCb6cHRrjJvUaiust2" : 5108431248693, + "3P7DDFN8mbx1y2Q2vm2BPBgFUJ35BzdUCJD" : 821046971037, + "3PCwe9WfWBi9xyMBFBUUhKRApv771URSqt4" : 9314717750, + "3P41kDdEbPpEzj3BcPffAduJEti5Bwq2JwA" : 159635504203, + "3PNt561fWfHDWEZhcfQcjzHviHoU1XNFp2R" : 1184382732, + "3PFhoJYiDADwG37SX5wyWZ2M2vAnYPrZu6a" : 488290476957, + "3PErNnF92aBkG8b9oBgqRqVXdeCXt2yooB1" : 339063481749, + "3PAjT5v2uVQGwHjabMT9UdJShx3Qivkb2H6" : 398399735817, + "3PAbbb68HfdCeXzxAnVKeHVUpftLfXk6Npu" : 2500000000, + "3PKqRvU1N6sbQTRP4hKrHERsAL61WQLd5Cv" : 15407798999998, + "3PFLKqQD4E3WfqVq2Pmidbnkg7XnS8aZrYx" : 100000, + "3PHALQaaoinSjCVZw8KuUJdyr8hX67QY6SL" : 1874914308348, + "3P7M9t4Wq2oQfojQWJwNTxC9LCBVCDSQJH5" : 96331784780, + "3P4g3eXGwNeunGTuFGTUvjtQfwZv3qr5R6c" : 100000000, + "3P4kJqL67kBM7iRUWnmdUrmRBkFvryCfDyY" : 459306882668, + "3P9bc324bTL1jB3zuxGeTE3MtWiPP1pkREN" : 17500000000, + "3P8xzEWC9kVVb5kfiEweV2qG4KEEPwCbmXT" : 684593188605, + "3P3qHYnFUHF8cQhFrSMZ4NYLGvtet3jrPCR" : 25651249950, + "3P2zZs3WcnpukMipe8gWS8asRdkGV2Sdj3y" : 273198745888, + "3P3uR2hkE6n2C6CpRNFzb8DWMMrjV3npho2" : 753799339795, + "3P9t1jbpKBwJYXHvMwvt3W4WbSTKe1q1bUG" : 2500000000, + "3PMXc8t1YvTXqgLMJuPzG4LK1RXJFHsCMwN" : 831530186467, + "3PD6aYrFhrjEVWuDgCSvQURqQHnin5yKzxn" : 29627248720, + "3PAqMAdHNTbDDynEdBoh8yExXguojwFjM6q" : 326297103344, + "3PFxsY4xdfxLYHawWrqayEaqgCnSh2vGro5" : 8766538446, + "3P4bsE3TKE6AgUx6H6QHrBRZnDFJWNf93aD" : 503290476957, + "3PP6v91JYx5ebMEwmEm2iYraQbvE7tJyfeU" : 4478430874819, + "3P31JQ5BieauvJ13WAV64wAZBJkHaeXjRZE" : 121135808216, + "3P8MnXHoc3age6CN4N4eF7S7og6pqdPKhSv" : 1963461907827, + "3PQHtBXCt1VH7wBCh4nixt7mFM3BKNC3L7A" : 1950316471287, + "3PKigFGK4KC25UMfZYd1nhtiNLZxnSNwTph" : 30174725876, + "3PGjvou8JA8vWE1bqfhatrknD9NXo1HYv6C" : 1371362435991, + "3PNTY1ZLmUGfQSbe9yHWdkebE7NjpGUrECH" : 3807514820775, + "3PFh6fYKYhWz1axtCPwZcHgPYMgJjHrKwdc" : 78500000000, + "3PFsjtWFdyNSNBteTJSTBLxcqWh87cBVJDo" : 100000000, + "3PPetT1tFVPwpxwxhpvNSbBZcmJkE5ihhvx" : 787303452952, + "3P9jJBmSEK1vdA6aFQqhLx2JzFbmKWGaCov" : 44316417692, + "3PE1kxixS56EVU7kAgSWm5SP8VxEjhbxfzp" : 17658470375, + "3PBozi9t6HokZLsKfBtE9wBFj4Fk6Hwxh92" : 64700000000, + "3PC5hR3wwWu2Vp5jucEnwiMXE3nLEDoTPyE" : 670782997860, + "3PNhvw9A4kN3b8eJ78BTabywosaMHtJqGbn" : 15000000000, + "3PJh63XkQ8wHhN2VAsxv5DqVvahQaZdHCEw" : 15228377589755, + "3P6hrGUVo32hAxbJvXTZdykeFCj4nAo7znt" : 265237590351, + "3PJjdyjUZNZhHmqWKLMARiHjgEq9HWefBTR" : 106964367344, + "3P3s9QpQ58jLUG4Xk5nCa1NundMsVvEccTm" : 352274451876, + "3PFm8qbQtUw2keiR1Hkq9Z1ymsXLV6SALA1" : 2968442378425, + "3PLf6AniAvQ8MbkS72iUPhNbjvrfi6iWSDM" : 313372608669, + "3P46WdGkXKZh6bmyiEeenMGLnFVVfWqd3np" : 67327342628, + "3P8Xg9FhD8GWuXnxB6jZbDkaP6E959hwaBS" : 88079952159, + "3P3GN7qmVrfbJ1R92YBMWtqujiUsE7GxE4V" : 955675728869, + "3P68wp5ceVTR16oM6bJsJ1BsQTuD7fWU6uS" : 22208471135, + "3PQRwibhJLcQ3CgpWNAXUmPQW4hdpKGq3ng" : 53521127639, + "3P4ACQnvPfEY45GH6mAFWWPmufsWvUMhUow" : 199183396198, + "3PMTXDYyzGwxHJXoznNbeMNQU42GrRfaStz" : 31199999997, + "3PH7vifBjrbrjSLSkzEwq3pvpkC5LJ3EVxi" : 44973841560, + "3PEBnCR9JLLaDoVxF6babq7a17bYWk3s1g5" : 5533958738843, + "3P8mfGqUy9S2XTGS5gbuLq3FZkSnBK2H8F3" : 234297960644, + "3PDZoaYW59kpsxAFQV6mGpKnkTos5ujmqbQ" : 2971346525141, + "3PGLuf25jcZp8sTuyv8SxqddpRfxCUwBD4c" : 268212050272, + "3PGwGqmNZgkzHBbgzos6rUZLnkdVVL7GE43" : 17500000000, + "3PPudVK8uQkXipmzXwPSMLowGAS7ygtbC6f" : 38376421699, + "3PFaZNDT1QWx6spdQ8sFf1QjLfgtSkNLe5B" : 11283341064, + "3PKAY1V5Em5uBM5dzjfMdiYD9FnX49fh16M" : 16732541840, + "3P9n9Ki4GxP4s5m4xkSjPkKcMS2rWFK3NPN" : 1377653359324, + "3PE52JvcsJ9H8xuLuYedCajCd14cy4yC1ZE" : 2500000000, + "3PE5eExGETmsuxUDKK6v12U1oxvoh9faunW" : 5448375193708, + "3PC7TKXB9r3DLWNMCmTM1tNTDYvaqtw24Tn" : 151361693343, + "3PAZSSoeMbv8Fi64W18HN349tPgiKgeetYD" : 906552021525, + "3PHKc19oMzRr8U26h8csL9QrJqKkwm3hvzC" : 53918088387, + "3P6BPixEyvYZWEfaHGpdHadBTk9WGnLJD22" : 45800000000, + "3P4oWQ4SCH6CB4k2QohoT4ZizpHzNaxAyTn" : 69826669724258, + "3PGCq9heKiAn8EWBpU2aCm8KZ279AqLiCu7" : 19838744200, + "3PAWwWa6GbwcJaFzwqXQN5KQm7H96Y7SHTQ" : 6934047128827513, + "3PEVSy2w768MsAj12ShERjWwEUYneDSD5xz" : 135367994717, + "3P5EzZqCnPY2pRfEuzJEeyMLc3MpUtmf8M8" : 16085089949, + "3PHTp3wdVA3HxEphmBRCqFDwh5oiZCGMUHT" : 81381746159, + "3PQg6Kn7uL7n6Z1zg2NyPUMzzXH9Ausi1g8" : 286272487198, + "3PGPu8ezz6vMsz9ZZDzshGfWNxbvNpBFLDY" : 86348908843, + "3PJWT6JKaaMNy9zKoNeCGvcCcqwCGwFTmi1" : 1392443590334, + "3P8QyniUJKNLkxqXqY4huCBuxNiRfucNoqY" : 15000000000, + "3PDenrzi9AtuUUtxiymn42EFjXyM1tVgwrC" : 2113703890327, + "3P3h5v96F1qLyJBiMf9sByBdGhkKu7aeWFs" : 9563135531, + "3PLf7kPz7vLf8ZDtrSGVticUjgLCiLpAN1e" : 57645739908, + "3PBY4M7tT7hGdZ6vpAzdwxMCFzjKs99GRSQ" : 35677084340, + "3PKaLoAsmZH8cbziDF7sdb4y44FXuLtY6NQ" : 2500000000, + "3PAymGF9ZCrpDD4xAcN7xk9yk2A4KagMs8V" : 1750725730248, + "3P6DFn9briPL2mufCKoBTDDGCsus94gSQ56" : 1156828169883, + "3PEVpnMJAK36xcA3rsAyM1CzTJfEXvCXF1u" : 70612747227, + "3PFMjFtB3tGCrN42Q168GHcm2ZG6tKFfpWp" : 276168889246, + "3PM76Z2awCbMMgTxKsF3qYPWc2sML7gQx2z" : 550305847144, + "3P9EhhQfKDCe1MDAM66CB7VQgdo69dzhEZ8" : 942914271984, + "3PCHxvAVG2vDXrUHfXjaMVji1VTJR51Jqom" : 582454522125, + "3PHwSUNbupkt6uyrAfkWk4FbXTDEobz1rbT" : 130279527970, + "3PD5WFRsRtLtqj91ykPyotAwhKFnKjKnEVd" : 434713199102, + "3PAKogKCWgdCyAsQhXLJn3pvdrmR6iVNnc8" : 679800188734, + "3PFcJ1QXY6WKpPn5iMRwrsgveJUmpywGx2c" : 101400000000, + "3P51cZwqxgmcQwkPxkkFWvbGzLqjPprARti" : 47339973592, + "3PLFGvcJfHd5MmyRC1BvhWvhn1QaY9GNGRn" : 48829047696, + "3P2tcAYuGFvnoH12pgtVRhEVKAn3qWUrd5V" : 15651053969, + "3PMQAi2DzPq68J5fue8xVHetPCLRbKxovgV" : 1530762241402, + "3P4ftCJDeExDu9DSAwtvq3Y1W4cnifsmHhg" : 9700000000, + "3PCQ3JksTYriRZoCJBTqzWY8wePLbrEZR3p" : 109705518399, + "3PMnCqREnTpX6cMXXF5v66ysCJjVZwkCfW1" : 300605264887, + "3PPSYc9JDVUqBvknzyEzsSbiKU1YhJ945oJ" : 17500000000, + "3PNW2hxFPChjqkZL1B1HTktrMkJpGms14zr" : 52815890869, + "3PN59VR6ZNZD6F3zhD4VfsHpYQHADDJ41jd" : 9999, + "3PQCJMpA2rH4KJsAHYUamWukir7bFH8yvn3" : 60765953125, + "3P2FBF1MKeSawdmunqbN3rj2hA5F5wvikfH" : 9700000000, + "3P8JUJcowUmRgzBaQkCcf88P7fEo4VtL6Vy" : 892201180182, + "3PNTUXKTjp5tt4ULfWZHoQ44jE5T12eHAyf" : 69100000000, + "3PGQ2iJ7eq7hJXvoTCs8wW6yGpGPEUe1wDf" : 1741856212507, + "3PM7Mv5ZKBFWwugNSCXEa2Vc7NUsgR57qFL" : 2158243908149, + "3PGeULEx4n61TLebfkAmR4j6wcFSTWoqtPw" : 1006744661013, + "3PF9dA2iA49NdMt6Fk2mzYgQcTJNH6ijRQo" : 229259322599, + "3PAYXjhNL9ZwFbNqqMLBSk5hrEfn3fYA1VE" : 57454144247, + "3PJnt7hMbTfuFeQiad11ET5fSx74ckmunWp" : 52394912360, + "3P9Fc95ba6Bigj4cY1n2i4EGhDT4Pe1UDLv" : 57498916387, + "3PNtAwmupJt4hEBTu2MRe2NaeWhMdKuTZWW" : 57500000000, + "3PHHQ2WwCRmQKDGwUVJpYk2ziW8UFHgM99z" : 73399999999, + "3PLGoH6M7gDTJgJsYa5tXMgLZVL42qUKWEp" : 406881603549, + "3PQbqJWafSutZsYtvD8NjCFpusd2xWeHHi5" : 22996418356, + "3PEEM1AkK7NJZMa1u97rw9KcdKuxFLzi3Ni" : 271272487198, + "3P8GbmkC8fUt2vmvo2w2B92RqCPVxHm9A5u" : 12062466613, + "3PJmeG8E4tU3JBbVTY21LndvnVvH7WZyZfr" : 62698219008, + "3P2rjHy3NPeVtEqCSsvfV5N9kvz25NbeTXg" : 57274145429, + "3PFfiB3xMgG5De7Z3advs7qMHBVqxU23HsL" : 17500000000, + "3PMsgBAoyWZvHnzPuqu765MW6Zj8Hcqu3q5" : 572369557574, + "3P8whhaKaKsJ6D7GfiGjDP8ryUz8p7PSrWs" : 145936243599, + "3PGU2NCZusfkvbW56oz4RgHLAQVmsEEqCEW" : 3060924578064, + "3PPjY2iXypqkUgpvXDu4grxppvtpLC9MuLy" : 83881746159, + "3P4RByo4HxhGtG4b5WnJt3m1u8oiE2HUjfc" : 110959333789, + "3PKDvNiBBP6XUXUYWLPuZbNoQQVpKGv47Fi" : 13225449744, + "3PAEc2st3sTJ39ybANaPn29Thr2XHdS3KvY" : 73168415408, + "3PPtZqyW5Cqq1RCJ3z3xKN1oYXHuonorSig" : 1865897216443, + "3PNU64uNqwW18EKB2SA6LmRPmsMtaSSttMz" : 10000100, + "3P3FCsy5SvhXwMxNWFxLCCdmwyJhUfvhYSt" : 35115783098, + "3P5agzACndG3oqHwuPDbTbVjZmAJcDUa419" : 95626476313, + "3PJieBJsGk89cZtJXGs2ojDaicZmPjaFSbW" : 28483611156, + "3PKpd5CZcJM4QAnvoehB7pezdZjKqRAT71P" : 85935054857, + "3PLyafVvy5ic5gzzhYhiSaQvZikJqXyTiNX" : 2500000000, + "3PMQZcbAiGrpjX1r22YNQfT9BzsfJtFKJV1" : 37138119490, + "3P9zjxieonE2pkh249b3X2cKixZwAR8DTDP" : 1302079161966, + "3P3K9u3r27tabXEWArkJFcFhXrGqZQxVrZK" : 11393444462324, + "3PGWsdUWHJTnscBC9AQdTr16nt2CpKBHK2F" : 2500000000, + "3PFex5TNTjCqpRoCdjUHC4SVu3rR2hYoV5b" : 13700000000, + "3PPTYaLGdA4zzf3wiM4TcRUTDMxWS2eeLo3" : 17500000000, + "3PP9NQjWdS3ty5iJW4nZonuGp27JNFt5zAL" : 606672100342, + "3PCU9Lw529Ybay1zmNacsViVmQGcNkxwdA2" : 10990164449, + "3PCAZ4nNWVMTytG1CXBsBaoU48BjYZ9pFV5" : 651053969276, + "3P6cYhaYXkG9RJScmiSm5kkt7xTsUDBjJAw" : 211379815143, + "3PEc6mMhaH2c37dmww4TyuUrZzribepNXiz" : 2528259580687, + "3PH3LhfViYvsDPnQaM3CgMmKmTrSMyeGBT4" : 16073810860, + "3PETtmLuvtgF1mxieSshH7Dep4z5mbuLMVZ" : 230003587382, + "3PDhQUaQckWpAw7oPYGiwkJy8VNzhHMk4CV" : 86971082464, + "3P6NqSjAyf86s7tJPaABCc8BEJEKPjDt3zR" : 330739709510, + "3PAGCKJgirmVvVbXKKmcqpjjd9BUpCKqoFT" : 2335443389905, + "3PEfmSVxz3PUi14F8ift52JjRHVG1UFixG5" : 15000000999999, + "3PDYKgrohVvVnJRoboMF1LZJqacKa1ghVcW" : 1087240363777, + "3PHiQr8Lpz9rCBZJrQAgcjhnrxSnBJsvrwM" : 67818121800, + "3PKnhk35BBxwDLcihhf6BV2KpfHbB6zkLP4" : 271272487200, + "3P5dj9PhC297tcWwHdApYJtiZX7auo6HAKT" : 257972811105, + "3PMteAqV2hAhHc6AGpe5uB8uTDkYZYTE2Px" : 2722397744733, + "3PDd5ECRkNrTPrsixoCaYCWvY19GukBQB58" : 2722424871982, + "3P3MZwR95phCJiJTpWiJSZkUbm3ZiNJunzs" : 271272487198, + "3PFzdSjQxTDNSTqjovVEwQU1nxA1wKveMro" : 11935989437, + "3PFu961bHkBkh7SFS8HXwoQQNHfjpbhggGz" : 1911087545063, + "3PQgeucR13p9GnD9dJ4AYej1pq6y1zED4SC" : 98471004348, + "3P3Y1rtsX96kPKGKq9WRvY2TkjfV2zc1XXN" : 816367422974, + "3PLbSLVxcbA9Dna4QqyUdzaruPMYwWWSdnZ" : 615246000966, + "3P8WS98mTSE6qBmYnx1MFUZQAm5Au3FyFxS" : 668553969276, + "3PA913gwo3EdHYcRomWH85mGmhdK68JiRmw" : 1358862435991, + "3PGsmEAstGvLFfEZJ55PqjLBXfqoZnQfXTw" : 139910793855, + "3PEYCFYoCR8b4pMuQg5fgUh8Qoi5TfgdKuL" : 1147144446232, + "3PQCfgojhdidJqKiwvETbWkoLfhisi2o9Pu" : 406908730797, + "3PQ4gqBnXmBqmGXV9DtmSCMBJwkGSS5zoBC" : 271272487198, + "3P77nXfmtHYEcPY33yf5ieNtXJrnD9xSPBm" : 1115081327427, + "3PDnK7WAoNTMR5S5j9tgYakQrTXK8SkTBrx" : 13564912589685, + "3P8QWpgmFpMWBZnj6v7t84Gqk8qrVR2KRyG" : 17500000000, + "3PHwMciVVnGpS86FBFqNeE5MSpNS2h5DdVR" : 206719896358, + "3P25KYhv6gpMX81AiEPkuBV5Q7sk5HJLNXi" : 9726975195278, + "3PAa6p7JSMe2BMby8NdcEU9urTdn6KSKguA" : 279045359949, + "3PQFkw34xcb8XggHSuyTSCVQoago5Y6fJ7E" : 439626265275, + "3PH2uiinaGGsupcjnhYj7YveVNAoVQnbAAW" : 37598105356, + "3PJszhTXs4TunDHehc8D1pTbD9C8YBkmn5V" : 14827761380, + "3P8pXSmhhov76yyco9uMdq42CKx8NY2Gvwt" : 2500000000, + "3PEHWwBxfNjkvwgeM59fTEQ3ue3zRv4E2by" : 17500000000, + "3PFc2AMRNGsKmKVvRc531ykXDvvyHxudqap" : 28325178516, + "3PJ7FMy3V8P8uY4a9sWGeLLi8VQ6D8kR5sg" : 2052588122025, + "3P4pLKtMFMJNM3aytjUZAPWwxGPpsYKWTR8" : 175526428806, + "3PFRf4B3NPoCXh5YwstSQkCvSa52Vr1UvRs" : 1586731325237, + "3P5w3rmnpuxdKxrihwTHmA5nVQvE73MLibQ" : 191413536158, + "3P4XLgHt7DjhihZKVmWQEAfA3k4aaQbiKyH" : 149438587748, + "3PMMmjQijggFhhiYfN2YFMpJfFa5PiZk2Se" : 1424180557791, + "3PG6Q8ViVmFAteG7BLXepUpwGrfrg9dA1zD" : 122045491990, + "3PKnCR5HAjk7aRA5NdzFKjFVUyYH4oFZsBR" : 83838538217, + "3P79GhejTqEs31ZPtYhDwWaPmUqjZP83Dzw" : 823517461595, + "3PKDWwYBdD2XRgVLRuUiF8pKCUhibpKq91B" : 13514467, + "3PAuUDfmYwQgKs6WMKVTDvWLW2raAtyvKvB" : 270729942224, + "3PKLw9TMJzZENNyZQCNxzbQAjtwCYjf68sv" : 16200000000, + "3PNrN7Yh9KUfXJn1vh6MSSBGNT1H6ve97mu" : 68800000000, + "3PBmsV66Pf5wrf8KMLtJbJS4d5fGKTok1Pm" : 379289346544, + "3PPGbmwrWmKHMT8yLtJ48sMPqUv5xeW7Jim" : 7200000000, + "3PBAmdfjjx9Xf1RT94ZovRkyfaPLhkns4SF" : 837365371030, + "3PLuD9bvmKLuPFXXxdCH144X8jQ4x8QoSvw" : 486642175588, + "3PLmf9wAVuJQhdkEmPt6jP5UCpYB7azkWcE" : 17500000000, + "3P9sYgWzFKWhwo1fkTYxkdnGeV95EUBZSJu" : 352654233358, + "3PKdg6UG6vxgV3WEC5RjHyoQcpigY9XavLP" : 17500000000, + "3PNCqkFmgTXcvM33aKq1JeDcMY2ShbZZKMT" : 62054497440, + "3P9o8wmXBDAe161SZcsDqFrz3y4Yf3i5iDu" : 22488327809, + "3PJdKTqYgrCzCuWKbdcvP85R9K5m8ZJyLjQ" : 3780824878077, + "3PA5Ks53gEu32jEG1NKZgW5vDHtLQpqVNc4" : 1638206336738, + "3P72uvTFxdoesLA2vptZWLEM9jj3KWr1p8B" : 289205025754, + "3P8bepiEKDTQfJhUfAxVLZxcVwPXYZxEWdx" : 1193571816423, + "3PQugZyW3kCmwiLyuTDKapsnqiMVtkNzMQg" : 2519058018, + "3PJzwqFtgdVK5wVYHrSDXDVXWRtHbRGqkSt" : 108733859874, + "3P2JXoiSjnWV5dsJC6Ae69eLV7WBukqyKEy" : 5954529214643, + "3PGoYuWKfx6N67SkjfA23YnaUfmUA46KWjv" : 131132038193, + "3PEirrhACFLmyRf62Dc5wz8hBt5CJuwPiE3" : 71300000000, + "3PCvFnXEqqjcqG2JpCeF1AZWFFeKsPVNDWs" : 2740290919803, + "3P9PKaWedZuc25QHHpy78Kpnz8VFjFs2Q4L" : 145869972435, + "3PJyrrMgPHBjTdRACS9L4jrrUo7usaJ3Ndv" : 17276944610, + "3P5yRx87mQTQybLW4GcZoVQsJAFMXfjN7ie" : 625710649737, + "3P3BcGC23VishBcPMYBgM4i2H754CDC1Vmj" : 4565177784930, + "3P5yXNdQF74jBJzLDdTmmtFKUjpGVDt7wk8" : 10300000000, + "3PJWFAzj7NGbYoG6vdU8kVbAgyHPvZCNqRz" : 859933784418, + "3PHczhn4SLeqyatWgrbV3JxWXPTuaFB837Q" : 2, + "3PD5jk9ReH8GPPvN9rJvw2zPAuZBgDGUDDL" : 3010418312001, + "3P3MUH2SoibxCxRQoL1M6SDoxx51cMz36kS" : 6784312179955, + "3P8bRiZeN7xTveASJTxkFfPMyVweGP6U2MN" : 10300000000, + "3PPV3nmAW8tQEjz6mRuqjJ4WCNVXnPw1dZj" : 21786105298, + "3PHSnXJGRMZogTcsvXjGpHpcJ15vjBPQo9m" : 306199735918, + "3PGsq9rRE1ELKVAEQjBx8QzrFtrauLqZAKr" : 10300000000, + "3PQFE2cjH13Ju67sNhRWxUsFH3r3XqwKiKc" : 17500000000, + "3PQboZF3HDiyr9Rds7gSAd6GxGqFkdS7SUW" : 8521210851544, + "3PGmRUhzUGssLkfVuX5kQpvUM6FVoPkcPg1" : 169154239886, + "3PCWrpDdgLj8kfYPksP187MvtF5Sf4Wav9c" : 596770273151, + "3PAqEDMAmJJSsR443AZSAraRXCRBTce18i6" : 94544622387, + "3P9Q4YGEEK6BQC3zj85GWisxXWdyuJPUxpa" : 130552597189, + "3PFLeeu788ERHkD66rY4BGGFoSac5U8usuV" : 4290965003957, + "3PPZkKqgiaRr5zwuvQLsyZPw7vduM7DGFGu" : 46400000000, + "3P2Z6cq9fgMhac4DMRLmtmpZwnDm2zP2ExU" : 34659442958564, + "3PF8RmZmWrSmsqcxUNvzGKNB4VfP8utZE4T" : 8186191651, + "3PC9mo7A7nTVUSEA1nyqKHwKxuRFtPdDy7E" : 130210793855, + "3P2mKAX7TjWoKW3ijnHrfRTQtFPyA323H3A" : 144798302757, + "3PD3K1dt7LkDJwEuQvrqXqqhj8K9b9xkgrA" : 37837086514, + "3P7auEbAaEWihEVfFSUoMsTHSB6w3jZym9m" : 17825526985, + "3P8EvrdQjYndMGk5mETcdjB5v21SENMFToD" : 9999, + "3P8brvhthFQWFAizH9v6widwUma1orrTsjB" : 1474710945402, + "3PFZZ7mdhFXFZyxeEeGAM7Moatrm7SN9Mpo" : 542544974396, + "3P511dR1wLqiwD1PvDBZog7hGUAGyvg9h44" : 325580989565, + "3PJXkHCKZvUZPNEevW2fwjdLZSkQvpZxHqx" : 8342544974, + "3PFN7avQk6tntWiA38bsV41brpEPzFJjthy" : 406908730797, + "3PBmfxaR1o9CE5W6PPaJNfzjGpqs21gq7GT" : 1364701044802, + "3PJaoUcfJ7ArtbodoyoyLvnDWr3uTfV3LLE" : 37574164053, + "3PCtxRNaCsDDPEYfTKo9htsKggcA7sf727j" : 1081417263533, + "3PK5ajt5MHv16qZpQQJ96K5MpANsLQBjFwz" : 20002500000000, + "3PEFAxAawCxtDNNpoEYFy2HGWCn7W4UADKq" : 1491998679590, + "3P4ZM2UHBNjTkmRye3s82Jo4uMxSHbWP1r7" : 8826802683908, + "3PDMGhGzmZmrVbPTGdwAJj8EZokorp8zCCk" : 2500000000, + "3PL1DBnkHyb7dXRCGbycbFqrTHA5gvhrvMB" : 1464871430870, + "3P567tPng9kEBu1nmx31nHKVZzki7swMfVu" : 514215772219, + "3P83MU2sWhirvGeZsJYRJBQVEHxyHSx6YAJ" : 14853084667, + "3P97sPX1JjeDC88JmkWReP5hz24XznuVSRY" : 99999999, + "3PHjMrrWV3WzANPLBYnWnSQNbtNfNvMLswB" : 72400000000, + "3PP4hNGAJaMqmx9vpdYUHk8owF3mwbUevoz" : 910924657498, + "3PKTM1DabVpVEL8GnynLPaB329FBwNpQsT2" : 299729182956, + "3PDfzhoqTRKcNbJCvJdT2eu8JrGFqTcipeF" : 596799471836, + "3PK4ozjNxz2fL29iYLHmNrVsyrawrvC4SJ7" : 7874616210, + "3P8ySRW1cYdE2pGfFRupszSrkcBTuTPcSx6" : 435857798297, + "3P5A41gJur1iJZaGBY4dTez76HDTkQC6Dew" : 58400000000, + "3P6UtRYRdzJFkYLyBbKEd1fZnC6Yb9n5co8" : 234974065461, + "3PF3PN2DuvpEbyiguJKuaqbB3F8stfygwtw" : 17500000000, + "3P71U7c7MWZCwedMX8jKbRV8qNLxW7gi8DY" : 1356362435991, + "3PJYDAEJjiBznHchVajxG3jTPPU3kXoGEj5" : 12245731735990, + "3PLNuCVoBesWNRUSKieDx4ZNJnHPmQTstWM" : 10266111791725, + "3PJEJomcQtSQa1a9i1gbvRfvq2V7bRncqyu" : 992659075835, + "3PN3Aukv3o2gcGqUYtw37b8orkcmetbb3sB" : 831197658984, + "3PG6dBujd5NbWoEwmtkvaUBCB24jZb96AF4" : 35473430739, + "3P9uyN5gwPoni5T76y42qBud2HV3cA76prA" : 42119831059, + "3PN3RshNUXcHTZLFV4uqajkBNEC9YcyjVKn" : 26845533043, + "3P7pdyhS9TdsGz2idPy4UZgQNqEcqVEV8ML" : 821617461595, + "3P3b2xDNNoLNcL8d9i4PNgMYRzpdbz3ykFU" : 128951825255, + "3PPtAFqVbnhzWcc91chyrfKzYMzsiccoGDF" : 75685163905, + "3PLCJrFuuodFkwWDF1JgCYV17XQvcuY4AVm" : 17500000000, + "3P89ndgKAn2JLETnpdfBRHLMtLJcu1r2KTt" : 3237684595216, + "3PLtyhps2KgLqo8P3ogsSGXL5JSDmwdqFjn" : 240600432752, + "3PAWFxj8KUVacs9G4a7rVF5VJRjRJaMAeXi" : 17500000000, + "3PEGoyTFCAZ6zDbsBEydZFJhraMGCNVmWie" : 1326037907931, + "3PMbvYWW3dtBZ9K8VXLWhj8KVwG3882SKJE" : 216800971769, + "3PA5U6cqF2QF5DpUDhPEWyTwP6j3oZpM4RK" : 216999212535, + "3P8cpwy39tqjkBUXf3jvTrewY9AzEtPCwfA" : 59336390196, + "3PFu8LmZihDP9CfShH2jxsqHKc5NNYzVCf8" : 53408583276, + "3PF866tRGhmhowruXcRrfvsoESKmNtJk5fy" : 1234289816752, + "3PEzyWGzbyuJzbJzWn4QG4pDfpeYJcm1zKu" : 22467411996, + "3PAx8FKJDX226Qd9k9K8qgfeE6ATq9Rom2Y" : 300000000000, + "3P2d8iybB66RvejFt75chLj3mcLysL3aFo2" : 3580796831016, + "3PMcfGKEstEzgDZxNQJDW26SCWbNsRFtKHd" : 1627634923189, + "3P6AGc23hYaNfhE5XqwjBDnGGhDe9Ty1aCN" : 603915319490, + "3PB7StzSte5c3539FgEQe517tN4ynfko3E2" : 2373615325574, + "3PKNteaE5DUGUW5etDmUv2uxZ7xPbBGHoZZ" : 7133551140, + "3P82hVbeSBbtgobDfsDw79ygW6cwcgndAwy" : 663341027681, + "3PBcYTbG3MDKUwidaoM7iBNDLLz89akYNJB" : 32331331079459, + "3PNrQME81y8xiXF9hTNFLeoe8pukeYbY532" : 7754560628869, + "3PDGZeKSedNq7DhkrvQ4ZzJrE9enxEzUMUP" : 61900000000, + "3P7NEJ6xbDNuN6g3V4oqsWrVphHfS6nAjXa" : 82888503718, + "3P64EtGUn737zTwGfU8dmiqV8Se62UMMqdH" : 786663085626, + "3PEGktdeTtS8z3F1W8eQtVBavFvdPC82zq9" : 140715210193, + "3PQ8sY7yrgLnMGqfgYV4kjHie74A4Uz3APQ" : 1309470343927, + "3PGU9uKFb8KKHczVBUNdVdDmjEbN4XuVuCL" : 114703336106, + "3PFd7iyyckgq8DZ158GeVJDxWA3ZHEhKawm" : 17500000000, + "3PQHxnFPEefD6LLRgoQyofr57H7AMyMySEu" : 435974829089, + "3P8GooNUnSJJmJ9T8pRqzsR6AVbGBZFhkV2" : 125206269885, + "3PQDVtrvqDr7JnkJBasykPA7dGe31ig5hxd" : 33728720673, + "3P6Eiw5LNGJbtb13N9yurcnhu88gsBekgvQ" : 996884028542, + "3PBGCtBsW5Sw4A6xTPPYkAUpL2gzgayeta3" : 420824613455, + "3PAGCCCSLg1krnT2LW7uPJbXJs5TBvD22dG" : 15461776500451, + "3PERqji7ejJikckJGvf54CQ9JPWmQGABvRe" : 217017989759, + "3PAQdPnQFLhLrfRknt8NdfNGkTWErZPBdGn" : 35354502887, + "3P3pA4rfuwnV5f2rkLk2eJhaEic5ZGJbZ9k" : 7591970387548, + "3P5YD9kDiNMLAYnXdM49dPkfm6eqZHcoEXH" : 1854042338233, + "3PL4heGXQ64hKzQAbAgR1Br9YuZTDzEAUoN" : 1193598943672, + "3PKgjj8WjDwimGKDRRj2R1jSwEx6n9QVJuz" : 328026984638, + "3PBqr8zaoG2ND4QhiaTr6NoFCELVMooYZad" : 135636243599, + "3PRGUZ91SRgfWx4cxWtYEkgfbvVw1qUUDQ2" : 1701021397240, + "3PK86Uq6ZnskXC4hDnYBtACqPVnimZMjDPT" : 208030155126, + "3PC5EM3gbDBqwGrmcvQbZXLx7WW6oKrN9QV" : 17500000000, + "3PCh3N1fB8URxoKBvVBp8ZxqUfKUkYFh5J5" : 2500000000, + "3P2Y1XXijYuVH6os54cDnbge6xMgr2FTZTt" : 327213167176, + "3P29KnL9DAeMty3hdZsTY1Mv3h1s4TnPNMo" : 33656387939, + "3PJiq84ztCFkFaA3Mo6hRy8rkUakAsFN1sU" : 2665196584310, + "3P2D962kn2RpDaFcd6EPY64FuF5NuUz4qGN" : 186300000000, + "3P55YAVtEdd3eBwh7TBEJJLcgcVNi5YTu5j" : 69683189975742, + "3P2CVwf4MxPBkYZKTgaNMfcTt5SwbNXQWz6" : 569772223116, + "3PH7JbuPaFfFDr6GvxYf4dNiRnzUfvtfyi5" : 17500000000, + "3P5Ka2v2WZWz4A9GckhQwk9uGYHX696JSuT" : 13926038977357, + "3PEcfD1tvCqfBtvSMWuFskD6qH9P46rtXKX" : 2142995681643, + "3PPxAcByPVpAmmFM1px3FeDFhgkyb24Lk63" : 1548753177030, + "3PGK9Y5Gme1MzC6pcK7N8VogGqErPBtgH4B" : 17500000000, + "3PAPNZvrrz2besnZHLrrH6VaBnPH1VCU1Qs" : 4160965930845, + "3PKTaUXsJPtwD78ieTbch2aNE1k9fxSP6Ne" : 760273698071, + "3PCKns4rAXgw89idBxcBcmb2ZBFtTTjBaET" : 691708491842, + "3PNBeknRcwQvobv3Dk3x2TZpmphQm4t1ozr" : 15108508995, + "3P9syNJYKMuMFVRirbvkfDrtyK9uLVr2mr1" : 72500000000, + "3PBwJdTfEWZGSURPesbwKuAxDXtVihP3WtY" : 691660567176, + "3P9zY96jWn5jS9jGAHeUTBNGy5r1rp5KoHC" : 470445040417, + "3PAis12F1evKbQMrBfKEbhRsAsekkiAAs1Y" : 82605396928, + "3PLPEGcb5z4pmTAcrj543xX5SRvBtGW3M68" : 75618121800, + "3P8djvaFegPTgrnLCScsufzCX8ye4ESvins" : 18650899488, + "3PAUwUhuLNw84ujRprMxSpmEi157HBWPhDb" : 17500000000, + "3P5Q1B4qtBBynGg7dQextkwzEVLGQLJ7v9M" : 75405396928, + "3P4EN56HiFdwUJY6ZfjaPwWLKusECaxAsT7" : 24076349232, + "3PFzPha2vnHkQModUVtCbXzqvoSfkD6Nrvq" : 585879788496, + "3PCq6rZQbbcka8qzVYb55uTjeqw3D5bHx7K" : 27127248720, + "3PEqNRwuyvEHbuVNN3q8gysLmSZAD7i8rMK" : 282030388280, + "3PCfcMyozhmt8ULXrH7fmowbGgr2HzPGeRm" : 12000000000, + "3PFWXTak1m9xTdgTGcjfGqWsjqWQiMNrHS6" : 44759960384447, + "3PNoxnjmSR6HW1uroRdSfQnMUYHaBzKXwDN" : 599299471836, + "3PKtq5NZtvEk9uqEbueQjvQ6i2aSW8v17pd" : 62054497440, + "3PNdoxmckeWhZX6q7eKsKbmvT8Buq2vbWbw" : 9700000000, + "3P76TmRjfjhdN9KEmwSnzQHpLrMRuf1qV29" : 165263492319, + "3PNfEc785eXGZZ6YFbQ2vCyjCdYypBzWkCY" : 9700000000, + "3PQLeFzkDEnmvGtpcV4tkNcERT7sqq14u3R" : 1783531636744, + "3PK2H8eZZGH59Ck4Woc2RyMX9mhEy3sBa3b" : 187269616209, + "3PHrXZBk2hRM38cMLYjV9GzynfgzxsPmsWE" : 78330846672, + "3PJNV6jLQHrgMc8MBxVAU5uPoc7L2FDEJPE" : 31406131836, + "3PDymCwaBGh2kkcXzTdn3dCbDngLxhrzhB7" : 30415093646, + "3PNQFFn2zfQVwVEVmv9xsytXsV4q7kKTo27" : 458112328749, + "3PGYynLjAfKoxWioLQCn1USLKCoNfE5w6wR" : 32339973592, + "3PFmhyMQSvCTsvU3eiaXttEyiGRPLC83Jse" : 13102461132, + "3PFLWwXuny5KfRB6j86FChQWSwMPmvVnwYi" : 2302109052119, + "3P9fo8dS49PiWcti6TSV5ssQoLgYZUFPseT" : 9999, + "3P4QHgAhqY9HHxHphdJXuRqWNAJKy9PXjqN" : 33412195499, + "3P9bPzFBgDEh8bQv8xc8WMxJmH4mWRa2vd5" : 8885089949, + "3PKfMmmxVsvkroc9v74oDLYZKPHxgxnhJtG" : 204364232839, + "3P4hJmpjKGK1H5aRzEqnkGqcw9wf2upT3ht" : 13767994718, + "3PR5LGkJ2ufzPv4KhXayzqyCoWi8rPFzCho" : 4947692341385, + "3P4z9HLZdoU87bcSk1GKHqiakc5iXh7Lq66" : 1331927903084, + "3PCWgZLdFWaAWia15xjvsQp9NUuzLo1gUYt" : 111221719751, + "3PPPmz6Eu9YDKBRufpWy7mcciMTMBgqiPh5" : 1227359638308, + "3P6SPn3x39vN8oY2noCPmmtHFJm2nepofKd" : 264107079445, + "3PKzD9rvnRud6Uvyp3TziRdVPSPF8QdFQ4R" : 492477153310, + "3PHMJK8vJmPnEDR8Ex6CrbPLwBH1hx6gDEc" : 271222263810, + "3PHTMs6LYza3DWVnQ4wxUgAJtPZUtH7SiV4" : 111151774853, + "3PJHXYAGs8Etdy3GRhUW4291qWA1oXhJGCj" : 1876139126850, + "3P3sCHp9T17Pd4GhwaEHuMWuLzzicRvnqtm" : 585080500389, + "3P9cDCy5roYKMSgAPT1CFwLgG8mxtXxjNiW" : 67818121800, + "3P5E74jyb4UttjfKXWjvuyjEpUbrPxH91ce" : 218376766427, + "3P26jWWN7idaVKyBRia7vuVGKM7V1AMQyCB" : 10300000000, + "3PEzWq97ZsTsL7pPcFbB5sC5h7qd4gQ2mVH" : 418780393975, + "3P7ZugN2zRcBCMtkU2TxfJyYJwsfaRgXPrx" : 31449560756, + "3P4rvnKD9GiXVYxuGMrP2F8WUMR7bpM9bfK" : 486037782981, + "3PBHLM7zXw3jb94scfFu1NTEUq9dohVFLni" : 56346298577, + "3PAeniKgChxHbF4nvuU8N2sYR7RGuydEqNy" : 1259198102643, + "3PQbutC544gscRFXayF4436thjEBuPypM1g" : 25871717983, + "3PHHAq5aGxv2vbQrrwuwiKDCXrjat7GieFj" : 643153204924, + "3PN9Pi4CZF5JaidTFfsRpe5zDvDiQfA6oeS" : 17500000000, + "3PCnrihLWh1CNfA2tG2Het3xmjtz3s8wSM9" : 42896626431, + "3PEymbCaZqLxHgLCciApj6SyfrYg93TvNk6" : 139826034984, + "3PGELsTUcqSBG5BPLj9948g8RVMThAFS5yJ" : 9700000000, + "3PD7jKKtMdhAFGMS7N4PNXoAZb2CbNiLnmJ" : 61900000000, + "3PGoJLQKqPZhUKCr2MrQjyEqmuSY4DcqGS4" : 1218741174048, + "3P3X3Audjrcx77ufzieEMDgNcoDHA62UGTr" : 19528540448, + "3PB9rY1N5zvrMxiHVTcnys3mGWdRC3Lnmok" : 21065868231403, + "3P7rabJNYpjPpqxS9EhezgHnTsojCzbiDou" : 44053283379, + "3PA1mB3N8apJvNzMM26Ekm7XGmLidkMwd2s" : 542544974396, + "3PD8dUmzWU9D6RtbtRShXxQztQRi4pDKofL" : 112898680151, + "3PFXzWJ275JR2UgU5k6ajtydU5ydyvTiQMb" : 1856991655570, + "3PFzkWDgjoP1wPaeSdFF3QAo27JnBQRHUEB" : 7800000000, + "3PL3fUPYSAGYTBdbGru2VwuDATSUXJgCXWY" : 231020479007, + "3P5jebWu94FEPPEugm3T5bMWKAEwcy6DEzK" : 284141672072, + "3PRAP5k66GcsCQ1ShdRFz5qEM4up3gEcw3J" : 8209929113386, + "3P99nYusCT3JbLCHF5mTTz5puHuFTJMU79j" : 2594588628383, + "3PQGdv5d6pYkj7ZtqfjgeT1pkjS2q4BFVxo" : 390228397410, + "3P4Yi6ce6Et4ur6hN6tj2mXPdqq8w8dShYZ" : 1358889563240, + "3PPpHfmtVwkE7gGsCEfCDYHkKDwJGSrEsXo" : 398432381565, + "3PKmHXfTrrAv2AuqyaRg6urQNAEi37kob1E" : 813817461595, + "3P3Z89ZLpLRYZ8w4pJyR3Tkk9ero3iGB6xC" : 661353969276, + "3PCG8n4Q7A1MJ4YGSL1iBsgaNeQdQpsV8yi" : 55385638606, + "3PEVpxcYDpQ1cdgQVMcdgFP2zTnn5N43qzm" : 10300000000, + "3PQaebiobbsrTkzUtpvkq2TEDcdaqd14ZXL" : 7800000000, + "3PBUeunXwKAzLeva6Mec7bvKCmBhVh8s4WD" : 992369012668, + "3P2p3Wqy9hTcGMHfVs7wjYBGGkTNomhc1MZ" : 10458470375, + "3P9rozQ9Yb3vdbGjKdrYYmSFwn8haWx9d2N" : 17500000000, + "3P2D42WL5kNAE4U5odEd7jcjjw2LPfAuUKx" : 93977843733, + "3PF5N1YJyPSLMPidbd7eMCmJMnwqcYtd8ns" : 284836111558, + "3PC3gUzxKcme6jVb7V6uU9ThXgGuTuihoLR" : 1091739049305, + "3P66JseNjhWqxJRzRdMZmSjYLBKKAusUh46" : 108508994879, + "3P3EmKXwXmXaP8cRgqK9xHfTHfARwWYfH8u" : 271272487198, + "3PE8kX3t5wseGDhxSd17ikFNhDjywy45ZfE" : 1105275546416, + "3P51tb3HmkixHb3hDELwQUJNxk2w6pBhiRv" : 542544974396, + "3PEVh5ibkd3hpAa7V1EucG9VGJtJWuXL4wZ" : 1329235187, + "3PBskrBwDGcjThA6k3qYf693KtcnYqBMLcM" : 418379457659, + "3PR3dkS3i25PvDeasUqRFSczkf7T15aedBM" : 1017217572496, + "3P3fm1rtieWpttiQj1KjegMng4krYZjmoXW" : 103518154808, + "3PLfaeDByiMU5FQuvucjzAwJjWnF9MgsBHJ" : 17500000000, + "3P5rkwKRHuNgpnEV2j3x6ys4MgUoDf43FbX" : 59630967065, + "3PQPAeLTKb6tbxa8sVsLnUHVdNun3LWAGXF" : 1627675850069, + "3P4z8iWCt5Lq3yTgBTfVh9M23tgkppv3YEM" : 30000000000, + "3PJiBSdAM1vW2QY1pK51EX37f5ioPHdf1Pi" : 43644985014, + "3P7S437tCnJL4THtsts7ATgPcV4aChXN9AC" : 2500000000, + "3PNdATRRWJhuoz4n5iHexaXgEUuo1WKy5SE" : 1236904883528, + "3P5KidHA4tLPNqDfZe8VDsopLBhC7WBSTfE" : 2500000000, + "3P24M59gxxbHoHoYD9uWZrNNkmkmGh322U7" : 1276227410941, + "3PFdsoy9wNnsphp1Yw7Jc2sQKvK1Xeijycp" : 946990779056, + "3PCttGpptxjLBe1Dzb2L5fMfgsNgyAL91M3" : 764504416540, + "3P7XoXL3p6wnWYHs6WmxPvxB3nC5AthNKbZ" : 207704397420865, + "3PBRoEYDq25Y6i7dWK3McRm2xjW8Jpxm6Yx" : 7948587606, + "3PHmctbWLETLotJ5bPoYiUZDGYX37jx28XE" : 5210931754205, + "3PCcdouKJFydf4X4AoBNRkTStTaiKCymam7" : 706898335082, + "3PHc5dKSwCG5eEejcXDAZwK8hnsSp9mujx7" : 633796776413, + "3P2L1BYTiy2KbkYvHFTqSC5mC3ahpaxUopg" : 185200848028, + "3P6kxZAEfXfB2SyXs4GRcTQGXmET8HasT7b" : 9700000000, + "3PLXYwWpBZ3QF7hq5Bg2pXgD4GpDckfCFgy" : 70372240878, + "3PCBtaVtuNmz6Q3CVZLrRUMwn5ZEtiLXcYz" : 1397053309071, + "3P56xCWRjjCDcWPrummoJaF3vajLu7nGmWK" : 17500000000, + "3PR96ztnmXYyjjeHm7TUSxEDKH5yyh2WbR3" : 361576169123, + "3PM6ApH6m6SeWGYWQGghaXMbVohNE698uft" : 8038719789, + "3P4JqHzzKfB4vMwLEupkAhF2gH44dKQw3JM" : 69003787828, + "3PHXwtdaeassJ3ftix37Rye6YbAqGyVvQq4" : 840809074071, + "3PB88WqNK3b5wEiwt77WuuL1QGHC1gY9J27" : 5859458596232, + "3PCG1NYQa6F9mPKdPFCGfu1UdLqXEs6LPk5" : 42318508003, + "3PLALExvb5NihPez7Uaqxnr5F8XdZHBJ5Lo" : 328026984638, + "3PNUaXNaukMQUmCW6hjoe6A8riWmuGbenog" : 25963701601, + "3P9uDpPd2kyFBVec1xtKr79rn4St1qbx9T9" : 9631955285, + "3P7Y9Ncws2JWDSj6FhNotVkeohZ7AGM87kN" : 78815936620, + "3P8dLzHThddiocAkxacJZrpJV6C4KuaRTu5" : 258211205230, + "3PJM3Zej9e2bytdTUTr7Hf6MrrM5KhuveLY" : 18245999340, + "3P7ZJz1VNNj4YzBk7oDikZ7kgzJD8AGCyQp" : 45845050336, + "3PPibTSCK7Qrto7kqXtoMGKn9m3kcUeifow" : 27127248720, + "3P2ZwCcYgmQabr5kPsagGRj7MEB41dn5UmD" : 17500000000, + "3PG9Tk8QWHM2Zg6FhzaKSE4eRhFpptWBimE" : 100100000000, + "3PE11LYpfoib8gwhAJBPUwZ5gpiGSeQWKB9" : 542894753141, + "3PH3DCoEprEGQ6spmeAV9KvQ3GCkj9puZas" : 23444302905, + "3P3h6gXYuM2uHmF3YHLePoLgV8suQMEessq" : 17500000000, + "3PE865oVgHb4S2V23ksUK1EXRHEEwDxiXfi" : 1494982676949, + "3P79B8N63Xyo1UT8UEKdifvf5VFL2YvgyFt" : 227860534733, + "3P7yAjEG1jeW7X2bgg6DrWbwbkiTXuCJXmf" : 325526984638, + "3P5L5tPJ4NoL6oExTQesV1UGVnYz1ciLwPa" : 7800000000, + "3P9TbeDQnfuuQGzVsyW328aoQUse58neTFv" : 104239470435, + "3PJQsza8odTV5d8uL1DajmW3cdcMXTr93Cq" : 81381746159, + "3PM9ewVt5jF8RHU4TpqQdmnfnWEGgYPDKFk" : 1139270551607, + "3PNBm7LhDEd6hzu27X8NyYwNjwFsrmBXLsg" : 232967679674, + "3PQL81CriMZu5tXjdbS5HqBVnrVpy9eRzp2" : 115158095391, + "3PEAG1MyKC1DNYuupABwEkYmVoFX9ZqekmS" : 64221998073, + "3PHa2G3cR1XNZpvuC5knED8pgrsD259v9Ud" : 5398322495, + "3PHr3BcpCqtae33Y3BsShKYZ2V4FJocmwue" : 511694301910, + "3PFSzuh2ypL5r7WeQTPo73AJwBek9tES1C2" : 10639572795, + "3P994drEj7teQTpEjY5zL1zrDWXSWcUJHY7" : 260584351203, + "3PLDLAA1FJgfvZBYVK8R6kz5XBbFbWwE1eA" : 57588978933, + "3PAfoyPx53GECcFf5PN3j5MufbCDCcdEJC7" : 1249999999999, + "3PMnfjA8znbBwuwQz54tD854MTiBJrry87e" : 295088855212, + "3P5oSCRNCUWtHgu9DF92zxsY9st2tKKhNTX" : 605554087052, + "3PKgohEA33d4oJBt7BQzYWVfBdTWZn171L5" : 434035979517, + "3PGjKddL1oBZgzdyq8vhjviTttxmyKjiaQZ" : 7503362646472, + "3P3P7KFWmvys3qfjvEk4pPZFTmYgGYmbdVG" : 994136927481, + "3PLw3kT8UV1QhtnS9B1tLUXHJBErmpDiV5V" : 9036568506, + "3PEzaHyQFkbucG4vo7tby6PmKtAroo6FQB5" : 8395401469, + "3P3TTT85oDLzEYXq1EkHwDkyMtoHQyptQ5A" : 28485459594, + "3P8nUi8U1w8qP1k6TN2aF7VSZYq4ypQh7Jf" : 9999, + "3PPNys7V6fYaiwqCjfmHr74Yxt4pNoTDZCk" : 64700000000, + "3PBZ3pB3ga4XMokqpqf8PiXDXkeLMyZPA1s" : 270012210861, + "3P4RUeMUTniCTJ85G5SJtYFfwwfXSWPZjAY" : 17500000000, + "3P86vYLXZ4mVxTrouGdoEJCzYzWRtK2H8Dy" : 669287081286, + "3PGGUDbpx9xvqnmZ3xMViaVMRgEJhxEUSBD" : 70182946029050, + "3P2juQF3bvMHS1TCmq2TqqpMoYLEPrF3e2T" : 18584872931, + "3PK253csmxpCFiNQKXKSr2LSSdwg8JsoZXw" : 13374842940806, + "3PN9nc6edsSgdYhUJtUydnFgYU6i8yeAU7y" : 75590994551, + "3PEZkACJxVSHeWB7LXsCx6w7DfafDh2LWub" : 2715224871982, + "3P7ZieYFWQuYy6V744cn4pUQf3xjuiHkQa4" : 3372887519416, + "3PCNbNup1A8kVtrfGX3Admzexn1CYf7ag7k" : 10000099999999, + "3PK91yFJbB8kgSqcCD5fqoy1quRZYVn1GQu" : 2500000000, + "3PBUMRF3NxG6DumRVEbkjjzua1A1hDL8doT" : 17500000000, + "3P9fgkZX6iSmAbQ6yotmn9enNMNXZMD9Jys" : 989706403656, + "3P2b4VKUvjKaXSNBFi8oyDmBAcjiK8kEMBW" : 56967222312, + "3P6ZsmVyy6URJ2pa43D3Rj6jXq7Rw6SRUmF" : 16151992078, + "3PJstDPAUeC81yjowonmdxZQfHLuhtv7nS3" : 17848361116, + "3P7ueH1kqRP3QvRQgU1Sz67fTuRNqLjVfGA" : 230451296620, + "3P3eRpbqJTbZtDGaNagQqBZG4b7PfmcQEcK" : 10055815196, + "3P8bfi3UgBfnT8n8Y7HeCY37rMih7PaZ1ua" : 101954519068, + "3P2UhaneaC7vphs1niZtPTrnvLW5kBQLzoK" : 159499867959, + "3PFKmYRRxYASs5681sYLDdYvNUKktmfFtdF" : 24700000000, + "3P3J3wQbTkjKGyRaFVGNDBNSuX66q5q5irZ" : 9700000000, + "3P3xcyoJPVuBki5hFC1eKp2cNschSj9UJNq" : 9700000000, + "3PBE3BboUEMv1V3unRNiES83ELpJtPi3WuT" : 1679970914040, + "3PHt6Y1fP1WhDECNiawgd3qJSse6sHn1XeS" : 42852698464, + "3PCdv8AZZvkvNdCVguPJzdwXdJ7Uy2xTgpv" : 132196085535, + "3PDnWFrR1DqkvdB9mw5gXkLfPMZgfbk582K" : 550286374114, + "3PPgXDuopShFXvfEvjSCBw7gHHwsHiz34PR" : 327980434279, + "3PA3EDH9ej89Sdt8CQL8d3UGVuyD4L91HF1" : 1356362435991, + "3PLhviKkMWhuXAqxkCfffT8Uc4nGu62CG7q" : 69298118056, + "3PQPMcvPohSBGWwGH2ctCmkvb3YMeHthjCj" : 24043799789, + "3PNLEJFK27t39xaKr7s7nne8mga5rD9VQRV" : 44759960388, + "3PJejtPVypevy9zydNSJGxcRzWmram1Kzj7" : 1627734922188, + "3PChFu7DiRBA9BzFmJqRxY5PgpMH9MetBnA" : 100000000, + "3PArkCdcx6c3p8furA3GaYQsfRvnUWA8Mij" : 9700000000, + "3PKkw7vBRyD4cyKD3dLoWyCTtvDPWx6XtNM" : 67789427098, + "3PHphud7sDRp1pqEGNmGjE9zXzNYc954i6S" : 720938976093, + "3P4TXRsqDJm2ZGBD5mAZjePf5agmXMeuDb9" : 2774173249935, + "3PHA13rQzUFws8ZS4zfdwmTCafuoonGaKZz" : 1, + "3PBgQbMY8J9kefqbCbGHyQz2sksaYabbjvW" : 21875413368, + "3PAvLUBNRMR25sPMokyd7wzq2eQAaw6cUHT" : 414708730797, + "3PAsHu7Z7ggtAvEXB5CVtDFKDfWRfySrzBe" : 560044974396, + "3PDg92jTXDYNKkpHMKL89Vskde387KqbSVW" : 813817461595, + "3PEF9YHAcL2f7uAdJucvhwhTPqNi32DNW8M" : 2097615531762, + "3P5nSXogcNFcC5rzFJLFeb8cXrFw6wD44Wd" : 18230934765, + "3P65BFh7jwaFSFpYtTRZ312Rww8JXQ3FmFk" : 478159365553, + "3PNjgF9qqhd9VoYEZySd1vpZ6e7Uxyk6SJc" : 162763492319, + "3P4Ze9nk8TB2jdCr3vYs9DuwdxWfaRxoeLM" : 11502869450, + "3P9UVcLupEVmkpbjrJeSNSrf7SpPjnoM1vu" : 30000000000, + "3PFSQLZgTvvSeBQHufexF6RKnj5Eie1eDWQ" : 5544809638331, + "3PBfJQaRzd1AAhcSjmvK4MhHS6te3NCKuzh" : 15675279931, + "3PPSSpx6rYxYCTwjBRh6gNWbPQ5KtYXPRy9" : 61332876083, + "3PECBNVnxTgHbqpoh42HeofUWus3kfsGHwB" : 83433143065, + "3PErSYNpAbJbgxfNMX3Fb2Yj7Wkuiaxgqku" : 1535954727217, + "3PJB7ZFGa6Ei3NwwmSJqKS8YX6mgpcxQi3z" : 7421458056, + "3P3joD4n2j6eqmCwKQDyqYVdbF21puYBFds" : 18467540446, + "3PJ8aowRzJYoLb3JNdbdNAvVS9zuer7fsju" : 573353602618, + "3PQBBBVTcMGhCm2hRUyKyYDxoKZP7UARK31" : 44681503217, + "3PGSmAe7dec3XCyttZ29TBfYLXgR1j1S2E3" : 445091249363, + "3PEkCZ3rG3za3aVeQJXh1RnXXLbw6JurM8B" : 101834475770, + "3PEJ6WviUPySBJf1dvTRpPQPYs9T2ntwnE7" : 9485790319, + "3PPJYMNfrF3311wKGDH9D1yB5GvZCZ2KY51" : 7800000000, + "3P5E7fvqRn6HiYxWMgrdW2pN4aacYVaMRqB" : 1001731650283, + "3PQNAEtVAtJLY2JS7qujt3PmvQeAu2qp3pQ" : 7200000000, + "3PNqJ6aaGAL15fmPHhWvk3V6yqL6RpptMZp" : 2100000000, + "3PLx3aQS287RF8RbfFguXpEfkDvnWpHnneW" : 100402240630, + "3PCsJoTQdGy4oNxDx4CW8NefzarSnKTKcwg" : 2500000000, + "3P8oMzgxEbMfNzoLjS5a8paWU2MzSwmeB8w" : 256134113870, + "3P5fygw4ADtk5m2K5wPNsrAZaUNd3CKYfZx" : 10300000000, + "3PQ6MV5TLo66z6CVBQTDWBQJPZu98BNxe6W" : 1630134923189, + "3PAR6oa6xSFsZ6UH4Xx6FXq95GRS7FdjH1U" : 1420889806182, + "3PMRFfaGNcro3eg9MXHr3YjTvQ1jBvZyqBE" : 2863242367880, + "3P5awVyb1tw1xUcPVMri2PfcgDzTp8Gy29i" : 1452151842642, + "3PG3Jk3deqy2Gr5ijmWHmwv6SiSZJTztYXE" : 11679196567, + "3PCKFbWcYSfsVefUyfp8eRGb4ZJTzVssCxd" : 14184981222, + "3PFm5zqbXDVg9HBBrKciBpmcjnxvbpRek1m" : 9700000000, + "3PKaRy9x33kRAuGmBWPEN5WBUDzEQjiDJDr" : 1560927650045, + "3PJPFYiDmACqVVVWXiNNVmkpuxbWpwEoTTa" : 8994627880, + "3P7UWXwtZP6wfPYnwGVkcbbgk4ipGEE2eUZ" : 3222717148, + "3PGepJZaMSecjijTj9RqwoWWdnS1qFZK6PC" : 10300000000, + "3P5LQCeeoQLy3HwcCgBdBWdvAPppgwtvvPS" : 31634963837, + "3PJQxaQekz9WzxZioeYJLPh8eaZnXXjGeU6" : 136011161165, + "3PH3JkCXUpqFizNBZsmuPcDzfvaEZPQywGR" : 17500000000, + "3PBC9j4ocu1V2Z3YBmqXfuxD1uHAeDsPkb7" : 6510539692757, + "3P9t24tdq12MJTvKNZkr7e1jo99sWAMEAAq" : 70949541284, + "3PCrNBDGsU66aM8PhavDNTCwZqj8ZHK2b2J" : 322061467763, + "3PCrr2ogeMMGrMdQGb1efqnDajg6VLVmGny" : 515417725677, + "3PBoMGv5V2VoX5t62k19aAPqm8EBpaBDGxp" : 17500000000, + "3P79RUgoUpFHzw7wfBo61yrAKHmWcCCPH81" : 1045380953914, + "3PLW4FwuTYHPAiFTQ9vGzD2gPiM7XejpjeK" : 9999, + "3PHE2hXB3qj4awQQpfGrZ2WJXN1S4hbmKPb" : 498029159247, + "3PARCepeymChhDEC7HooioJmkqfqpwvNHKy" : 17500000000, + "3PJQ5r9aAXMPxgb6QTB5asXefeRHaVLkpUA" : 45331858196, + "3PMTc3jEQ2isKr2K7vzzGYdvrLbfjN9W7Jw" : 3800381270355, + "3P6abtVgBqNnAUXn7r7eeJ71zib7r7DHwTM" : 26340279545, + "3P8kci9RGcX1o8eLSEzfX8kdQ832eTMVvTj" : 160419909880, + "3PK5CwbKh4pRBGtBVVAEZmyM5vS16GbUXJg" : 100000000, + "3P7mAiCNPRvdmVFByzEmxRNeXBKjXDZaTX7" : 7800000000, + "3PFNaqDRY2bJbBDjiCJ8Ce4aiUtCAmvKdge" : 542490719899, + "3PGp4AmCw9YL35oaVFsr6cxrWpQLJutZD2k" : 18581808889439, + "3PKFaHtM2LGFcX3XTAsoP1UEHBzkBkY1icJ" : 17500000000, + "3PDBF1oQVbAxKiEWjmiz4vrBfh7V6K4B5Fd" : 143206030916, + "3PPxpEPwieajTBoSXoDtwMWwXfbmjp5VhFC" : 2346365198434, + "3PHmJNLs54A194MSxpRM4pqFLroDQv1ToQF" : 17500000000, + "3P6znfAnoNQ1j7DgLU61GQZQdMBdX2fToo8" : 1487211851656, + "3P239h9QG2by9X3vMpKV3uTyxyRgWPebiFF" : 2825671884752, + "3PJWqZCfPbLN7SEGnZxzC7qiUfeZNhbtv5w" : 17500000000, + "3PGyuecjvQEGFS8GyRQeAnd6eChvmvmCFH2" : 49400000000, + "3P3K5kG47eR92Hd8NMoaCcKFPg4ncVUyyM9" : 913820695458, + "3PBWXDFUc86N2EQxKJmW8eFco65xTyMZx6J" : 100000434, + "3PHHq2Z2jJoTpCEPxYXYLsaJqLrBftmBFq1" : 101400000000, + "3P6yRWRrPVg2Pe4tteNQPLXwrrisFT8Wq6p" : 4069087308, + "3PNFb3QGwnCR4ByPFjy6Q73rjBf6L8L7pc6" : 302336111558, + "3P59RUApvri6pS2LpCuem3ypsF8hGbTuhJW" : 542544974396, + "3P5Zg6RukWtGAuZj1pCxDts68iBCf2mCVgK" : 871650585685, + "3PK3XeaptnDrQxyW1pycdLwiXNNPnxkdfBj" : 651053969276, + "3PJwd2cjWF7sTeRDYUZwDJpnoD3XU483nFc" : 17500000000, + "3PAVZ52tvkkpT8GLEANzax3vjFGDbdNRrH8" : 275513565563, + "3P4FS8uLK9nGQJHcheUd1CN5XdujonUpo2B" : 458214496, + "3P5bimocrzjg6UKGQNmB8AuQQ2kX66UGp51" : 105458095391, + "3PEoLDc6A843m5fjirScfPWCdeWxyhTEzML" : 2712724871982, + "3PRGRkAx8F6jw2hNr3EPbPyxnbkg1c7jQYZ" : 18806071270, + "3P1wtFCbGoTEyzez39rcWGE4HYsTjJBDhv4" : 2500000000, + "3PQKMc3gGBkKZfaBeaZyAvLboxT2dfZwBxd" : 17500000000, + "3PN99hYJ8bR7iVXsJJCfop5fz4sbAXt9Ss9" : 259272487196, + "3PPtkgTMK8jiNHMWjc37NSqXv54qRvv9VkG" : 324741874818, + "3PDFQARgQY4q78MVhFD9swzT4QFrH7YPZs7" : 17500000000, + "3PGJkoUhcCa11aPv79hTdzxYjsEbgSVsUMG" : 3162836596034, + "3PMyh7vyxtdH98vsejUu4k4xtZsoEmBjBiv" : 114950822246, + "3PG873NwS6EA3WvXbn5eKTLjextLgk5dPX9" : 51329047696, + "3PK247pxk4TEeQBuQQcESnkjbJX8LoYFaqr" : 835269408449, + "3PLvFRjGrTaLB4RBosAPAwRqLQX7T8WAuqp" : 651510444089, + "3P6eYweJ2MvuVSJEPRdGn4rXva9K2AMniSh" : 999999, + "3PNeHFYA5PF6rgzvQDwHXhj1TH1jagVxGeh" : 86499075566, + "3PPWiLBWLcP3mYDGe9AScJBCu7DcUJzjwam" : 2500000000, + "3P5WAW8B6q7fH92g2ztCfWoM9Qro6aLp3Ye" : 2884105656763, + "3PLXcYTReXAZ5tHfYot2KK2Vw3t1cHuUsGr" : 1085089948793, + "3PHY5SUwWm3MsuuWooK8XNyA6ZhBqJGdMp5" : 9999, + "3PMt2VwyVbEjqGB2yM9TA4xq3tH5sGu5L1s" : 576116469762, + "3PQ1wfzpPsfHuHwxWWkxMwMxz8Xby6QVNTc" : 21617637528, + "3PFjVLfMrnFfPXpafZFRS8pY5YjboNsSBe8" : 284836111558, + "3PJf8rCigpCjjiqCaUfT8R32KFcPXScs5U1" : 16063860585, + "3PCW1xqHcXLb9irik43tDrYY2xuVGsdvfH3" : 550344974396, + "3P6Fn2DeEfNsLtSSnzFBoVAoxwcpARp7TJm" : 1678756904296, + "3P3sfQ6KuYsqt8gkPihT3RWkEmZxoB8xKDW" : 1000600081835, + "3PBis87xv7uJqRfwbCBTXUN1BB3yeHWPwBj" : 13909864804, + "3P42nxxAVGZ4sYR3hve99muvf7NzKmmGMPH" : 1133918996488, + "3PJmGBQmkV6XLzXhL9Wc1Pwccc65ntL4FQL" : 70784811595, + "3PBJZwk5xWjbPG1r9VZHRZgGNihdRkgzWSi" : 3257114499291, + "3PNNhm6e1t7uMHfATvb1Q16tj6YzUw23RrK" : 434035979517, + "3PJizwY74yDZnGVaHedcxhjgrdvrGJ6jqQH" : 271272487198, + "3PD7fhGbZow61Ak7PLSdrNDWry7gaSEGoDr" : 324733394515, + "3PB6KkBVYdqMW8aEao5Bkv5ivmD99XsYby4" : 2831295441796, + "3P9MbSa6tC8gnVo7SMB3BG8a7isGGqbSKw8" : 17500000000, + "3PRCeAfr4obMBmfxvVQdjbuiGQEKjv7d1Ce" : 38985577230190, + "3PDZ56ZpLWSSQrM1npFjcyXvRdhfGDcwtyF" : 254368468365, + "3PBFfW9NEvht6is81BoUuCx8UJg7VjCwhaT" : 11473560544223, + "3PQf3P5MdGwQDYByv6bThJcZCqjfmnUA9pS" : 2726101532889, + "3PA2H3ZC8HmLvEU4cNT57WJUY1VphPNasxE" : 117767792479, + "3PFsr44jTCWg1vhtGJwsjrvv1cCcg2B2Zno" : 162763492319, + "3PAk3tGY7gXC3TTaJ2WUMWrLY9Ud9awuxWy" : 1403586245522, + "3P4WsuAvNyQTRVcWzLiaAW7zSzazeeKt3wJ" : 83800000000, + "3P2NqG7vvf8XjjHk51eKAcVSS25r9fKaaaZ" : 227634816614, + "3PMyhXNux4HbFR7MYkvfMrQLYz5Suyor6ry" : 50000000000, + "3PESyRqYseiNymihU6PQErafFGyDEDUMVe1" : 793588061023, + "3PND9itiyHncvuXFsNbLQoF4i1DpNfv3Fnx" : 61289426288, + "3PJJUQx3PXJEd5x2arsrSXGeMehgRp8x49A" : 11230816919, + "3PPu2YhSuBCMNvbQEn1b6DicQ8iajvWcAHf" : 32090166693, + "3PF9zfeBf5FTEzJvgTsqKLP7THNtfkDBQa4" : 49564990178, + "3P4c1wgWBvLwy9Xhf3mg8o11UbGFzyhtjsc" : 28540753919, + "3PQm5Ch6gsYu4ka9U1P1aL1vQGSbi9z5F6E" : 145941277195, + "3PBb61JmEDbPPWnEtexyahFW8tVcKzy8Duv" : 17500000000, + "3PGqw2q2CnU1fK6xfTR8rW76CaEQoEQNCdF" : 10, + "3P7psAu4kMs74NCiXHnwWJRVQmZvkCQnZuN" : 17500000000, + "3PM8dohXg9XsVNicNaGJXXcpgP1knw9uNDn" : 10238513614971, + "3PPZxNrLvN4RWVMnQS5zSCHRNZHjcAXbFZB" : 60729555370, + "3P4H5V2qbBFQ3WGZJR4CcLtBqNLiH8aeijf" : 135636243599, + "3PAJEP3vJmfadg55r17SGhr1R1HQikzPkvr" : 1645134923189, + "3P4MQWrVRTapqbzAbiGDRNkSCzxFQ8Q5T4K" : 827381085955, + "3PFZPStCZvsjjGTKCPFRLBmxmtK6J7vWXsM" : 100000000, + "3PAFYk89L1DLhyTzV8n4pa3Tu3Ag6qJAJof" : 2720547108323, + "3PEJ31emPsYDApNbHEBATXKyWGMrQ6AjhAs" : 140945962167, + "3PQSJcitfqgDUwxG5GYY8MmAEoCBfPzkjsh" : 21140718289466, + "3PNmQBsZkHPvErJZt5Jwv3FnNJkACBPFtDt" : 14636066677, + "3PBxajWvSRayJ32NagzngQK1cqNmC9iJ83L" : 9876201165, + "3P1y6WPuhP69FLPd4yjRhjDEaBukyJdHq2y" : 204430946353, + "3PJb7NT1cDhM3oznoiRqLpemYmJ575rxYyg" : 16570595805901, + "3PNwJNLye8yMo8Hz7ZV5A8JvbzwsgFyo8KX" : 43331584778, + "3PGtKuJgPXntJ6gHRZirjjSwLDBdHqxJxgL" : 15542520574, + "3P37SxPgSPpbeD26v3F6coQao74n7oH2XW8" : 847568055375, + "3PJqKy4bHhprPdNmYnQaVJUjuoDwyxKimCf" : 130900254162, + "3PKyXZhE5dhpMyYLbTmLGSqmGWQY2NxCJyn" : 1736255351639, + "3PMEiWrZfFMpy1cnu6KabcsUn6MUJjbCbN1" : 7800000000, + "3PExCrMwdm9F7Cd2MW7vLAp2RQSYFSFqiUU" : 1137692784963, + "3PN3LaExY8AoMCJ1y4iB83V6RhWbdM4GZyF" : 37217464373, + "3PMsSfSwQ2P7tHcXZw1MVmGzadVjEeyTe4x" : 508374516712, + "3PB7KZbjXdcRQmqYVMqmy7TZGeP2fkZMrSG" : 2570550810, + "3PLhR6v43n3pCJZww3S9df7ridpy26mjmVf" : 337786219237, + "3PD1QMEou6UCPk4KxhhTtxio5R2mDcXDrfV" : 1424713335479, + "3P9vRpvP1C5EBQ4d8fp5QWY9TcmSVQ8p2td" : 1077259848169, + "3P4MBAnuQhcqgAM3WKGSQnCntBm91RnQ5x3" : 10512724872, + "3PDUc6dEbTPYqM5e84fG2esSqjJ5FhQKcJ5" : 1549097083622, + "3P7KPRUkwhdjYMjfJzkVnqFJEU3yUHcE2LJ" : 174311636970, + "3P9wmLcesQ9Rptmv5P811gDKVPzJ4z2Fc6S" : 27324642858, + "3PDf3RT3Y9trvVyxWEVn5Yv5T5DRFebi29B" : 12196475764, + "3PAEXyjQ5kcqYoSSZtK2wRMuuCpEbKPyLB4" : 277729389566, + "3P598bHDEyFVbo6zJQ38N65VvQtPc6rzZUc" : 76643800320, + "3P1wRqwnK1obLMwvovLwNb9oGEMpKT92xnT" : 164258873061, + "3PCdSAmyk9v17a3dUTBzWP56snfnqP3pXrW" : 7800000000, + "3PDo11Cw38pXptJYUxpCwaVaLdhJHuQ32Xa" : 205243296824, + "3PK3SrneQR5qUx9PFPDG97pCW7KR62EFKGt" : 712090278895, + "3P4RastFjqhtQFHP2qVKCfXWMK5apRaCa4g" : 1041880953914, + "3PP3EMFU4xA2dsgE7rLaSmDqhhBcYg5SDYZ" : 12511241590, + "3PQkfvX8GaAqwdtwtP2vWq5MrGMbX63rVCc" : 288765678259, + "3PEUno9EppmVXPQzgjCV6i5hNCZQrzJnGU7" : 1385989684711, + "3P6zqr3e5vEpuzZvWNPam2cLXvup3rxBz7j" : 720735623428, + "3PEFWRE9ay9hwSauUH8rn8mytQay9ccK7CS" : 57029717159, + "3PMd182WLwCyFa3zpE18qrZKMfhSH7r2BJd" : 7462882450, + "3PG2fJBbDLWK4kusrrHNutfhjfNRanmwKYC" : 6434043775943, + "3PAiXBgbDVjzeVcT5DY4gNKdPBGvAyM8q3D" : 979048401215, + "3P72P3iGB9RwJjtLP9esEEsX5QznKXg8nH7" : 104519920775, + "3P2s9xw2iME56NVKcpaxZHtqoERD8vUP8NY" : 71600000000, + "3PB8zT8HnAjo5UDrQe4Z5Mw2FrbyYeBCkgZ" : 4773528237043, + "3P7wBJ4mvszYYtynKtFseQk1LcWWrkogRer" : 361256283927, + "3PJZX5xv6t515zpgZYFvF41QVT6Ex3ugua8" : 52986075563, + "3PKuiqtKDx2b1nJyzVrPyioArv2g99tUgM3" : 457152688544, + "3P97UxYXE4GHzKF3p1rJqP9Zno74gbqWhXE" : 80638174616, + "3PDqpbMo8jBonCqLqrKavQWrDyUBLzS7DxR" : 1383031446058, + "3PM32h2dnRNayT61ABx7VrGhrVp345vymza" : 678045581752, + "3PErRhVVUcdQ2BQD8QVN9wNJGLnLMSLicK2" : 1684389420629, + "3PELgNge8tKBheZyirVtsnczHF7n3dWeEcQ" : 10300000000, + "3P2CenECd8oRHCfk8UN5ukJpoF9GDW4UB5b" : 273171394609, + "3PBQ5aouPAdn4d3og9Lw9bf5coMuWTtqdaz" : 115180101259, + "3PLHfQgnRvLKgxv2bQ2DV1kQ1n9tGDv2aHW" : 33435250040, + "3PJU21hfBhPRm2bcJeLjHhNPVTeKE7vpRoE" : 54254497440, + "3PPhQezXGvE9NwMb5a4hRXtzgnjCv5Y21RS" : 3575231073975, + "3PKf2Dnr6rda3QqdTsJacE5tAwCwEULiYDz" : 173818762165, + "3PR86NSwpqZtUyeiyQvVg3h5EcpugMcxUkn" : 278692705716, + "3P9F5u6GQ2YvZXhb5Fak3txtc1xBBRCKCKm" : 327994431939, + "3PA68zR4cH1A4Gf7u7WRVbVg9SZ41wAM3kg" : 1509173152605, + "3PJs2maNm64AkgbQJ9JMughsW257BG7ogsQ" : 89519920775, + "3PGvXKYoQdeNExiYs9mX6JbXbH4HSbdVDMd" : 604056926862, + "3PEdHCSqxJfcM4pE54aagaKJncWkhLAcySc" : 17500000000, + "3P9CffgKmZhkZJj27JR8Y6Bt24cR7AdzL1K" : 135636243599, + "3PES5tfxkyvVjc231ZHJ1Hk7FsGQnMBWQNu" : 1048391493606, + "3PJWfsY2hSZ3swqWV2n7ATTHSBahjQUztTB" : 1681633822808, + "3PNiCaTvJKa4WAd1DQuGNRX6QKod7A3bDR7" : 163006730152, + "3PHspXiciLqKNTGj6u6fa9DmG3HzP6szVKM" : 446332554477, + "3PCSgwomiER7JZ3LZfGfi3tGp7rnLhTJ6aB" : 276353874315, + "3P7TVD83E4tNiEGarRXjDYYmvpvw47JtC5U" : 154947938953, + "3PPykXoFjWUUtL4QufB5R44Z37EgArWJT7P" : 6917448423554, + "3PNaDkgah7rAx1bgSR2C93GLLUNBZMPYbaa" : 14338759531, + "3PFsWXPA5M1aeSyr5ri4C6asHD8F425C3TD" : 107990281872, + "3PE49HezWTc6Ayx6mnjNdVbniJgRJarty3M" : 10713793219, + "3PP3QoNCEHUdypRf12D1aq5jhjgGTJvnLKM" : 3257769846378, + "3PM4U6sPSSMwvLjyc3jWpTxoa5xKG39VLbj" : 1021714820021, + "3P7qtGBEpqKndHKxNvvou3Y1SiiFuBxpyQa" : 413678362328, + "3PGsYfHDemMjL9HWfKyRQ7GcZuw5mayfrsv" : 3324082724532, + "3PNeX5JHDjbfV6Tz1aTB998SGoKZQzo2hi6" : 37946568470, + "3PPjwJvKCNurzv9YwEs5cEg9x8masSmeNjd" : 818262802514, + "3PKLZDfwVy85iKaDD3QjV8iRFsvsdWkfhDh" : 158111381014, + "3PM2WACp1N6qVNTmmFDeJZ2xtDsfMxcvwQR" : 416608730797, + "3P9BRX4WCsiyEWFAzPDacFqXQbXLvgRedPv" : 62092455594, + "3P3k24Uj4Q1T4Uyd87kJWRkc4vkjEK24Uus" : 500000, + "3PBcD4jUp1eCCq6W4h9FQvJsvYkATDDmNFW" : 248081614118, + "3PAC11MTUWYGfPsbfYXjVwxveRwaSgX8GSR" : 92592980, + "3P5P8W1pspSdByojcRGLdAmSmhnHWCKP13F" : 36301694180, + "3PMEYWca4bY3QavHV2EhprMuJbzA3kpL5Q6" : 3201680698968, + "3P6sDrRp93sVkKXZ1WhGKwWuYWFbi7gbPp5" : 78815936620, + "3P8ymsuDuAdJEEXGxihjXxs1uEwBmjMEUx6" : 68800000000, + "3PDArvr8jdzQz8o8v1fLaWKCkyWHWWB6Xgr" : 127818683182, + "3P3uvyPu6voZxNNyCsmKfZMXcP4oT6tEkgB" : 27112345009, + "3PBthbtUkEq3EK5cQbXS8VZYML2VzfhaSn9" : 98849193461, + "3PFnbq8kQjYyPwHMaSnbyQ78t15uU6nbkqi" : 560100000000, + "3P7T9DCZ7gzoHLKu61FUedBZYPRvxxAfEks" : 27162318583, + "3PKDheiaUk7gCh9yA26NRqBDKZaTvyPaGYb" : 271272487198, + "3PC1yFGH5bLxxmHH8PTrMpY4m8kHw1h6TCe" : 11412778689977, + "3P6AdihTY5CHpJwqpsqEWB7rojRT6yqHFjH" : 10300000000, + "3PF5jGUDGz6SZpPaRTmKtzQJznmPHhxZV3a" : 298399735918, + "3P6YMCtEzUZGEAKTkvStLYmpYYS72Hy624a" : 542544974396, + "3PQ9ms7SzhxfyzmUrAYxPPxd3Z64NVwcWLQ" : 798764763131, + "3PA6eu58aoP74SoxYVmUW4F7a7BdJQatkL5" : 9291998680, + "3PMFeG5fjY6czocq7cztxDXD5uA3dpJujph" : 4069087307973, + "3PHXFG5Gb4WjFiTzjn1X8xuNjwp6D96pa14" : 63041297865, + "3PA5s4QB5qBcQewGAWYwjRCbghu7PuEuusk" : 51538036020, + "3PFU8z32HNn5BNtBGRf94VEtAgpUDq71bCF" : 104738307307, + "3P2kQdkjC5mftTi6VfMHxbiZsu84TSkkYdv" : 232531351660, + "3P5n4GC9Mnbsg5v2EpNyuLfTqC4XGDrubW4" : 116308994879, + "3PBgKrABJgfwxwNHVbD9SV3EXLQ429CHPDm" : 5722717148, + "3PMFqp9N4cjihe3bAJuD4Di52E9KazYw6eZ" : 21600000000, + "3PENiMzASJRBqVxjDg4rRmp9C6QTEdZc1KN" : 6300527546, + "3PLwSGwBrVgGBehMZec5gcn25HNXx51cxRs" : 1020841527872, + "3PEwLS2YHUebA6h9QquTk6545GkGfL9g4WA" : 9700000000, + "3PK5JTJmqta2yvSDN58Xxrms2h9jpXWssyR" : 17500000000, + "3PQoni8TSUvyr1Q6ee33WPC1Nt5NJwXkyu2" : 299647616486, + "3P9AYHgVPrXvxxThfwSLfjUujZfhQj8S5fY" : 2480585510316, + "3PCqZsP3sPMj3cWuYuTvhBbsUBq6kSeHCiL" : 235641761998, + "3P99q7huo3oPHxneD1wFxz2TkhQt4GaYFoS" : 42072994222, + "3PKRe3xi8B9grgbvTLt3NtQfVMPAAGUQecQ" : 29505463515501, + "3P9sMFTap3FQVP6AyWe5VHi7N1YtNbh7fPE" : 10300000000, + "3PGBDioYWFZXyfMvEwwrwKMBzNLxVZ3ax7G" : 2415240919428, + "3PFFtMEn8gdCMRz4XGBVprPx7RQJB8NgimJ" : 45724414092896, + "3PJryBe62deHuiiJ2Vf4nV9fJrqMHG4hd1Q" : 39752698464, + "3PL2bB1zA6eYkSL5U3KNz8R6shCnySLEEoE" : 110354497440, + "3PGPJSQSPKKJGh9DbCtJbjwztg81bqbsg8U" : 136810613298, + "3P6MQQBmAKndatCKQ5dE3iLPF2YTVzdPEUo" : 5443342877, + "3P9sruo3qcog9EcGHQhvipXvEDgNDa2RCzK" : 271272487198, + "3PAGPDPqnGkyhcihyjMHe9v36Y4hkAh9yDy" : 100000546, + "3PQTBbdymWHUScJNZDbDYvsZKUQQUGtwZ3v" : 41914523848, + "3P7S6Vrkeq7xNfxpENA3m9bee9e7aBTA9Xc" : 545176317522, + "3P6V2UirKDLufC5s26u5uDwpE967XHRzHd4" : 26213448358, + "3P4NgXVNmfPqKKxhVMm6xQmwvsFwMVfMHpD" : 39581580458, + "3PLjDng2bjaVhgFtNB7yunqQgsiGSBFRuTZ" : 17500000000, + "3PF8WKPvhC83VYD6oytS4Z72iU28F7K9kos" : 27706411439, + "3PBAHyZscKagpkAqAzTxGRyA8PjbWwuaKPc" : 17500000000, + "3PF7wyopLfuLk5MhEyQJtJsKy6Dg54iUhPN" : 117554497440, + "3PMWrUypuJpLhktfUVRZMbc9D9bWMh7DAEd" : 43582825514, + "3PBMQpMKhTJVyatmb5jty4m8yfxTXgAuWPA" : 1314265714948, + "3PNaPGR16WCT9NmC1wP3iTFPSYJZeX8D7Ns" : 1166988748726, + "3PNrw3oemNLPQ1fuA2BVdzdVfxZsRJGupRi" : 17500000000, + "3PBtrkqcTzUeuhyhtp8PfTRnexGhX7f95EW" : 14600325442, + "3PMCYDsnZkV5qiaUeeK8oRwnxJyawevXZoR" : 17500000000, + "3P27ZVsTexdWMPxS5UzwuDEKKCjzS6Av39j" : 4749768525968, + "3PFTeWz9b9LSaVEGrXWY6sRJ8H6GcURhS2f" : 57500000000, + "3PNunTNubR7Sj9LEtizWkDi7qWBvGxo33ii" : 3282397095098, + "3PJrUe4SLWSEaX4dYtHeHSsnm11YarT9EeF" : 202189611045, + "3PCDMUisDe9hnV546NpyRwAYZmcwFpZ9mSk" : 925391835579, + "3P2ERQFFg6tJyrrU8gE4aPRWchsVqTBG7Sv" : 678181217995, + "3PBr1xwC5fYAmgwKw9PsDcCLUHb1yuFaApM" : 2730197744730, + "3PEn7rvP8qW7q8y4mw3zFtqgZfJjTMmgjuU" : 13012724872, + "3PNoF6qUPHEoAtfowaZg5bNMKfoKgGpyVqQ" : 17500000000, + "3P9y5hn6KPVcooPPhVNZEuNyM3JGLNUiSwZ" : 501114215374, + "3PJvzcC4r6dsEtmzf24i9P75D3TBjseri5U" : 550344974396, + "3PQE9AeTsLo3uKz7dAHujNP5u3mQtoxXVNh" : 2220727578274, + "3P49NsXTfGMnGmMgJaVEPnPKwSYTj2pDyti" : 10512724872, + "3PJuCXRUPnDxRMTgqTmc8bcsgMsT4tgQPn1" : 868071959034, + "3P8ZNXKNd2D7uf4Rd92gLhynovxZNSCo7De" : 89438539029, + "3P6UDk1fGg5nikUiGbcKThYpDzshZe1Uhqc" : 271272487198, + "3PPyhk2TLoRvEjb7FSYQUw3H82EaA58Ww9a" : 1111704478948, + "3PKy3MvzpTQhtyYxADpqxnDdB1ZjdG6A3hw" : 2500000000, + "3P6QJdqUXdZn5a8iGcmCozezQhUmU8TX3iE" : 134306105074, + "3PKH4XVC66EpoHj8EUV3TxgjTo5v28dN9rw" : 153136243599, + "3PDhTqtF7CY5FRjpGPv3CJnefGk25vjGk4W" : 17500000000, + "3P3pReCmGk9T4tbgNBEeC1haYSQGWXdFB1w" : 284836111558, + "3PEbW2MKF2Dt9ntCPRW126d9BjLxbaHYpY6" : 20763624360, + "3P9Y6Kyo36zUm2EQgfFBBEJ7c78Vtqf1Hgj" : 952836933364, + "3PHouWynbsoeaymoKMLVwRkTR7X9yBQdi2J" : 468040406532, + "3PDx9ASnH9wxGGyEVNDwSDwSxzUNBJ4KQK3" : 17500000000, + "3PNrgDnGekSbds9uvtiKCmRNevc1vnx1HvL" : 30939924106, + "3P4EYn8EupBtbxtsgUSc2utiUdyryQGiT2T" : 869475016947, + "3PBUtmrj7aE4eCqLKj7LFwngmWavWY8CfDR" : 17500000000, + "3PH4ApntLrcSV7F9PAxxk5KUq2zYTTm82sT" : 14012228167062, + "3PMkhQia57r6Cud4CxbDpyLbdtgfbaP2oSk" : 2500000000 +} \ No newline at end of file diff --git a/pkg/storage/accountsstorage.go b/pkg/storage/accountsstorage.go new file mode 100644 index 000000000..947b91c80 --- /dev/null +++ b/pkg/storage/accountsstorage.go @@ -0,0 +1,318 @@ +package storage + +import ( + "bufio" + "encoding/binary" + "io" + "os" + + "github.com/pkg/errors" + "github.com/wavesplatform/gowaves/pkg/crypto" + "github.com/wavesplatform/gowaves/pkg/keyvalue" + "github.com/wavesplatform/gowaves/pkg/proto" +) + +const ( + ROLLBACK_MAX_BLOCKS = 2000 + RECORD_SIZE = crypto.SignatureSize + 8 +) + +var ( + lastKey = []byte("last") // For addr2Index, asset2Index. +) + +type AccountsStorage struct { + globalStor keyvalue.IterableKeyVal // AddrIndex+AssetIndex -> [(blockID, balance), (blockID, balance), ...] + addr2Index keyvalue.IterableKeyVal + asset2Index keyvalue.IterableKeyVal + validIDs map[crypto.Signature]struct{} +} + +var Empty struct{} + +func toBlockID(bytes []byte) (crypto.Signature, error) { + var res crypto.Signature + if len(bytes) != crypto.SignatureSize { + return res, errors.New("failed to convert bytes to block ID: invalid length of bytes") + } + copy(res[:], bytes) + return res, nil +} + +func initIndexStores(addr2Index, asset2Index keyvalue.KeyValue) error { + has, err := addr2Index.Has(lastKey) + if err != nil { + return err + } + if !has { + lastBuf := make([]byte, 8) + binary.LittleEndian.PutUint64(lastBuf, 0) + if err := addr2Index.Put(lastKey, lastBuf); err != nil { + return err + } + } + has, err = asset2Index.Has(lastKey) + if err != nil { + return err + } + if !has { + lastBuf := make([]byte, 4) + binary.LittleEndian.PutUint32(lastBuf, 0) + if err := asset2Index.Put(lastKey, lastBuf); err != nil { + return err + } + } + return nil +} + +func NewAccountsStorage(globalStor, addr2Index, asset2Index keyvalue.IterableKeyVal, blockIdsFile string) (*AccountsStorage, error) { + validIDs := make(map[crypto.Signature]struct{}) + if blockIdsFile != "" { + blockIDs, err := os.Open(blockIdsFile) + if err != nil { + return nil, errors.Errorf("failed to open block IDs file: %v\n", err) + } + idBuf := make([]byte, crypto.SignatureSize) + r := bufio.NewReader(blockIDs) + // Copy block IDs to in-memory map. + for { + if n, err := io.ReadFull(r, idBuf); err != nil { + if err != io.EOF { + return nil, errors.Errorf("can not read block IDs from file: %v\n", err) + } + break + } else if n != crypto.SignatureSize { + return nil, errors.New("can not read ID of proper size from file") + } + blockID, err := toBlockID(idBuf) + if err != nil { + return nil, err + } + validIDs[blockID] = Empty + } + if err := blockIDs.Close(); err != nil { + return nil, errors.Errorf("failed to close block IDs file: %v\n", err) + } + } + if err := initIndexStores(addr2Index, asset2Index); err != nil { + return nil, errors.Errorf("failed to initialise index store: %v\n", err) + } + return &AccountsStorage{ + globalStor: globalStor, + addr2Index: addr2Index, + asset2Index: asset2Index, + validIDs: validIDs, + }, nil +} + +func (s *AccountsStorage) getKey(addr proto.Address, asset []byte) ([]byte, error) { + has, err := s.addr2Index.Has(addr[:]) + if err != nil { + return nil, err + } + addrIndex := make([]byte, 8) + if has { + addrIndex, err = s.addr2Index.Get(addr[:]) + if err != nil { + return nil, err + } + } else { + last, err := s.addr2Index.Get(lastKey) + if err != nil { + return nil, err + } + lastVal := binary.LittleEndian.Uint64(last) + binary.LittleEndian.PutUint64(addrIndex, lastVal+1) + if err := s.addr2Index.Put(lastKey, addrIndex); err != nil { + return nil, err + } + if err := s.addr2Index.Put(addr[:], addrIndex); err != nil { + return nil, err + } + } + if asset == nil { + // Waves. + return addrIndex, nil + } + has, err = s.asset2Index.Has(asset) + if err != nil { + return nil, err + } + assetIndex := make([]byte, 4) + if has { + assetIndex, err = s.asset2Index.Get(asset) + if err != nil { + return nil, err + } + } else { + last, err := s.asset2Index.Get(lastKey) + if err != nil { + return nil, err + } + lastVal := binary.LittleEndian.Uint32(last) + binary.LittleEndian.PutUint32(assetIndex, lastVal+1) + if err := s.asset2Index.Put(lastKey, assetIndex); err != nil { + return nil, err + } + if err := s.asset2Index.Put(asset, assetIndex); err != nil { + return nil, err + } + } + return append(addrIndex, assetIndex...), nil +} + +func (s *AccountsStorage) filterState(stateKey []byte, state []byte) ([]byte, error) { + for i := len(state); i >= RECORD_SIZE; i -= RECORD_SIZE { + record := state[i-RECORD_SIZE : i] + idBytes := record[len(record)-crypto.SignatureSize:] + blockID, err := toBlockID(idBytes) + if err != nil { + return nil, err + } + if _, ok := s.validIDs[blockID]; ok { + return state, nil + } else { + // Erase invalid (outdated due to rollbacks) record. + state = state[:i-RECORD_SIZE] + if err := s.globalStor.Put(stateKey, state); err != nil { + return nil, err + } + } + } + return state, nil +} + +func (s *AccountsStorage) WavesAddressesNumber() (uint64, error) { + iter, err := s.addr2Index.NewKeyIterator(nil) + if err != nil { + return 0, err + } + addressesNumber := uint64(0) + for iter.Next() { + if string(iter.Key()) != string(lastKey) { + addr, err := proto.NewAddressFromBytes(iter.Key()) + if err != nil { + return 0, err + } + balance, err := s.AccountBalance(addr, nil) + if err != nil { + return 0, err + } + if balance > 0 { + addressesNumber++ + } + } + } + iter.Release() + if err := iter.Error(); err != nil { + return 0, err + } + return addressesNumber, nil +} + +func (s *AccountsStorage) AccountBalance(addr proto.Address, asset []byte) (uint64, error) { + has, err := s.addr2Index.Has(addr[:]) + if err != nil { + return 0, errors.Errorf("failed to check if address exists: %v\n", err) + } + if !has { + // TODO: think about this scenario. + return 0, nil + } + if asset != nil { + has, err = s.asset2Index.Has(asset) + if err != nil { + return 0, errors.Errorf("failed to check if asset exists: %v\n", err) + } + if !has { + // TODO: think about this scenario. + return 0, nil + } + } + key, err := s.getKey(addr, asset) + if err != nil { + return 0, errors.Errorf("failed to get key from address and asset: %v\n", err) + } + state, err := s.globalStor.Get(key) + if err != nil { + return 0, errors.Errorf("failed to get state for given key: %v\n", err) + } + // Delete invalid records. + state, err = s.filterState(key, state) + if err != nil { + return 0, errors.Errorf("failed to filter state: %v\n", err) + } + if len(state) == 0 { + // There were no valid records, so the state is empty after filtering. + return 0, nil + } + balanceEnd := len(state) - crypto.SignatureSize + balance := binary.LittleEndian.Uint64(state[balanceEnd-8 : balanceEnd]) + return balance, nil +} + +func (s *AccountsStorage) newState(newRecord []byte, key []byte, blockID crypto.Signature) ([]byte, error) { + has, err := s.globalStor.Has(key) + if err != nil { + return nil, err + } + if !has { + // New state. + return newRecord, nil + } + // Get current state. + state, err := s.globalStor.Get(key) + if err != nil { + return nil, err + } + // Delete invalid records. + state, err = s.filterState(key, state) + if err != nil { + return nil, err + } + if len(state) < RECORD_SIZE { + // State is empty after filtering, new record is the first one. + return newRecord, nil + } + lastRecord := state[len(state)-RECORD_SIZE:] + idBytes := lastRecord[len(lastRecord)-crypto.SignatureSize:] + lastBlockID, err := toBlockID(idBytes) + if err != nil { + return nil, err + } + if lastBlockID == blockID { + // If the last record is the same block, rewrite it. + copy(state[len(state)-RECORD_SIZE:], newRecord) + } else { + // Append new record to the end. + state = append(state, newRecord...) + } + return state, nil +} + +func (s *AccountsStorage) SetAccountBalance(addr proto.Address, asset []byte, balance uint64, blockID crypto.Signature) error { + key, err := s.getKey(addr, asset) + if err != nil { + return errors.Errorf("failed to get key from address and asset: %v", err) + } + if _, ok := s.validIDs[blockID]; !ok { + s.validIDs[blockID] = Empty + } + // Prepare new record. + balanceBuf := make([]byte, 8) + binary.LittleEndian.PutUint64(balanceBuf, balance) + newRecord := append(balanceBuf, blockID[:]...) + state, err := s.newState(newRecord, key, blockID) + if err != nil { + return err + } + if err := s.globalStor.Put(key, state); err != nil { + return err + } + return nil +} + +func (s *AccountsStorage) RollbackBlock(blockID crypto.Signature) error { + delete(s.validIDs, blockID) + return nil +} diff --git a/pkg/storage/accountsstorage_test.go b/pkg/storage/accountsstorage_test.go new file mode 100644 index 000000000..709eb1d6e --- /dev/null +++ b/pkg/storage/accountsstorage_test.go @@ -0,0 +1,185 @@ +package storage + +import ( + "io/ioutil" + "os" + "testing" + + "github.com/wavesplatform/gowaves/pkg/crypto" + "github.com/wavesplatform/gowaves/pkg/keyvalue" + "github.com/wavesplatform/gowaves/pkg/proto" + "github.com/wavesplatform/gowaves/pkg/util" +) + +const ( + TOTAL_BLOCKS_NUMBER = 200 +) + +func createAccountsStorage(blockIdsFile string) (*AccountsStorage, []string, error) { + res := make([]string, 3) + dbDir0, err := ioutil.TempDir(os.TempDir(), "dbDir0") + if err != nil { + return nil, res, err + } + globalStor, err := keyvalue.NewKeyVal(dbDir0, false) + if err != nil { + return nil, res, err + } + dbDir1, err := ioutil.TempDir(os.TempDir(), "dbDir1") + if err != nil { + return nil, res, err + } + addr2Index, err := keyvalue.NewKeyVal(dbDir1, false) + if err != nil { + return nil, res, err + } + dbDir2, err := ioutil.TempDir(os.TempDir(), "dbDir2") + if err != nil { + return nil, res, err + } + asset2Index, err := keyvalue.NewKeyVal(dbDir2, false) + if err != nil { + return nil, res, err + } + stor, err := NewAccountsStorage(globalStor, addr2Index, asset2Index, blockIdsFile) + if err != nil { + return nil, res, err + } + res = []string{dbDir0, dbDir1, dbDir2} + return stor, res, nil +} + +func genAsset(fillWith byte) []byte { + asset := make([]byte, crypto.DigestSize, crypto.DigestSize) + for i := 0; i < crypto.DigestSize; i++ { + asset[i] = fillWith + } + return asset +} + +func genAddr(fillWith byte) proto.Address { + var addr proto.Address + for i := 0; i < proto.AddressSize; i++ { + addr[i] = fillWith + } + return addr +} + +func genBlockID(fillWith byte) crypto.Signature { + var blockID crypto.Signature + for i := 0; i < crypto.SignatureSize; i++ { + blockID[i] = fillWith + } + return blockID +} + +func TestBalances(t *testing.T) { + stor, path, err := createAccountsStorage("") + if err != nil { + t.Fatalf("Can not create AccountsStorage: %v\n", err) + } + + defer func() { + if err := util.CleanTemporaryDirs(path); err != nil { + t.Fatalf("Failed to clean test data dirs: %v", err) + } + }() + + // Set first balance. + balance := uint64(100) + blockID := genBlockID(0) + addr := genAddr(1) + if err := stor.SetAccountBalance(addr, nil, balance, blockID); err != nil { + t.Fatalf("Faied to set account balance:%v\n", err) + } + newBalance, err := stor.AccountBalance(addr, nil) + if err != nil { + t.Fatalf("Failed to retrieve account balance: %v\n", err) + } + if newBalance != balance { + t.Errorf("Balances are not equal: %d and %d\n", balance, newBalance) + } + // Set balance in same block. + balance = 2500 + if err := stor.SetAccountBalance(addr, nil, balance, blockID); err != nil { + t.Fatalf("Faied to set account balance:%v\n", err) + } + newBalance, err = stor.AccountBalance(addr, nil) + if err != nil { + t.Fatalf("Failed to retrieve account balance: %v\n", err) + } + if newBalance != balance { + t.Errorf("Balances are not equal: %d and %d\n", balance, newBalance) + } + // Set balance in new block. + balance = 10 + blockID = genBlockID(1) + if err := stor.SetAccountBalance(addr, nil, balance, blockID); err != nil { + t.Fatalf("Faied to set account balance:%v\n", err) + } + newBalance, err = stor.AccountBalance(addr, nil) + if err != nil { + t.Fatalf("Failed to retrieve account balance: %v\n", err) + } + if newBalance != balance { + t.Errorf("Balances are not equal: %d and %d\n", balance, newBalance) + } +} + +func TestRollbackBlock(t *testing.T) { + stor, path, err := createAccountsStorage("") + if err != nil { + t.Fatalf("Can not create AccountsStorage: %v\n", err) + } + + defer func() { + if err := util.CleanTemporaryDirs(path); err != nil { + t.Fatalf("Failed to clean test data dirs: %v", err) + } + }() + + addr0 := genAddr(0) + addr1 := genAddr(1) + asset1 := genAsset(1) + for i := 0; i < TOTAL_BLOCKS_NUMBER; i++ { + blockID := genBlockID(byte(i)) + if err := stor.SetAccountBalance(addr0, nil, uint64(i), blockID); err != nil { + t.Fatalf("Faied to set account balance: %v\n", err) + } + if err := stor.SetAccountBalance(addr1, nil, uint64(i/2), blockID); err != nil { + t.Fatalf("Faied to set account balance: %v\n", err) + } + if err := stor.SetAccountBalance(addr1, asset1, uint64(i/3), blockID); err != nil { + t.Fatalf("Faied to set account balance: %v\n", err) + } + } + for i := TOTAL_BLOCKS_NUMBER - 1; i > 0; i-- { + balance0, err := stor.AccountBalance(addr0, nil) + if err != nil { + t.Fatalf("Failed to retrieve account balance: %v\n", err) + } + balance1, err := stor.AccountBalance(addr1, nil) + if err != nil { + t.Fatalf("Failed to retrieve account balance: %v\n", err) + } + asset1Balance, err := stor.AccountBalance(addr1, asset1) + if err != nil { + t.Fatalf("Failed to retrieve account balance: %v\n", err) + } + // Check balances. + if balance0 != uint64(i) { + t.Errorf("Invalid balance: %d and %d\n", balance0, i) + } + if balance1 != uint64(i/2) { + t.Errorf("Invalid balance: %d and %d\n", balance1, i/2) + } + if asset1Balance != uint64(i/3) { + t.Errorf("Invalid balance: %d and %d\n", asset1Balance, i/3) + } + // Undo block. + blockID := genBlockID(byte(i)) + if err := stor.RollbackBlock(blockID); err != nil { + t.Fatalf("Failed to rollback block: %v\n", err) + } + } +} diff --git a/pkg/storage/blockreadwriter.go b/pkg/storage/blockreadwriter.go new file mode 100644 index 000000000..2c196f277 --- /dev/null +++ b/pkg/storage/blockreadwriter.go @@ -0,0 +1,388 @@ +package storage + +import ( + "bufio" + "encoding/binary" + "os" + "path" + "sync" + + "github.com/pkg/errors" + "github.com/wavesplatform/gowaves/pkg/crypto" + "github.com/wavesplatform/gowaves/pkg/keyvalue" +) + +type BlockReadWriter struct { + // keyvalue.KeyValue to store ID --> offset in blockchain for blocks and transactions. + idKeyVal keyvalue.KeyValue + + // Series of transactions. + blockchain *os.File + // Series of BlockHeader. + headers *os.File + // Height is used as index for block IDs. + blockHeight2ID *os.File + // IDs of transactions. + txIDs *os.File + + blockchainBuf *bufio.Writer + + blockBounds []byte + txBounds []byte + headerBounds []byte + heightBuf []byte + txNumberBuf []byte + + // offsetEnd is common for headers and the blockchain, since the limit for any offset length is 8 bytes. + offsetEnd uint64 + blockchainLen, headersLen uint64 + height uint64 + // Total number of transactions. + txNumber uint64 + offsetLen, headerOffsetLen int + + mtx sync.RWMutex +} + +func openOrCreate(path string) (*os.File, uint64, error) { + if _, err := os.Stat(path); err == nil { + file, err := os.Open(path) + if err != nil { + return nil, 0, err + } + stat, err := os.Stat(path) + if err != nil { + return nil, 0, err + } + return file, uint64(stat.Size()), nil + } else if os.IsNotExist(err) { + file, err := os.Create(path) + if err != nil { + return nil, 0, err + } + return file, 0, nil + } else { + return nil, 0, err + } +} + +func NewBlockReadWriter(dir string, offsetLen, headerOffsetLen int, keyVal keyvalue.KeyValue) (*BlockReadWriter, error) { + blockchain, blockchainSize, err := openOrCreate(path.Join(dir, "blockchain")) + if err != nil { + return nil, err + } + headers, headersSize, err := openOrCreate(path.Join(dir, "headers")) + if err != nil { + return nil, err + } + blockHeight2ID, blockHeight2IDSize, err := openOrCreate(path.Join(dir, "block_height_to_id")) + if err != nil { + return nil, err + } + txIDs, txIDsSize, err := openOrCreate(path.Join(dir, "tx_ids")) + if err != nil { + return nil, err + } + if offsetLen > 8 { + return nil, errors.New("offsetLen is too large") + } + if headerOffsetLen > 8 { + return nil, errors.New("headerOffsetLen is too large") + } + return &BlockReadWriter{ + idKeyVal: keyVal, + blockchain: blockchain, + headers: headers, + blockHeight2ID: blockHeight2ID, + txIDs: txIDs, + blockchainBuf: bufio.NewWriter(blockchain), + txBounds: make([]byte, offsetLen*2), + headerBounds: make([]byte, headerOffsetLen*2), + blockBounds: make([]byte, offsetLen*2), + heightBuf: make([]byte, 8), + txNumberBuf: make([]byte, 8), + offsetEnd: uint64(1< rw.offsetEnd { + return errors.Errorf("offsetLen is not enough for this offset: %d > %d", rw.blockchainLen, rw.offsetEnd) + } + binary.LittleEndian.PutUint64(rw.txBounds[rw.offsetLen:], rw.blockchainLen) + if err := rw.idKeyVal.Put(txID, rw.txBounds); err != nil { + return err + } + if _, err := rw.txIDs.Write(txID); err != nil { + return err + } + rw.txNumber++ + binary.LittleEndian.PutUint64(rw.txNumberBuf, rw.txNumber) + return nil +} + +func (rw *BlockReadWriter) WriteBlockHeader(blockID crypto.Signature, header []byte) error { + if _, err := rw.headers.Write(header); err != nil { + return err + } + rw.headersLen += uint64(len(header)) + if rw.headersLen > rw.offsetEnd { + return errors.Errorf("offsetLen is not enough for this offset: %d > %d", rw.headersLen, rw.offsetEnd) + } + return nil +} + +func (rw *BlockReadWriter) BlockIDByHeight(height uint64) (crypto.Signature, error) { + rw.mtx.RLock() + defer rw.mtx.RUnlock() + idBytes := make([]byte, crypto.SignatureSize) + readPos := int64(height * crypto.SignatureSize) + var res crypto.Signature + if n, err := rw.blockHeight2ID.ReadAt(idBytes, readPos); err != nil { + return res, err + } else if n != crypto.SignatureSize { + return res, errors.New("BlockIDByHeight(): invalid id size") + } + copy(res[:], idBytes) + return res, nil +} + +func (rw *BlockReadWriter) HeightByBlockID(blockID crypto.Signature) (uint64, error) { + rw.mtx.RLock() + defer rw.mtx.RUnlock() + blockInfo, err := rw.idKeyVal.Get(blockID[:]) + if err != nil { + return 0, err + } + height := binary.LittleEndian.Uint64(blockInfo[len(blockInfo)-16 : len(blockInfo)-8]) + return height, nil +} + +func (rw *BlockReadWriter) CurrentHeight() uint64 { + rw.mtx.RLock() + defer rw.mtx.RUnlock() + return rw.height +} + +func (rw *BlockReadWriter) ReadTransaction(txID []byte) ([]byte, error) { + rw.mtx.RLock() + defer rw.mtx.RUnlock() + txBounds, err := rw.idKeyVal.Get(txID) + if err != nil { + return nil, err + } + txStart := binary.LittleEndian.Uint64(txBounds[:rw.offsetLen]) + txEnd := binary.LittleEndian.Uint64(txBounds[rw.offsetLen:]) + txBytes := make([]byte, txEnd-txStart) + n, err := rw.blockchain.ReadAt(txBytes, int64(txStart)) + if err != nil { + return nil, err + } else if n != len(txBytes) { + return nil, errors.New("ReadAt did not read the whole tx") + } + return txBytes, nil +} + +func (rw *BlockReadWriter) ReadBlockHeader(blockID crypto.Signature) ([]byte, error) { + rw.mtx.RLock() + defer rw.mtx.RUnlock() + blockInfo, err := rw.idKeyVal.Get(blockID[:]) + if err != nil { + return nil, err + } + headerBounds := blockInfo[rw.offsetLen*2 : len(blockInfo)-16] + headerStart := binary.LittleEndian.Uint64(headerBounds[:rw.headerOffsetLen]) + headerEnd := binary.LittleEndian.Uint64(headerBounds[rw.headerOffsetLen:]) + headerBytes := make([]byte, headerEnd-headerStart) + n, err := rw.headers.ReadAt(headerBytes, int64(headerStart)) + if err != nil { + return nil, err + } else if n != len(headerBytes) { + return nil, errors.New("ReadAt did not read the whole header") + } + return headerBytes, nil +} + +func (rw *BlockReadWriter) ReadTransactionsBlock(blockID crypto.Signature) ([]byte, error) { + rw.mtx.RLock() + defer rw.mtx.RUnlock() + blockInfo, err := rw.idKeyVal.Get(blockID[:]) + if err != nil { + return nil, err + } + blockBounds := blockInfo[:rw.offsetLen*2] + blockStart := binary.LittleEndian.Uint64(blockBounds[:rw.offsetLen]) + blockEnd := binary.LittleEndian.Uint64(blockBounds[rw.offsetLen:]) + blockBytes := make([]byte, blockEnd-blockStart) + n, err := rw.blockchain.ReadAt(blockBytes, int64(blockStart)) + if err != nil { + return nil, err + } else if n != len(blockBytes) { + return nil, errors.New("ReadAt did not read the whole block") + } + return blockBytes, nil +} + +func (rw *BlockReadWriter) cleanIDs(newHeight, newTxNumber uint64) error { + // Clean block IDs. + offset := rw.height + blocksIdsToRemove := int(rw.height - newHeight) + for i := 0; i < blocksIdsToRemove; i++ { + readPos := int64((offset - 1) * crypto.SignatureSize) + idBytes := make([]byte, crypto.SignatureSize) + if n, err := rw.blockHeight2ID.ReadAt(idBytes, readPos); err != nil { + return err + } else if n != crypto.SignatureSize { + return errors.New("cleanIDs(): invalid id size") + } + if err := rw.idKeyVal.Delete(idBytes); err != nil { + return err + } + offset-- + } + // Clean transaction IDs. + offset = rw.txNumber + txIdsToRemove := int(rw.txNumber - newTxNumber) + for i := 0; i < txIdsToRemove; i++ { + readPos := int64((offset - 1) * crypto.DigestSize) + idBytes := make([]byte, crypto.DigestSize) + if n, err := rw.txIDs.ReadAt(idBytes, readPos); err != nil { + return err + } else if n != crypto.DigestSize { + return errors.New("cleanIDs(): invalid id size") + } + if err := rw.idKeyVal.Delete(idBytes); err != nil { + return err + } + offset-- + } + // Remove blockIDs from blockHeight2ID file. + newOffset := int64(newHeight * crypto.SignatureSize) + if err := rw.blockHeight2ID.Truncate(newOffset); err != nil { + return err + } + if _, err := rw.blockHeight2ID.Seek(newOffset, 0); err != nil { + return err + } + // Remove txIDs from txIDs file. + newOffset = int64(newTxNumber * crypto.DigestSize) + if err := rw.txIDs.Truncate(newOffset); err != nil { + return err + } + if _, err := rw.txIDs.Seek(newOffset, 0); err != nil { + return err + } + return nil +} + +func (rw *BlockReadWriter) RemoveBlocks(removalEdge crypto.Signature) error { + rw.mtx.Lock() + defer rw.mtx.Unlock() + blockInfo, err := rw.idKeyVal.Get(removalEdge[:]) + if err != nil { + return err + } + // Remove transactions. + blockBounds := blockInfo[:rw.offsetLen*2] + blockEnd := int64(binary.LittleEndian.Uint64(blockBounds[rw.offsetLen:])) + if err := rw.blockchain.Truncate(blockEnd); err != nil { + return err + } + if _, err := rw.blockchain.Seek(blockEnd, 0); err != nil { + return err + } + // Remove headers. + headerBounds := blockInfo[rw.offsetLen*2 : len(blockInfo)-16] + headerEnd := int64(binary.LittleEndian.Uint64(headerBounds[rw.headerOffsetLen:])) + if err := rw.headers.Truncate(headerEnd); err != nil { + return err + } + if _, err := rw.headers.Seek(headerEnd, 0); err != nil { + return err + } + newHeight := binary.LittleEndian.Uint64(blockInfo[len(blockInfo)-16:len(blockInfo)-8]) + 1 + newTxNumber := binary.LittleEndian.Uint64(blockInfo[len(blockInfo)-8:]) + 1 + // Clean IDs of blocks and transactions. + if err := rw.cleanIDs(newHeight, newTxNumber); err != nil { + return nil + } + // Decrease counters. + rw.blockchainLen = uint64(blockEnd) + rw.headersLen = uint64(headerEnd) + rw.height = newHeight + rw.txNumber = newTxNumber + // Reset buffer. + rw.blockchainBuf.Reset(rw.blockchain) + return nil +} + +func (rw *BlockReadWriter) Close() error { + if err := rw.idKeyVal.Flush(); err != nil { + return err + } + if err := rw.blockchainBuf.Flush(); err != nil { + return err + } + if err := rw.blockchain.Close(); err != nil { + return err + } + if err := rw.headers.Close(); err != nil { + return err + } + if err := rw.blockHeight2ID.Close(); err != nil { + return err + } + if err := rw.txIDs.Close(); err != nil { + return err + } + return nil +} diff --git a/pkg/storage/blockreadwriter_test.go b/pkg/storage/blockreadwriter_test.go new file mode 100644 index 000000000..738a704e9 --- /dev/null +++ b/pkg/storage/blockreadwriter_test.go @@ -0,0 +1,416 @@ +package storage + +import ( + "bufio" + "bytes" + "context" + "encoding/binary" + "fmt" + "io" + "io/ioutil" + "os" + "path/filepath" + "runtime" + "sync" + "testing" + "time" + + "github.com/pkg/errors" + "github.com/wavesplatform/gowaves/pkg/crypto" + "github.com/wavesplatform/gowaves/pkg/keyvalue" + "github.com/wavesplatform/gowaves/pkg/proto" + "github.com/wavesplatform/gowaves/pkg/util" +) + +const ( + TASKS_CHAN_BUFFER_SIZE = 20 + READERS_NUMBER = 20 + BLOCKS_NUMBER = 9900 +) + +var ( + cached_blocks []*proto.Block +) + +type ReadCommandType byte + +const ( + ReadHeader ReadCommandType = iota + ReadTx + ReadBlock + GetIDByHeight +) + +type ReadTask struct { + Type ReadCommandType + TxID []byte + BlockID crypto.Signature + Height uint64 + CorrectResult []byte +} + +func getLocalDir() (string, error) { + _, filename, _, ok := runtime.Caller(0) + if !ok { + return "", errors.Errorf("Unable to find current package file") + } + return filepath.Dir(filename), nil +} + +func readRealBlocks(t *testing.T, nBlocks int) ([]*proto.Block, error) { + if len(cached_blocks) >= nBlocks { + return cached_blocks[:nBlocks], nil + } + dir, err := getLocalDir() + if err != nil { + return nil, err + } + f, err := os.Open(filepath.Join(dir, "testdata", "blocks-10000")) + if err != nil { + return nil, err + } + + defer func() { + if err = f.Close(); err != nil { + t.Logf("Failed to close blockchain file: %v\n\n", err.Error()) + } + }() + + sb := make([]byte, 4) + buf := make([]byte, 2*1024*1024) + r := bufio.NewReader(f) + var blocks []*proto.Block + for i := 0; i < nBlocks; i++ { + if _, err := io.ReadFull(r, sb); err != nil { + return nil, err + } + s := binary.BigEndian.Uint32(sb) + bb := buf[:s] + if _, err = io.ReadFull(r, bb); err != nil { + return nil, err + } + var block proto.Block + if err = block.UnmarshalBinary(bb); err != nil { + return nil, err + } + if !crypto.Verify(block.GenPublicKey, block.BlockSignature, bb[:len(bb)-crypto.SignatureSize]) { + return nil, errors.Errorf("Block %d has invalid signature", i) + } + blocks = append(blocks, &block) + } + cached_blocks = blocks + return blocks, nil +} + +func createBlockReadWriter(offsetLen, headerOffsetLen int) (*BlockReadWriter, []string, error) { + res := make([]string, 2) + dbDir, err := ioutil.TempDir(os.TempDir(), "db_dir") + if err != nil { + return nil, res, err + } + keyVal, err := keyvalue.NewKeyVal(dbDir, true) + if err != nil { + return nil, res, err + } + rwDir, err := ioutil.TempDir(os.TempDir(), "rw_dir") + if err != nil { + return nil, res, err + } + rw, err := NewBlockReadWriter(rwDir, offsetLen, headerOffsetLen, keyVal) + if err != nil { + return nil, res, err + } + res = []string{dbDir, rwDir} + return rw, res, nil +} + +func writeBlock(t *testing.T, rw *BlockReadWriter, block *proto.Block) { + blockID := block.BlockSignature + if err := rw.StartBlock(blockID); err != nil { + t.Fatalf("StartBlock(): %v", err) + } + headerBytes, err := block.MarshalHeaderToBinary() + if err != nil { + t.Fatalf("MarshalHeaderToBinary(): %v", err) + } + if err := rw.WriteBlockHeader(blockID, headerBytes); err != nil { + t.Fatalf("WriteBlockHeader(): %v", err) + } + transaction := block.Transactions + for i := 0; i < block.TransactionCount; i++ { + n := int(binary.BigEndian.Uint32(transaction[0:4])) + txBytes := transaction[4 : n+4] + tx, err := proto.BytesToTransaction(txBytes) + if err != nil { + t.Fatalf("Can not unmarshal tx: %v", err) + } + if err := rw.WriteTransaction(tx.GetID(), transaction[:n+4]); err != nil { + t.Fatalf("WriteTransaction(): %v", err) + } + transaction = transaction[4+n:] + } + if err := rw.FinishBlock(blockID); err != nil { + t.Fatalf("FinishBlock(): %v", err) + } +} + +func testSingleBlock(t *testing.T, rw *BlockReadWriter, block *proto.Block) { + writeBlock(t, rw, block) + blockID := block.BlockSignature + resHeaderBytes, err := rw.ReadBlockHeader(blockID) + if err != nil { + t.Fatalf("ReadBlockHeader(): %v", err) + } + headerBytes, err := block.MarshalHeaderToBinary() + if err != nil { + t.Fatalf("MarshalHeaderToBinary(): %v", err) + } + if bytes.Compare(headerBytes, resHeaderBytes) != 0 { + t.Error("Header bytes are not equal.") + } + resTransactions, err := rw.ReadTransactionsBlock(blockID) + if err != nil { + t.Fatalf("ReadTransactionsBlock(): %v", err) + } + if bytes.Compare(block.Transactions, resTransactions) != 0 { + t.Error("Transaction bytes are not equal.") + } +} + +func writeBlocks(ctx context.Context, rw *BlockReadWriter, blocks []*proto.Block, readTasks chan<- *ReadTask) error { + height := 0 + for _, block := range blocks { + var tasksBuf []*ReadTask + blockID := block.BlockSignature + if err := rw.StartBlock(blockID); err != nil { + close(readTasks) + return err + } + task := &ReadTask{Type: GetIDByHeight, Height: uint64(height), CorrectResult: blockID[:]} + tasksBuf = append(tasksBuf, task) + headerBytes, err := block.MarshalHeaderToBinary() + if err != nil { + close(readTasks) + return err + } + if err := rw.WriteBlockHeader(blockID, headerBytes); err != nil { + close(readTasks) + return err + } + task = &ReadTask{Type: ReadHeader, BlockID: blockID, CorrectResult: headerBytes} + tasksBuf = append(tasksBuf, task) + transaction := block.Transactions + for i := 0; i < block.TransactionCount; i++ { + n := int(binary.BigEndian.Uint32(transaction[0:4])) + txBytes := transaction[4 : n+4] + tx, err := proto.BytesToTransaction(txBytes) + if err != nil { + close(readTasks) + return err + } + if err := rw.WriteTransaction(tx.GetID(), transaction[:n+4]); err != nil { + close(readTasks) + return err + } + task = &ReadTask{Type: ReadTx, TxID: tx.GetID(), CorrectResult: transaction[:n+4]} + tasksBuf = append(tasksBuf, task) + transaction = transaction[4+n:] + } + if err := rw.FinishBlock(blockID); err != nil { + close(readTasks) + return err + } + task = &ReadTask{Type: ReadBlock, BlockID: blockID, CorrectResult: block.Transactions} + tasksBuf = append(tasksBuf, task) + for _, task := range tasksBuf { + select { + case <-ctx.Done(): + close(readTasks) + return ctx.Err() + case readTasks <- task: + } + } + height++ + } + close(readTasks) + return nil +} + +func testReader(rw *BlockReadWriter, readTasks <-chan *ReadTask) error { + for task := range readTasks { + switch task.Type { + case ReadHeader: + headerBytes, err := rw.ReadBlockHeader(task.BlockID) + if err != nil { + return err + } + if bytes.Compare(task.CorrectResult, headerBytes) != 0 { + return errors.New("Header bytes are not equal.") + } + case ReadBlock: + resTransactions, err := rw.ReadTransactionsBlock(task.BlockID) + if err != nil { + return err + } + if bytes.Compare(task.CorrectResult, resTransactions) != 0 { + return errors.New("Transactions bytes are not equal.") + } + case ReadTx: + tx, err := rw.ReadTransaction(task.TxID) + if err != nil { + return err + } + if bytes.Compare(task.CorrectResult, tx) != 0 { + return errors.New("Transaction bytes are not equal.") + } + case GetIDByHeight: + id, err := rw.BlockIDByHeight(task.Height) + if err != nil { + return err + } + if bytes.Compare(task.CorrectResult, id[:]) != 0 { + return errors.Errorf("Got wrong ID %s by height %d", string(id[:]), task.Height) + } + } + } + return nil +} + +func TestSimpleReadWrite(t *testing.T) { + rw, path, err := createBlockReadWriter(8, 8) + if err != nil { + t.Fatalf("createBlockReadWriter: %v", err) + } + + defer func() { + if err := rw.Close(); err != nil { + t.Fatalf("Failed to close BlockReadWriter: %v", err) + } + if err := util.CleanTemporaryDirs(path); err != nil { + t.Fatalf("Failed to clean test data dirs: %v", err) + } + }() + + blocks, err := readRealBlocks(t, BLOCKS_NUMBER) + if err != nil { + t.Fatalf("Can not read blocks from blockchain file: %v", err) + } + for _, block := range blocks { + testSingleBlock(t, rw, block) + } +} + +func TestSimultaneousReadWrite(t *testing.T) { + rw, path, err := createBlockReadWriter(8, 8) + if err != nil { + t.Fatalf("createBlockReadWriter: %v", err) + } + + defer func() { + if err := rw.Close(); err != nil { + t.Fatalf("Failed to close BlockReadWriter: %v", err) + } + if err := util.CleanTemporaryDirs(path); err != nil { + t.Fatalf("Failed to clean test data dirs: %v", err) + } + }() + + blocks, err := readRealBlocks(t, BLOCKS_NUMBER) + if err != nil { + t.Fatalf("Can not read blocks from blockchain file: %v", err) + } + var mtx sync.Mutex + var wg sync.WaitGroup + ctx, cancel := context.WithCancel(context.Background()) + errCounter := 0 + readTasks := make(chan *ReadTask, TASKS_CHAN_BUFFER_SIZE) + wg.Add(1) + go func() { + defer wg.Done() + err1 := writeBlocks(ctx, rw, blocks, readTasks) + if err1 != nil { + mtx.Lock() + errCounter++ + mtx.Unlock() + fmt.Printf("Writer error: %v\n", err1) + cancel() + } + }() + for i := 0; i < READERS_NUMBER; i++ { + wg.Add(1) + go func() { + defer wg.Done() + err1 := testReader(rw, readTasks) + if err1 != nil { + mtx.Lock() + errCounter++ + mtx.Unlock() + fmt.Printf("Reader error: %v\n", err1) + cancel() + } + }() + } + wg.Wait() + if errCounter != 0 { + t.Fatalf("Reader/writer error.") + } +} + +func TestSimultaneousReadDelete(t *testing.T) { + rw, path, err := createBlockReadWriter(8, 8) + if err != nil { + t.Fatalf("createBlockReadWriter: %v", err) + } + + defer func() { + if err := rw.Close(); err != nil { + t.Fatalf("Failed to close BlockReadWriter: %v", err) + } + if err := util.CleanTemporaryDirs(path); err != nil { + t.Fatalf("Failed to clean test data dirs: %v", err) + } + }() + + blocks, err := readRealBlocks(t, BLOCKS_NUMBER) + if err != nil { + t.Fatalf("Can not read blocks from blockchain file: %v", err) + } + + for _, block := range blocks { + writeBlock(t, rw, block) + } + idToTest := blocks[BLOCKS_NUMBER-1].BlockSignature + prevId := blocks[BLOCKS_NUMBER-2].BlockSignature + + var wg sync.WaitGroup + var removeErr error + wg.Add(1) + go func() { + defer wg.Done() + // Give some time to start reading before deleting. + time.Sleep(time.Second) + removeErr = rw.RemoveBlocks(prevId) + }() + for { + _, err = rw.ReadBlockHeader(idToTest) + if err != nil { + if err.Error() == "leveldb: not found" { + // Successfully removed. + break + } + t.Fatalf("ReadBlockHeader(): %v", err) + } + _, err = rw.ReadTransactionsBlock(idToTest) + if err != nil { + if err.Error() == "leveldb: not found" { + // Successfully removed. + break + } + t.Fatalf("ReadTransactionsBlock(): %v", err) + } + } + wg.Wait() + if removeErr != nil { + t.Fatalf("Failed to remove blocks: %v", err) + } +} diff --git a/pkg/storage/testdata/blocks-10000 b/pkg/storage/testdata/blocks-10000 new file mode 100644 index 000000000..3a4b9618a Binary files /dev/null and b/pkg/storage/testdata/blocks-10000 differ diff --git a/pkg/util/util.go b/pkg/util/util.go new file mode 100644 index 000000000..96e37a8e2 --- /dev/null +++ b/pkg/util/util.go @@ -0,0 +1,15 @@ +// Useful routines used in several other packages. +package util + +import ( + "os" +) + +func CleanTemporaryDirs(dirs []string) error { + for _, dir := range dirs { + if err := os.RemoveAll(dir); err != nil { + return err + } + } + return nil +}