diff --git a/NineChronicles.Headless.Tests/GraphTypes/GraphQLTestBase.cs b/NineChronicles.Headless.Tests/GraphTypes/GraphQLTestBase.cs index e8c1dfc97..eff90d826 100644 --- a/NineChronicles.Headless.Tests/GraphTypes/GraphQLTestBase.cs +++ b/NineChronicles.Headless.Tests/GraphTypes/GraphQLTestBase.cs @@ -34,6 +34,8 @@ using System.Threading; using System.Threading.Tasks; using Bencodex.Types; +using Libplanet.Action.State; +using Libplanet.Mocks; using Libplanet.Types.Tx; using Moq; using NineChronicles.Headless.Executable.Tests.KeyStore; @@ -201,6 +203,25 @@ protected async Task StartAsync( return task; } + protected void SetupStatesOnTip(Func func) + { + var worldState = func(new World(MockUtil.MockModernWorldState)); + var stateRootHash = worldState.Trie.Hash; + var tip = new Domain.Model.BlockChain.Block( + BlockHash.FromString("613dfa26e104465790625ae7bc03fc27a64947c02a9377565ec190405ef7154b"), + BlockHash.FromString("36456be15af9a5b9b13a02c7ce1e849ae9cba8781ec309010499cdb93e29237d"), + default(Address), + 0, + Timestamp: DateTimeOffset.UtcNow, + StateRootHash: stateRootHash, + Transactions: ImmutableArray.Empty + ); + BlockChainRepository.Setup(repository => repository.GetTip()) + .Returns(tip); + WorldStateRepository.Setup(repository => repository.GetWorldState(stateRootHash)) + .Returns(worldState); + } + protected LibplanetNodeService CreateLibplanetNodeService( Block genesisBlock, AppProtocolVersion appProtocolVersion, diff --git a/NineChronicles.Headless.Tests/GraphTypes/StandaloneQueryTest.cs b/NineChronicles.Headless.Tests/GraphTypes/StandaloneQueryTest.cs index 5503d6fb5..019b1762d 100644 --- a/NineChronicles.Headless.Tests/GraphTypes/StandaloneQueryTest.cs +++ b/NineChronicles.Headless.Tests/GraphTypes/StandaloneQueryTest.cs @@ -66,24 +66,9 @@ public async Task GetState() { var adminAddress = new PrivateKey().Address; Address adminStateAddress = AdminState.Address; - var worldState = new World(MockUtil.MockModernWorldState) - .SetLegacyState(adminStateAddress, new AdminState(adminAddress, 10000).Serialize()); - var stateRootHash = worldState.Trie.Hash; - var tip = new Domain.Model.BlockChain.Block( - BlockHash.FromString("613dfa26e104465790625ae7bc03fc27a64947c02a9377565ec190405ef7154b"), - BlockHash.FromString("36456be15af9a5b9b13a02c7ce1e849ae9cba8781ec309010499cdb93e29237d"), - default(Address), - 0, - Timestamp: DateTimeOffset.UtcNow, - StateRootHash: stateRootHash, - Transactions: ImmutableArray.Empty - ); - - BlockChainRepository.Setup(repository => repository.GetTip()) - .Returns(tip); - WorldStateRepository.Setup(repository => repository.GetWorldState(stateRootHash)) - .Returns(worldState); + SetupStatesOnTip(world => world + .SetLegacyState(adminStateAddress, new AdminState(adminAddress, 10000).Serialize())); var result = await ExecuteQueryAsync($"query {{ state(accountAddress: \"{ReservedAddresses.LegacyAccount}\", address: \"{adminStateAddress}\") }}"); var data = (Dictionary)((ExecutionNode)result.Data!).ToValue()!; @@ -596,22 +581,9 @@ public async Task ActivationStatus(bool existsActivatedAccounts) public async Task GoldBalance() { var userAddress = new PrivateKey().Address; - var worldState = new World(MockUtil.MockModernWorldState) - .SetLegacyState(Addresses.GoldCurrency, new GoldCurrencyState(Currencies.Crystal).Serialize()); - var stateRootHash = worldState.Trie.Hash; - var tip = new Domain.Model.BlockChain.Block( - BlockHash.FromString("613dfa26e104465790625ae7bc03fc27a64947c02a9377565ec190405ef7154b"), - BlockHash.FromString("36456be15af9a5b9b13a02c7ce1e849ae9cba8781ec309010499cdb93e29237d"), - default(Address), - 0, - Timestamp: DateTimeOffset.UtcNow, - StateRootHash: stateRootHash, - Transactions: ImmutableArray.Empty - ); - BlockChainRepository.Setup(repository => repository.GetTip()) - .Returns(tip); - WorldStateRepository.Setup(repository => repository.GetWorldState(stateRootHash)) - .Returns(worldState); + + SetupStatesOnTip(world => + world.SetLegacyState(Addresses.GoldCurrency, new GoldCurrencyState(Currencies.Crystal).Serialize())); var query = $"query {{ goldBalance(address: \"{userAddress}\") }}"; var queryResult = await ExecuteQueryAsync(query); @@ -624,21 +596,9 @@ public async Task GoldBalance() data ); - worldState = worldState.MintAsset(new ActionContext(), userAddress, Currencies.Crystal * 10); - stateRootHash = worldState.Trie.Hash; - tip = new Domain.Model.BlockChain.Block( - BlockHash.FromString("613dfa26e104465790625ae7bc03fc27a64947c02a9377565ec190405ef7154b"), - BlockHash.FromString("36456be15af9a5b9b13a02c7ce1e849ae9cba8781ec309010499cdb93e29237d"), - default(Address), - 0, - Timestamp: DateTimeOffset.UtcNow, - StateRootHash: stateRootHash, - Transactions: ImmutableArray.Empty - ); - BlockChainRepository.Setup(repository => repository.GetTip()) - .Returns(tip); - WorldStateRepository.Setup(repository => repository.GetWorldState(stateRootHash)) - .Returns(worldState); + SetupStatesOnTip(world => + world.SetLegacyState(Addresses.GoldCurrency, new GoldCurrencyState(Currencies.Crystal).Serialize()) + .MintAsset(new ActionContext(), userAddress, Currencies.Crystal * 10)); queryResult = await ExecuteQueryAsync(query); data = (Dictionary)((ExecutionNode)queryResult.Data!).ToValue()!; @@ -757,23 +717,9 @@ public async Task MonsterCollectionStatus_AgentState_Null(bool miner) } // FIXME: Remove the above lines after removing `StandaloneContext` dependency. - var worldState = new World(MockUtil.MockModernWorldState) - .SetLegacyState(Addresses.GoldCurrency, new GoldCurrencyState(Currencies.Crystal).Serialize()) - .MintAsset(new ActionContext(), userAddress, Currencies.Crystal * 10); - var stateRootHash = worldState.Trie.Hash; - var tip = new Domain.Model.BlockChain.Block( - BlockHash.FromString("613dfa26e104465790625ae7bc03fc27a64947c02a9377565ec190405ef7154b"), - BlockHash.FromString("36456be15af9a5b9b13a02c7ce1e849ae9cba8781ec309010499cdb93e29237d"), - default(Address), - 0, - Timestamp: DateTimeOffset.UtcNow, - StateRootHash: stateRootHash, - Transactions: ImmutableArray.Empty - ); - BlockChainRepository.Setup(repository => repository.GetTip()) - .Returns(tip); - WorldStateRepository.Setup(repository => repository.GetWorldState(stateRootHash)) - .Returns(worldState); + SetupStatesOnTip(world => + world.SetLegacyState(Addresses.GoldCurrency, new GoldCurrencyState(Currencies.Crystal).Serialize()) + .MintAsset(new ActionContext(), userAddress, Currencies.Crystal * 10)); string queryArgs = miner ? "" : $@"(address: ""{userAddress}"")"; string query = $@"query {{ @@ -815,24 +761,10 @@ public async Task MonsterCollectionStatus_MonsterCollectionState_Null(bool miner } // FIXME: Remove the above lines after removing `StandaloneContext` dependency. - var worldState = new World(MockUtil.MockModernWorldState) + SetupStatesOnTip(world => world .SetLegacyState(Addresses.GoldCurrency, new GoldCurrencyState(Currencies.Crystal).Serialize()) .SetAgentState(userAddress, new AgentState(userAddress)) - .MintAsset(new ActionContext(), userAddress, Currencies.Crystal * 10); - var stateRootHash = worldState.Trie.Hash; - var tip = new Domain.Model.BlockChain.Block( - BlockHash.FromString("613dfa26e104465790625ae7bc03fc27a64947c02a9377565ec190405ef7154b"), - BlockHash.FromString("36456be15af9a5b9b13a02c7ce1e849ae9cba8781ec309010499cdb93e29237d"), - default(Address), - 0, - Timestamp: DateTimeOffset.UtcNow, - StateRootHash: stateRootHash, - Transactions: ImmutableArray.Empty - ); - BlockChainRepository.Setup(repository => repository.GetTip()) - .Returns(tip); - WorldStateRepository.Setup(repository => repository.GetWorldState(stateRootHash)) - .Returns(worldState); + .MintAsset(new ActionContext(), userAddress, Currencies.Crystal * 10)); string queryArgs = miner ? "" : $@"(address: ""{userAddress}"")"; string query = $@"query {{ @@ -868,22 +800,8 @@ public async Task Avatar() "6475313a316475323a496475313a3175343a4e616d6575393a59676764726173696c7531303a5374616765426567696e75313a317532323a5374616765436c6561726564426c6f636b496e64657875363a3437323632387531343a5374616765436c6561726564496475323a353075383a5374616765456e6475323a35307531383a556e6c6f636b6564426c6f636b496e64657875363a3434343436366575353a31303030316475323a496475353a313030303175343a4e616d657531313a4d696d69736272756e6e727531303a5374616765426567696e75383a31303030303030317532323a5374616765436c6561726564426c6f636b496e64657875323a2d317531343a5374616765436c6561726564496475323a2d3175383a5374616765456e6475383a31303030303032307531383a556e6c6f636b6564426c6f636b496e64657875363a3438373734336575313a326475323a496475313a3275343a4e616d6575373a416c666865696d7531303a5374616765426567696e75323a35317532323a5374616765436c6561726564426c6f636b496e64657875363a3438373734337531343a5374616765436c6561726564496475333a31303075383a5374616765456e6475333a3130307531383a556e6c6f636b6564426c6f636b496e64657875363a3437323632386575313a336475323a496475313a3375343a4e616d657531323a5376617274616c666865696d7531303a5374616765426567696e75333a3130317532323a5374616765436c6561726564426c6f636b496e64657875363a3530343031387531343a5374616765436c6561726564496475333a31353075383a5374616765456e6475333a3135307531383a556e6c6f636b6564426c6f636b496e64657875363a3438373734336575313a346475323a496475313a3475343a4e616d6575363a4173676172647531303a5374616765426567696e75333a3135317532323a5374616765436c6561726564426c6f636b496e64657875373a343839313637337531343a5374616765436c6561726564496475333a32303075383a5374616765456e6475333a3230307531383a556e6c6f636b6564426c6f636b496e64657875363a3530343031386575313a356475323a496475313a3575343a4e616d657531303a4d757370656c6865696d7531303a5374616765426567696e75333a3230317532323a5374616765436c6561726564426c6f636b496e64657875373a373132353232397531343a5374616765436c6561726564496475333a32353075383a5374616765456e6475333a3235307531383a556e6c6f636b6564426c6f636b496e64657875373a343839313637336575313a366475323a496475313a3675343a4e616d6575393a4a6f74756e6865696d7531303a5374616765426567696e75333a3235317532323a5374616765436c6561726564426c6f636b496e64657875383a31313237353837337531343a5374616765436c6561726564496475333a33303075383a5374616765456e6475333a3330307531383a556e6c6f636b6564426c6f636b496e64657875373a373132353232396575313a376475323a496475313a3775343a4e616d6575383a4e69666c6865696d7531303a5374616765426567696e75333a3330317532323a5374616765436c6561726564426c6f636b496e64657875383a31313439323332367531343a5374616765436c6561726564496475333a33333275383a5374616765456e6475333a3335307531383a556e6c6f636b6564426c6f636b496e64657875383a31313237353837336565"))); avatarState.questList = new QuestList((List)new Codec().Decode(Convert.FromHexString( "6c6935656c6c7531303a776f726c6451756573747469316569306569313030303031656475363a34303030303075323a32306574656c7531303a776f726c6451756573747469326569306569313030303032656475363a34303030303075323a32306574656c7531303a776f726c6451756573747469336569306569313030303033656475363a33303330303075313a3175363a34303030303075333a3430306574656c7531303a776f726c6451756573747469346569306569313030303034656475363a33303630343075313a376574656c7531303a776f726c6451756573747469356569306569313030303035656475363a34303030303075323a32306574656c7531303a776f726c6451756573747469366569306569313030303036656475363a33303331303075313a316574656c7531303a776f726c6451756573747469376569306569313030303037656475363a34303030303075323a32306574656c7531303a776f726c6451756573747469386569306569313030303038656475363a34303030303075323a32306574656c7531303a776f726c6451756573747469396569306569313030303039656475363a33303332303075313a316574656c7531303a776f726c645175657374746931306569306569313030303130656475363a34303030303075323a32306574656c7531303a776f726c645175657374746931316569306569313030303131656475363a33303630323375313a3175363a33303630343175313a326574656c7531303a776f726c645175657374746931326569306569313030303132656475363a34303030303075323a32306574656c7531303a776f726c645175657374746931336569306569313030303133656475363a33303630323575313a3375363a33303630343175313a326574656c7531303a776f726c645175657374746931346569306569313030303134656475363a34303030303075323a32306574656c7531303a776f726c645175657374746931356569306569313030303135656475363a33303333303075313a316574656c7531303a776f726c645175657374746931366569306569313030303136656475363a34303030303075323a32306574656c7531303a776f726c645175657374746931376569306569313030303137656475363a34303030303075323a32306574656c7531303a776f726c645175657374746931386569306569313030303138656475363a34303030303075323a32306574656c7531303a776f726c645175657374746931396569306569313030303139656475363a34303030303075323a323075363a35303030303075313a316574656c7531303a776f726c645175657374746932306569306569313030303230656475363a33303334303075313a316574656c7531303a776f726c645175657374746932316569306569313030303231656475363a33303630303175313a3175363a33303630343475313a316574656c7531303a776f726c645175657374746932326569306569313030303232656475363a33303630303075313a3175363a33303630303275313a316574656c7531303a776f726c645175657374746932336569306569313030303233656475363a34303030303075323a32306574656c7531303a776f726c645175657374746932346569306569313030303234656475363a33303330303175313a326574656c7531303a776f726c645175657374746932356569306569313030303235656475363a33303630303075313a3175363a33303630303175313a316574656c7531303a776f726c645175657374746932366569306569313030303236656475363a34303030303075323a32306574656c7531303a776f726c645175657374746932376569306569313030303237656475363a34303030303075323a32306574656c7531303a776f726c645175657374746932386569306569313030303238656475363a34303030303075323a32306574656c7531303a776f726c645175657374746932396569306569313030303239656475363a34303030303075323a32306574656c7531303a776f726c645175657374746933306569306569313030303330656475363a34303030303075323a32306574656c7531303a776f726c645175657374746933316569306569313030303331656475363a34303030303075323a32306574656c7531303a776f726c645175657374746933326569306569313030303332656475363a34303030303075323a32306574656c7531303a776f726c645175657374746933336569306569313030303333656475363a34303030303075323a32306574656c7531303a776f726c645175657374746933346569306569313030303334656475363a34303030303075323a32306574656c7531303a776f726c645175657374746933356569306569313030303335656475363a34303030303075323a32306574656c7531303a776f726c645175657374746933366569306569313030303336656475363a34303030303075323a32306574656c7531303a776f726c645175657374746933376569306569313030303337656475363a34303030303075323a32306574656c7531303a776f726c645175657374746933386569306569313030303338656475363a34303030303075323a32306574656c7531303a776f726c645175657374746933396569306569313030303339656475363a34303030303075323a32306574656c7531303a776f726c645175657374746934306569306569313030303430656475363a34303030303075323a323075363a35303030303075313a316574656c7531303a776f726c645175657374746934316569306569313030303431656475363a34303030303075323a32306574656c7531303a776f726c645175657374746934326569306569313030303432656475363a34303030303075323a32306574656c7531303a776f726c645175657374746934336569306569313030303433656475363a34303030303075323a32306574656c7531303a776f726c645175657374746934346569306569313030303434656475363a34303030303075323a32306574656c7531303a776f726c645175657374746934356569306569313030303435656475363a34303030303075323a32306574656c7531303a776f726c645175657374746934366569306569313030303436656475363a34303030303075323a32306574656c7531303a776f726c645175657374746934376569306569313030303437656475363a34303030303075323a32306574656c7531303a776f726c645175657374746934386569306569313030303438656475363a34303030303075323a32306574656c7531303a776f726c645175657374746934396569306569313030303439656475363a34303030303075323a32306574656c7531303a776f726c645175657374746935306569306569313030303530656475363a33303430303275313a316574656c7531303a776f726c645175657374746935316569306569313030303531656475363a34303030303075323a32306574656c7531303a776f726c645175657374746935326569306569313030303532656475363a34303030303075323a32306574656c7531303a776f726c645175657374746935336569306569313030303533656475363a34303030303075323a32306574656c7531303a776f726c645175657374746935346569306569313030303534656475363a34303030303075323a32306574656c7531303a776f726c645175657374746935356569306569313030303535656475363a34303030303075323a32306574656c7531303a776f726c645175657374746935366569306569313030303536656475363a34303030303075323a32306574656c7531303a776f726c645175657374746935376569306569313030303537656475363a34303030303075323a32306574656c7531303a776f726c645175657374746935386569306569313030303538656475363a34303030303075323a32306574656c7531303a776f726c645175657374746935396569306569313030303539656475363a34303030303075323a32306574656c7531303a776f726c645175657374746936306569306569313030303630656475363a34303030303075323a323075363a35303030303075313a316574656c7531303a776f726c645175657374746936316569306569313030303631656475363a34303030303075323a32306574656c7531303a776f726c645175657374746936326569306569313030303632656475363a34303030303075323a32306574656c7531303a776f726c645175657374746936336569306569313030303633656475363a34303030303075323a32306574656c7531303a776f726c645175657374746936346569306569313030303634656475363a34303030303075323a32306574656c7531303a776f726c645175657374746936356569306569313030303635656475363a34303030303075323a32306574656c7531303a776f726c645175657374746936366569306569313030303636656475363a34303030303075323a32306574656c7531303a776f726c645175657374746936376569306569313030303637656475363a34303030303075323a32306574656c7531303a776f726c645175657374746936386569306569313030303638656475363a34303030303075323a32306574656c7531303a776f726c645175657374746936396569306569313030303639656475363a34303030303075323a32306574656c7531303a776f726c645175657374746937306569306569313030303730656475363a34303030303075323a32306574656c7531303a776f726c645175657374746937316569306569313030303731656475363a34303030303075323a32306574656c7531303a776f726c645175657374746937326569306569313030303732656475363a34303030303075323a32306574656c7531303a776f726c645175657374746937336569306569313030303733656475363a34303030303075323a32306574656c7531303a776f726c645175657374746937346569306569313030303734656475363a34303030303075323a32306574656c7531303a776f726c645175657374746937356569306569313030303735656475363a34303030303075323a32306574656c7531303a776f726c645175657374746937366569306569313030303736656475363a34303030303075323a32306574656c7531303a776f726c645175657374746937376569306569313030303737656475363a34303030303075323a32306574656c7531303a776f726c645175657374746937386569306569313030303738656475363a34303030303075323a32306574656c7531303a776f726c645175657374746937396569306569313030303739656475363a34303030303075323a32306574656c7531303a776f726c645175657374746938306569306569313030303830656475363a34303030303075323a323075363a35303030303075313a316574656c7531303a776f726c645175657374746938316569306569313030303831656475363a34303030303075323a32306574656c7531303a776f726c645175657374746938326569306569313030303832656475363a34303030303075323a32306574656c7531303a776f726c645175657374746938336569306569313030303833656475363a34303030303075323a32306574656c7531303a776f726c645175657374746938346569306569313030303834656475363a34303030303075323a32306574656c7531303a776f726c645175657374746938356569306569313030303835656475363a34303030303075323a32306574656c7531303a776f726c645175657374746938366569306569313030303836656475363a34303030303075323a32306574656c7531303a776f726c645175657374746938376569306569313030303837656475363a34303030303075323a32306574656c7531303a776f726c645175657374746938386569306569313030303838656475363a34303030303075323a32306574656c7531303a776f726c645175657374746938396569306569313030303839656475363a34303030303075323a32306574656c7531303a776f726c645175657374746939306569306569313030303930656475363a34303030303075323a32306574656c7531303a776f726c645175657374746939316569306569313030303931656475363a34303030303075323a32306574656c7531303a776f726c645175657374746939326569306569313030303932656475363a34303030303075323a32306574656c7531303a776f726c645175657374746939336569306569313030303933656475363a34303030303075323a32306574656c7531303a776f726c645175657374746939346569306569313030303934656475363a34303030303075323a32306574656c7531303a776f726c645175657374746939356569306569313030303935656475363a34303030303075323a32306574656c7531303a776f726c645175657374746939366569306569313030303936656475363a34303030303075323a32306574656c7531303a776f726c645175657374746939376569306569313030303937656475363a34303030303075323a32306574656c7531303a776f726c645175657374746939386569306569313030303938656475363a34303030303075323a32306574656c7531303a776f726c645175657374746939396569306569313030303939656475363a34303030303075323a323075363a35303030303075313a316574656c7531303a776f726c64517565737474693130306569306569313030313030656475363a33303430303175313a316574656c7531303a776f726c64517565737474693130316569306569313030313031656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693130326569306569313030313032656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693130336569306569313030313033656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693130346569306569313030313034656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693130356569306569313030313035656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693130366569306569313030313036656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693130376569306569313030313037656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693130386569306569313030313038656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693130396569306569313030313039656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693131306569306569313030313130656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693131316569306569313030313131656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693131326569306569313030313132656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693131336569306569313030313133656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693131346569306569313030313134656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693131356569306569313030313135656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693131366569306569313030313136656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693131376569306569313030313137656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693131386569306569313030313138656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693131396569306569313030313139656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693132306569306569313030313230656475363a34303030303075323a323075363a35303030303075313a316574656c7531303a776f726c64517565737474693132316569306569313030313231656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693132326569306569313030313232656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693132336569306569313030313233656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693132346569306569313030313234656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693132356569306569313030313235656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693132366569306569313030313236656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693132376569306569313030313237656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693132386569306569313030313238656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693132396569306569313030313239656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693133306569306569313030313330656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693133316569306569313030313331656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693133326569306569313030313332656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693133336569306569313030313333656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693133346569306569313030313334656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693133356569306569313030313335656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693133366569306569313030313336656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693133376569306569313030313337656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693133386569306569313030313338656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693133396569306569313030313339656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693134306569306569313030313430656475363a34303030303075323a323075363a35303030303075313a316574656c7531303a776f726c64517565737474693134316569306569313030313431656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693134326569306569313030313432656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693134336569306569313030313433656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693134346569306569313030313434656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693134356569306569313030313435656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693134366569306569313030313436656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693134376569306569313030313437656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693134386569306569313030313438656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693134396569306569313030313439656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693135306569306569313030313530656475363a33303430303075313a316574656c7531303a776f726c64517565737474693135316569306569313030313531656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693135326569306569313030313532656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693135336569306569313030313533656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693135346569306569313030313534656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693135356569306569313030313535656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693135366569306569313030313536656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693135376569306569313030313537656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693135386569306569313030313538656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693135396569306569313030313539656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693136306569306569313030313630656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693136316569306569313030313631656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693136326569306569313030313632656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693136336569306569313030313633656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693136346569306569313030313634656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693136356569306569313030313635656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693136366569306569313030313636656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693136376569306569313030313637656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693136386569306569313030313638656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693136396569306569313030313639656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693137306569306569313030313730656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693137316569306569313030313731656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693137326569306569313030313732656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693137336569306569313030313733656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693137346569306569313030313734656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693137356569306569313030313735656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693137366569306569313030313736656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693137376569306569313030313737656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693137386569306569313030313738656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693137396569306569313030313739656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693138306569306569313030313830656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693138316569306569313030313831656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693138326569306569313030313832656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693138336569306569313030313833656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693138346569306569313030313834656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693138356569306569313030313835656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693138366569306569313030313836656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693138376569306569313030313837656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693138386569306569313030313838656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693138396569306569313030313839656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693139306569306569313030313930656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693139316569306569313030313931656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693139326569306569313030313932656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693139336569306569313030313933656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693139346569306569313030313934656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693139356569306569313030313935656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693139366569306569313030313936656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693139376569306569313030313937656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693139386569306569313030313938656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693139396569306569313030313939656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693230306569306569313030323030656475363a33303430303375313a316574656c7531303a776f726c64517565737474693230316569306569313030323031656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693230326569306569313030323032656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693230336569306569313030323033656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693230346569306569313030323034656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693230356569306569313030323035656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693230366569306569313030323036656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693230376569306569313030323037656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693230386569306569313030323038656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693230396569306569313030323039656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693231306569306569313030323130656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693231316569306569313030323131656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693231326569306569313030323132656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693231336569306569313030323133656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693231346569306569313030323134656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693231356569306569313030323135656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693231366569306569313030323136656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693231376569306569313030323137656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693231386569306569313030323138656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693231396569306569313030323139656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693232306569306569313030323230656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693232316569306569313030323231656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693232326569306569313030323232656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693232336569306569313030323233656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693232346569306569313030323234656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693232356569306569313030323235656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693232366569306569313030323236656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693232376569306569313030323237656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693232386569306569313030323238656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693232396569306569313030323239656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693233306569306569313030323330656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693233316569306569313030323331656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693233326569306569313030323332656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693233336569306569313030323333656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693233346569306569313030323334656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693233356569306569313030323335656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693233366569306569313030323336656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693233376569306569313030323337656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693233386569306569313030323338656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693233396569306569313030323339656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693234306569306569313030323430656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693234316569306569313030323431656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693234326569306569313030323432656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693234336569306569313030323433656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693234346569306569313030323434656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693234356569306569313030323435656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693234366569306569313030323436656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693234376569306569313030323437656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693234386569306569313030323438656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693234396569306569313030323439656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693235306569306569313030323530656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693235316569306569313030323531656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693235326569306569313030323532656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693235336569306569313030323533656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693235346569306569313030323534656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693235356569306569313030323535656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693235366569306569313030323536656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693235376569306569313030323537656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693235386569306569313030323538656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693235396569306569313030323539656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693236306569306569313030323630656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693236316569306569313030323631656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693236326569306569313030323632656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693236336569306569313030323633656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693236346569306569313030323634656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693236356569306569313030323635656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693236366569306569313030323636656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693236376569306569313030323637656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693236386569306569313030323638656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693236396569306569313030323639656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693237306569306569313030323730656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693237316569306569313030323731656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693237326569306569313030323732656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693237336569306569313030323733656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693237346569306569313030323734656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693237356569306569313030323735656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693237366569306569313030323736656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693237376569306569313030323737656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693237386569306569313030323738656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693237396569306569313030323739656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693238306569306569313030323830656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693238316569306569313030323831656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693238326569306569313030323832656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693238336569306569313030323833656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693238346569306569313030323834656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693238356569306569313030323835656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693238366569306569313030323836656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693238376569306569313030323837656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693238386569306569313030323838656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693238396569306569313030323839656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693239306569306569313030323930656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693239316569306569313030323931656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693239326569306569313030323932656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693239336569306569313030323933656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693239346569306569313030323934656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693239356569306569313030323935656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693239366569306569313030323936656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693239376569306569313030323937656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693239386569306569313030323938656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693239396569306569313030323939656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693330306569306569313030333030656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693330316569306569313030333031656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693330326569306569313030333032656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693330336569306569313030333033656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693330346569306569313030333034656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693330356569306569313030333035656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693330366569306569313030333036656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693330376569306569313030333037656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693330386569306569313030333038656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693330396569306569313030333039656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693331306569306569313030333130656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693331316569306569313030333131656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693331326569306569313030333132656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693331336569306569313030333133656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693331346569306569313030333134656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693331356569306569313030333135656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693331366569306569313030333136656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693331376569306569313030333137656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693331386569306569313030333138656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693331396569306569313030333139656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693332306569306569313030333230656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693332316569306569313030333231656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693332326569306569313030333232656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693332336569306569313030333233656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693332346569306569313030333234656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693332356569306569313030333235656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693332366569306569313030333236656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693332376569306569313030333237656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693332386569306569313030333238656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693332396569306569313030333239656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693333306569306569313030333330656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693333316569306569313030333331656475363a34303030303075323a32306574656c7531303a776f726c64517565737474693333326569306569313030333332656475363a34303030303075323a32306574656c7531303a776f726c64517565737466693333336569306569313030333333656475363a34303030303075323a32306566656c7531303a776f726c64517565737466693333346569306569313030333334656475363a34303030303075323a32306566656c7531303a776f726c64517565737466693333356569306569313030333335656475363a34303030303075323a32306566656c7531303a776f726c64517565737466693333366569306569313030333336656475363a34303030303075323a32306566656c7531303a776f726c64517565737466693333376569306569313030333337656475363a34303030303075323a32306566656c7531303a776f726c64517565737466693333386569306569313030333338656475363a34303030303075323a32306566656c7531303a776f726c64517565737466693333396569306569313030333339656475363a34303030303075323a32306566656c7531303a776f726c64517565737466693334306569306569313030333430656475363a34303030303075323a32306566656c7531303a776f726c64517565737466693334316569306569313030333431656475363a34303030303075323a32306566656c7531303a776f726c64517565737466693334326569306569313030333432656475363a34303030303075323a32306566656c7531303a776f726c64517565737466693334336569306569313030333433656475363a34303030303075323a32306566656c7531303a776f726c64517565737466693334346569306569313030333434656475363a34303030303075323a32306566656c7531303a776f726c64517565737466693334356569306569313030333435656475363a34303030303075323a32306566656c7531303a776f726c64517565737466693334366569306569313030333436656475363a34303030303075323a32306566656c7531303a776f726c64517565737466693334376569306569313030333437656475363a34303030303075323a32306566656c7531303a776f726c64517565737466693334386569306569313030333438656475363a34303030303075323a32306566656c7531303a776f726c64517565737466693334396569306569313030333439656475363a34303030303075323a32306566656c7531303a776f726c64517565737466693335306569306569313030333530656475363a34303030303075323a32306566656c7531303a776f726c64517565737466693335316569306569313030333531656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693335326569306569313030333532656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693335336569306569313030333533656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693335346569306569313030333534656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693335356569306569313030333535656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693335366569306569313030333536656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693335376569306569313030333537656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693335386569306569313030333538656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693335396569306569313030333539656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693336306569306569313030333630656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693336316569306569313030333631656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693336326569306569313030333632656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693336336569306569313030333633656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693336346569306569313030333634656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693336356569306569313030333635656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693336366569306569313030333636656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693336376569306569313030333637656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693336386569306569313030333638656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693336396569306569313030333639656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693337306569306569313030333730656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693337316569306569313030333731656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693337326569306569313030333732656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693337336569306569313030333733656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693337346569306569313030333734656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693337356569306569313030333735656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693337366569306569313030333736656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693337376569306569313030333737656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693337386569306569313030333738656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693337396569306569313030333739656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693338306569306569313030333830656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693338316569306569313030333831656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693338326569306569313030333832656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693338336569306569313030333833656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693338346569306569313030333834656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693338356569306569313030333835656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693338366569306569313030333836656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693338376569306569313030333837656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693338386569306569313030333838656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693338396569306569313030333839656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693339306569306569313030333930656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693339316569306569313030333931656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693339326569306569313030333932656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693339336569306569313030333933656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693339346569306569313030333934656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693339356569306569313030333935656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693339366569306569313030333936656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693339376569306569313030333937656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693339386569306569313030333938656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693339396569306569313030333939656475363a34303030303075333a3530306566656c7531303a776f726c64517565737466693430306569306569313030343030656475363a34303030303075333a3530306566656c7531323a636f6c6c65637451756573747469316569316569323030303031656475363a33303230303175313a3175363a33303230303275313a3165746932303130303065656c7531323a636f6c6c65637451756573747469316569316569323030303032656475363a33303230303475313a3275363a33303230303675313a3165746932303130303165656c7531323a636f6c6c65637451756573747469316569316569323030303033656475363a33303230303375313a3165746932303130303265656c7531323a636f6c6c65637451756573747469316569316569323030303034656475363a33303230303375313a3265746932303130303365656c7531323a636f6c6c65637451756573746669316569306569323030303035656475363a33303230303375313a3275363a33303230303575313a3265666932303130303465656c7531323a636f6c6c65637451756573747469316569316569323030303036656475363a33303230303375313a3165746932303130303565656c7531323a636f6c6c65637451756573747469316569316569323030303037656475363a33303230303375313a3265746932303130303665656c7531323a636f6c6c65637451756573746669316569306569323030303038656475363a33303230303075313a3275363a33303230303375313a3265666932303130303765656c7531323a636f6c6c65637451756573747469316569316569323030303039656475363a33303230303875313a3165746932303130303865656c7531323a636f6c6c65637451756573747469316569316569323030303130656475363a33303230303075313a3275363a33303230303875313a3265746932303130303965656c7531323a636f6c6c65637451756573747469316569316569323030303131656475363a33303230303975313a3165746932303130313065656c7531323a636f6c6c65637451756573747469316569316569323030303132656475363a33303230303875313a3165746932303130313165656c7531323a636f6c6c65637451756573747469316569316569323030303133656475363a33303230303575313a3275363a33303230303875313a3265746932303130313265656c7531323a636f6c6c65637451756573747469316569316569323030303134656475363a33303230303975313a3165746932303130313365656c7531363a636f6d62696e6174696f6e51756573747469316569316569333030303031656475363a33303230303175313a316574693265693665656c7531363a636f6d62696e6174696f6e51756573747469336569336569333030303032656475363a33303230303175313a316574693265693665656c7531363a636f6d62696e6174696f6e51756573747469356569356569333030303033656475363a33303230303175313a316574693265693665656c7531363a636f6d62696e6174696f6e517565737474693130656931306569333030303034656475363a33303230303175313a326574693265693665656c7531363a636f6d62696e6174696f6e517565737474693530656935306569333030303035656475363a33303230303175313a326574693265693665656c7531363a636f6d62696e6174696f6e51756573747469316569316569333030303036656475363a33303230303375313a316574693265693765656c7531363a636f6d62696e6174696f6e51756573747469336569336569333030303037656475363a33303230303375313a316574693265693765656c7531363a636f6d62696e6174696f6e51756573747469356569356569333030303038656475363a33303230303375313a316574693265693765656c7531363a636f6d62696e6174696f6e517565737474693130656931306569333030303039656475363a33303230303375313a326574693265693765656c7531363a636f6d62696e6174696f6e517565737474693530656935306569333030303130656475363a33303230303375313a326574693265693765656c7531363a636f6d62696e6174696f6e51756573747469316569316569333030303131656475363a33303230303575313a316574693265693865656c7531363a636f6d62696e6174696f6e51756573747469336569336569333030303132656475363a33303230303575313a316574693265693865656c7531363a636f6d62696e6174696f6e51756573747469356569356569333030303133656475363a33303230303575313a316574693265693865656c7531363a636f6d62696e6174696f6e517565737474693130656931306569333030303134656475363a33303230303575313a326574693265693865656c7531363a636f6d62696e6174696f6e517565737474693530656935306569333030303135656475363a33303230303575313a326574693265693865656c7531363a636f6d62696e6174696f6e51756573747469316569316569333030303136656475363a33303230303075313a316574693265693965656c7531363a636f6d62696e6174696f6e51756573747469336569336569333030303137656475363a33303230303075313a316574693265693965656c7531363a636f6d62696e6174696f6e51756573747469356569356569333030303138656475363a33303230303075313a316574693265693965656c7531363a636f6d62696e6174696f6e517565737474693130656931306569333030303139656475363a33303230303075313a326574693265693965656c7531363a636f6d62696e6174696f6e517565737474693530656935306569333030303230656475363a33303230303075313a326574693265693965656c7531363a636f6d62696e6174696f6e51756573747469316569316569333030303231656475363a33303230303175313a31657469326569313065656c7531363a636f6d62696e6174696f6e51756573747469336569336569333030303232656475363a33303230303175313a31657469326569313065656c7531363a636f6d62696e6174696f6e51756573747469356569356569333030303233656475363a33303230303175313a31657469326569313065656c7531363a636f6d62696e6174696f6e517565737474693130656931306569333030303234656475363a33303230303175313a32657469326569313065656c7531363a636f6d62696e6174696f6e517565737474693530656935306569333030303235656475363a33303230303175313a32657469326569313065656c7531363a636f6d62696e6174696f6e51756573747469316569316569333030303236656475363a33303230303375313a316574693065693065656c7531363a636f6d62696e6174696f6e517565737474693130656931306569333030303237656475363a33303230303375313a316574693065693065656c7531363a636f6d62696e6174696f6e517565737474693230656932306569333030303238656475363a33303230303375313a316574693065693065656c7531363a636f6d62696e6174696f6e517565737474693330656933306569333030303239656475363a33303230303375313a326574693065693065656c7531363a636f6d62696e6174696f6e517565737474693530656935306569333030303330656475363a33303230303375313a326574693065693065656c7531303a747261646551756573747469316569316569343030303031656475363a33303230303075313a326574693165656c7531303a7472616465517565737474693130656931306569343030303032656475363a33303230303075313a326574693165656c7531303a7472616465517565737474693530656935306569343030303033656475363a33303230303875313a326574693165656c7531303a74726164655175657374746931303065693130306569343030303034656475363a33303230303975313a326574693165656c7531303a747261646551756573747469316569316569343030303035656475363a33303230303575313a326574693065656c7531303a7472616465517565737474693130656931306569343030303036656475363a33303230303575313a326574693065656c7531303a7472616465517565737474693530656935306569343030303037656475363a33303230303875313a326574693065656c7531303a74726164655175657374746931303065693130306569343030303038656475363a33303230303975313a326574693065656c7531323a6d6f6e7374657251756573747469316569316569353030303031656475363a33303230303475313a3265746932303130303565656c7531323a6d6f6e7374657251756573747469316569316569353030303032656475363a33303230303475313a3275363a33303230303675313a3165746932303230303765656c7531323a6d6f6e7374657251756573747469316569316569353030303033656475363a33303230303875313a3265746932303330303765656c7531323a6d6f6e7374657251756573747469316569316569353030303034656475363a33303230303975313a3265746932303530303765656c7532303a6974656d456e68616e63656d656e7451756573747469336569316569363030303031656475363a33303230303275313a326574693165693165656c7532303a6974656d456e68616e63656d656e7451756573746669336569356569363030303032656475363a33303230303475313a326566693165693665656c7532303a6974656d456e68616e63656d656e7451756573747469366569316569363030303033656475363a33303230303475313a326574693265693165656c7532303a6974656d456e68616e63656d656e7451756573746669366569316569363030303034656475363a33303230303475313a3275363a33303230303675313a316566693265693665656c7532303a6974656d456e68616e63656d656e7451756573746669396569306569363030303035656475363a33303230303475313a3275363a33303230303675313a316566693365693165656c7532303a6974656d456e68616e63656d656e7451756573746669396569306569363030303036656475363a33303230303875313a326566693365693665656c7532303a6974656d456e68616e63656d656e7451756573746669396569306569363030303037656475363a33303230303975313a326566693465693165656c7532303a6974656d456e68616e63656d656e7451756573746669396569306569363030303038656475363a33303230303975313a326566693465693665656c7532303a6974656d456e68616e63656d656e7451756573746669396569306569363030303039656475363a33303230303975313a326566693565693165656c7532303a6974656d456e68616e63656d656e7451756573746669396569306569363030303130656475363a33303230303975313a326566693565693665656c7531323a67656e6572616c51756573747469316569316569373030303031656475363a33303230303275313a316574693165656c7531323a67656e6572616c517565737474693130656931306569373030303032656475363a33303230303275313a326574693165656c7531323a67656e6572616c517565737474693530656935306569373030303033656475363a33303230303275313a326574693165656c7531323a67656e6572616c517565737474693130656931306569373130303030656475363a33303230303275313a316574693265656c7531323a67656e6572616c517565737474693230656932306569373130303031656475363a33303230303275313a316574693265656c7531323a67656e6572616c517565737474693330656933306569373130303032656475363a33303230303375313a3275363a33303230303575313a326574693265656c7531323a67656e6572616c517565737474693530656935306569373130303033656475363a33303230303375313a3275363a33303230303575313a326574693265656c7531323a67656e6572616c517565737474693730656937306569373130303034656475363a33303230303475313a326574693265656c7531323a67656e6572616c517565737474693930656939306569373130303035656475363a33303230303475313a3275363a33303230303675313a316574693265656c7531323a67656e6572616c5175657374746931303065693130306569373130303036656475363a33303230303475313a3275363a33303230303675313a316574693265656c7531323a67656e6572616c5175657374746931323065693132306569373130303037656475363a33303230303475313a3275363a33303230303675313a316574693265656c7531323a67656e6572616c5175657374746931343065693134306569373130303038656475363a33303230303475313a3275363a33303230303675313a316574693265656c7531323a67656e6572616c5175657374746931363065693136306569373130303039656475363a33303230303475313a3275363a33303230303675313a316574693265656c7531323a67656e6572616c5175657374746931383065693138306569373130303130656475363a33303230303475313a3275363a33303230303675313a316574693265656c7531323a67656e6572616c5175657374746932303065693230306569373130303131656475363a33303230303475313a3275363a33303230303675313a316574693265656c7531323a67656e6572616c51756573747469316569316569373230303030656475363a33303230303275313a316574693365656c7531323a67656e6572616c517565737474693130656931306569373230303031656475363a33303230303275313a316574693365656c7531323a67656e6572616c517565737474693530656935306569373230303032656475363a33303230303275313a326574693365656c7531323a67656e6572616c5175657374746931303065693130306569373230303033656475363a33303230303275313a326574693365656c7531323a67656e6572616c517565737474693130656931316569373930303030656475363a33303230303375313a316574693465656c7531323a67656e6572616c517565737474693230656932306569373930303031656475363a33303230303375313a316574693465656c7531323a67656e6572616c517565737474693330656933316569373930303032656475363a33303230303375313a326574693465656c7531323a67656e6572616c517565737474693430656934306569373930303033656475363a33303230303375313a326574693465656c7531323a67656e6572616c517565737474693530656935306569373930303034656475363a33303230303375313a326574693465656c7531343a6974656d477261646551756573747469366569366569383030303030656475363a33303230303375313a3265746931656c69313031313030303065693130313131303030656931303231303030306569313032313130303065693130333130303030656931303431303030306565656c7531343a6974656d477261646551756573747469366569366569383030303031656475363a33303230303375313a3265746932656c69313031323030303065693130313231303030656931303132323030306569313032323030303065693130323231303030656931303332303030306565656c7531343a6974656d477261646551756573747469366569366569383030303032656475363a33303230303075313a3275363a33303230303375313a3265746933656c69313031333030303065693130313331303030656931303133333030306569313032333030303065693130323331303030656931303233313030316565656c7531343a6974656d477261646551756573747469366569366569383030303033656475363a33303230303875313a3265746934656c693230313030396569323031303132656931303334303030306569313033343130303065693130333434303030656931303434343030306565656c7531343a6974656d477261646551756573747469366569366569383030303034656475363a33303230303975313a3265746935656c693230313031306569323031303133656932303130313665693230313031396569323031303234656931303435323030316565656c7532303a6974656d54797065436f6c6c65637451756573747469356569356569393030303030656475363a33303230303375313a3165746c693330323030316569333033303030656933303331303065693330363034306569343030303030656575383a4d6174657269616c656c7532303a6974656d54797065436f6c6c656374517565737474693130656931306569393030303031656475363a33303230303075313a3275363a33303230303375313a3265746c69333032303031656933303230303265693330323030336569333032303035656933303330303065693330333130306569333033323030656933303630323365693330363034306569343030303030656575383a4d6174657269616c656c7532303a6974656d54797065436f6c6c656374517565737474693230656932306569393030303032656475363a33303230303075313a3275363a33303230303375313a3265746c693330323030306569333032303031656933303230303265693330323030336569333032303035656933303330303065693330333130306569333033323030656933303333303065693330333430306569333036303030656933303630303165693330363032336569333036303234656933303630323565693330363034306569333036303431656933303630343465693430303030306569353030303030656575383a4d6174657269616c656c7532303a6974656d54797065436f6c6c656374517565737474693330656933306569393030303033656475363a33303230303075313a3275363a33303230303375313a3265746c6933303230303065693330323030316569333032303032656933303230303365693330323030346569333032303035656933303230303665693330333030306569333033303031656933303331303065693330333130316569333033323030656933303332303165693330333330306569333033333031656933303334303065693330343030326569333036303030656933303630303165693330363030326569333036303039656933303630323365693330363032346569333036303235656933303630343065693330363034316569333036303433656933303630343465693430303030306569353030303030656575383a4d6174657269616c656c75393a476f6c6451756573747469313030656931353030656931303030303030656475363a33303230303375313a326574693065656c75393a476f6c645175657374746931303030656931353030656931303030303031656475363a33303230303475313a3275363a33303230303675313a316574693065656c75393a476f6c6451756573747469313030303065693138303732656931303030303033656475363a33303230303875313a326574693065656c75393a476f6c64517565737474693130306569313030656931303030303034656475363a33303230303075313a3275363a33303230303375313a326574693165656c75393a476f6c645175657374746931303030656931393330656931303030303035656475363a33303230303475313a3275363a33303230303675313a316574693165656c75393a476f6c6451756573747469313030303065693132353830656931303030303036656475363a33303230303875313a326574693165656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303031656475363a33303330303075313a31657475313a3175313a33656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303032656475363a33303330303075313a31657475313a3275323a3131656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303033656475363a33303330303075313a31657475313a3375323a3231656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303034656475363a33303330303075313a31657475313a3475323a3531656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303035656475363a33303330303075313a31657475313a3575323a3939656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303036656475363a33303330303175313a32657475313a3675323a3234656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303037656475363a33303330303175313a32657475313a3775323a3239656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303038656475363a33303330303175313a32657475313a3875323a3337656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303039656475363a33303330303175313a32657475313a3975333a313134656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303130656475363a33303330303175313a32657475323a313075333a313734656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303131656475363a33303330303275313a33657475323a313175323a3633656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303132656475363a33303330303275313a33657475323a313275323a3636656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303133656475363a33303330303275313a33657475323a313375323a3834656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303134656475363a33303330303275313a33657475323a313475333a313934656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303135656475363a33303330303275313a33657475323a313575333a323631656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303136656475363a33303330303275313a33657475323a313675333a313330656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303137656475363a33303330303275313a33657475323a313775333a313334656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303138656475363a33303330303275313a33657475323a313875333a313538656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303139656475363a33303330303275313a33657475323a313975333a323831656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303230656475363a33303330303275313a33657475323a323075333a333534656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303231656475363a33303330303375313a3465746932316575333a323136656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303232656475363a33303330303375313a34657475323a323275333a323231656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030303233656475363a33303330303375313a3465666932336575333a323431656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303234656475363a33303330303375313a3465746932346575333a333837656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030303235656475363a33303330303375313a3465666932356575333a353136656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030303236656475363a33303330303375313a3465666932366575333a333031656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303237656475363a33303330303375313a3465746932376575333a333036656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030303238656475363a33303330303375313a3465666932386575333a333330656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030303239656475363a33303330303375313a3465666932396575333a353631656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030303330656475363a33303330303375313a3465666933306575333a363736656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030303331656475363a33303330303475313a3565666933316575333a343135656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030303332656475363a33303330303475313a3565666933326575333a343232656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030303333656475363a33303330303475313a3565666933336575333a343736656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030303334656475363a33303330303475313a3565666933346575333a363936656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030303335656475363a33303330303475313a3565666933356575333a373531656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030303336656475363a33303330303475313a3565666933366575333a363036656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030303337656475363a33303330303475313a3565666933376575333a363136656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030303338656475363a33303330303475313a3565666933386575333a363536656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030303339656475363a33303330303475313a3565666933396575333a383036656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030303430656475363a33303330303475313a3565666934306575333a383330656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030303431656475363a33303330303475313a3565666934316575333a383534656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303432656475363a33303331303075313a31657475323a343275313a36656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303433656475363a33303331303075313a31657475323a343375323a3133656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303434656475363a33303331303075313a31657475323a343475323a3232656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303435656475363a33303331303075313a31657475323a343575323a3539656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303436656475363a33303331303075313a31657475323a343675333a313131656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303437656475363a33303331303175313a32657475323a343775323a3333656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303438656475363a33303331303175313a32657475323a343875323a3335656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303439656475363a33303331303175313a32657475323a343975323a3435656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303530656475363a33303331303175313a32657475323a353075333a313236656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303531656475363a33303331303175313a32657475323a353175333a313832656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303532656475363a33303331303275313a33657475323a353275323a3735656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303533656475363a33303331303275313a33657475323a353375323a3738656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303534656475363a33303331303275313a33657475323a353475323a3936656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303535656475363a33303331303275313a33657475323a353575333a323032656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303536656475363a33303331303275313a33657475323a353675333a323736656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303537656475363a33303331303275313a33657475323a353775333a313436656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303538656475363a33303331303275313a33657475323a353875333a313530656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303539656475363a33303331303275313a33657475323a353975333a313636656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303630656475363a33303331303275313a33657475323a363075333a323931656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030303631656475363a33303331303275313a3365666936316575333a333733656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030303632656475363a33303331303375313a3465666936326575333a323331656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303633656475363a33303331303375313a3465746936336575333a323336656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030303634656475363a33303331303375313a3465666936346575333a323536656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303635656475363a33303331303375313a3465746936356575333a343038656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030303636656475363a33303331303375313a3465666936366575333a353433656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030303637656475363a33303331303375313a3465666936376575333a333138656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030303638656475363a33303331303375313a3465666936386575333a333234656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303639656475363a33303331303375313a3465746936396575333a333432656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030303730656475363a33303331303375313a3465666937306575333a353838656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030303731656475363a33303331303375313a3465666937316575333a363836656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030303732656475363a33303331303475313a3565666937326575333a343532656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030303733656475363a33303331303475313a3565666937336575333a343630656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030303734656475363a33303331303475313a3565666937346575333a353030656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030303735656475363a33303331303475313a3565666937356575333a373037656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030303736656475363a33303331303475313a3565666937366575333a373632656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030303737656475363a33303331303475313a3565666937376575333a363336656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030303738656475363a33303331303475313a3565666937386575333a363436656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030303739656475363a33303331303475313a3565666937396575333a363636656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030303830656475363a33303331303475313a3565666938306575333a383138656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030303831656475363a33303331303475313a3565666938316575333a383432656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030303832656475363a33303331303475313a3565666938326575333a383636656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303833656475363a33303332303075313a31657475323a383375313a39656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303834656475363a33303332303075313a31657475323a383475323a3137656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303835656475363a33303332303075313a31657475323a383575323a3235656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303836656475363a33303332303075313a31657475323a383675323a3639656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303837656475363a33303332303075313a31657475323a383775333a313338656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303838656475363a33303332303175313a32657475323a383875323a3339656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303839656475363a33303332303175313a32657475323a383975323a3431656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303930656475363a33303332303175313a32657475323a393075323a3533656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303931656475363a33303332303175313a32657475323a393175333a313632656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030303932656475363a33303332303175313a3265666939326575333a323731656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303933656475363a33303332303275313a33657475323a393375323a3837656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303934656475363a33303332303275313a33657475323a393475323a3930656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303935656475363a33303332303275313a33657475323a393575333a313038656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303936656475363a33303332303275313a33657475323a393675333a333132656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030303937656475363a33303332303275313a3365666939376575333a343834656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303938656475363a33303332303375313a34657475323a393875333a313836656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030303939656475363a33303332303375313a34657475323a393975333a313930656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313030656475363a33303332303375313a346566693130306575333a323236656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313031656475363a33303332303375313a346566693130316575333a353235656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313032656475363a33303332303375313a346566693130326575333a353730656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313033656475363a33303332303475313a356566693130336575333a333630656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313034656475363a33303332303475313a356566693130346575333a333636656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313035656475363a33303332303475313a356566693130356575333a343434656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030313036656475363a33303332303475313a356574693130366575333a373138656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030313037656475363a33303332303475313a356574693130376575333a373733656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030313038656475363a33303333303075313a31657475333a31303875323a3135656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030313039656475363a33303333303075313a31657475333a31303975323a3139656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030313130656475363a33303333303075313a31657475333a31313075323a3331656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030313131656475363a33303333303075313a31657475333a31313175323a3831656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030313132656475363a33303333303075313a31657475333a31313275333a313534656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030313133656475363a33303333303175313a32657475333a31313375323a3437656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030313134656475363a33303333303175313a32657475333a31313475323a3439656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030313135656475363a33303333303175313a32657475333a31313575323a3631656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030313136656475363a33303333303175313a32657475333a31313675333a313738656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313137656475363a33303333303175313a326566693131376575333a323936656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030313138656475363a33303333303275313a33657475333a31313875333a313032656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030313139656475363a33303333303275313a33657475333a31313975333a313035656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030313230656475363a33303333303275313a33657475333a31323075333a313233656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030313231656475363a33303333303275313a33657475333a31323175333a333438656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313232656475363a33303333303275313a336566693132326575333a353038656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030313233656475363a33303333303375313a34657475333a31323375333a323036656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313234656475363a33303333303375313a346566693132346575333a323131656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313235656475363a33303333303375313a346566693132356575333a323636656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313236656475363a33303333303375313a346566693132366575333a353532656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313237656475363a33303333303375313a346566693132376575333a353937656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313238656475363a33303333303475313a356566693132386575333a333934656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030313239656475363a33303333303475313a35657475333a31323975333a343031656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313330656475363a33303333303475313a356566693133306575333a343638656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030313331656475363a33303333303475313a356574693133316575333a373239656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030313332656475363a33303333303475313a356574693133326575333a373834656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030313333656475363a33303334303075313a31657475333a31333375323a3230656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030313334656475363a33303334303075313a31657475333a31333475323a3237656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030313335656475363a33303334303075313a31657475333a31333575323a3433656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030313336656475363a33303334303075313a31657475333a31333675323a3933656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030313337656475363a33303334303075313a31657475333a31333775333a313730656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030313338656475363a33303334303175313a32657475333a31333875323a3535656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030313339656475363a33303334303175313a32657475333a31333975323a3537656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030313430656475363a33303334303175313a32657475333a31343075323a3732656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030313431656475363a33303334303175313a32657475333a31343175333a313938656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030313432656475363a33303334303175313a32657475333a31343275333a333336656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030313433656475363a33303334303275313a33657475333a31343375333a313137656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030313434656475363a33303334303275313a33657475333a31343475333a313230656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030313435656475363a33303334303275313a33657475333a31343575333a313432656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313436656475363a33303334303275313a336566693134366575333a333830656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030313437656475363a33303334303275313a33657475333a31343775333a353334656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030313438656475363a33303334303375313a346574693134386575333a323436656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313439656475363a33303334303375313a346566693134396575333a323531656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313530656475363a33303334303375313a346566693135306575333a323836656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030313531656475363a33303334303375313a346574693135316575333a353739656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030313532656475363a33303334303375313a346574693135326575333a363236656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313533656475363a33303334303475313a356566693135336575333a343239656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030313534656475363a33303334303475313a356574693135346575333a343336656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313535656475363a33303334303475313a356566693135356575333a343932656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313536656475363a33303334303475313a356566693135366575333a373430656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313537656475363a33303334303475313a356566693135376575333a373935656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313538656475363a33303332303475323a31326566693136316575333a333330656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030313539656475363a33303332303475323a31326574693136326575333a333130656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313630656475363a33303332303475323a31326566693136336575333a333130656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313631656475363a33303332303475323a31326566693136346575333a333330656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030313632656475363a33303332303475323a31326574693136356575333a333330656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313633656475363a33303333303475323a31336566693136366575333a333335656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030313634656475363a33303333303475323a31336574693136376575333a333230656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374746931656931656931313030313635656475363a33303333303475323a31336574693136386575333a333230656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313636656475363a33303333303475323a31336566693136396575333a333335656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313637656475363a33303333303475323a31336566693137306575333a333335656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313638656475363a33303330303575323a3530656669313839656933383065656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313639656475363a33303330303575323a3530656669313930656933353565656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313730656475363a33303330303575323a3530656669313931656933353565656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313731656475363a33303330303575323a3530656669313932656933383065656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313732656475363a33303330303575323a3530656669313933656934303065656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313733656475363a33303331303575323a3530656669313934656933383565656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313734656475363a33303331303575323a3530656669313935656933363565656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313735656475363a33303331303575323a3530656669313936656933363565656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313736656475363a33303331303575323a3530656669313937656933383565656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313737656475363a33303331303575323a3530656669313938656933393865656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313738656475363a33303332303575323a3530656669313939656933383065656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313739656475363a33303332303575323a3530656669323030656933363065656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313830656475363a33303332303575323a3530656669323031656933363065656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313831656475363a33303332303575323a3530656669323032656933383065656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313832656475363a33303332303575323a3530656669323033656933393265656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313833656475363a33303333303575323a3530656669323034656933383565656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313834656475363a33303333303575323a3530656669323035656933373065656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313835656475363a33303333303575323a3530656669323036656933373065656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313836656475363a33303333303575323a3530656669323037656933383565656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313837656475363a33303333303575323a3530656669323038656933393465656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313838656475363a33303334303575323a3530656669323039656933393065656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313839656475363a33303334303575323a3530656669323130656933373565656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313930656475363a33303334303575323a3530656669323131656933373565656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313931656475363a33303334303575323a3530656669323132656933393065656c7532353a636f6d62696e6174696f6e45717569706d656e745175657374666931656930656931313030313932656475363a33303334303575323a353065666932313365693339366565656c69313030333332656565"))); - var worldState = new World(MockUtil.MockModernWorldState) - .SetAvatarState(avatarAddress, avatarState); - var stateRootHash = worldState.Trie.Hash; - var tip = new Domain.Model.BlockChain.Block( - BlockHash.FromString("613dfa26e104465790625ae7bc03fc27a64947c02a9377565ec190405ef7154b"), - BlockHash.FromString("36456be15af9a5b9b13a02c7ce1e849ae9cba8781ec309010499cdb93e29237d"), - default(Address), - 0, - Timestamp: DateTimeOffset.UtcNow, - StateRootHash: stateRootHash, - Transactions: ImmutableArray.Empty - ); - BlockChainRepository.Setup(repository => repository.GetTip()) - .Returns(tip); - WorldStateRepository.Setup(repository => repository.GetWorldState(stateRootHash)) - .Returns(worldState); + SetupStatesOnTip(world => world + .SetAvatarState(avatarAddress, avatarState)); string query = $@"query {{ stateQuery {{ @@ -907,24 +825,8 @@ public async Task ActivationKeyNonce(bool trim) random.NextBytes(nonce); var (activationKey, pendingActivationState) = ActivationKey.Create(privateKey, nonce); - var worldState = new World(MockUtil.MockModernWorldState) - .SetLegacyState(activationKey.PendingAddress, pendingActivationState.Serialize()); - var stateRootHash = worldState.Trie.Hash; - - var tip = new Domain.Model.BlockChain.Block( - BlockHash.FromString("613dfa26e104465790625ae7bc03fc27a64947c02a9377565ec190405ef7154b"), - BlockHash.FromString("36456be15af9a5b9b13a02c7ce1e849ae9cba8781ec309010499cdb93e29237d"), - default(Address), - 0, - Timestamp: DateTimeOffset.UtcNow, - StateRootHash: stateRootHash, - Transactions: ImmutableArray.Empty - ); - - BlockChainRepository.Setup(repo => repo.GetTip()) - .Returns(tip); - WorldStateRepository.Setup(repo => repo.GetWorldState(stateRootHash)) - .Returns(worldState); + SetupStatesOnTip(world => world + .SetLegacyState(activationKey.PendingAddress, pendingActivationState.Serialize())); var code = activationKey.Encode(); if (trim) @@ -956,24 +858,8 @@ public async Task ActivationKeyNonce_ThrowError_WithOutdatedCode(string code, st { var activationKey = ActivationKey.Decode(code); - var worldState = new World(MockUtil.MockModernWorldState) - .SetLegacyState(activationKey.PendingAddress, Bencodex.Types.Null.Value); - var stateRootHash = worldState.Trie.Hash; - - var tip = new Domain.Model.BlockChain.Block( - BlockHash.FromString("613dfa26e104465790625ae7bc03fc27a64947c02a9377565ec190405ef7154b"), - BlockHash.FromString("36456be15af9a5b9b13a02c7ce1e849ae9cba8781ec309010499cdb93e29237d"), - default(Address), - 0, - Timestamp: DateTimeOffset.UtcNow, - StateRootHash: stateRootHash, - Transactions: ImmutableArray.Empty - ); - - BlockChainRepository.Setup(repo => repo.GetTip()) - .Returns(tip); - WorldStateRepository.Setup(repo => repo.GetWorldState(stateRootHash)) - .Returns(worldState); + SetupStatesOnTip(world => world + .SetLegacyState(activationKey.PendingAddress, Bencodex.Types.Null.Value)); var query = $"query {{ activationKeyNonce(invitationCode: \"{code}\") }}"; var queryResult = await ExecuteQueryAsync(query); @@ -986,23 +872,8 @@ public async Task ActivationKeyNonce_ThrowError_WithOutdatedCode(string code, st public async Task Balance() { var address = new PrivateKey().Address; - var worldState = new World(MockUtil.MockModernWorldState); - var stateRootHash = worldState.Trie.Hash; - - var tip = new Domain.Model.BlockChain.Block( - BlockHash.FromString("613dfa26e104465790625ae7bc03fc27a64947c02a9377565ec190405ef7154b"), - BlockHash.FromString("36456be15af9a5b9b13a02c7ce1e849ae9cba8781ec309010499cdb93e29237d"), - default(Address), - 0, - Timestamp: DateTimeOffset.UtcNow, - StateRootHash: stateRootHash, - Transactions: ImmutableArray.Empty - ); - BlockChainRepository.Setup(repo => repo.GetTip()) - .Returns(tip); - WorldStateRepository.Setup(repo => repo.GetWorldState(stateRootHash)) - .Returns(worldState); + SetupStatesOnTip(world => world); var query = $@"query {{ stateQuery {{