diff --git a/CHANGELOG.md b/CHANGELOG.md index d87cbd427a..394aec26e9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -62,6 +62,7 @@ older clients. * (client/keys) [\#5889](https://github.com/cosmos/cosmos-sdk/pull/5889) Remove `keys update` command. * (x/evidence) [\#5952](https://github.com/cosmos/cosmos-sdk/pull/5952) Remove CLI and REST handlers for querying `x/evidence` parameters. * (server) [\#5982](https://github.com/cosmos/cosmos-sdk/pull/5982) `--pruning` now must be set to `custom` if you want to customise the granular options. +* (x/gov) [\#7000](https://github.com/cosmos/cosmos-sdk/pull/7000) `ProposalStatus` is now JSON serialized using its protobuf name, so expect names like `PROPOSAL_STATUS_DEPOSIT_PERIOD` as opposed to `DepositPeriod`. ### API Breaking Changes @@ -153,6 +154,8 @@ be used to retrieve the actual proposal `Content`. Also the `NewMsgSubmitProposa * (crypto) [\#6780](https://github.com/cosmos/cosmos-sdk/issues/6780) Move ledger code to its own package. * (modules) [\#6834](https://github.com/cosmos/cosmos-sdk/issues/6834) Add `RegisterInterfaces` method to `AppModuleBasic` to support registration of protobuf interface types. * (modules) [\#6734](https://github.com/cosmos/cosmos-sdk/issues/6834) Add `TxEncodingConfig` parameter to `AppModuleBasic.ValidateGenesis` command to support JSON tx decoding in `genutil`. +* (genesis) [\#7000](https://github.com/cosmos/cosmos-sdk/pull/7000) The root `GenesisState` is now decoded using `encoding/json` instead of amino so `int64` and `uint64` types are now encoded as integers as opposed to strings. + ### Features diff --git a/go.sum b/go.sum index b7c6a06b91..9b4de11cec 100644 --- a/go.sum +++ b/go.sum @@ -41,8 +41,6 @@ github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hC github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da h1:8GUt8eRujhVEGZFFEjBj46YV4rDjvGrNxb0KMWYkL2I= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= -github.com/armon/go-metrics v0.3.3 h1:a9F4rlj7EWWrbj7BYw8J8+x+ZZkJeqzNyRk8hdPF+ro= -github.com/armon/go-metrics v0.3.3/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc= github.com/armon/go-metrics v0.3.4 h1:Xqf+7f2Vhl9tsqDYmXhnXInUdcrtgpRNpIA15/uldSc= github.com/armon/go-metrics v0.3.4/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= diff --git a/proto/cosmos/gov/v1beta1/gov.proto b/proto/cosmos/gov/v1beta1/gov.proto index c6c42d30c5..baa2e64336 100644 --- a/proto/cosmos/gov/v1beta1/gov.proto +++ b/proto/cosmos/gov/v1beta1/gov.proto @@ -79,8 +79,6 @@ message Proposal { // ProposalStatus is a type alias that represents a proposal status as a byte enum ProposalStatus { - option (gogoproto.enum_stringer) = false; - option (gogoproto.goproto_enum_stringer) = false; option (gogoproto.goproto_enum_prefix) = false; // PROPOSAL_STATUS_UNSPECIFIED defines the default propopsal status. diff --git a/server/export.go b/server/export.go index 5be74127d7..fed418b97a 100644 --- a/server/export.go +++ b/server/export.go @@ -3,6 +3,7 @@ package server // DONTCOVER import ( + "encoding/json" "fmt" "io/ioutil" "os" @@ -10,9 +11,7 @@ import ( "github.com/spf13/cobra" tmtypes "github.com/tendermint/tendermint/types" - "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" - "github.com/cosmos/cosmos-sdk/codec" "github.com/cosmos/cosmos-sdk/server/types" sdk "github.com/cosmos/cosmos-sdk/types" ) @@ -29,9 +28,6 @@ func ExportCmd(appExporter types.AppExporter, defaultNodeHome string) *cobra.Com Use: "export", Short: "Export state to JSON", RunE: func(cmd *cobra.Command, args []string) error { - clientCtx := client.GetClientContextFromCmd(cmd) - cdc := clientCtx.JSONMarshaler - serverCtx := GetServerContextFromCmd(cmd) config := serverCtx.Config @@ -94,7 +90,10 @@ func ExportCmd(appExporter types.AppExporter, defaultNodeHome string) *cobra.Com }, } - encoded, err := codec.MarshalJSONIndent(cdc, doc) + // NOTE: for now we're just using standard JSON marshaling for the root GenesisDoc. + // These types are in Tendermint, don't support proto and as far as we know, don't need it. + // All of the protobuf/amino state is inside AppState + encoded, err := json.MarshalIndent(doc, "", " ") if err != nil { return err } diff --git a/server/export_test.go b/server/export_test.go index 7b1df33fec..5858078126 100644 --- a/server/export_test.go +++ b/server/export_test.go @@ -19,7 +19,6 @@ import ( "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" - "github.com/cosmos/cosmos-sdk/codec" "github.com/cosmos/cosmos-sdk/simapp" "github.com/cosmos/cosmos-sdk/testutil" "github.com/cosmos/cosmos-sdk/types/errors" @@ -36,14 +35,14 @@ func TestExportCmd_ConsensusParams(t *testing.T) { } db := dbm.NewMemDB() - app := simapp.NewSimApp(log.NewTMLogger(log.NewSyncWriter(os.Stdout)), db, nil, true, map[int64]bool{}, tempDir, 0) + app := simapp.NewSimApp(log.NewTMLogger(log.NewSyncWriter(os.Stdout)), db, nil, true, map[int64]bool{}, tempDir, 0, simapp.MakeEncodingConfig()) serverCtx := NewDefaultContext() serverCtx.Config.RootDir = tempDir - clientCtx := client.Context{}.WithJSONMarshaler(app.LegacyAmino()) + clientCtx := client.Context{}.WithJSONMarshaler(app.AppCodec()) - genDoc := newDefaultGenesisDoc(app.LegacyAmino()) + genDoc := newDefaultGenesisDoc() err = saveGenesisFile(genDoc, serverCtx.Config.GenesisFile()) app.InitChain( @@ -71,7 +70,7 @@ func TestExportCmd_ConsensusParams(t *testing.T) { require.NoError(t, cmd.ExecuteContext(ctx)) var exportedGenDoc tmtypes.GenesisDoc - err = app.LegacyAmino().UnmarshalJSON(output.Bytes(), &exportedGenDoc) + err = json.Unmarshal(output.Bytes(), &exportedGenDoc) if err != nil { t.Fatalf("error unmarshaling exported genesis doc: %s", err) } @@ -90,10 +89,10 @@ func createConfigFolder(dir string) error { return os.Mkdir(path.Join(dir, "config"), 0700) } -func newDefaultGenesisDoc(cdc *codec.LegacyAmino) *tmtypes.GenesisDoc { +func newDefaultGenesisDoc() *tmtypes.GenesisDoc { genesisState := simapp.NewDefaultGenesisState() - stateBytes, err := codec.MarshalJSONIndent(cdc, genesisState) + stateBytes, err := json.MarshalIndent(genesisState, "", " ") if err != nil { panic(err) } diff --git a/simapp/app.go b/simapp/app.go index 72894458f8..c8f81ea62f 100644 --- a/simapp/app.go +++ b/simapp/app.go @@ -4,8 +4,6 @@ import ( "io" "os" - "github.com/cosmos/cosmos-sdk/codec/types" - abci "github.com/tendermint/tendermint/abci/types" "github.com/tendermint/tendermint/libs/log" tmos "github.com/tendermint/tendermint/libs/os" @@ -14,7 +12,9 @@ import ( "github.com/cosmos/cosmos-sdk/baseapp" "github.com/cosmos/cosmos-sdk/client/rpc" "github.com/cosmos/cosmos-sdk/codec" + "github.com/cosmos/cosmos-sdk/codec/types" "github.com/cosmos/cosmos-sdk/server/api" + simappparams "github.com/cosmos/cosmos-sdk/simapp/params" "github.com/cosmos/cosmos-sdk/std" "github.com/cosmos/cosmos-sdk/testutil/testdata" sdk "github.com/cosmos/cosmos-sdk/types" @@ -169,11 +169,10 @@ type SimApp struct { // NewSimApp returns a reference to an initialized SimApp. func NewSimApp( logger log.Logger, db dbm.DB, traceStore io.Writer, loadLatest bool, skipUpgradeHeights map[int64]bool, - homePath string, invCheckPeriod uint, baseAppOptions ...func(*baseapp.BaseApp), + homePath string, invCheckPeriod uint, encodingConfig simappparams.EncodingConfig, baseAppOptions ...func(*baseapp.BaseApp), ) *SimApp { // TODO: Remove cdc in favor of appCodec once all modules are migrated. - encodingConfig := MakeEncodingConfig() appCodec := encodingConfig.Marshaler cdc := encodingConfig.Amino interfaceRegistry := encodingConfig.InterfaceRegistry @@ -417,7 +416,7 @@ func (app *SimApp) EndBlocker(ctx sdk.Context, req abci.RequestEndBlock) abci.Re func (app *SimApp) InitChainer(ctx sdk.Context, req abci.RequestInitChain) abci.ResponseInitChain { var genesisState GenesisState app.cdc.MustUnmarshalJSON(req.AppStateBytes, &genesisState) - return app.mm.InitGenesis(ctx, app.cdc, genesisState) + return app.mm.InitGenesis(ctx, app.appCodec, genesisState) } // LoadHeight loads a particular height diff --git a/simapp/app_test.go b/simapp/app_test.go index 7481c5e363..6d593f176f 100644 --- a/simapp/app_test.go +++ b/simapp/app_test.go @@ -15,7 +15,7 @@ import ( func TestSimAppExport(t *testing.T) { db := dbm.NewMemDB() - app := NewSimApp(log.NewTMLogger(log.NewSyncWriter(os.Stdout)), db, nil, true, map[int64]bool{}, DefaultNodeHome, 0) + app := NewSimApp(log.NewTMLogger(log.NewSyncWriter(os.Stdout)), db, nil, true, map[int64]bool{}, DefaultNodeHome, 0, MakeEncodingConfig()) genesisState := NewDefaultGenesisState() stateBytes, err := codec.MarshalJSONIndent(app.LegacyAmino(), genesisState) @@ -31,7 +31,7 @@ func TestSimAppExport(t *testing.T) { app.Commit() // Making a new app object with the db, so that initchain hasn't been called - app2 := NewSimApp(log.NewTMLogger(log.NewSyncWriter(os.Stdout)), db, nil, true, map[int64]bool{}, DefaultNodeHome, 0) + app2 := NewSimApp(log.NewTMLogger(log.NewSyncWriter(os.Stdout)), db, nil, true, map[int64]bool{}, DefaultNodeHome, 0, MakeEncodingConfig()) _, _, _, err = app2.ExportAppStateAndValidators(false, []string{}) require.NoError(t, err, "ExportAppStateAndValidators should not have an error") } @@ -39,7 +39,7 @@ func TestSimAppExport(t *testing.T) { // ensure that blocked addresses are properly set in bank keeper func TestBlockedAddrs(t *testing.T) { db := dbm.NewMemDB() - app := NewSimApp(log.NewTMLogger(log.NewSyncWriter(os.Stdout)), db, nil, true, map[int64]bool{}, DefaultNodeHome, 0) + app := NewSimApp(log.NewTMLogger(log.NewSyncWriter(os.Stdout)), db, nil, true, map[int64]bool{}, DefaultNodeHome, 0, MakeEncodingConfig()) for acc := range maccPerms { require.Equal(t, !allowedReceivingModAcc[acc], app.BankKeeper.BlockedAddr(app.AccountKeeper.GetModuleAddress(acc))) diff --git a/simapp/export.go b/simapp/export.go index 363bc13954..6731306585 100644 --- a/simapp/export.go +++ b/simapp/export.go @@ -7,7 +7,6 @@ import ( abci "github.com/tendermint/tendermint/abci/types" tmtypes "github.com/tendermint/tendermint/types" - "github.com/cosmos/cosmos-sdk/codec" sdk "github.com/cosmos/cosmos-sdk/types" slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" "github.com/cosmos/cosmos-sdk/x/staking" @@ -28,8 +27,8 @@ func (app *SimApp) ExportAppStateAndValidators( app.prepForZeroHeightGenesis(ctx, jailWhiteList) } - genState := app.mm.ExportGenesis(ctx, app.cdc) - appState, err = codec.MarshalJSONIndent(app.cdc, genState) + genState := app.mm.ExportGenesis(ctx, app.appCodec) + appState, err = json.MarshalIndent(genState, "", " ") if err != nil { return nil, nil, nil, err } diff --git a/simapp/genesis.go b/simapp/genesis.go index d3ff8cda93..5a8f18b1aa 100644 --- a/simapp/genesis.go +++ b/simapp/genesis.go @@ -2,8 +2,6 @@ package simapp import ( "encoding/json" - - "github.com/cosmos/cosmos-sdk/std" ) // The genesis state of the blockchain is represented here as a map of raw json @@ -17,6 +15,6 @@ type GenesisState map[string]json.RawMessage // NewDefaultGenesisState generates the default state for the application. func NewDefaultGenesisState() GenesisState { - cdc := std.MakeCodec(ModuleBasics) - return ModuleBasics.DefaultGenesis(cdc) + encCfg := MakeEncodingConfig() + return ModuleBasics.DefaultGenesis(encCfg.Marshaler) } diff --git a/simapp/sim_bench_test.go b/simapp/sim_bench_test.go index d60dc5265d..902e6184b8 100644 --- a/simapp/sim_bench_test.go +++ b/simapp/sim_bench_test.go @@ -26,7 +26,7 @@ func BenchmarkFullAppSimulation(b *testing.B) { } }() - app := NewSimApp(logger, db, nil, true, map[int64]bool{}, DefaultNodeHome, FlagPeriodValue, interBlockCacheOpt()) + app := NewSimApp(logger, db, nil, true, map[int64]bool{}, DefaultNodeHome, FlagPeriodValue, MakeEncodingConfig(), interBlockCacheOpt()) // run randomized simulation _, simParams, simErr := simulation.SimulateFromSeed( @@ -65,7 +65,7 @@ func BenchmarkInvariants(b *testing.B) { } }() - app := NewSimApp(logger, db, nil, true, map[int64]bool{}, DefaultNodeHome, FlagPeriodValue, interBlockCacheOpt()) + app := NewSimApp(logger, db, nil, true, map[int64]bool{}, DefaultNodeHome, FlagPeriodValue, MakeEncodingConfig(), interBlockCacheOpt()) // run randomized simulation _, simParams, simErr := simulation.SimulateFromSeed( diff --git a/simapp/sim_test.go b/simapp/sim_test.go index 7d84072f8a..217446baaa 100644 --- a/simapp/sim_test.go +++ b/simapp/sim_test.go @@ -67,7 +67,7 @@ func TestFullAppSimulation(t *testing.T) { require.NoError(t, os.RemoveAll(dir)) }() - app := NewSimApp(logger, db, nil, true, map[int64]bool{}, DefaultNodeHome, FlagPeriodValue, fauxMerkleModeOpt) + app := NewSimApp(logger, db, nil, true, map[int64]bool{}, DefaultNodeHome, FlagPeriodValue, MakeEncodingConfig(), fauxMerkleModeOpt) require.Equal(t, "SimApp", app.Name()) // run randomized simulation @@ -99,7 +99,7 @@ func TestAppImportExport(t *testing.T) { require.NoError(t, os.RemoveAll(dir)) }() - app := NewSimApp(logger, db, nil, true, map[int64]bool{}, DefaultNodeHome, FlagPeriodValue, fauxMerkleModeOpt) + app := NewSimApp(logger, db, nil, true, map[int64]bool{}, DefaultNodeHome, FlagPeriodValue, MakeEncodingConfig(), fauxMerkleModeOpt) require.Equal(t, "SimApp", app.Name()) // Run randomized simulation @@ -133,7 +133,7 @@ func TestAppImportExport(t *testing.T) { require.NoError(t, os.RemoveAll(newDir)) }() - newApp := NewSimApp(log.NewNopLogger(), newDB, nil, true, map[int64]bool{}, DefaultNodeHome, FlagPeriodValue, fauxMerkleModeOpt) + newApp := NewSimApp(log.NewNopLogger(), newDB, nil, true, map[int64]bool{}, DefaultNodeHome, FlagPeriodValue, MakeEncodingConfig(), fauxMerkleModeOpt) require.Equal(t, "SimApp", newApp.Name()) var genesisState GenesisState @@ -190,7 +190,7 @@ func TestAppSimulationAfterImport(t *testing.T) { require.NoError(t, os.RemoveAll(dir)) }() - app := NewSimApp(logger, db, nil, true, map[int64]bool{}, DefaultNodeHome, FlagPeriodValue, fauxMerkleModeOpt) + app := NewSimApp(logger, db, nil, true, map[int64]bool{}, DefaultNodeHome, FlagPeriodValue, MakeEncodingConfig(), fauxMerkleModeOpt) require.Equal(t, "SimApp", app.Name()) // Run randomized simulation @@ -229,7 +229,7 @@ func TestAppSimulationAfterImport(t *testing.T) { require.NoError(t, os.RemoveAll(newDir)) }() - newApp := NewSimApp(log.NewNopLogger(), newDB, nil, true, map[int64]bool{}, DefaultNodeHome, FlagPeriodValue, fauxMerkleModeOpt) + newApp := NewSimApp(log.NewNopLogger(), newDB, nil, true, map[int64]bool{}, DefaultNodeHome, FlagPeriodValue, MakeEncodingConfig(), fauxMerkleModeOpt) require.Equal(t, "SimApp", newApp.Name()) newApp.InitChain(abci.RequestInitChain{ @@ -274,7 +274,7 @@ func TestAppStateDeterminism(t *testing.T) { } db := dbm.NewMemDB() - app := NewSimApp(logger, db, nil, true, map[int64]bool{}, DefaultNodeHome, FlagPeriodValue, interBlockCacheOpt()) + app := NewSimApp(logger, db, nil, true, map[int64]bool{}, DefaultNodeHome, FlagPeriodValue, MakeEncodingConfig(), interBlockCacheOpt()) fmt.Printf( "running non-determinism simulation; seed %d: %d/%d, attempt: %d/%d\n", diff --git a/simapp/simd/cmd/root.go b/simapp/simd/cmd/root.go index 22d45cb389..1257648040 100644 --- a/simapp/simd/cmd/root.go +++ b/simapp/simd/cmd/root.go @@ -6,6 +6,8 @@ import ( "io" "os" + "github.com/cosmos/cosmos-sdk/codec" + "github.com/spf13/cast" "github.com/spf13/cobra" abci "github.com/tendermint/tendermint/abci/types" @@ -77,12 +79,12 @@ func init() { authclient.Codec = encodingConfig.Marshaler rootCmd.AddCommand( - genutilcli.InitCmd(simapp.ModuleBasics, simapp.DefaultNodeHome), - genutilcli.CollectGenTxsCmd(banktypes.GenesisBalancesIterator{}, simapp.DefaultNodeHome), + withProtoJSON(genutilcli.InitCmd(simapp.ModuleBasics, simapp.DefaultNodeHome)), + withProtoJSON(genutilcli.CollectGenTxsCmd(banktypes.GenesisBalancesIterator{}, simapp.DefaultNodeHome)), genutilcli.MigrateGenesisCmd(), - genutilcli.GenTxCmd(simapp.ModuleBasics, encodingConfig.TxConfig, banktypes.GenesisBalancesIterator{}, simapp.DefaultNodeHome), - genutilcli.ValidateGenesisCmd(simapp.ModuleBasics, encodingConfig.TxConfig), - AddGenesisAccountCmd(simapp.DefaultNodeHome), + withProtoJSON(genutilcli.GenTxCmd(simapp.ModuleBasics, encodingConfig.TxConfig, banktypes.GenesisBalancesIterator{}, simapp.DefaultNodeHome)), + withProtoJSON(genutilcli.ValidateGenesisCmd(simapp.ModuleBasics, encodingConfig.TxConfig)), + withProtoJSON(AddGenesisAccountCmd(simapp.DefaultNodeHome)), tmcli.NewCompletionCmd(rootCmd, true), testnetCmd(simapp.ModuleBasics, banktypes.GenesisBalancesIterator{}), debug.Cmd(), @@ -171,6 +173,7 @@ func newApp(logger log.Logger, db dbm.DB, traceStore io.Writer, appOpts serverty logger, db, traceStore, true, skipUpgradeHeights, cast.ToString(appOpts.Get(flags.FlagHome)), cast.ToUint(appOpts.Get(server.FlagInvCheckPeriod)), + encodingConfig, baseapp.SetPruning(pruningOpts), baseapp.SetMinGasPrices(cast.ToString(appOpts.Get(server.FlagMinGasPrices))), baseapp.SetHaltHeight(cast.ToUint64(appOpts.Get(server.FlagHaltHeight))), @@ -184,16 +187,42 @@ func exportAppStateAndTMValidators( logger log.Logger, db dbm.DB, traceStore io.Writer, height int64, forZeroHeight bool, jailWhiteList []string, ) (json.RawMessage, []tmtypes.GenesisValidator, *abci.ConsensusParams, error) { + encCfg := simapp.MakeEncodingConfig() + encCfg.Marshaler = codec.NewProtoCodec(encCfg.InterfaceRegistry) var simApp *simapp.SimApp if height != -1 { - simApp = simapp.NewSimApp(logger, db, traceStore, false, map[int64]bool{}, "", uint(1)) + simApp = simapp.NewSimApp(logger, db, traceStore, false, map[int64]bool{}, "", uint(1), encCfg) if err := simApp.LoadHeight(height); err != nil { return nil, nil, nil, err } } else { - simApp = simapp.NewSimApp(logger, db, traceStore, true, map[int64]bool{}, "", uint(1)) + simApp = simapp.NewSimApp(logger, db, traceStore, true, map[int64]bool{}, "", uint(1), encCfg) } return simApp.ExportAppStateAndValidators(forZeroHeight, jailWhiteList) } + +// This is a temporary command middleware to enable proto JSON marshaling for testing. +// Once proto JSON works everywhere we can remove this and set ProtoCodec as default +func withProtoJSON(command *cobra.Command) *cobra.Command { + existing := command.PersistentPreRunE + if existing != nil { + command.PersistentPreRunE = func(cmd *cobra.Command, args []string) error { + err := existing(cmd, args) + if err != nil { + return err + } + return setProtoJSON(cmd, args) + } + } else { + command.PersistentPreRunE = setProtoJSON + } + return command +} + +func setProtoJSON(cmd *cobra.Command, _ []string) error { + clientCtx := client.GetClientContextFromCmd(cmd) + clientCtx = clientCtx.WithJSONMarshaler(codec.NewProtoCodec(clientCtx.InterfaceRegistry)) + return client.SetCmdClientContext(cmd, clientCtx) +} diff --git a/simapp/test_helpers.go b/simapp/test_helpers.go index 2f12ccaafc..0ec48a9bef 100644 --- a/simapp/test_helpers.go +++ b/simapp/test_helpers.go @@ -3,6 +3,7 @@ package simapp import ( "bytes" "encoding/hex" + "encoding/json" "fmt" "strconv" "testing" @@ -48,7 +49,7 @@ var DefaultConsensusParams = &abci.ConsensusParams{ // Setup initializes a new SimApp. A Nop logger is set in SimApp. func Setup(isCheckTx bool) *SimApp { db := dbm.NewMemDB() - app := NewSimApp(log.NewNopLogger(), db, nil, true, map[int64]bool{}, DefaultNodeHome, 5) + app := NewSimApp(log.NewNopLogger(), db, nil, true, map[int64]bool{}, DefaultNodeHome, 5, MakeEncodingConfig()) if !isCheckTx { // init chain must be called to stop deliverState from being nil genesisState := NewDefaultGenesisState() @@ -76,7 +77,7 @@ func Setup(isCheckTx bool) *SimApp { // account. A Nop logger is set in SimApp. func SetupWithGenesisValSet(t *testing.T, valSet *tmtypes.ValidatorSet, genAccs []authtypes.GenesisAccount, balances ...banktypes.Balance) *SimApp { db := dbm.NewMemDB() - app := NewSimApp(log.NewNopLogger(), db, nil, true, map[int64]bool{}, DefaultNodeHome, 5) + app := NewSimApp(log.NewNopLogger(), db, nil, true, map[int64]bool{}, DefaultNodeHome, 5, MakeEncodingConfig()) genesisState := NewDefaultGenesisState() @@ -150,13 +151,13 @@ func SetupWithGenesisValSet(t *testing.T, valSet *tmtypes.ValidatorSet, genAccs // accounts and possible balances. func SetupWithGenesisAccounts(genAccs []authtypes.GenesisAccount, balances ...banktypes.Balance) *SimApp { db := dbm.NewMemDB() - app := NewSimApp(log.NewNopLogger(), db, nil, true, map[int64]bool{}, DefaultNodeHome, 0) + app := NewSimApp(log.NewNopLogger(), db, nil, true, map[int64]bool{}, DefaultNodeHome, 0, MakeEncodingConfig()) // initialize the chain with the passed in genesis accounts genesisState := NewDefaultGenesisState() authGenesis := authtypes.NewGenesisState(authtypes.DefaultParams(), genAccs) - genesisState[authtypes.ModuleName] = app.LegacyAmino().MustMarshalJSON(authGenesis) + genesisState[authtypes.ModuleName] = app.AppCodec().MustMarshalJSON(authGenesis) totalSupply := sdk.NewCoins() for _, b := range balances { @@ -164,9 +165,9 @@ func SetupWithGenesisAccounts(genAccs []authtypes.GenesisAccount, balances ...ba } bankGenesis := banktypes.NewGenesisState(banktypes.DefaultGenesisState().Params, balances, totalSupply, []banktypes.Metadata{}) - genesisState[banktypes.ModuleName] = app.LegacyAmino().MustMarshalJSON(bankGenesis) + genesisState[banktypes.ModuleName] = app.AppCodec().MustMarshalJSON(bankGenesis) - stateBytes, err := codec.MarshalJSONIndent(app.LegacyAmino(), genesisState) + stateBytes, err := json.MarshalIndent(genesisState, "", " ") if err != nil { panic(err) } diff --git a/testutil/network/network.go b/testutil/network/network.go index 71a7bc7d50..67c68e462b 100644 --- a/testutil/network/network.go +++ b/testutil/network/network.go @@ -53,6 +53,7 @@ type AppConstructor = func(val Validator) servertypes.Application func NewSimApp(val Validator) servertypes.Application { return simapp.NewSimApp( val.Ctx.Logger, dbm.NewMemDB(), nil, true, make(map[int64]bool), val.Ctx.Config.RootDir, 0, + simapp.MakeEncodingConfig(), baseapp.SetPruning(storetypes.NewPruningOptionsFromString(val.AppConfig.Pruning)), baseapp.SetMinGasPrices(val.AppConfig.MinGasPrices), ) diff --git a/testutil/network/util.go b/testutil/network/util.go index 59ec3dca43..952f7a8d0d 100644 --- a/testutil/network/util.go +++ b/testutil/network/util.go @@ -1,6 +1,7 @@ package network import ( + "encoding/json" "path/filepath" "time" @@ -13,7 +14,6 @@ import ( "github.com/tendermint/tendermint/types" tmtime "github.com/tendermint/tendermint/types/time" - "github.com/cosmos/cosmos-sdk/codec" "github.com/cosmos/cosmos-sdk/server/api" servergrpc "github.com/cosmos/cosmos-sdk/server/grpc" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" @@ -142,16 +142,16 @@ func initGenFiles(cfg Config, genAccounts []authtypes.GenesisAccount, genBalance } authGenState.Accounts = accounts - cfg.GenesisState[authtypes.ModuleName] = cfg.Codec.MustMarshalJSON(authGenState) + cfg.GenesisState[authtypes.ModuleName] = cfg.Codec.MustMarshalJSON(&authGenState) // set the balances in the genesis state var bankGenState banktypes.GenesisState cfg.Codec.MustUnmarshalJSON(cfg.GenesisState[banktypes.ModuleName], &bankGenState) bankGenState.Balances = genBalances - cfg.GenesisState[banktypes.ModuleName] = cfg.Codec.MustMarshalJSON(bankGenState) + cfg.GenesisState[banktypes.ModuleName] = cfg.Codec.MustMarshalJSON(&bankGenState) - appGenStateJSON, err := codec.MarshalJSONIndent(cfg.Codec, cfg.GenesisState) + appGenStateJSON, err := json.MarshalIndent(cfg.GenesisState, "", " ") if err != nil { return err } diff --git a/x/auth/genesis.go b/x/auth/genesis.go index a0a2a96001..851b588083 100644 --- a/x/auth/genesis.go +++ b/x/auth/genesis.go @@ -28,7 +28,7 @@ func InitGenesis(ctx sdk.Context, ak keeper.AccountKeeper, data types.GenesisSta } // ExportGenesis returns a GenesisState for a given context and keeper -func ExportGenesis(ctx sdk.Context, ak keeper.AccountKeeper) types.GenesisState { +func ExportGenesis(ctx sdk.Context, ak keeper.AccountKeeper) *types.GenesisState { params := ak.GetParams(ctx) var genAccounts types.GenesisAccounts diff --git a/x/auth/types/codec.go b/x/auth/types/codec.go index 7b51fd94a2..f309c9c789 100644 --- a/x/auth/types/codec.go +++ b/x/auth/types/codec.go @@ -26,6 +26,13 @@ func RegisterInterfaces(registry types.InterfaceRegistry) { &BaseAccount{}, &ModuleAccount{}, ) + + registry.RegisterInterface( + "cosmos.auth.GenesisAccount", + (*GenesisAccount)(nil), + &BaseAccount{}, + &ModuleAccount{}, + ) } // RegisterKeyTypeCodec registers an external concrete type defined in @@ -37,7 +44,7 @@ func RegisterKeyTypeCodec(o interface{}, name string) { var ( amino = codec.New() - ModuleCdc = codec.NewHybridCodec(amino, types.NewInterfaceRegistry()) + ModuleCdc = codec.NewAminoCodec(amino) ) func init() { diff --git a/x/auth/types/common_test.go b/x/auth/types/common_test.go index 4f361059ad..5c6ff0fb64 100644 --- a/x/auth/types/common_test.go +++ b/x/auth/types/common_test.go @@ -5,6 +5,6 @@ import ( ) var ( - app = simapp.Setup(false) - appCodec, _ = simapp.MakeCodecs() + app = simapp.Setup(false) + appCodec, legacyAmino = simapp.MakeCodecs() ) diff --git a/x/auth/types/genesis.go b/x/auth/types/genesis.go index 51e7871500..9dc9e3323b 100644 --- a/x/auth/types/genesis.go +++ b/x/auth/types/genesis.go @@ -14,12 +14,12 @@ import ( var _ types.UnpackInterfacesMessage = GenesisState{} // NewGenesisState - Create a new genesis state -func NewGenesisState(params Params, accounts GenesisAccounts) GenesisState { +func NewGenesisState(params Params, accounts GenesisAccounts) *GenesisState { genAccounts, err := PackAccounts(accounts) if err != nil { panic(err) } - return GenesisState{ + return &GenesisState{ Params: params, Accounts: genAccounts, } @@ -38,7 +38,7 @@ func (g GenesisState) UnpackInterfaces(unpacker types.AnyUnpacker) error { } // DefaultGenesisState - Return a default genesis state -func DefaultGenesisState() GenesisState { +func DefaultGenesisState() *GenesisState { return NewGenesisState(DefaultParams(), GenesisAccounts{}) } diff --git a/x/auth/vesting/types/codec.go b/x/auth/vesting/types/codec.go index 6f22a9f4bc..4edd9acdeb 100644 --- a/x/auth/vesting/types/codec.go +++ b/x/auth/vesting/types/codec.go @@ -27,12 +27,20 @@ func RegisterInterfaces(registry types.InterfaceRegistry) { &DelayedVestingAccount{}, &PeriodicVestingAccount{}, ) + registry.RegisterImplementations( (*authtypes.AccountI)(nil), &DelayedVestingAccount{}, &ContinuousVestingAccount{}, &PeriodicVestingAccount{}, ) + + registry.RegisterImplementations( + (*authtypes.GenesisAccount)(nil), + &DelayedVestingAccount{}, + &ContinuousVestingAccount{}, + &PeriodicVestingAccount{}, + ) } var amino = codec.New() diff --git a/x/bank/keeper/genesis.go b/x/bank/keeper/genesis.go index 185084f620..35dea7068b 100644 --- a/x/bank/keeper/genesis.go +++ b/x/bank/keeper/genesis.go @@ -34,7 +34,7 @@ func (k BaseKeeper) InitGenesis(ctx sdk.Context, genState types.GenesisState) { } // ExportGenesis returns the bank module's genesis state. -func (k BaseKeeper) ExportGenesis(ctx sdk.Context) types.GenesisState { +func (k BaseKeeper) ExportGenesis(ctx sdk.Context) *types.GenesisState { return types.NewGenesisState( k.GetParams(ctx), k.GetAccountsBalances(ctx), diff --git a/x/bank/keeper/keeper.go b/x/bank/keeper/keeper.go index 0856df181b..9a1dc2fcc4 100644 --- a/x/bank/keeper/keeper.go +++ b/x/bank/keeper/keeper.go @@ -23,7 +23,7 @@ type Keeper interface { SendKeeper InitGenesis(sdk.Context, types.GenesisState) - ExportGenesis(sdk.Context) types.GenesisState + ExportGenesis(sdk.Context) *types.GenesisState GetSupply(ctx sdk.Context) exported.SupplyI SetSupply(ctx sdk.Context, supply exported.SupplyI) diff --git a/x/bank/types/genesis.go b/x/bank/types/genesis.go index b81948c54c..cc70b8c572 100644 --- a/x/bank/types/genesis.go +++ b/x/bank/types/genesis.go @@ -46,8 +46,8 @@ func ValidateGenesis(data GenesisState) error { } // NewGenesisState creates a new genesis state. -func NewGenesisState(params Params, balances []Balance, supply sdk.Coins, denomMetaData []Metadata) GenesisState { - return GenesisState{ +func NewGenesisState(params Params, balances []Balance, supply sdk.Coins, denomMetaData []Metadata) *GenesisState { + return &GenesisState{ Params: params, Balances: balances, Supply: supply, @@ -56,20 +56,20 @@ func NewGenesisState(params Params, balances []Balance, supply sdk.Coins, denomM } // DefaultGenesisState returns a default bank module genesis state. -func DefaultGenesisState() GenesisState { +func DefaultGenesisState() *GenesisState { return NewGenesisState(DefaultParams(), []Balance{}, DefaultSupply().GetTotal(), []Metadata{}) } // GetGenesisStateFromAppState returns x/bank GenesisState given raw application // genesis state. -func GetGenesisStateFromAppState(cdc codec.JSONMarshaler, appState map[string]json.RawMessage) GenesisState { +func GetGenesisStateFromAppState(cdc codec.JSONMarshaler, appState map[string]json.RawMessage) *GenesisState { var genesisState GenesisState if appState[ModuleName] != nil { cdc.MustUnmarshalJSON(appState[ModuleName], &genesisState) } - return genesisState + return &genesisState } // GenesisAccountIterator implements genesis account iteration. diff --git a/x/capability/genesis.go b/x/capability/genesis.go index 3122a2a55d..d733efa86b 100644 --- a/x/capability/genesis.go +++ b/x/capability/genesis.go @@ -19,7 +19,7 @@ func InitGenesis(ctx sdk.Context, k keeper.Keeper, genState types.GenesisState) } // ExportGenesis returns the capability module's exported genesis. -func ExportGenesis(ctx sdk.Context, k keeper.Keeper) types.GenesisState { +func ExportGenesis(ctx sdk.Context, k keeper.Keeper) *types.GenesisState { index := k.GetLatestIndex(ctx) owners := []types.GenesisOwners{} @@ -36,7 +36,7 @@ func ExportGenesis(ctx sdk.Context, k keeper.Keeper) types.GenesisState { owners = append(owners, genOwner) } - return types.GenesisState{ + return &types.GenesisState{ Index: index, Owners: owners, } diff --git a/x/capability/types/genesis.go b/x/capability/types/genesis.go index 609de701b8..95a734826b 100644 --- a/x/capability/types/genesis.go +++ b/x/capability/types/genesis.go @@ -9,8 +9,8 @@ import ( const DefaultIndex uint64 = 1 // DefaultGenesis returns the default Capability genesis state -func DefaultGenesis() GenesisState { - return GenesisState{ +func DefaultGenesis() *GenesisState { + return &GenesisState{ Index: DefaultIndex, Owners: []GenesisOwners{}, } diff --git a/x/capability/types/genesis_test.go b/x/capability/types/genesis_test.go index 5741de1ac2..0820ba4a36 100644 --- a/x/capability/types/genesis_test.go +++ b/x/capability/types/genesis_test.go @@ -120,7 +120,7 @@ func TestValidateGenesis(t *testing.T) { for _, tc := range testCases { tc := tc genState := DefaultGenesis() - tc.malleate(&genState) + tc.malleate(genState) err := genState.Validate() if tc.expPass { require.NoError(t, err, tc.name) diff --git a/x/crisis/handler_test.go b/x/crisis/handler_test.go index bd2752704e..9697884683 100644 --- a/x/crisis/handler_test.go +++ b/x/crisis/handler_test.go @@ -28,7 +28,7 @@ var ( func createTestApp() (*simapp.SimApp, sdk.Context, []sdk.AccAddress) { db := dbm.NewMemDB() - app := simapp.NewSimApp(log.NewNopLogger(), db, nil, true, map[int64]bool{}, simapp.DefaultNodeHome, 1) + app := simapp.NewSimApp(log.NewNopLogger(), db, nil, true, map[int64]bool{}, simapp.DefaultNodeHome, 1, simapp.MakeEncodingConfig()) ctx := app.NewContext(true, abci.Header{}) constantFee := sdk.NewInt64Coin(sdk.DefaultBondDenom, 10) diff --git a/x/crisis/keeper/genesis.go b/x/crisis/keeper/genesis.go index 2426217ed2..8420201d4e 100644 --- a/x/crisis/keeper/genesis.go +++ b/x/crisis/keeper/genesis.go @@ -6,12 +6,12 @@ import ( ) // new crisis genesis -func (k Keeper) InitGenesis(ctx sdk.Context, data types.GenesisState) { +func (k Keeper) InitGenesis(ctx sdk.Context, data *types.GenesisState) { k.SetConstantFee(ctx, data.ConstantFee) } // ExportGenesis returns a GenesisState for a given context and keeper. -func (k Keeper) ExportGenesis(ctx sdk.Context) types.GenesisState { +func (k Keeper) ExportGenesis(ctx sdk.Context) *types.GenesisState { constantFee := k.GetConstantFee(ctx) return types.NewGenesisState(constantFee) } diff --git a/x/crisis/module.go b/x/crisis/module.go index fc48a078fe..97f6a10d67 100644 --- a/x/crisis/module.go +++ b/x/crisis/module.go @@ -50,7 +50,7 @@ func (AppModuleBasic) ValidateGenesis(cdc codec.JSONMarshaler, config client.TxE return fmt.Errorf("failed to unmarshal %s genesis state: %w", types.ModuleName, err) } - return types.ValidateGenesis(data) + return types.ValidateGenesis(&data) } // RegisterRESTRoutes registers no REST routes for the crisis module. @@ -118,7 +118,7 @@ func (am AppModule) RegisterQueryService(grpc.Server) {} func (am AppModule) InitGenesis(ctx sdk.Context, cdc codec.JSONMarshaler, data json.RawMessage) []abci.ValidatorUpdate { var genesisState types.GenesisState cdc.MustUnmarshalJSON(data, &genesisState) - am.keeper.InitGenesis(ctx, genesisState) + am.keeper.InitGenesis(ctx, &genesisState) am.keeper.AssertInvariants(ctx) return []abci.ValidatorUpdate{} } diff --git a/x/crisis/types/genesis.go b/x/crisis/types/genesis.go index 3de8ab6ff8..f530991302 100644 --- a/x/crisis/types/genesis.go +++ b/x/crisis/types/genesis.go @@ -7,21 +7,21 @@ import ( ) // NewGenesisState creates a new GenesisState object -func NewGenesisState(constantFee sdk.Coin) GenesisState { - return GenesisState{ +func NewGenesisState(constantFee sdk.Coin) *GenesisState { + return &GenesisState{ ConstantFee: constantFee, } } // DefaultGenesisState creates a default GenesisState object -func DefaultGenesisState() GenesisState { - return GenesisState{ +func DefaultGenesisState() *GenesisState { + return &GenesisState{ ConstantFee: sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(1000)), } } // ValidateGenesis - validate crisis genesis data -func ValidateGenesis(data GenesisState) error { +func ValidateGenesis(data *GenesisState) error { if !data.ConstantFee.IsPositive() { return fmt.Errorf("constant fee must be positive: %s", data.ConstantFee) } diff --git a/x/distribution/keeper/genesis.go b/x/distribution/keeper/genesis.go index 8b8e19ff0a..54c70c9f66 100644 --- a/x/distribution/keeper/genesis.go +++ b/x/distribution/keeper/genesis.go @@ -60,7 +60,7 @@ func (k Keeper) InitGenesis(ctx sdk.Context, data types.GenesisState) { } // ExportGenesis returns a GenesisState for a given context and keeper. -func (k Keeper) ExportGenesis(ctx sdk.Context) types.GenesisState { +func (k Keeper) ExportGenesis(ctx sdk.Context) *types.GenesisState { feePool := k.GetFeePool(ctx) params := k.GetParams(ctx) diff --git a/x/distribution/module.go b/x/distribution/module.go index 196c2ae2d8..ca20c9e0ba 100644 --- a/x/distribution/module.go +++ b/x/distribution/module.go @@ -59,7 +59,7 @@ func (AppModuleBasic) ValidateGenesis(cdc codec.JSONMarshaler, config sdkclient. return fmt.Errorf("failed to unmarshal %s genesis state: %w", types.ModuleName, err) } - return types.ValidateGenesis(data) + return types.ValidateGenesis(&data) } // RegisterRESTRoutes registers the REST routes for the distribution module. diff --git a/x/distribution/types/genesis.go b/x/distribution/types/genesis.go index 3caaa9a91b..b7e6aaa628 100644 --- a/x/distribution/types/genesis.go +++ b/x/distribution/types/genesis.go @@ -8,9 +8,9 @@ func NewGenesisState( params Params, fp FeePool, dwis []DelegatorWithdrawInfo, pp sdk.ConsAddress, r []ValidatorOutstandingRewardsRecord, acc []ValidatorAccumulatedCommissionRecord, historical []ValidatorHistoricalRewardsRecord, cur []ValidatorCurrentRewardsRecord, dels []DelegatorStartingInfoRecord, slashes []ValidatorSlashEventRecord, -) GenesisState { +) *GenesisState { - return GenesisState{ + return &GenesisState{ Params: params, FeePool: fp, DelegatorWithdrawInfos: dwis, @@ -25,8 +25,8 @@ func NewGenesisState( } // get raw genesis raw message for testing -func DefaultGenesisState() GenesisState { - return GenesisState{ +func DefaultGenesisState() *GenesisState { + return &GenesisState{ FeePool: InitialFeePool(), Params: DefaultParams(), DelegatorWithdrawInfos: []DelegatorWithdrawInfo{}, @@ -41,7 +41,7 @@ func DefaultGenesisState() GenesisState { } // ValidateGenesis validates the genesis state of distribution genesis input -func ValidateGenesis(gs GenesisState) error { +func ValidateGenesis(gs *GenesisState) error { if err := gs.Params.ValidateBasic(); err != nil { return err } diff --git a/x/evidence/genesis.go b/x/evidence/genesis.go index 6ca5d43158..2be3fee882 100644 --- a/x/evidence/genesis.go +++ b/x/evidence/genesis.go @@ -14,7 +14,7 @@ import ( // InitGenesis initializes the evidence module's state from a provided genesis // state. -func InitGenesis(ctx sdk.Context, k keeper.Keeper, gs types.GenesisState) { +func InitGenesis(ctx sdk.Context, k keeper.Keeper, gs *types.GenesisState) { if err := gs.Validate(); err != nil { panic(fmt.Sprintf("failed to validate %s genesis state: %s", types.ModuleName, err)) } @@ -33,7 +33,7 @@ func InitGenesis(ctx sdk.Context, k keeper.Keeper, gs types.GenesisState) { } // ExportGenesis returns the evidence module's exported genesis. -func ExportGenesis(ctx sdk.Context, k keeper.Keeper) types.GenesisState { +func ExportGenesis(ctx sdk.Context, k keeper.Keeper) *types.GenesisState { e := k.GetAllEvidence(ctx) evidence := make([]*codectypes.Any, len(e)) for i, evi := range e { @@ -47,7 +47,7 @@ func ExportGenesis(ctx sdk.Context, k keeper.Keeper) types.GenesisState { } evidence[i] = any } - return types.GenesisState{ + return &types.GenesisState{ Evidence: evidence, } } diff --git a/x/evidence/genesis_test.go b/x/evidence/genesis_test.go index 866da26f9a..28da9c49bc 100644 --- a/x/evidence/genesis_test.go +++ b/x/evidence/genesis_test.go @@ -34,7 +34,7 @@ func (suite *GenesisTestSuite) SetupTest() { func (suite *GenesisTestSuite) TestInitGenesis() { var ( - genesisState types.GenesisState + genesisState *types.GenesisState testEvidence []exported.Evidence pk = ed25519.GenPrivKey() ) diff --git a/x/evidence/module.go b/x/evidence/module.go index b3aebb1f64..9867b692bc 100644 --- a/x/evidence/module.go +++ b/x/evidence/module.go @@ -160,7 +160,7 @@ func (am AppModule) InitGenesis(ctx sdk.Context, cdc codec.JSONMarshaler, bz jso panic(fmt.Sprintf("failed to unmarshal %s genesis state: %s", types.ModuleName, err)) } - InitGenesis(ctx, am.keeper, gs) + InitGenesis(ctx, am.keeper, &gs) return []abci.ValidatorUpdate{} } diff --git a/x/evidence/types/genesis.go b/x/evidence/types/genesis.go index 4ccd924c4b..b274ea2071 100644 --- a/x/evidence/types/genesis.go +++ b/x/evidence/types/genesis.go @@ -12,7 +12,7 @@ import ( var _ types.UnpackInterfacesMessage = GenesisState{} // NewGenesisState creates a new genesis state for the evidence module. -func NewGenesisState(e []exported.Evidence) GenesisState { +func NewGenesisState(e []exported.Evidence) *GenesisState { evidence := make([]*types.Any, len(e)) for i, evi := range e { msg, ok := evi.(proto.Message) @@ -25,14 +25,14 @@ func NewGenesisState(e []exported.Evidence) GenesisState { } evidence[i] = any } - return GenesisState{ + return &GenesisState{ Evidence: evidence, } } // DefaultGenesisState returns the evidence module's default genesis state. -func DefaultGenesisState() GenesisState { - return GenesisState{ +func DefaultGenesisState() *GenesisState { + return &GenesisState{ Evidence: []*types.Any{}, } } diff --git a/x/evidence/types/genesis_test.go b/x/evidence/types/genesis_test.go index 4aed3366eb..b8b8ee0e1a 100644 --- a/x/evidence/types/genesis_test.go +++ b/x/evidence/types/genesis_test.go @@ -59,7 +59,7 @@ func TestNewGenesisState(t *testing.T) { func TestGenesisStateValidate(t *testing.T) { var ( - genesisState types.GenesisState + genesisState *types.GenesisState testEvidence []exported.Evidence pk = ed25519.GenPrivKey() ) @@ -104,7 +104,7 @@ func TestGenesisStateValidate(t *testing.T) { { "expected evidence", func() { - genesisState = types.GenesisState{ + genesisState = &types.GenesisState{ Evidence: []*codectypes.Any{{}}, } }, diff --git a/x/genutil/client/cli/gentx.go b/x/genutil/client/cli/gentx.go index f99303cc29..b151290e5d 100644 --- a/x/genutil/client/cli/gentx.go +++ b/x/genutil/client/cli/gentx.go @@ -88,7 +88,7 @@ $ %s gentx my-key-name --home=/path/to/home/dir --keyring-backend=os --chain-id= } var genesisState map[string]json.RawMessage - if err = cdc.UnmarshalJSON(genDoc.AppState, &genesisState); err != nil { + if err = json.Unmarshal(genDoc.AppState, &genesisState); err != nil { return errors.Wrap(err, "failed to unmarshal genesis state") } diff --git a/x/genutil/client/rest/query.go b/x/genutil/client/rest/query.go index a53de65fdb..e66071a871 100644 --- a/x/genutil/client/rest/query.go +++ b/x/genutil/client/rest/query.go @@ -22,7 +22,7 @@ func QueryGenesisTxs(clientCtx client.Context, w http.ResponseWriter) { return } - appState, err := types.GenesisStateFromGenDoc(clientCtx.LegacyAmino, *resultGenesis.Genesis) + appState, err := types.GenesisStateFromGenDoc(*resultGenesis.Genesis) if err != nil { rest.WriteErrorResponse( w, http.StatusInternalServerError, diff --git a/x/genutil/collect.go b/x/genutil/collect.go index d1d69c8d99..24def89162 100644 --- a/x/genutil/collect.go +++ b/x/genutil/collect.go @@ -45,7 +45,7 @@ func GenAppStateFromConfig(cdc codec.JSONMarshaler, txEncodingConfig client.TxEn } // create the app state - appGenesisState, err := types.GenesisStateFromGenDoc(cdc, genDoc) + appGenesisState, err := types.GenesisStateFromGenDoc(genDoc) if err != nil { return appState, err } @@ -55,7 +55,7 @@ func GenAppStateFromConfig(cdc codec.JSONMarshaler, txEncodingConfig client.TxEn return appState, err } - appState, err = codec.MarshalJSONIndent(cdc, appGenesisState) + appState, err = json.MarshalIndent(appGenesisState, "", " ") if err != nil { return appState, err } @@ -81,7 +81,7 @@ func CollectTxs(cdc codec.JSONMarshaler, txJSONDecoder sdk.TxDecoder, moniker, g // prepare a map of all balances in genesis state to then validate // against the validators addresses var appState map[string]json.RawMessage - if err := cdc.UnmarshalJSON(genDoc.AppState, &appState); err != nil { + if err := json.Unmarshal(genDoc.AppState, &appState); err != nil { return appGenTxs, persistentPeers, err } diff --git a/x/genutil/module.go b/x/genutil/module.go index c4a2b073b4..4be57bf7ff 100644 --- a/x/genutil/module.go +++ b/x/genutil/module.go @@ -49,7 +49,7 @@ func (b AppModuleBasic) ValidateGenesis(cdc codec.JSONMarshaler, txEncodingConfi return fmt.Errorf("failed to unmarshal %s genesis state: %w", types.ModuleName, err) } - return types.ValidateGenesis(data, txEncodingConfig.TxJSONDecoder()) + return types.ValidateGenesis(&data, txEncodingConfig.TxJSONDecoder()) } // RegisterRESTRoutes registers the REST routes for the genutil module. diff --git a/x/genutil/types/genesis_state.go b/x/genutil/types/genesis_state.go index 971b6dbe05..a7915b717f 100644 --- a/x/genutil/types/genesis_state.go +++ b/x/genutil/types/genesis_state.go @@ -14,26 +14,26 @@ import ( ) // NewGenesisState creates a new GenesisState object -func NewGenesisState(genTxs []json.RawMessage) GenesisState { +func NewGenesisState(genTxs []json.RawMessage) *GenesisState { // Ensure genTxs is never nil, https://github.com/cosmos/cosmos-sdk/issues/5086 if len(genTxs) == 0 { genTxs = make([]json.RawMessage, 0) } - return GenesisState{ + return &GenesisState{ GenTxs: genTxs, } } // DefaultGenesisState returns the genutil module's default genesis state. -func DefaultGenesisState() GenesisState { - return GenesisState{ +func DefaultGenesisState() *GenesisState { + return &GenesisState{ GenTxs: []json.RawMessage{}, } } // NewGenesisStateFromTx creates a new GenesisState object // from auth transactions -func NewGenesisStateFromTx(txJSONEncoder sdk.TxEncoder, genTxs []sdk.Tx) GenesisState { +func NewGenesisStateFromTx(txJSONEncoder sdk.TxEncoder, genTxs []sdk.Tx) *GenesisState { genTxsBz := make([]json.RawMessage, len(genTxs)) for i, genTx := range genTxs { var err error @@ -46,17 +46,17 @@ func NewGenesisStateFromTx(txJSONEncoder sdk.TxEncoder, genTxs []sdk.Tx) Genesis } // GetGenesisStateFromAppState gets the genutil genesis state from the expected app state -func GetGenesisStateFromAppState(cdc codec.JSONMarshaler, appState map[string]json.RawMessage) GenesisState { +func GetGenesisStateFromAppState(cdc codec.JSONMarshaler, appState map[string]json.RawMessage) *GenesisState { var genesisState GenesisState if appState[ModuleName] != nil { cdc.MustUnmarshalJSON(appState[ModuleName], &genesisState) } - return genesisState + return &genesisState } // SetGenesisStateInAppState sets the genutil genesis state within the expected app state func SetGenesisStateInAppState( - cdc codec.JSONMarshaler, appState map[string]json.RawMessage, genesisState GenesisState, + cdc codec.JSONMarshaler, appState map[string]json.RawMessage, genesisState *GenesisState, ) map[string]json.RawMessage { genesisStateBz := cdc.MustMarshalJSON(genesisState) @@ -68,10 +68,9 @@ func SetGenesisStateInAppState( // for the application. // // NOTE: The pubkey input is this machines pubkey. -func GenesisStateFromGenDoc(cdc codec.JSONMarshaler, genDoc tmtypes.GenesisDoc, -) (genesisState map[string]json.RawMessage, err error) { +func GenesisStateFromGenDoc(genDoc tmtypes.GenesisDoc) (genesisState map[string]json.RawMessage, err error) { - if err = cdc.UnmarshalJSON(genDoc.AppState, &genesisState); err != nil { + if err = json.Unmarshal(genDoc.AppState, &genesisState); err != nil { return genesisState, err } return genesisState, nil @@ -92,12 +91,12 @@ func GenesisStateFromGenFile(cdc codec.JSONMarshaler, genFile string) (genesisSt return genesisState, genDoc, err } - genesisState, err = GenesisStateFromGenDoc(cdc, *genDoc) + genesisState, err = GenesisStateFromGenDoc(*genDoc) return genesisState, genDoc, err } // ValidateGenesis validates GenTx transactions -func ValidateGenesis(genesisState GenesisState, txJSONDecoder sdk.TxDecoder) error { +func ValidateGenesis(genesisState *GenesisState, txJSONDecoder sdk.TxDecoder) error { for i, genTx := range genesisState.GenTxs { var tx sdk.Tx tx, err := txJSONDecoder(genTx) diff --git a/x/gov/client/utils/utils.go b/x/gov/client/utils/utils.go index b5640a39bc..50982cd1f7 100644 --- a/x/gov/client/utils/utils.go +++ b/x/gov/client/utils/utils.go @@ -44,6 +44,7 @@ func NormalizeProposalStatus(status string) string { return "Passed" case "Rejected", "rejected": return "Rejected" + default: + return status } - return "" } diff --git a/x/gov/genesis.go b/x/gov/genesis.go index bf2ff27e5d..ee544f4688 100644 --- a/x/gov/genesis.go +++ b/x/gov/genesis.go @@ -9,7 +9,7 @@ import ( ) // InitGenesis - store genesis parameters -func InitGenesis(ctx sdk.Context, ak types.AccountKeeper, bk types.BankKeeper, k keeper.Keeper, data types.GenesisState) { +func InitGenesis(ctx sdk.Context, ak types.AccountKeeper, bk types.BankKeeper, k keeper.Keeper, data *types.GenesisState) { k.SetProposalID(ctx, data.StartingProposalID) k.SetDepositParams(ctx, data.DepositParams) k.SetVotingParams(ctx, data.VotingParams) @@ -52,7 +52,7 @@ func InitGenesis(ctx sdk.Context, ak types.AccountKeeper, bk types.BankKeeper, k } // ExportGenesis - output genesis parameters -func ExportGenesis(ctx sdk.Context, k keeper.Keeper) types.GenesisState { +func ExportGenesis(ctx sdk.Context, k keeper.Keeper) *types.GenesisState { startingProposalID, _ := k.GetProposalID(ctx) depositParams := k.GetDepositParams(ctx) votingParams := k.GetVotingParams(ctx) @@ -69,7 +69,7 @@ func ExportGenesis(ctx sdk.Context, k keeper.Keeper) types.GenesisState { proposalsVotes = append(proposalsVotes, votes...) } - return types.GenesisState{ + return &types.GenesisState{ StartingProposalID: startingProposalID, Deposits: proposalsDeposits, Votes: proposalsVotes, diff --git a/x/gov/genesis_test.go b/x/gov/genesis_test.go index 5708bd3fbb..6e6c80e60d 100644 --- a/x/gov/genesis_test.go +++ b/x/gov/genesis_test.go @@ -1,6 +1,7 @@ package gov_test import ( + "encoding/json" "testing" "github.com/stretchr/testify/require" @@ -8,7 +9,6 @@ import ( "github.com/tendermint/tendermint/libs/log" dbm "github.com/tendermint/tm-db" - "github.com/cosmos/cosmos-sdk/codec" "github.com/cosmos/cosmos-sdk/simapp" "github.com/cosmos/cosmos-sdk/x/auth" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" @@ -61,13 +61,13 @@ func TestImportExportQueues(t *testing.T) { genesisState[banktypes.ModuleName] = app.AppCodec().MustMarshalJSON(bankGenState) genesisState[types.ModuleName] = app.AppCodec().MustMarshalJSON(govGenState) - stateBytes, err := codec.MarshalJSONIndent(app.LegacyAmino(), genesisState) + stateBytes, err := json.MarshalIndent(genesisState, "", " ") if err != nil { panic(err) } db := dbm.NewMemDB() - app2 := simapp.NewSimApp(log.NewNopLogger(), db, nil, true, map[int64]bool{}, simapp.DefaultNodeHome, 0) + app2 := simapp.NewSimApp(log.NewNopLogger(), db, nil, true, map[int64]bool{}, simapp.DefaultNodeHome, 0, simapp.MakeEncodingConfig()) app2.InitChain( abci.RequestInitChain{ diff --git a/x/gov/keeper/proposal_test.go b/x/gov/keeper/proposal_test.go index 4f29a6748d..e472d233e5 100644 --- a/x/gov/keeper/proposal_test.go +++ b/x/gov/keeper/proposal_test.go @@ -2,6 +2,7 @@ package keeper_test import ( "errors" + "fmt" "strings" "testing" "time" @@ -128,14 +129,16 @@ func TestGetProposalsFiltered(t *testing.T) { {types.NewQueryProposalsParams(1, 50, types.StatusVotingPeriod, nil, nil), 50}, } - for _, tc := range testCases { - proposals := app.GovKeeper.GetProposalsFiltered(ctx, tc.params) - require.Len(t, proposals, tc.expectedNumResults) + for i, tc := range testCases { + t.Run(fmt.Sprintf("Test Case %d", i), func(t *testing.T) { + proposals := app.GovKeeper.GetProposalsFiltered(ctx, tc.params) + require.Len(t, proposals, tc.expectedNumResults) - for _, p := range proposals { - if len(tc.params.ProposalStatus.String()) != 0 { - require.Equal(t, tc.params.ProposalStatus, p.Status) + for _, p := range proposals { + if types.ValidProposalStatus(tc.params.ProposalStatus) { + require.Equal(t, tc.params.ProposalStatus, p.Status) + } } - } + }) } } diff --git a/x/gov/module.go b/x/gov/module.go index a2bf1ddb63..25bbf60482 100644 --- a/x/gov/module.go +++ b/x/gov/module.go @@ -70,7 +70,7 @@ func (AppModuleBasic) ValidateGenesis(cdc codec.JSONMarshaler, config client.TxE return fmt.Errorf("failed to unmarshal %s genesis state: %w", types.ModuleName, err) } - return types.ValidateGenesis(data) + return types.ValidateGenesis(&data) } // RegisterRESTRoutes registers the REST routes for the gov module. @@ -160,7 +160,7 @@ func (am AppModule) RegisterQueryService(server grpc.Server) { func (am AppModule) InitGenesis(ctx sdk.Context, cdc codec.JSONMarshaler, data json.RawMessage) []abci.ValidatorUpdate { var genesisState types.GenesisState cdc.MustUnmarshalJSON(data, &genesisState) - InitGenesis(ctx, am.accountKeeper, am.bankKeeper, am.keeper, genesisState) + InitGenesis(ctx, am.accountKeeper, am.bankKeeper, am.keeper, &genesisState) return []abci.ValidatorUpdate{} } diff --git a/x/gov/types/genesis.go b/x/gov/types/genesis.go index e289ee57dc..daaabeaa2f 100644 --- a/x/gov/types/genesis.go +++ b/x/gov/types/genesis.go @@ -8,8 +8,8 @@ import ( ) // NewGenesisState creates a new genesis state for the governance module -func NewGenesisState(startingProposalID uint64, dp DepositParams, vp VotingParams, tp TallyParams) GenesisState { - return GenesisState{ +func NewGenesisState(startingProposalID uint64, dp DepositParams, vp VotingParams, tp TallyParams) *GenesisState { + return &GenesisState{ StartingProposalID: startingProposalID, DepositParams: dp, VotingParams: vp, @@ -18,7 +18,7 @@ func NewGenesisState(startingProposalID uint64, dp DepositParams, vp VotingParam } // DefaultGenesisState defines the default governance genesis state -func DefaultGenesisState() GenesisState { +func DefaultGenesisState() *GenesisState { return NewGenesisState( DefaultStartingProposalID, DefaultDepositParams(), @@ -43,7 +43,7 @@ func (data GenesisState) Empty() bool { } // ValidateGenesis checks if parameters are within valid ranges -func ValidateGenesis(data GenesisState) error { +func ValidateGenesis(data *GenesisState) error { threshold := data.TallyParams.Threshold if threshold.IsNegative() || threshold.GT(sdk.OneDec()) { return fmt.Errorf("governance vote threshold should be positive and less or equal to one, is %s", diff --git a/x/gov/types/gov.pb.go b/x/gov/types/gov.pb.go index 56080ffe72..c12c65832f 100644 --- a/x/gov/types/gov.pb.go +++ b/x/gov/types/gov.pb.go @@ -105,6 +105,10 @@ var ProposalStatus_value = map[string]int32{ "PROPOSAL_STATUS_FAILED": 5, } +func (x ProposalStatus) String() string { + return proto.EnumName(ProposalStatus_name, int32(x)) +} + func (ProposalStatus) EnumDescriptor() ([]byte, []int) { return fileDescriptor_6e82113c1a9a4b7c, []int{1} } @@ -448,94 +452,95 @@ func init() { func init() { proto.RegisterFile("cosmos/gov/v1beta1/gov.proto", fileDescriptor_6e82113c1a9a4b7c) } var fileDescriptor_6e82113c1a9a4b7c = []byte{ - // 1392 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0x3f, 0x6c, 0xdb, 0xc6, - 0x17, 0x16, 0xe5, 0x7f, 0xf1, 0x49, 0xb6, 0x99, 0xb3, 0x7f, 0xb6, 0xcc, 0x5f, 0x4a, 0x32, 0x6c, - 0x50, 0x18, 0x41, 0x22, 0x27, 0x2e, 0x50, 0xa0, 0x09, 0x50, 0x44, 0xb4, 0x98, 0x44, 0x45, 0x20, - 0x09, 0x14, 0xa3, 0x20, 0xe9, 0x40, 0xd0, 0xe2, 0x45, 0x66, 0x2b, 0xf2, 0x54, 0xf1, 0xe4, 0xda, - 0xe8, 0xd2, 0xa1, 0x43, 0xa0, 0x16, 0x45, 0xc6, 0x02, 0x85, 0x80, 0x02, 0xcd, 0x50, 0x74, 0xea, - 0xd0, 0xb9, 0xb3, 0xd1, 0x29, 0x28, 0x32, 0x04, 0x1d, 0x94, 0xc6, 0x59, 0x0a, 0x0f, 0x1d, 0x3c, - 0x76, 0x2a, 0xc8, 0x3b, 0x5a, 0x94, 0x64, 0xd4, 0x11, 0xda, 0xc9, 0xe4, 0xbb, 0xf7, 0x7d, 0xef, - 0xdd, 0x77, 0xf7, 0x3d, 0x5a, 0xe0, 0x5c, 0x0d, 0xfb, 0x2e, 0xf6, 0xd7, 0xeb, 0x78, 0x67, 0x7d, - 0xe7, 0xea, 0x16, 0x22, 0xd6, 0xd5, 0xe0, 0x39, 0xdb, 0x6c, 0x61, 0x82, 0x21, 0xa4, 0xab, 0xd9, - 0x20, 0xc2, 0x56, 0x05, 0x91, 0x21, 0xb6, 0x2c, 0x1f, 0x1d, 0x43, 0x6a, 0xd8, 0xf1, 0x28, 0x46, - 0x58, 0xaa, 0xe3, 0x3a, 0x0e, 0x1f, 0xd7, 0x83, 0x27, 0x16, 0x5d, 0xa5, 0x28, 0x93, 0x2e, 0x30, - 0x5a, 0xba, 0x24, 0xd5, 0x31, 0xae, 0x37, 0xd0, 0x7a, 0xf8, 0xb6, 0xd5, 0x7e, 0xb8, 0x4e, 0x1c, - 0x17, 0xf9, 0xc4, 0x72, 0x9b, 0x11, 0x76, 0x38, 0xc1, 0xf2, 0xf6, 0xd8, 0x92, 0x38, 0xbc, 0x64, - 0xb7, 0x5b, 0x16, 0x71, 0x30, 0x6b, 0x46, 0xb9, 0x07, 0xd2, 0x06, 0xda, 0x25, 0xe5, 0x16, 0x6e, - 0x62, 0xdf, 0x6a, 0xc0, 0x25, 0x30, 0x45, 0x1c, 0xd2, 0x40, 0x19, 0x4e, 0xe6, 0xd6, 0x66, 0x75, - 0xfa, 0x02, 0x65, 0x90, 0xb2, 0x91, 0x5f, 0x6b, 0x39, 0xcd, 0x00, 0x9a, 0x49, 0x86, 0x6b, 0xf1, - 0xd0, 0xb5, 0x85, 0x3f, 0xbe, 0x95, 0xb8, 0x5f, 0x7f, 0xba, 0x3c, 0xb3, 0x89, 0x3d, 0x82, 0x3c, - 0xa2, 0x7c, 0x99, 0x04, 0x33, 0x79, 0xd4, 0xc4, 0xbe, 0x43, 0xa0, 0x06, 0x52, 0x4d, 0x56, 0xc0, - 0x74, 0xec, 0x90, 0x7a, 0x52, 0xbd, 0x70, 0xd0, 0x93, 0x40, 0x54, 0xb7, 0x90, 0x3f, 0xea, 0x49, - 0x70, 0xcf, 0x72, 0x1b, 0xd7, 0x94, 0x58, 0xaa, 0xa2, 0x83, 0xe8, 0xad, 0x60, 0xc3, 0x12, 0x98, - 0xb5, 0x29, 0x23, 0x6e, 0x85, 0x3d, 0xa4, 0xd5, 0xab, 0x7f, 0xf5, 0xa4, 0xcb, 0x75, 0x87, 0x6c, - 0xb7, 0xb7, 0xb2, 0x35, 0xec, 0x32, 0xdd, 0xd8, 0x9f, 0xcb, 0xbe, 0xfd, 0xd1, 0x3a, 0xd9, 0x6b, - 0x22, 0x3f, 0x9b, 0xab, 0xd5, 0x72, 0xb6, 0xdd, 0x42, 0xbe, 0xaf, 0xf7, 0x39, 0x60, 0x0d, 0x4c, - 0x5b, 0x2e, 0x6e, 0x7b, 0x24, 0x33, 0x21, 0x4f, 0xac, 0xa5, 0x36, 0x56, 0xb3, 0x4c, 0xf7, 0xe0, - 0xe8, 0xa2, 0xf3, 0xcc, 0x6e, 0x62, 0xc7, 0x53, 0xaf, 0xec, 0xf7, 0xa4, 0xc4, 0x0f, 0x2f, 0xa4, - 0xb5, 0xd7, 0x28, 0x16, 0x00, 0x7c, 0x9d, 0x51, 0x5f, 0x9b, 0x0c, 0x94, 0x51, 0x3e, 0x9f, 0x01, - 0x67, 0x8e, 0x45, 0x56, 0x4f, 0xd2, 0xe3, 0xfc, 0xa0, 0x1e, 0x87, 0x3d, 0x29, 0xe9, 0xd8, 0x47, - 0x3d, 0x69, 0x96, 0xaa, 0x32, 0x2c, 0xc6, 0x75, 0x30, 0x53, 0xa3, 0x52, 0x87, 0x52, 0xa4, 0x36, - 0x96, 0xb2, 0xf4, 0xa8, 0xb3, 0xd1, 0x51, 0x67, 0x73, 0xde, 0x9e, 0x9a, 0xfa, 0xa5, 0x7f, 0x26, - 0x7a, 0x84, 0x80, 0x55, 0x30, 0xed, 0x13, 0x8b, 0xb4, 0xfd, 0xcc, 0x84, 0xcc, 0xad, 0xcd, 0x6f, - 0x28, 0xd9, 0xd1, 0x7b, 0x9c, 0x8d, 0x7a, 0xa9, 0x84, 0x99, 0xaa, 0x70, 0xd4, 0x93, 0x96, 0x87, - 0x4e, 0x88, 0x92, 0x28, 0x3a, 0x63, 0x83, 0x4d, 0x00, 0x1f, 0x3a, 0x9e, 0xd5, 0x30, 0x89, 0xd5, - 0x68, 0xec, 0x99, 0x2d, 0xe4, 0xb7, 0x1b, 0x24, 0x33, 0x19, 0xf6, 0x27, 0x9d, 0x54, 0xc3, 0x08, - 0xf2, 0xf4, 0x30, 0x4d, 0x3d, 0x1f, 0x48, 0x7c, 0xd4, 0x93, 0x56, 0x69, 0x91, 0x51, 0x22, 0x45, - 0xe7, 0xc3, 0x60, 0x0c, 0x04, 0x3f, 0x00, 0x29, 0xbf, 0xbd, 0xe5, 0x3a, 0xc4, 0x0c, 0x4c, 0x91, - 0x99, 0x0a, 0x4b, 0x09, 0x23, 0x52, 0x18, 0x91, 0x63, 0x54, 0x91, 0x55, 0x61, 0x97, 0x2d, 0x06, - 0x56, 0x1e, 0xbf, 0x90, 0x38, 0x1d, 0xd0, 0x48, 0x00, 0x80, 0x0e, 0xe0, 0xd9, 0x65, 0x31, 0x91, - 0x67, 0xd3, 0x0a, 0xd3, 0xa7, 0x56, 0x78, 0x93, 0x55, 0x58, 0xa1, 0x15, 0x86, 0x19, 0x68, 0x99, - 0x79, 0x16, 0xd6, 0x3c, 0x3b, 0x2c, 0xf5, 0x88, 0x03, 0x73, 0x04, 0x13, 0xab, 0x61, 0xb2, 0x85, - 0xcc, 0xcc, 0x69, 0x57, 0xf2, 0x36, 0xab, 0xb3, 0x44, 0xeb, 0x0c, 0xa0, 0x95, 0xb1, 0xae, 0x6a, - 0x3a, 0xc4, 0x46, 0x6e, 0x6d, 0x80, 0xb3, 0x3b, 0x98, 0x38, 0x5e, 0x3d, 0x38, 0xde, 0x16, 0x13, - 0xf6, 0xcc, 0xa9, 0xdb, 0xbe, 0xc0, 0xda, 0xc9, 0xd0, 0x76, 0x46, 0x28, 0xe8, 0xbe, 0x17, 0x68, - 0xbc, 0x12, 0x84, 0xc3, 0x8d, 0x3f, 0x04, 0x2c, 0xd4, 0x97, 0x78, 0xf6, 0xd4, 0x5a, 0x0a, 0xab, - 0xb5, 0x3c, 0x50, 0x6b, 0x50, 0xe1, 0x39, 0x1a, 0x65, 0x02, 0x33, 0x1b, 0xee, 0x27, 0x41, 0x2a, - 0x7e, 0x7d, 0x6e, 0x80, 0x89, 0x3d, 0xe4, 0xd3, 0x61, 0xa7, 0x66, 0x03, 0xd6, 0xdf, 0x7a, 0xd2, - 0x5b, 0xaf, 0x21, 0x5c, 0xc1, 0x23, 0x7a, 0x00, 0x85, 0xb7, 0xc1, 0x8c, 0xb5, 0xe5, 0x13, 0xcb, - 0x61, 0x63, 0x71, 0x6c, 0x96, 0x08, 0x0e, 0xdf, 0x03, 0x49, 0x0f, 0x87, 0x86, 0x1c, 0x9f, 0x24, - 0xe9, 0x61, 0x58, 0x07, 0x69, 0x0f, 0x9b, 0x9f, 0x38, 0x64, 0xdb, 0xdc, 0x41, 0x04, 0x87, 0xb6, - 0x9b, 0x55, 0xb5, 0xf1, 0x98, 0x8e, 0x7a, 0xd2, 0x22, 0x15, 0x35, 0xce, 0xa5, 0xe8, 0xc0, 0xc3, - 0xf7, 0x1c, 0xb2, 0x5d, 0x45, 0x04, 0x33, 0x29, 0x9f, 0x71, 0x60, 0xb2, 0x8a, 0x09, 0xfa, 0xaf, - 0xa6, 0xfb, 0x2d, 0x30, 0xb5, 0x83, 0x09, 0xfa, 0x17, 0x93, 0x9d, 0xe2, 0xe1, 0x3b, 0x60, 0x1a, - 0xd3, 0xef, 0x14, 0x1d, 0x6e, 0xe2, 0x49, 0x83, 0x27, 0xe8, 0xbc, 0x14, 0x66, 0xe9, 0x2c, 0x9b, - 0x6d, 0xeb, 0xe7, 0x24, 0x98, 0x63, 0x4e, 0x28, 0x5b, 0x2d, 0xcb, 0xf5, 0xe1, 0x37, 0x1c, 0x48, - 0xb9, 0x8e, 0x77, 0x6c, 0x4c, 0xee, 0x34, 0x63, 0x9a, 0x81, 0xe4, 0x87, 0x3d, 0xe9, 0x7f, 0x31, - 0xd4, 0x25, 0xec, 0x3a, 0x04, 0xb9, 0x4d, 0xb2, 0xd7, 0x97, 0x22, 0xb6, 0x3c, 0x9e, 0x5f, 0x81, - 0xeb, 0x78, 0x91, 0x5b, 0xbf, 0xe2, 0x00, 0x74, 0xad, 0xdd, 0x88, 0xc8, 0x6c, 0xa2, 0x96, 0x83, - 0x6d, 0xf6, 0x4d, 0x58, 0x1d, 0xf1, 0x50, 0x9e, 0x7d, 0xfe, 0xe9, 0xbd, 0x38, 0xec, 0x49, 0xe7, - 0x46, 0xc1, 0x03, 0xbd, 0xb2, 0x69, 0x3c, 0x9a, 0xa5, 0x7c, 0x1d, 0xb8, 0x8c, 0x77, 0xad, 0xdd, - 0x48, 0x2e, 0x1a, 0xfe, 0x82, 0x03, 0xe9, 0x6a, 0x68, 0x3d, 0xa6, 0xdf, 0xa7, 0x80, 0x59, 0x31, - 0xea, 0x8d, 0x3b, 0xad, 0xb7, 0xeb, 0xac, 0xb7, 0x95, 0x01, 0xdc, 0x40, 0x5b, 0x4b, 0x03, 0xce, - 0x8f, 0x77, 0x94, 0xa6, 0x31, 0xd6, 0xcd, 0x93, 0xc8, 0xf0, 0xac, 0x99, 0x07, 0x60, 0xfa, 0xe3, - 0x36, 0x6e, 0xb5, 0xdd, 0xb0, 0x8b, 0xb4, 0xaa, 0x8e, 0x61, 0x8f, 0x3c, 0xaa, 0x1d, 0xf6, 0x24, - 0x9e, 0xe2, 0xfb, 0xdd, 0xe8, 0x8c, 0x11, 0xd6, 0xc0, 0x2c, 0xd9, 0x6e, 0x21, 0x7f, 0x1b, 0x37, - 0x6c, 0x76, 0x8b, 0xb5, 0xb1, 0xe9, 0x17, 0x8f, 0x29, 0x62, 0x15, 0xfa, 0xbc, 0xd0, 0x00, 0x93, - 0xa1, 0xbb, 0x27, 0x42, 0xfe, 0x1b, 0x63, 0xf3, 0xcf, 0x07, 0xe8, 0x18, 0x75, 0xc8, 0x76, 0xf1, - 0x4f, 0x0e, 0x80, 0xbe, 0x25, 0xe0, 0x25, 0xb0, 0x52, 0x2d, 0x19, 0x9a, 0x59, 0x2a, 0x1b, 0x85, - 0x52, 0xd1, 0xbc, 0x5b, 0xac, 0x94, 0xb5, 0xcd, 0xc2, 0xcd, 0x82, 0x96, 0xe7, 0x13, 0xc2, 0x42, - 0xa7, 0x2b, 0xa7, 0x68, 0xa2, 0x16, 0x50, 0x40, 0x05, 0x2c, 0xc4, 0xb3, 0xef, 0x6b, 0x15, 0x9e, - 0x13, 0xe6, 0x3a, 0x5d, 0x79, 0x96, 0x66, 0xdd, 0x47, 0x3e, 0xbc, 0x08, 0x16, 0xe3, 0x39, 0x39, - 0xb5, 0x62, 0xe4, 0x0a, 0x45, 0x3e, 0x29, 0x9c, 0xed, 0x74, 0xe5, 0x39, 0x9a, 0x97, 0x63, 0x83, - 0x50, 0x06, 0xf3, 0xf1, 0xdc, 0x62, 0x89, 0x9f, 0x10, 0xd2, 0x9d, 0xae, 0x7c, 0x86, 0xa6, 0x15, - 0x31, 0xdc, 0x00, 0x99, 0xc1, 0x0c, 0xf3, 0x5e, 0xc1, 0xb8, 0x6d, 0x56, 0x35, 0xa3, 0xc4, 0x4f, - 0x0a, 0x4b, 0x9d, 0xae, 0xcc, 0x47, 0xb9, 0xd1, 0xd4, 0x12, 0xd2, 0x8f, 0xbe, 0x13, 0x13, 0xdf, - 0x3f, 0x11, 0x13, 0x3f, 0x3e, 0x11, 0x13, 0x17, 0x9f, 0x25, 0xc1, 0xfc, 0xe0, 0x3f, 0x38, 0x30, - 0x0b, 0xfe, 0x5f, 0xd6, 0x4b, 0xe5, 0x52, 0x25, 0x77, 0xc7, 0xac, 0x18, 0x39, 0xe3, 0x6e, 0x65, - 0x68, 0xe3, 0xe1, 0x96, 0x68, 0x72, 0xd1, 0x69, 0xc0, 0xeb, 0x40, 0x1c, 0xce, 0xcf, 0x6b, 0xe5, - 0x52, 0xa5, 0x60, 0x98, 0x65, 0x4d, 0x2f, 0x94, 0xf2, 0x3c, 0x27, 0xac, 0x74, 0xba, 0xf2, 0x22, - 0x85, 0x0c, 0xb8, 0x04, 0xbe, 0x0b, 0xde, 0x18, 0x06, 0x57, 0x4b, 0x46, 0xa1, 0x78, 0x2b, 0xc2, - 0x26, 0x85, 0xe5, 0x4e, 0x57, 0x86, 0x14, 0x5b, 0x8d, 0x5d, 0x69, 0x78, 0x09, 0x2c, 0x0f, 0x43, - 0xcb, 0xb9, 0x4a, 0x45, 0xcb, 0xf3, 0x13, 0x02, 0xdf, 0xe9, 0xca, 0x69, 0x8a, 0x29, 0x5b, 0xbe, - 0x8f, 0x6c, 0x78, 0x05, 0x64, 0x86, 0xb3, 0x75, 0xed, 0x7d, 0x6d, 0xd3, 0xd0, 0xf2, 0xfc, 0xa4, - 0x00, 0x3b, 0x5d, 0x79, 0x9e, 0xe6, 0xeb, 0xe8, 0x43, 0x54, 0x23, 0xe8, 0x44, 0xfe, 0x9b, 0xb9, - 0xc2, 0x1d, 0x2d, 0xcf, 0x4f, 0xc5, 0xf9, 0x6f, 0x5a, 0x4e, 0x03, 0xd9, 0x83, 0xb2, 0xaa, 0xc5, - 0xfd, 0x97, 0x62, 0xe2, 0xf9, 0x4b, 0x31, 0xf1, 0xd9, 0x81, 0x98, 0xd8, 0x3f, 0x10, 0xb9, 0xa7, - 0x07, 0x22, 0xf7, 0xfb, 0x81, 0xc8, 0x3d, 0x7e, 0x25, 0x26, 0x9e, 0xbe, 0x12, 0x13, 0xcf, 0x5f, - 0x89, 0x89, 0x07, 0xff, 0x3c, 0xe9, 0x76, 0xc3, 0xdf, 0x5a, 0xe1, 0x9d, 0xdd, 0x9a, 0x0e, 0x87, - 0xc3, 0xdb, 0x7f, 0x07, 0x00, 0x00, 0xff, 0xff, 0xc9, 0x24, 0xef, 0x4e, 0x86, 0x0d, 0x00, 0x00, + // 1395 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0x41, 0x6c, 0xdb, 0xd4, + 0x1b, 0x8f, 0xd3, 0xb4, 0x5d, 0x5f, 0xd2, 0xd6, 0x7b, 0xed, 0xbf, 0x4d, 0xfd, 0x1f, 0xb6, 0x67, + 0x26, 0x54, 0x4d, 0x5b, 0xba, 0x15, 0x09, 0x89, 0x4d, 0x42, 0x8b, 0x1b, 0x6f, 0x0b, 0x9a, 0x92, + 0xc8, 0xf1, 0x32, 0x6d, 0x1c, 0x2c, 0x37, 0x7e, 0x4b, 0x0d, 0xb1, 0x5f, 0x88, 0x5f, 0x4a, 0x2b, + 0x2e, 0x1c, 0x38, 0x4c, 0x01, 0xa1, 0x1d, 0x91, 0x50, 0x24, 0x24, 0x76, 0x40, 0x9c, 0x38, 0x70, + 0xe6, 0x5c, 0x21, 0x0e, 0x13, 0xe2, 0x30, 0x71, 0xc8, 0x58, 0x77, 0x41, 0x3d, 0x70, 0xe8, 0x91, + 0x13, 0xb2, 0xdf, 0x73, 0xeb, 0x24, 0x15, 0x5d, 0x04, 0xa7, 0xda, 0xdf, 0xfb, 0x7e, 0xbf, 0xef, + 0x7b, 0xbf, 0xf7, 0x7e, 0x9f, 0x1b, 0x70, 0xae, 0x8e, 0x7d, 0x17, 0xfb, 0x6b, 0x0d, 0xbc, 0xbd, + 0xb6, 0x7d, 0x75, 0x13, 0x11, 0xeb, 0x6a, 0xf0, 0x9c, 0x6b, 0xb5, 0x31, 0xc1, 0x10, 0xd2, 0xd5, + 0x5c, 0x10, 0x61, 0xab, 0x82, 0xc8, 0x10, 0x9b, 0x96, 0x8f, 0x8e, 0x20, 0x75, 0xec, 0x78, 0x14, + 0x23, 0x2c, 0x36, 0x70, 0x03, 0x87, 0x8f, 0x6b, 0xc1, 0x13, 0x8b, 0xae, 0x50, 0x94, 0x49, 0x17, + 0x18, 0x2d, 0x5d, 0x92, 0x1a, 0x18, 0x37, 0x9a, 0x68, 0x2d, 0x7c, 0xdb, 0xec, 0x3c, 0x5c, 0x23, + 0x8e, 0x8b, 0x7c, 0x62, 0xb9, 0xad, 0x08, 0x3b, 0x9c, 0x60, 0x79, 0xbb, 0x6c, 0x49, 0x1c, 0x5e, + 0xb2, 0x3b, 0x6d, 0x8b, 0x38, 0x98, 0x35, 0xa3, 0xdc, 0x03, 0x19, 0x03, 0xed, 0x90, 0x4a, 0x1b, + 0xb7, 0xb0, 0x6f, 0x35, 0xe1, 0x22, 0x98, 0x24, 0x0e, 0x69, 0xa2, 0x2c, 0x27, 0x73, 0xab, 0x33, + 0x3a, 0x7d, 0x81, 0x32, 0x48, 0xdb, 0xc8, 0xaf, 0xb7, 0x9d, 0x56, 0x00, 0xcd, 0x26, 0xc3, 0xb5, + 0x78, 0xe8, 0xda, 0xfc, 0x1f, 0x5f, 0x4b, 0xdc, 0x2f, 0x3f, 0x5c, 0x9e, 0xde, 0xc0, 0x1e, 0x41, + 0x1e, 0x51, 0x3e, 0x4f, 0x82, 0xe9, 0x02, 0x6a, 0x61, 0xdf, 0x21, 0x50, 0x03, 0xe9, 0x16, 0x2b, + 0x60, 0x3a, 0x76, 0x48, 0x9d, 0x52, 0x2f, 0xec, 0xf7, 0x25, 0x10, 0xd5, 0x2d, 0x16, 0x0e, 0xfb, + 0x12, 0xdc, 0xb5, 0xdc, 0xe6, 0x35, 0x25, 0x96, 0xaa, 0xe8, 0x20, 0x7a, 0x2b, 0xda, 0xb0, 0x0c, + 0x66, 0x6c, 0xca, 0x88, 0xdb, 0x61, 0x0f, 0x19, 0xf5, 0xea, 0x5f, 0x7d, 0xe9, 0x72, 0xc3, 0x21, + 0x5b, 0x9d, 0xcd, 0x5c, 0x1d, 0xbb, 0x4c, 0x37, 0xf6, 0xe7, 0xb2, 0x6f, 0x7f, 0xb0, 0x46, 0x76, + 0x5b, 0xc8, 0xcf, 0xe5, 0xeb, 0xf5, 0xbc, 0x6d, 0xb7, 0x91, 0xef, 0xeb, 0xc7, 0x1c, 0xb0, 0x0e, + 0xa6, 0x2c, 0x17, 0x77, 0x3c, 0x92, 0x9d, 0x90, 0x27, 0x56, 0xd3, 0xeb, 0x2b, 0x39, 0xa6, 0x7b, + 0x70, 0x74, 0xd1, 0x79, 0xe6, 0x36, 0xb0, 0xe3, 0xa9, 0x57, 0xf6, 0xfa, 0x52, 0xe2, 0xbb, 0xe7, + 0xd2, 0xea, 0x2b, 0x14, 0x0b, 0x00, 0xbe, 0xce, 0xa8, 0xaf, 0xa5, 0x02, 0x65, 0x94, 0x4f, 0xa7, + 0xc1, 0x99, 0x23, 0x91, 0xd5, 0x93, 0xf4, 0x38, 0x3f, 0xa8, 0xc7, 0x41, 0x5f, 0x4a, 0x3a, 0xf6, + 0x61, 0x5f, 0x9a, 0xa1, 0xaa, 0x0c, 0x8b, 0x71, 0x1d, 0x4c, 0xd7, 0xa9, 0xd4, 0xa1, 0x14, 0xe9, + 0xf5, 0xc5, 0x1c, 0x3d, 0xea, 0x5c, 0x74, 0xd4, 0xb9, 0xbc, 0xb7, 0xab, 0xa6, 0x7f, 0x3a, 0x3e, + 0x13, 0x3d, 0x42, 0xc0, 0x1a, 0x98, 0xf2, 0x89, 0x45, 0x3a, 0x7e, 0x76, 0x42, 0xe6, 0x56, 0xe7, + 0xd6, 0x95, 0xdc, 0xe8, 0x3d, 0xce, 0x45, 0xbd, 0x54, 0xc3, 0x4c, 0x55, 0x38, 0xec, 0x4b, 0x4b, + 0x43, 0x27, 0x44, 0x49, 0x14, 0x9d, 0xb1, 0xc1, 0x16, 0x80, 0x0f, 0x1d, 0xcf, 0x6a, 0x9a, 0xc4, + 0x6a, 0x36, 0x77, 0xcd, 0x36, 0xf2, 0x3b, 0x4d, 0x92, 0x4d, 0x85, 0xfd, 0x49, 0x27, 0xd5, 0x30, + 0x82, 0x3c, 0x3d, 0x4c, 0x53, 0xcf, 0x07, 0x12, 0x1f, 0xf6, 0xa5, 0x15, 0x5a, 0x64, 0x94, 0x48, + 0xd1, 0xf9, 0x30, 0x18, 0x03, 0xc1, 0xf7, 0x40, 0xda, 0xef, 0x6c, 0xba, 0x0e, 0x31, 0x03, 0x53, + 0x64, 0x27, 0xc3, 0x52, 0xc2, 0x88, 0x14, 0x46, 0xe4, 0x18, 0x55, 0x64, 0x55, 0xd8, 0x65, 0x8b, + 0x81, 0x95, 0xc7, 0xcf, 0x25, 0x4e, 0x07, 0x34, 0x12, 0x00, 0xa0, 0x03, 0x78, 0x76, 0x59, 0x4c, + 0xe4, 0xd9, 0xb4, 0xc2, 0xd4, 0xa9, 0x15, 0x5e, 0x67, 0x15, 0x96, 0x69, 0x85, 0x61, 0x06, 0x5a, + 0x66, 0x8e, 0x85, 0x35, 0xcf, 0x0e, 0x4b, 0x3d, 0xe2, 0xc0, 0x2c, 0xc1, 0xc4, 0x6a, 0x9a, 0x6c, + 0x21, 0x3b, 0x7d, 0xda, 0x95, 0xbc, 0xcd, 0xea, 0x2c, 0xd2, 0x3a, 0x03, 0x68, 0x65, 0xac, 0xab, + 0x9a, 0x09, 0xb1, 0x91, 0x5b, 0x9b, 0xe0, 0xec, 0x36, 0x26, 0x8e, 0xd7, 0x08, 0x8e, 0xb7, 0xcd, + 0x84, 0x3d, 0x73, 0xea, 0xb6, 0x2f, 0xb0, 0x76, 0xb2, 0xb4, 0x9d, 0x11, 0x0a, 0xba, 0xef, 0x79, + 0x1a, 0xaf, 0x06, 0xe1, 0x70, 0xe3, 0x0f, 0x01, 0x0b, 0x1d, 0x4b, 0x3c, 0x73, 0x6a, 0x2d, 0x85, + 0xd5, 0x5a, 0x1a, 0xa8, 0x35, 0xa8, 0xf0, 0x2c, 0x8d, 0x32, 0x81, 0x99, 0x0d, 0xf7, 0x92, 0x20, + 0x1d, 0xbf, 0x3e, 0x37, 0xc0, 0xc4, 0x2e, 0xf2, 0xe9, 0xb0, 0x53, 0x73, 0x01, 0xeb, 0x6f, 0x7d, + 0xe9, 0x8d, 0x57, 0x10, 0xae, 0xe8, 0x11, 0x3d, 0x80, 0xc2, 0xdb, 0x60, 0xda, 0xda, 0xf4, 0x89, + 0xe5, 0xb0, 0xb1, 0x38, 0x36, 0x4b, 0x04, 0x87, 0xef, 0x80, 0xa4, 0x87, 0x43, 0x43, 0x8e, 0x4f, + 0x92, 0xf4, 0x30, 0x6c, 0x80, 0x8c, 0x87, 0xcd, 0x8f, 0x1c, 0xb2, 0x65, 0x6e, 0x23, 0x82, 0x43, + 0xdb, 0xcd, 0xa8, 0xda, 0x78, 0x4c, 0x87, 0x7d, 0x69, 0x81, 0x8a, 0x1a, 0xe7, 0x52, 0x74, 0xe0, + 0xe1, 0x7b, 0x0e, 0xd9, 0xaa, 0x21, 0x82, 0x99, 0x94, 0xbf, 0x72, 0x20, 0x55, 0xc3, 0x04, 0xfd, + 0x57, 0xd3, 0xfd, 0x16, 0x98, 0xdc, 0xc6, 0x04, 0xfd, 0x8b, 0xc9, 0x4e, 0xf1, 0xf0, 0x2d, 0x30, + 0x85, 0xe9, 0x77, 0x8a, 0x0e, 0x37, 0xf1, 0xa4, 0xc1, 0x13, 0x74, 0x5e, 0x0e, 0xb3, 0x74, 0x96, + 0xcd, 0xb6, 0xf5, 0x63, 0x12, 0xcc, 0x32, 0x27, 0x54, 0xac, 0xb6, 0xe5, 0xfa, 0xf0, 0x2b, 0x0e, + 0xa4, 0x5d, 0xc7, 0x3b, 0x32, 0x26, 0x77, 0x9a, 0x31, 0xcd, 0x40, 0xf2, 0x83, 0xbe, 0xf4, 0xbf, + 0x18, 0xea, 0x12, 0x76, 0x1d, 0x82, 0xdc, 0x16, 0xd9, 0x3d, 0x96, 0x22, 0xb6, 0x3c, 0x9e, 0x5f, + 0x81, 0xeb, 0x78, 0x91, 0x5b, 0xbf, 0xe0, 0x00, 0x74, 0xad, 0x9d, 0x88, 0xc8, 0x6c, 0xa1, 0xb6, + 0x83, 0x6d, 0xf6, 0x4d, 0x58, 0x19, 0xf1, 0x50, 0x81, 0x7d, 0xfe, 0xe9, 0xbd, 0x38, 0xe8, 0x4b, + 0xe7, 0x46, 0xc1, 0x03, 0xbd, 0xb2, 0x69, 0x3c, 0x9a, 0xa5, 0x7c, 0x19, 0xb8, 0x8c, 0x77, 0xad, + 0x9d, 0x48, 0x2e, 0x1a, 0xfe, 0x8c, 0x03, 0x99, 0x5a, 0x68, 0x3d, 0xa6, 0xdf, 0xc7, 0x80, 0x59, + 0x31, 0xea, 0x8d, 0x3b, 0xad, 0xb7, 0xeb, 0xac, 0xb7, 0xe5, 0x01, 0xdc, 0x40, 0x5b, 0x8b, 0x03, + 0xce, 0x8f, 0x77, 0x94, 0xa1, 0x31, 0xd6, 0xcd, 0x93, 0xc8, 0xf0, 0xac, 0x99, 0x07, 0x60, 0xea, + 0xc3, 0x0e, 0x6e, 0x77, 0xdc, 0xb0, 0x8b, 0x8c, 0xaa, 0x8e, 0x61, 0x8f, 0x02, 0xaa, 0x1f, 0xf4, + 0x25, 0x9e, 0xe2, 0x8f, 0xbb, 0xd1, 0x19, 0x23, 0xac, 0x83, 0x19, 0xb2, 0xd5, 0x46, 0xfe, 0x16, + 0x6e, 0xda, 0xec, 0x16, 0x6b, 0x63, 0xd3, 0x2f, 0x1c, 0x51, 0xc4, 0x2a, 0x1c, 0xf3, 0x42, 0x03, + 0xa4, 0x42, 0x77, 0x4f, 0x84, 0xfc, 0x37, 0xc6, 0xe6, 0x9f, 0x0b, 0xd0, 0x31, 0xea, 0x90, 0xed, + 0xe2, 0x9f, 0x1c, 0x00, 0xc7, 0x96, 0x80, 0x97, 0xc0, 0x72, 0xad, 0x6c, 0x68, 0x66, 0xb9, 0x62, + 0x14, 0xcb, 0x25, 0xf3, 0x6e, 0xa9, 0x5a, 0xd1, 0x36, 0x8a, 0x37, 0x8b, 0x5a, 0x81, 0x4f, 0x08, + 0xf3, 0xdd, 0x9e, 0x9c, 0xa6, 0x89, 0x5a, 0x40, 0x01, 0x15, 0x30, 0x1f, 0xcf, 0xbe, 0xaf, 0x55, + 0x79, 0x4e, 0x98, 0xed, 0xf6, 0xe4, 0x19, 0x9a, 0x75, 0x1f, 0xf9, 0xf0, 0x22, 0x58, 0x88, 0xe7, + 0xe4, 0xd5, 0xaa, 0x91, 0x2f, 0x96, 0xf8, 0xa4, 0x70, 0xb6, 0xdb, 0x93, 0x67, 0x69, 0x5e, 0x9e, + 0x0d, 0x42, 0x19, 0xcc, 0xc5, 0x73, 0x4b, 0x65, 0x7e, 0x42, 0xc8, 0x74, 0x7b, 0xf2, 0x19, 0x9a, + 0x56, 0xc2, 0x70, 0x1d, 0x64, 0x07, 0x33, 0xcc, 0x7b, 0x45, 0xe3, 0xb6, 0x59, 0xd3, 0x8c, 0x32, + 0x9f, 0x12, 0x16, 0xbb, 0x3d, 0x99, 0x8f, 0x72, 0xa3, 0xa9, 0x25, 0x64, 0x1e, 0x7d, 0x23, 0x26, + 0xbe, 0x7d, 0x22, 0x26, 0xbe, 0x7f, 0x22, 0x26, 0x2e, 0xfe, 0x9c, 0x04, 0x73, 0x83, 0xff, 0xe0, + 0xc0, 0x1c, 0xf8, 0x7f, 0x45, 0x2f, 0x57, 0xca, 0xd5, 0xfc, 0x1d, 0xb3, 0x6a, 0xe4, 0x8d, 0xbb, + 0xd5, 0xa1, 0x8d, 0x87, 0x5b, 0xa2, 0xc9, 0x25, 0xa7, 0x09, 0xaf, 0x03, 0x71, 0x38, 0xbf, 0xa0, + 0x55, 0xca, 0xd5, 0xa2, 0x61, 0x56, 0x34, 0xbd, 0x58, 0x2e, 0xf0, 0x9c, 0xb0, 0xdc, 0xed, 0xc9, + 0x0b, 0x14, 0x32, 0xe0, 0x12, 0xf8, 0x36, 0x78, 0x6d, 0x18, 0x5c, 0x2b, 0x1b, 0xc5, 0xd2, 0xad, + 0x08, 0x9b, 0x14, 0x96, 0xba, 0x3d, 0x19, 0x52, 0x6c, 0x2d, 0x76, 0xa5, 0xe1, 0x25, 0xb0, 0x34, + 0x0c, 0xad, 0xe4, 0xab, 0x55, 0xad, 0xc0, 0x4f, 0x08, 0x7c, 0xb7, 0x27, 0x67, 0x28, 0xa6, 0x62, + 0xf9, 0x3e, 0xb2, 0xe1, 0x15, 0x90, 0x1d, 0xce, 0xd6, 0xb5, 0x77, 0xb5, 0x0d, 0x43, 0x2b, 0xf0, + 0x29, 0x01, 0x76, 0x7b, 0xf2, 0x1c, 0xcd, 0xd7, 0xd1, 0xfb, 0xa8, 0x4e, 0xd0, 0x89, 0xfc, 0x37, + 0xf3, 0xc5, 0x3b, 0x5a, 0x81, 0x9f, 0x8c, 0xf3, 0xdf, 0xb4, 0x9c, 0x26, 0xb2, 0x85, 0x54, 0x20, + 0xab, 0x5a, 0xda, 0x7b, 0x21, 0x26, 0x9e, 0xbd, 0x10, 0x13, 0x9f, 0xec, 0x8b, 0x89, 0xbd, 0x7d, + 0x91, 0x7b, 0xba, 0x2f, 0x72, 0xbf, 0xef, 0x8b, 0xdc, 0xe3, 0x97, 0x62, 0xe2, 0xe9, 0x4b, 0x31, + 0xf1, 0xec, 0xa5, 0x98, 0x78, 0xf0, 0xcf, 0x13, 0x6e, 0x27, 0xfc, 0x8d, 0x15, 0xde, 0xd5, 0xcd, + 0xa9, 0x70, 0x28, 0xbc, 0xf9, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0x4f, 0x85, 0xd1, 0x2a, 0x7e, + 0x0d, 0x00, 0x00, } func (this *TextProposal) Equal(that interface{}) bool { diff --git a/x/gov/types/proposal.go b/x/gov/types/proposal.go index f550e881a5..e665afc55c 100644 --- a/x/gov/types/proposal.go +++ b/x/gov/types/proposal.go @@ -1,7 +1,6 @@ package types import ( - "encoding/json" "fmt" "strings" "time" @@ -137,28 +136,11 @@ type ( // ProposalStatusFromString turns a string into a ProposalStatus func ProposalStatusFromString(str string) (ProposalStatus, error) { - switch str { - case "DepositPeriod": - return StatusDepositPeriod, nil - - case "VotingPeriod": - return StatusVotingPeriod, nil - - case "Passed": - return StatusPassed, nil - - case "Rejected": - return StatusRejected, nil - - case "Failed": - return StatusFailed, nil - - case "": - return StatusNil, nil - - default: - return ProposalStatus(0xff), fmt.Errorf("'%s' is not a valid proposal status", str) + num, ok := ProposalStatus_value[str] + if !ok { + return StatusNil, fmt.Errorf("'%s' is not a valid proposal status", str) } + return ProposalStatus(num), nil } // ValidProposalStatus returns true if the proposal status is valid and false @@ -185,51 +167,6 @@ func (status *ProposalStatus) Unmarshal(data []byte) error { return nil } -// MarshalJSON Marshals to JSON using string representation of the status -func (status ProposalStatus) MarshalJSON() ([]byte, error) { - return json.Marshal(status.String()) -} - -// UnmarshalJSON Unmarshals from JSON assuming Bech32 encoding -func (status *ProposalStatus) UnmarshalJSON(data []byte) error { - var s string - err := json.Unmarshal(data, &s) - if err != nil { - return err - } - - bz2, err := ProposalStatusFromString(s) - if err != nil { - return err - } - - *status = bz2 - return nil -} - -// String implements the Stringer interface. -func (status ProposalStatus) String() string { - switch status { - case StatusDepositPeriod: - return "DepositPeriod" - - case StatusVotingPeriod: - return "VotingPeriod" - - case StatusPassed: - return "Passed" - - case StatusRejected: - return "Rejected" - - case StatusFailed: - return "Failed" - - default: - return "" - } -} - // Format implements the fmt.Formatter interface. // nolint: errcheck func (status ProposalStatus) Format(s fmt.State, verb rune) { diff --git a/x/gov/types/proposals_test.go b/x/gov/types/proposals_test.go index 70a4b1d8ce..7f6a2b23bf 100644 --- a/x/gov/types/proposals_test.go +++ b/x/gov/types/proposals_test.go @@ -8,13 +8,13 @@ import ( ) func TestProposalStatus_Format(t *testing.T) { - statusDepositPeriod, _ := ProposalStatusFromString("DepositPeriod") + statusDepositPeriod, _ := ProposalStatusFromString("PROPOSAL_STATUS_DEPOSIT_PERIOD") tests := []struct { pt ProposalStatus sprintFArgs string expectedStringOutput string }{ - {statusDepositPeriod, "%s", "DepositPeriod"}, + {statusDepositPeriod, "%s", "PROPOSAL_STATUS_DEPOSIT_PERIOD"}, {statusDepositPeriod, "%v", "1"}, } for _, tt := range tests { diff --git a/x/ibc-transfer/genesis.go b/x/ibc-transfer/genesis.go index 99aaa4ea9f..75d6a204f8 100644 --- a/x/ibc-transfer/genesis.go +++ b/x/ibc-transfer/genesis.go @@ -31,8 +31,8 @@ func InitGenesis(ctx sdk.Context, keeper keeper.Keeper, state types.GenesisState } // ExportGenesis exports transfer module's portID into its geneis state -func ExportGenesis(ctx sdk.Context, keeper keeper.Keeper) types.GenesisState { - return types.GenesisState{ +func ExportGenesis(ctx sdk.Context, keeper keeper.Keeper) *types.GenesisState { + return &types.GenesisState{ PortID: keeper.GetPort(ctx), } } diff --git a/x/ibc-transfer/types/genesis.go b/x/ibc-transfer/types/genesis.go index e5ac802cb8..9665a4005a 100644 --- a/x/ibc-transfer/types/genesis.go +++ b/x/ibc-transfer/types/genesis.go @@ -5,8 +5,8 @@ import ( ) // DefaultGenesisState returns a GenesisState with "transfer" as the default PortID. -func DefaultGenesisState() GenesisState { - return GenesisState{ +func DefaultGenesisState() *GenesisState { + return &GenesisState{ PortID: PortID, } } diff --git a/x/ibc-transfer/types/genesis_test.go b/x/ibc-transfer/types/genesis_test.go index bd687c5561..7e006cf022 100644 --- a/x/ibc-transfer/types/genesis_test.go +++ b/x/ibc-transfer/types/genesis_test.go @@ -11,7 +11,7 @@ import ( func TestValidateGenesis(t *testing.T) { testCases := []struct { name string - genState types.GenesisState + genState *types.GenesisState expPass bool }{ { @@ -21,14 +21,14 @@ func TestValidateGenesis(t *testing.T) { }, { "valid genesis", - types.GenesisState{ + &types.GenesisState{ PortID: "portidone", }, true, }, { "invalid client", - types.GenesisState{ + &types.GenesisState{ PortID: "(INVALIDPORT)", }, false, diff --git a/x/ibc/genesis.go b/x/ibc/genesis.go index a2383dde65..d31c668f20 100644 --- a/x/ibc/genesis.go +++ b/x/ibc/genesis.go @@ -11,15 +11,15 @@ import ( // InitGenesis initializes the ibc state from a provided genesis // state. -func InitGenesis(ctx sdk.Context, k keeper.Keeper, createLocalhost bool, gs types.GenesisState) { +func InitGenesis(ctx sdk.Context, k keeper.Keeper, createLocalhost bool, gs *types.GenesisState) { client.InitGenesis(ctx, k.ClientKeeper, gs.ClientGenesis) connection.InitGenesis(ctx, k.ConnectionKeeper, gs.ConnectionGenesis) channel.InitGenesis(ctx, k.ChannelKeeper, gs.ChannelGenesis) } // ExportGenesis returns the ibc exported genesis. -func ExportGenesis(ctx sdk.Context, k keeper.Keeper) types.GenesisState { - return types.GenesisState{ +func ExportGenesis(ctx sdk.Context, k keeper.Keeper) *types.GenesisState { + return &types.GenesisState{ ClientGenesis: client.ExportGenesis(ctx, k.ClientKeeper), ConnectionGenesis: connection.ExportGenesis(ctx, k.ConnectionKeeper), ChannelGenesis: channel.ExportGenesis(ctx, k.ChannelKeeper), diff --git a/x/ibc/genesis_test.go b/x/ibc/genesis_test.go index fe51ab8acd..7ac9b69d19 100644 --- a/x/ibc/genesis_test.go +++ b/x/ibc/genesis_test.go @@ -23,7 +23,7 @@ import ( func (suite *IBCTestSuite) TestValidateGenesis() { testCases := []struct { name string - genState types.GenesisState + genState *types.GenesisState expPass bool }{ { @@ -33,7 +33,7 @@ func (suite *IBCTestSuite) TestValidateGenesis() { }, { name: "valid genesis", - genState: types.GenesisState{ + genState: &types.GenesisState{ ClientGenesis: clienttypes.NewGenesisState( []clienttypes.GenesisClientState{ clienttypes.NewGenesisClientState( @@ -93,7 +93,7 @@ func (suite *IBCTestSuite) TestValidateGenesis() { }, { name: "invalid client genesis", - genState: types.GenesisState{ + genState: &types.GenesisState{ ClientGenesis: clienttypes.NewGenesisState( []clienttypes.GenesisClientState{ clienttypes.NewGenesisClientState( @@ -112,7 +112,7 @@ func (suite *IBCTestSuite) TestValidateGenesis() { }, { name: "invalid connection genesis", - genState: types.GenesisState{ + genState: &types.GenesisState{ ClientGenesis: clienttypes.DefaultGenesisState(), ConnectionGenesis: connectiontypes.NewGenesisState( []connectiontypes.IdentifiedConnection{ @@ -127,7 +127,7 @@ func (suite *IBCTestSuite) TestValidateGenesis() { }, { name: "invalid channel genesis", - genState: types.GenesisState{ + genState: &types.GenesisState{ ClientGenesis: clienttypes.DefaultGenesisState(), ConnectionGenesis: connectiontypes.DefaultGenesisState(), ChannelGenesis: channeltypes.GenesisState{ @@ -154,7 +154,7 @@ func (suite *IBCTestSuite) TestValidateGenesis() { func (suite *IBCTestSuite) TestInitGenesis() { testCases := []struct { name string - genState types.GenesisState + genState *types.GenesisState }{ { name: "default", @@ -162,7 +162,7 @@ func (suite *IBCTestSuite) TestInitGenesis() { }, { name: "valid genesis", - genState: types.GenesisState{ + genState: &types.GenesisState{ ClientGenesis: clienttypes.NewGenesisState( []clienttypes.GenesisClientState{ clienttypes.NewGenesisClientState( @@ -254,7 +254,7 @@ func (suite *HandlerTestSuite) TestExportGenesis() { tc.malleate() - var gs types.GenesisState + var gs *types.GenesisState suite.NotPanics(func() { gs = ibc.ExportGenesis(suite.chainA.GetContext(), *suite.chainA.App.IBCKeeper) }) @@ -266,8 +266,8 @@ func (suite *HandlerTestSuite) TestExportGenesis() { suite.NotPanics(func() { cdc := codec.NewProtoCodec(suite.chainA.App.InterfaceRegistry()) - genState := cdc.MustMarshalJSON(&gs) - cdc.MustUnmarshalJSON(genState, &gs) + genState := cdc.MustMarshalJSON(gs) + cdc.MustUnmarshalJSON(genState, gs) }) // init genesis based on marshal and unmarshal diff --git a/x/ibc/module.go b/x/ibc/module.go index 4858bedf04..3a5e2893c4 100644 --- a/x/ibc/module.go +++ b/x/ibc/module.go @@ -137,7 +137,7 @@ func (am AppModule) InitGenesis(ctx sdk.Context, cdc codec.JSONMarshaler, bz jso if err != nil { panic(fmt.Sprintf("failed to unmarshal %s genesis state: %s", host.ModuleName, err)) } - InitGenesis(ctx, *am.keeper, am.createLocalhost, gs) + InitGenesis(ctx, *am.keeper, am.createLocalhost, &gs) return []abci.ValidatorUpdate{} } diff --git a/x/ibc/types/genesis.go b/x/ibc/types/genesis.go index 4f997283ae..9bdb25b304 100644 --- a/x/ibc/types/genesis.go +++ b/x/ibc/types/genesis.go @@ -10,8 +10,8 @@ import ( var _ codectypes.UnpackInterfacesMessage = GenesisState{} // DefaultGenesisState returns the ibc module's default genesis state. -func DefaultGenesisState() GenesisState { - return GenesisState{ +func DefaultGenesisState() *GenesisState { + return &GenesisState{ ClientGenesis: clienttypes.DefaultGenesisState(), ConnectionGenesis: connectiontypes.DefaultGenesisState(), ChannelGenesis: channeltypes.DefaultGenesisState(), @@ -25,7 +25,7 @@ func (gs GenesisState) UnpackInterfaces(unpacker codectypes.AnyUnpacker) error { // Validate performs basic genesis state validation returning an error upon any // failure. -func (gs GenesisState) Validate() error { +func (gs *GenesisState) Validate() error { if err := gs.ClientGenesis.Validate(); err != nil { return err } diff --git a/x/mint/genesis.go b/x/mint/genesis.go index c7de6127ff..be7ac61d50 100644 --- a/x/mint/genesis.go +++ b/x/mint/genesis.go @@ -7,14 +7,14 @@ import ( ) // InitGenesis new mint genesis -func InitGenesis(ctx sdk.Context, keeper keeper.Keeper, ak types.AccountKeeper, data types.GenesisState) { +func InitGenesis(ctx sdk.Context, keeper keeper.Keeper, ak types.AccountKeeper, data *types.GenesisState) { keeper.SetMinter(ctx, data.Minter) keeper.SetParams(ctx, data.Params) ak.GetModuleAccount(ctx, types.ModuleName) } // ExportGenesis returns a GenesisState for a given context and keeper. -func ExportGenesis(ctx sdk.Context, keeper keeper.Keeper) types.GenesisState { +func ExportGenesis(ctx sdk.Context, keeper keeper.Keeper) *types.GenesisState { minter := keeper.GetMinter(ctx) params := keeper.GetParams(ctx) return types.NewGenesisState(minter, params) diff --git a/x/mint/module.go b/x/mint/module.go index 2548e32ec5..5cdb995e0a 100644 --- a/x/mint/module.go +++ b/x/mint/module.go @@ -128,7 +128,7 @@ func (am AppModule) InitGenesis(ctx sdk.Context, cdc codec.JSONMarshaler, data j var genesisState types.GenesisState cdc.MustUnmarshalJSON(data, &genesisState) - InitGenesis(ctx, am.keeper, am.authKeeper, genesisState) + InitGenesis(ctx, am.keeper, am.authKeeper, &genesisState) return []abci.ValidatorUpdate{} } diff --git a/x/mint/types/genesis.go b/x/mint/types/genesis.go index c0dc4e91ae..3d2f761b4a 100644 --- a/x/mint/types/genesis.go +++ b/x/mint/types/genesis.go @@ -1,16 +1,16 @@ package types // NewGenesisState creates a new GenesisState object -func NewGenesisState(minter Minter, params Params) GenesisState { - return GenesisState{ +func NewGenesisState(minter Minter, params Params) *GenesisState { + return &GenesisState{ Minter: minter, Params: params, } } // DefaultGenesisState creates a default GenesisState object -func DefaultGenesisState() GenesisState { - return GenesisState{ +func DefaultGenesisState() *GenesisState { + return &GenesisState{ Minter: DefaultInitialMinter(), Params: DefaultParams(), } diff --git a/x/slashing/genesis.go b/x/slashing/genesis.go index 3b25bbe08c..3c38fa431c 100644 --- a/x/slashing/genesis.go +++ b/x/slashing/genesis.go @@ -9,7 +9,7 @@ import ( // InitGenesis initialize default parameters // and the keeper's address to pubkey map -func InitGenesis(ctx sdk.Context, keeper keeper.Keeper, stakingKeeper types.StakingKeeper, data types.GenesisState) { +func InitGenesis(ctx sdk.Context, keeper keeper.Keeper, stakingKeeper types.StakingKeeper, data *types.GenesisState) { stakingKeeper.IterateValidators(ctx, func(index int64, validator exported.ValidatorI) bool { keeper.AddPubkey(ctx, validator.GetConsPubKey()) @@ -41,7 +41,7 @@ func InitGenesis(ctx sdk.Context, keeper keeper.Keeper, stakingKeeper types.Stak // ExportGenesis writes the current store values // to a genesis file, which can be imported again // with InitGenesis -func ExportGenesis(ctx sdk.Context, keeper keeper.Keeper) (data types.GenesisState) { +func ExportGenesis(ctx sdk.Context, keeper keeper.Keeper) (data *types.GenesisState) { params := keeper.GetParams(ctx) signingInfos := make([]types.SigningInfo, 0) missedBlocks := make([]types.ValidatorMissedBlocks, 0) diff --git a/x/slashing/module.go b/x/slashing/module.go index 3000016136..01efbd78e6 100644 --- a/x/slashing/module.go +++ b/x/slashing/module.go @@ -141,8 +141,8 @@ func (am AppModule) RegisterQueryService(server grpc.Server) { // no validator updates. func (am AppModule) InitGenesis(ctx sdk.Context, cdc codec.JSONMarshaler, data json.RawMessage) []abci.ValidatorUpdate { var genesisState types.GenesisState - types.ModuleCdc.MustUnmarshalJSON(data, &genesisState) - InitGenesis(ctx, am.keeper, am.stakingKeeper, genesisState) + cdc.MustUnmarshalJSON(data, &genesisState) + InitGenesis(ctx, am.keeper, am.stakingKeeper, &genesisState) return []abci.ValidatorUpdate{} } diff --git a/x/slashing/types/genesis.go b/x/slashing/types/genesis.go index 745ab2d639..ee765c8c37 100644 --- a/x/slashing/types/genesis.go +++ b/x/slashing/types/genesis.go @@ -10,9 +10,9 @@ import ( // NewGenesisState creates a new GenesisState object func NewGenesisState( params Params, signingInfos []SigningInfo, missedBlocks []ValidatorMissedBlocks, -) GenesisState { +) *GenesisState { - return GenesisState{ + return &GenesisState{ Params: params, SigningInfos: signingInfos, MissedBlocks: missedBlocks, @@ -28,8 +28,8 @@ func NewMissedBlock(index int64, missed bool) MissedBlock { } // DefaultGenesisState - default GenesisState used by Cosmos Hub -func DefaultGenesisState() GenesisState { - return GenesisState{ +func DefaultGenesisState() *GenesisState { + return &GenesisState{ Params: DefaultParams(), SigningInfos: []SigningInfo{}, MissedBlocks: []ValidatorMissedBlocks{}, diff --git a/x/staking/genesis.go b/x/staking/genesis.go index 753b5836f2..ebba834dbb 100644 --- a/x/staking/genesis.go +++ b/x/staking/genesis.go @@ -19,7 +19,7 @@ import ( // Returns final validator set after applying all declaration and delegations func InitGenesis( ctx sdk.Context, keeper keeper.Keeper, accountKeeper types.AccountKeeper, - bankKeeper types.BankKeeper, data types.GenesisState, + bankKeeper types.BankKeeper, data *types.GenesisState, ) (res []abci.ValidatorUpdate) { bondedTokens := sdk.ZeroInt() notBondedTokens := sdk.ZeroInt() @@ -147,7 +147,7 @@ func InitGenesis( // ExportGenesis returns a GenesisState for a given context and keeper. The // GenesisState will contain the pool, params, validators, and bonds found in // the keeper. -func ExportGenesis(ctx sdk.Context, keeper keeper.Keeper) types.GenesisState { +func ExportGenesis(ctx sdk.Context, keeper keeper.Keeper) *types.GenesisState { var unbondingDelegations []types.UnbondingDelegation keeper.IterateUnbondingDelegations(ctx, func(_ int64, ubd types.UnbondingDelegation) (stop bool) { @@ -169,7 +169,7 @@ func ExportGenesis(ctx sdk.Context, keeper keeper.Keeper) types.GenesisState { return false }) - return types.GenesisState{ + return &types.GenesisState{ Params: keeper.GetParams(ctx), LastTotalPower: keeper.GetLastTotalPower(ctx), LastValidatorPowers: lastValidatorPowers, @@ -199,7 +199,7 @@ func WriteValidators(ctx sdk.Context, keeper keeper.Keeper) (vals []tmtypes.Gene // ValidateGenesis validates the provided staking genesis state to ensure the // expected invariants holds. (i.e. params in correct bounds, no duplicate validators) -func ValidateGenesis(data types.GenesisState) error { +func ValidateGenesis(data *types.GenesisState) error { if err := validateGenesisStateValidators(data.Validators); err != nil { return err } diff --git a/x/staking/genesis_test.go b/x/staking/genesis_test.go index d67f66b9a8..989bf56bf0 100644 --- a/x/staking/genesis_test.go +++ b/x/staking/genesis_test.go @@ -161,7 +161,7 @@ func TestValidateGenesis(t *testing.T) { tt := tt t.Run(tt.name, func(t *testing.T) { genesisState := types.DefaultGenesisState() - tt.mutate(&genesisState) + tt.mutate(genesisState) if tt.wantErr { assert.Error(t, staking.ValidateGenesis(genesisState)) } else { diff --git a/x/staking/module.go b/x/staking/module.go index 7be852331e..03a5f0bbca 100644 --- a/x/staking/module.go +++ b/x/staking/module.go @@ -65,7 +65,7 @@ func (AppModuleBasic) ValidateGenesis(cdc codec.JSONMarshaler, config client.TxE return fmt.Errorf("failed to unmarshal %s genesis state: %w", types.ModuleName, err) } - return ValidateGenesis(data) + return ValidateGenesis(&data) } // RegisterRESTRoutes registers the REST routes for the staking module. @@ -141,7 +141,7 @@ func (am AppModule) InitGenesis(ctx sdk.Context, cdc codec.JSONMarshaler, data j cdc.MustUnmarshalJSON(data, &genesisState) - return InitGenesis(ctx, am.keeper, am.accountKeeper, am.bankKeeper, genesisState) + return InitGenesis(ctx, am.keeper, am.accountKeeper, am.bankKeeper, &genesisState) } // ExportGenesis returns the exported genesis state as raw bytes for the staking diff --git a/x/staking/types/genesis.go b/x/staking/types/genesis.go index 5da7713684..a296844f98 100644 --- a/x/staking/types/genesis.go +++ b/x/staking/types/genesis.go @@ -7,8 +7,8 @@ import ( ) // NewGenesisState creates a new GenesisState instanc e -func NewGenesisState(params Params, validators []Validator, delegations []Delegation) GenesisState { - return GenesisState{ +func NewGenesisState(params Params, validators []Validator, delegations []Delegation) *GenesisState { + return &GenesisState{ Params: params, Validators: validators, Delegations: delegations, @@ -16,20 +16,20 @@ func NewGenesisState(params Params, validators []Validator, delegations []Delega } // DefaultGenesisState gets the raw genesis raw message for testing -func DefaultGenesisState() GenesisState { - return GenesisState{ +func DefaultGenesisState() *GenesisState { + return &GenesisState{ Params: DefaultParams(), } } // GetGenesisStateFromAppState returns x/staking GenesisState given raw application // genesis state. -func GetGenesisStateFromAppState(cdc *codec.LegacyAmino, appState map[string]json.RawMessage) GenesisState { +func GetGenesisStateFromAppState(cdc *codec.LegacyAmino, appState map[string]json.RawMessage) *GenesisState { var genesisState GenesisState if appState[ModuleName] != nil { cdc.MustUnmarshalJSON(appState[ModuleName], &genesisState) } - return genesisState + return &genesisState } diff --git a/x/staking/types/staking.pb.go b/x/staking/types/staking.pb.go index 7e8178d9a3..1c8b771ea4 100644 --- a/x/staking/types/staking.pb.go +++ b/x/staking/types/staking.pb.go @@ -1264,588 +1264,590 @@ func (this *Pool) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_ func StakingDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 9290 bytes of a gzipped FileDescriptorSet + // 9316 bytes of a gzipped FileDescriptorSet 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x7d, 0x70, 0x24, 0xc7, 0x75, 0x1f, 0x66, 0x77, 0x01, 0xec, 0xbe, 0xc5, 0xc7, 0xa2, 0x81, 0x3b, 0xee, 0x2d, 0x49, 0xe0, 0x38, 0xfc, 0x38, 0xdc, 0x91, 0xc4, 0x89, 0xc7, 0xcf, 0xdb, 0x93, 0x49, 0x63, 0x01, 0xdc, 0x1d, - 0x48, 0xe0, 0x00, 0x0e, 0x80, 0x23, 0x29, 0xd9, 0x9a, 0x0c, 0x66, 0x1b, 0x8b, 0xe1, 0xed, 0xce, - 0x2c, 0x67, 0x66, 0x71, 0x00, 0xa3, 0x3f, 0x98, 0x92, 0x1c, 0x45, 0x8a, 0x15, 0x29, 0x8e, 0x9c, - 0xd0, 0xb2, 0xa4, 0xc8, 0x72, 0x25, 0x52, 0x64, 0x27, 0xb6, 0x13, 0x45, 0x91, 0x9d, 0xaa, 0x44, - 0x95, 0x28, 0x8e, 0x52, 0x71, 0x52, 0x52, 0x95, 0x93, 0x72, 0x52, 0xa9, 0x93, 0x4d, 0xa9, 0x2a, - 0xb2, 0xc2, 0xc4, 0xce, 0x85, 0x71, 0xb9, 0xa4, 0x54, 0x39, 0xd5, 0x5f, 0xf3, 0xb5, 0xb3, 0x98, - 0x59, 0xf0, 0x48, 0x49, 0x25, 0xfe, 0x85, 0xed, 0x9e, 0xf7, 0x7e, 0xdd, 0xfd, 0xfa, 0xf5, 0x7b, - 0xaf, 0x5f, 0xf7, 0x0c, 0xe0, 0x97, 0x2f, 0xc0, 0xc9, 0x86, 0x65, 0x35, 0x9a, 0xf8, 0x6c, 0xdb, - 0xb6, 0x5c, 0x6b, 0xbb, 0xb3, 0x73, 0xb6, 0x8e, 0x1d, 0xdd, 0x36, 0xda, 0xae, 0x65, 0xcf, 0xd1, - 0x3a, 0x34, 0xce, 0x28, 0xe6, 0x04, 0x85, 0xbc, 0x0a, 0x13, 0x17, 0x8d, 0x26, 0x5e, 0xf4, 0x08, - 0x37, 0xb0, 0x8b, 0x9e, 0x80, 0xdc, 0x8e, 0xd1, 0xc4, 0x65, 0xe9, 0x64, 0x76, 0xb6, 0x78, 0xee, - 0x9e, 0xb9, 0x08, 0xd3, 0x5c, 0x98, 0x63, 0x9d, 0x54, 0x2b, 0x94, 0x43, 0xfe, 0x4e, 0x0e, 0x26, - 0x63, 0x9e, 0x22, 0x04, 0x39, 0x53, 0x6b, 0x11, 0x44, 0x69, 0xb6, 0xa0, 0xd0, 0xdf, 0xa8, 0x0c, - 0xc3, 0x6d, 0x4d, 0xbf, 0xa6, 0x35, 0x70, 0x39, 0x43, 0xab, 0x45, 0x11, 0x4d, 0x03, 0xd4, 0x71, - 0x1b, 0x9b, 0x75, 0x6c, 0xea, 0x07, 0xe5, 0xec, 0xc9, 0xec, 0x6c, 0x41, 0x09, 0xd4, 0xa0, 0xfb, - 0x61, 0xa2, 0xdd, 0xd9, 0x6e, 0x1a, 0xba, 0x1a, 0x20, 0x83, 0x93, 0xd9, 0xd9, 0x41, 0xa5, 0xc4, - 0x1e, 0x2c, 0xfa, 0xc4, 0xa7, 0x60, 0xfc, 0x3a, 0xd6, 0xae, 0x05, 0x49, 0x8b, 0x94, 0x74, 0x8c, - 0x54, 0x07, 0x08, 0x17, 0x60, 0xa4, 0x85, 0x1d, 0x47, 0x6b, 0x60, 0xd5, 0x3d, 0x68, 0xe3, 0x72, - 0x8e, 0x8e, 0xfe, 0x64, 0xd7, 0xe8, 0xa3, 0x23, 0x2f, 0x72, 0xae, 0xcd, 0x83, 0x36, 0x46, 0xf3, - 0x50, 0xc0, 0x66, 0xa7, 0xc5, 0x10, 0x06, 0x7b, 0xc8, 0x6f, 0xc9, 0xec, 0xb4, 0xa2, 0x28, 0x79, - 0xc2, 0xc6, 0x21, 0x86, 0x1d, 0x6c, 0xef, 0x19, 0x3a, 0x2e, 0x0f, 0x51, 0x80, 0x53, 0x5d, 0x00, - 0x1b, 0xec, 0x79, 0x14, 0x43, 0xf0, 0xa1, 0x05, 0x28, 0xe0, 0x7d, 0x17, 0x9b, 0x8e, 0x61, 0x99, - 0xe5, 0x61, 0x0a, 0x72, 0x6f, 0xcc, 0x2c, 0xe2, 0x66, 0x3d, 0x0a, 0xe1, 0xf3, 0xa1, 0xc7, 0x60, - 0xd8, 0x6a, 0xbb, 0x86, 0x65, 0x3a, 0xe5, 0xfc, 0x49, 0x69, 0xb6, 0x78, 0xee, 0x8e, 0x58, 0x45, - 0x58, 0x63, 0x34, 0x8a, 0x20, 0x46, 0xcb, 0x50, 0x72, 0xac, 0x8e, 0xad, 0x63, 0x55, 0xb7, 0xea, - 0x58, 0x35, 0xcc, 0x1d, 0xab, 0x5c, 0xa0, 0x00, 0x33, 0xdd, 0x03, 0xa1, 0x84, 0x0b, 0x56, 0x1d, - 0x2f, 0x9b, 0x3b, 0x96, 0x32, 0xe6, 0x84, 0xca, 0xe8, 0x38, 0x0c, 0x39, 0x07, 0xa6, 0xab, 0xed, - 0x97, 0x47, 0xa8, 0x86, 0xf0, 0x92, 0xfc, 0xdb, 0x43, 0x30, 0x9e, 0x46, 0xc5, 0x2e, 0xc0, 0xe0, - 0x0e, 0x19, 0x65, 0x39, 0xd3, 0x8f, 0x0c, 0x18, 0x4f, 0x58, 0x88, 0x43, 0x47, 0x14, 0xe2, 0x3c, - 0x14, 0x4d, 0xec, 0xb8, 0xb8, 0xce, 0x34, 0x22, 0x9b, 0x52, 0xa7, 0x80, 0x31, 0x75, 0xab, 0x54, - 0xee, 0x48, 0x2a, 0xf5, 0x3c, 0x8c, 0x7b, 0x5d, 0x52, 0x6d, 0xcd, 0x6c, 0x08, 0xdd, 0x3c, 0x9b, - 0xd4, 0x93, 0xb9, 0x25, 0xc1, 0xa7, 0x10, 0x36, 0x65, 0x0c, 0x87, 0xca, 0x68, 0x11, 0xc0, 0x32, - 0xb1, 0xb5, 0xa3, 0xd6, 0xb1, 0xde, 0x2c, 0xe7, 0x7b, 0x48, 0x69, 0x8d, 0x90, 0x74, 0x49, 0xc9, - 0x62, 0xb5, 0x7a, 0x13, 0x9d, 0xf7, 0x55, 0x6d, 0xb8, 0x87, 0xa6, 0xac, 0xb2, 0x45, 0xd6, 0xa5, - 0x6d, 0x5b, 0x30, 0x66, 0x63, 0xa2, 0xf7, 0xb8, 0xce, 0x47, 0x56, 0xa0, 0x9d, 0x98, 0x4b, 0x1c, - 0x99, 0xc2, 0xd9, 0xd8, 0xc0, 0x46, 0xed, 0x60, 0x11, 0xdd, 0x0d, 0x5e, 0x85, 0x4a, 0xd5, 0x0a, - 0xa8, 0x15, 0x1a, 0x11, 0x95, 0x57, 0xb4, 0x16, 0xae, 0xbc, 0x0c, 0x63, 0x61, 0xf1, 0xa0, 0x29, - 0x18, 0x74, 0x5c, 0xcd, 0x76, 0xa9, 0x16, 0x0e, 0x2a, 0xac, 0x80, 0x4a, 0x90, 0xc5, 0x66, 0x9d, - 0x5a, 0xb9, 0x41, 0x85, 0xfc, 0x44, 0x3f, 0xed, 0x0f, 0x38, 0x4b, 0x07, 0x7c, 0x5f, 0xf7, 0x8c, - 0x86, 0x90, 0xa3, 0xe3, 0xae, 0x3c, 0x0e, 0xa3, 0xa1, 0x01, 0xa4, 0x6d, 0x5a, 0x7e, 0x3f, 0x1c, - 0x8b, 0x85, 0x46, 0xcf, 0xc3, 0x54, 0xc7, 0x34, 0x4c, 0x17, 0xdb, 0x6d, 0x1b, 0x13, 0x8d, 0x65, - 0x4d, 0x95, 0xff, 0xfb, 0x70, 0x0f, 0x9d, 0xdb, 0x0a, 0x52, 0x33, 0x14, 0x65, 0xb2, 0xd3, 0x5d, - 0x79, 0xa6, 0x90, 0xff, 0xee, 0x70, 0xe9, 0x95, 0x57, 0x5e, 0x79, 0x25, 0x23, 0xbf, 0x3a, 0x04, - 0x53, 0x71, 0x6b, 0x26, 0x76, 0xf9, 0x1e, 0x87, 0x21, 0xb3, 0xd3, 0xda, 0xc6, 0x36, 0x15, 0xd2, - 0xa0, 0xc2, 0x4b, 0x68, 0x1e, 0x06, 0x9b, 0xda, 0x36, 0x6e, 0x96, 0x73, 0x27, 0xa5, 0xd9, 0xb1, - 0x73, 0xf7, 0xa7, 0x5a, 0x95, 0x73, 0x2b, 0x84, 0x45, 0x61, 0x9c, 0xe8, 0x49, 0xc8, 0x71, 0x13, - 0x4d, 0x10, 0xce, 0xa4, 0x43, 0x20, 0x6b, 0x49, 0xa1, 0x7c, 0xe8, 0x76, 0x28, 0x90, 0xbf, 0x4c, - 0x37, 0x86, 0x68, 0x9f, 0xf3, 0xa4, 0x82, 0xe8, 0x05, 0xaa, 0x40, 0x9e, 0x2e, 0x93, 0x3a, 0x16, - 0xae, 0xcd, 0x2b, 0x13, 0xc5, 0xaa, 0xe3, 0x1d, 0xad, 0xd3, 0x74, 0xd5, 0x3d, 0xad, 0xd9, 0xc1, - 0x54, 0xe1, 0x0b, 0xca, 0x08, 0xaf, 0xbc, 0x4a, 0xea, 0xd0, 0x0c, 0x14, 0xd9, 0xaa, 0x32, 0xcc, - 0x3a, 0xde, 0xa7, 0xd6, 0x73, 0x50, 0x61, 0x0b, 0x6d, 0x99, 0xd4, 0x90, 0xe6, 0x5f, 0x74, 0x2c, - 0x53, 0xa8, 0x26, 0x6d, 0x82, 0x54, 0xd0, 0xe6, 0x1f, 0x8f, 0x1a, 0xee, 0x3b, 0xe3, 0x87, 0x17, - 0xd5, 0x29, 0xf9, 0xcb, 0x19, 0xc8, 0x51, 0x7b, 0x31, 0x0e, 0xc5, 0xcd, 0x17, 0xd6, 0x97, 0xd4, - 0xc5, 0xb5, 0xad, 0xda, 0xca, 0x52, 0x49, 0x42, 0x63, 0x00, 0xb4, 0xe2, 0xe2, 0xca, 0xda, 0xfc, - 0x66, 0x29, 0xe3, 0x95, 0x97, 0xaf, 0x6c, 0x3e, 0xf6, 0x48, 0x29, 0xeb, 0x31, 0x6c, 0xb1, 0x8a, - 0x5c, 0x90, 0xe0, 0xe1, 0x73, 0xa5, 0x41, 0x54, 0x82, 0x11, 0x06, 0xb0, 0xfc, 0xfc, 0xd2, 0xe2, - 0x63, 0x8f, 0x94, 0x86, 0xc2, 0x35, 0x0f, 0x9f, 0x2b, 0x0d, 0xa3, 0x51, 0x28, 0xd0, 0x9a, 0xda, - 0xda, 0xda, 0x4a, 0x29, 0xef, 0x61, 0x6e, 0x6c, 0x2a, 0xcb, 0x57, 0x2e, 0x95, 0x0a, 0x1e, 0xe6, - 0x25, 0x65, 0x6d, 0x6b, 0xbd, 0x04, 0x1e, 0xc2, 0xea, 0xd2, 0xc6, 0xc6, 0xfc, 0xa5, 0xa5, 0x52, - 0xd1, 0xa3, 0xa8, 0xbd, 0xb0, 0xb9, 0xb4, 0x51, 0x1a, 0x09, 0x75, 0xeb, 0xe1, 0x73, 0xa5, 0x51, - 0xaf, 0x89, 0xa5, 0x2b, 0x5b, 0xab, 0xa5, 0x31, 0x34, 0x01, 0xa3, 0xac, 0x09, 0xd1, 0x89, 0xf1, - 0x48, 0xd5, 0x63, 0x8f, 0x94, 0x4a, 0x7e, 0x47, 0x18, 0xca, 0x44, 0xa8, 0xe2, 0xb1, 0x47, 0x4a, - 0x48, 0x5e, 0x80, 0x41, 0xaa, 0x5d, 0x08, 0xc1, 0xd8, 0xca, 0x7c, 0x6d, 0x69, 0x45, 0x5d, 0x5b, - 0xdf, 0x5c, 0x5e, 0xbb, 0x32, 0xbf, 0x52, 0x92, 0xfc, 0x3a, 0x65, 0xe9, 0xd9, 0xad, 0x65, 0x65, - 0x69, 0xb1, 0x94, 0x09, 0xd6, 0xad, 0x2f, 0xcd, 0x6f, 0x2e, 0x2d, 0x96, 0xb2, 0xb2, 0x0e, 0x53, - 0x71, 0x76, 0x32, 0x76, 0x65, 0x04, 0xa6, 0x38, 0xd3, 0x63, 0x8a, 0x29, 0x56, 0xd7, 0x14, 0x7f, - 0x3b, 0x03, 0x93, 0x31, 0xbe, 0x22, 0xb6, 0x91, 0xa7, 0x60, 0x90, 0xa9, 0x28, 0xf3, 0x9e, 0xa7, - 0x63, 0x9d, 0x0e, 0x55, 0xd8, 0x2e, 0x0f, 0x4a, 0xf9, 0x82, 0x11, 0x44, 0xb6, 0x47, 0x04, 0x41, - 0x20, 0xba, 0x6c, 0xfa, 0xcf, 0x76, 0xd9, 0x74, 0xe6, 0xf6, 0x1e, 0x4b, 0xe3, 0xf6, 0x68, 0x5d, - 0x7f, 0xb6, 0x7d, 0x30, 0xc6, 0xb6, 0x5f, 0x80, 0x89, 0x2e, 0xa0, 0xd4, 0x36, 0xf6, 0x03, 0x12, - 0x94, 0x7b, 0x09, 0x27, 0xc1, 0xd2, 0x65, 0x42, 0x96, 0xee, 0x42, 0x54, 0x82, 0x77, 0xf5, 0x9e, - 0x84, 0xae, 0xb9, 0xfe, 0xbc, 0x04, 0xc7, 0xe3, 0x23, 0xc5, 0xd8, 0x3e, 0x3c, 0x09, 0x43, 0x2d, - 0xec, 0xee, 0x5a, 0x22, 0x5a, 0xba, 0x2f, 0xc6, 0x07, 0x93, 0xc7, 0xd1, 0xc9, 0xe6, 0x5c, 0x41, - 0x27, 0x9e, 0xed, 0x15, 0xee, 0xb1, 0xde, 0x74, 0xf5, 0xf4, 0xc3, 0x19, 0x38, 0x16, 0x0b, 0x1e, - 0xdb, 0xd1, 0x3b, 0x01, 0x0c, 0xb3, 0xdd, 0x71, 0x59, 0x44, 0xc4, 0x0c, 0x6c, 0x81, 0xd6, 0x50, - 0xe3, 0x45, 0x8c, 0x67, 0xc7, 0xf5, 0x9e, 0x67, 0xe9, 0x73, 0x60, 0x55, 0x94, 0xe0, 0x09, 0xbf, - 0xa3, 0x39, 0xda, 0xd1, 0xe9, 0x1e, 0x23, 0xed, 0x52, 0xcc, 0x77, 0x41, 0x49, 0x6f, 0x1a, 0xd8, - 0x74, 0x55, 0xc7, 0xb5, 0xb1, 0xd6, 0x32, 0xcc, 0x06, 0xf5, 0x20, 0xf9, 0xea, 0xe0, 0x8e, 0xd6, - 0x74, 0xb0, 0x32, 0xce, 0x1e, 0x6f, 0x88, 0xa7, 0x84, 0x83, 0x2a, 0x90, 0x1d, 0xe0, 0x18, 0x0a, - 0x71, 0xb0, 0xc7, 0x1e, 0x87, 0xfc, 0x0b, 0x05, 0x28, 0x06, 0xe2, 0x6a, 0x74, 0x17, 0x8c, 0xbc, - 0xa8, 0xed, 0x69, 0xaa, 0xd8, 0x2b, 0x31, 0x49, 0x14, 0x49, 0xdd, 0x3a, 0xdf, 0x2f, 0xbd, 0x0b, - 0xa6, 0x28, 0x89, 0xd5, 0x71, 0xb1, 0xad, 0xea, 0x4d, 0xcd, 0x71, 0xa8, 0xd0, 0xf2, 0x94, 0x14, - 0x91, 0x67, 0x6b, 0xe4, 0xd1, 0x82, 0x78, 0x82, 0x1e, 0x85, 0x49, 0xca, 0xd1, 0xea, 0x34, 0x5d, - 0xa3, 0xdd, 0xc4, 0x2a, 0xd9, 0xbd, 0x39, 0xd4, 0x93, 0x78, 0x3d, 0x9b, 0x20, 0x14, 0xab, 0x9c, - 0x80, 0xf4, 0xc8, 0x41, 0x8b, 0x70, 0x27, 0x65, 0x6b, 0x60, 0x13, 0xdb, 0x9a, 0x8b, 0x55, 0xfc, - 0x52, 0x47, 0x6b, 0x3a, 0xaa, 0x66, 0xd6, 0xd5, 0x5d, 0xcd, 0xd9, 0x2d, 0x4f, 0x11, 0x80, 0x5a, - 0xa6, 0x2c, 0x29, 0x27, 0x08, 0xe1, 0x25, 0x4e, 0xb7, 0x44, 0xc9, 0xe6, 0xcd, 0xfa, 0x65, 0xcd, - 0xd9, 0x45, 0x55, 0x38, 0x4e, 0x51, 0x1c, 0xd7, 0x36, 0xcc, 0x86, 0xaa, 0xef, 0x62, 0xfd, 0x9a, - 0xda, 0x71, 0x77, 0x9e, 0x28, 0xdf, 0x1e, 0x6c, 0x9f, 0xf6, 0x70, 0x83, 0xd2, 0x2c, 0x10, 0x92, - 0x2d, 0x77, 0xe7, 0x09, 0xb4, 0x01, 0x23, 0x64, 0x32, 0x5a, 0xc6, 0xcb, 0x58, 0xdd, 0xb1, 0x6c, - 0xea, 0x1a, 0xc7, 0x62, 0x4c, 0x53, 0x40, 0x82, 0x73, 0x6b, 0x9c, 0x61, 0xd5, 0xaa, 0xe3, 0xea, - 0xe0, 0xc6, 0xfa, 0xd2, 0xd2, 0xa2, 0x52, 0x14, 0x28, 0x17, 0x2d, 0x9b, 0x28, 0x54, 0xc3, 0xf2, - 0x04, 0x5c, 0x64, 0x0a, 0xd5, 0xb0, 0x84, 0x78, 0x1f, 0x85, 0x49, 0x5d, 0x67, 0x63, 0x36, 0x74, - 0x95, 0xef, 0xb1, 0x9c, 0x72, 0x29, 0x24, 0x2c, 0x5d, 0xbf, 0xc4, 0x08, 0xb8, 0x8e, 0x3b, 0xe8, - 0x3c, 0x1c, 0xf3, 0x85, 0x15, 0x64, 0x9c, 0xe8, 0x1a, 0x65, 0x94, 0xf5, 0x51, 0x98, 0x6c, 0x1f, - 0x74, 0x33, 0xa2, 0x50, 0x8b, 0xed, 0x83, 0x28, 0xdb, 0xe3, 0x30, 0xd5, 0xde, 0x6d, 0x77, 0xf3, - 0x9d, 0x09, 0xf2, 0xa1, 0xf6, 0x6e, 0x3b, 0xca, 0x78, 0x2f, 0xdd, 0x70, 0xdb, 0x58, 0xd7, 0x5c, - 0x5c, 0x2f, 0xdf, 0x16, 0x24, 0x0f, 0x3c, 0x40, 0x67, 0xa1, 0xa4, 0xeb, 0x2a, 0x36, 0xb5, 0xed, - 0x26, 0x56, 0x35, 0x1b, 0x9b, 0x9a, 0x53, 0x9e, 0x09, 0x12, 0x8f, 0xe9, 0xfa, 0x12, 0x7d, 0x3a, - 0x4f, 0x1f, 0xa2, 0x33, 0x30, 0x61, 0x6d, 0xbf, 0xa8, 0x33, 0x95, 0x54, 0xdb, 0x36, 0xde, 0x31, - 0xf6, 0xcb, 0xf7, 0x50, 0xf9, 0x8e, 0x93, 0x07, 0x54, 0x21, 0xd7, 0x69, 0x35, 0x3a, 0x0d, 0x25, - 0xdd, 0xd9, 0xd5, 0xec, 0x36, 0xb5, 0xc9, 0x4e, 0x5b, 0xd3, 0x71, 0xf9, 0x5e, 0x46, 0xca, 0xea, - 0xaf, 0x88, 0x6a, 0xb2, 0x24, 0x9c, 0xeb, 0xc6, 0x8e, 0x2b, 0x10, 0x4f, 0xb1, 0x25, 0x41, 0xeb, - 0x38, 0xda, 0x2c, 0x94, 0x88, 0x28, 0x42, 0x0d, 0xcf, 0x52, 0xb2, 0xb1, 0xf6, 0x6e, 0x3b, 0xd8, - 0xee, 0xdd, 0x30, 0x4a, 0x28, 0xfd, 0x46, 0x4f, 0xb3, 0x80, 0xac, 0xbd, 0x1b, 0x68, 0xf1, 0x11, - 0x38, 0x4e, 0x88, 0x5a, 0xd8, 0xd5, 0xea, 0x9a, 0xab, 0x05, 0xa8, 0x1f, 0xa0, 0xd4, 0x44, 0xee, - 0xab, 0xfc, 0x61, 0xa8, 0x9f, 0x76, 0x67, 0xfb, 0xc0, 0xd3, 0xac, 0x07, 0x59, 0x3f, 0x49, 0x9d, - 0xd0, 0xad, 0xb7, 0x2c, 0xe8, 0x96, 0xab, 0x30, 0x12, 0x54, 0x7c, 0x54, 0x00, 0xa6, 0xfa, 0x25, - 0x89, 0x44, 0x41, 0x0b, 0x6b, 0x8b, 0x24, 0x7e, 0x79, 0xcf, 0x52, 0x29, 0x43, 0xe2, 0xa8, 0x95, - 0xe5, 0xcd, 0x25, 0x55, 0xd9, 0xba, 0xb2, 0xb9, 0xbc, 0xba, 0x54, 0xca, 0x06, 0x02, 0xf6, 0xa7, - 0x73, 0xf9, 0xfb, 0x4a, 0xa7, 0xe4, 0x6f, 0x66, 0x60, 0x2c, 0xbc, 0x03, 0x43, 0xef, 0x86, 0xdb, - 0x44, 0xba, 0xc4, 0xc1, 0xae, 0x7a, 0xdd, 0xb0, 0xe9, 0x8a, 0x6c, 0x69, 0xcc, 0x3b, 0x7a, 0x3a, - 0x31, 0xc5, 0xa9, 0x36, 0xb0, 0xfb, 0x9c, 0x61, 0x93, 0xf5, 0xd6, 0xd2, 0x5c, 0xb4, 0x02, 0x33, - 0xa6, 0xa5, 0x3a, 0xae, 0x66, 0xd6, 0x35, 0xbb, 0xae, 0xfa, 0x89, 0x2a, 0x55, 0xd3, 0x75, 0xec, - 0x38, 0x16, 0xf3, 0x84, 0x1e, 0xca, 0x1d, 0xa6, 0xb5, 0xc1, 0x89, 0x7d, 0x17, 0x31, 0xcf, 0x49, - 0x23, 0xfa, 0x9b, 0xed, 0xa5, 0xbf, 0xb7, 0x43, 0xa1, 0xa5, 0xb5, 0x55, 0x6c, 0xba, 0xf6, 0x01, - 0x8d, 0xbb, 0xf3, 0x4a, 0xbe, 0xa5, 0xb5, 0x97, 0x48, 0xf9, 0x6d, 0xd9, 0xfe, 0x3c, 0x9d, 0xcb, - 0xe7, 0x4b, 0x85, 0xa7, 0x73, 0xf9, 0x42, 0x09, 0xe4, 0xd7, 0xb2, 0x30, 0x12, 0x8c, 0xc3, 0xc9, - 0xb6, 0x46, 0xa7, 0x2e, 0x4b, 0xa2, 0x46, 0xed, 0xee, 0x43, 0xa3, 0xf6, 0xb9, 0x05, 0xe2, 0xcb, - 0xaa, 0x43, 0x2c, 0x3a, 0x56, 0x18, 0x27, 0x89, 0x23, 0x88, 0xb2, 0x61, 0x16, 0x8d, 0xe4, 0x15, - 0x5e, 0x42, 0x97, 0x60, 0xe8, 0x45, 0x87, 0x62, 0x0f, 0x51, 0xec, 0x7b, 0x0e, 0xc7, 0x7e, 0x7a, - 0x83, 0x82, 0x17, 0x9e, 0xde, 0x50, 0xaf, 0xac, 0x29, 0xab, 0xf3, 0x2b, 0x0a, 0x67, 0x47, 0x27, - 0x20, 0xd7, 0xd4, 0x5e, 0x3e, 0x08, 0x7b, 0x3d, 0x5a, 0x95, 0x76, 0x12, 0x4e, 0x40, 0xee, 0x3a, - 0xd6, 0xae, 0x85, 0x7d, 0x0d, 0xad, 0x7a, 0x0b, 0x17, 0xc3, 0x59, 0x18, 0xa4, 0xf2, 0x42, 0x00, - 0x5c, 0x62, 0xa5, 0x01, 0x94, 0x87, 0xdc, 0xc2, 0x9a, 0x42, 0x16, 0x44, 0x09, 0x46, 0x58, 0xad, - 0xba, 0xbe, 0xbc, 0xb4, 0xb0, 0x54, 0xca, 0xc8, 0x8f, 0xc2, 0x10, 0x13, 0x02, 0x59, 0x2c, 0x9e, - 0x18, 0x4a, 0x03, 0xbc, 0xc8, 0x31, 0x24, 0xf1, 0x74, 0x6b, 0xb5, 0xb6, 0xa4, 0x94, 0x32, 0xe1, - 0xa9, 0xce, 0x95, 0x06, 0x65, 0x07, 0x46, 0x82, 0x81, 0xf8, 0xdb, 0xb3, 0xc9, 0xfe, 0xaa, 0x04, - 0xc5, 0x40, 0x60, 0x4d, 0x22, 0x22, 0xad, 0xd9, 0xb4, 0xae, 0xab, 0x5a, 0xd3, 0xd0, 0x1c, 0xae, - 0x1a, 0x40, 0xab, 0xe6, 0x49, 0x4d, 0xda, 0xa9, 0x7b, 0x9b, 0x96, 0xc8, 0x60, 0x69, 0x48, 0xfe, - 0x8c, 0x04, 0xa5, 0x68, 0x64, 0x1b, 0xe9, 0xa6, 0xf4, 0xc3, 0xec, 0xa6, 0xfc, 0x29, 0x09, 0xc6, - 0xc2, 0xe1, 0x6c, 0xa4, 0x7b, 0x77, 0xfd, 0x50, 0xbb, 0xf7, 0x87, 0x19, 0x18, 0x0d, 0x05, 0xb1, - 0x69, 0x7b, 0xf7, 0x12, 0x4c, 0x18, 0x75, 0xdc, 0x6a, 0x5b, 0x2e, 0x36, 0xf5, 0x03, 0xb5, 0x89, - 0xf7, 0x70, 0xb3, 0x2c, 0x53, 0xa3, 0x71, 0xf6, 0xf0, 0x30, 0x79, 0x6e, 0xd9, 0xe7, 0x5b, 0x21, - 0x6c, 0xd5, 0xc9, 0xe5, 0xc5, 0xa5, 0xd5, 0xf5, 0xb5, 0xcd, 0xa5, 0x2b, 0x0b, 0x2f, 0xa8, 0x5b, - 0x57, 0x9e, 0xb9, 0xb2, 0xf6, 0xdc, 0x15, 0xa5, 0x64, 0x44, 0xc8, 0xde, 0xc2, 0x65, 0xbf, 0x0e, - 0xa5, 0x68, 0xa7, 0xd0, 0x6d, 0x10, 0xd7, 0xad, 0xd2, 0x00, 0x9a, 0x84, 0xf1, 0x2b, 0x6b, 0xea, - 0xc6, 0xf2, 0xe2, 0x92, 0xba, 0x74, 0xf1, 0xe2, 0xd2, 0xc2, 0xe6, 0x06, 0x4b, 0x7c, 0x78, 0xd4, - 0x9b, 0xa1, 0x05, 0x2e, 0x7f, 0x32, 0x0b, 0x93, 0x31, 0x3d, 0x41, 0xf3, 0x7c, 0xcb, 0xc2, 0x76, - 0x51, 0x0f, 0xa6, 0xe9, 0xfd, 0x1c, 0x89, 0x19, 0xd6, 0x35, 0xdb, 0xe5, 0x3b, 0x9c, 0xd3, 0x40, - 0xa4, 0x64, 0xba, 0xc6, 0x8e, 0x81, 0x6d, 0x9e, 0x27, 0x62, 0xfb, 0x98, 0x71, 0xbf, 0x9e, 0xa5, - 0x8a, 0x1e, 0x00, 0xd4, 0xb6, 0x1c, 0xc3, 0x35, 0xf6, 0xb0, 0x6a, 0x98, 0x22, 0xa9, 0x44, 0xf6, - 0x35, 0x39, 0xa5, 0x24, 0x9e, 0x2c, 0x9b, 0xae, 0x47, 0x6d, 0xe2, 0x86, 0x16, 0xa1, 0x26, 0xc6, - 0x3c, 0xab, 0x94, 0xc4, 0x13, 0x8f, 0xfa, 0x2e, 0x18, 0xa9, 0x5b, 0x1d, 0x12, 0xec, 0x31, 0x3a, - 0xe2, 0x3b, 0x24, 0xa5, 0xc8, 0xea, 0x3c, 0x12, 0x1e, 0xc6, 0xfb, 0xd9, 0xac, 0x11, 0xa5, 0xc8, - 0xea, 0x18, 0xc9, 0x29, 0x18, 0xd7, 0x1a, 0x0d, 0x9b, 0x80, 0x0b, 0x20, 0xb6, 0x31, 0x19, 0xf3, - 0xaa, 0x29, 0x61, 0xe5, 0x69, 0xc8, 0x0b, 0x39, 0x10, 0x57, 0x4d, 0x24, 0xa1, 0xb6, 0xd9, 0x6e, - 0x3b, 0x33, 0x5b, 0x50, 0xf2, 0xa6, 0x78, 0x78, 0x17, 0x8c, 0x18, 0x8e, 0xea, 0x27, 0xe7, 0x33, - 0x27, 0x33, 0xb3, 0x79, 0xa5, 0x68, 0x38, 0x5e, 0x62, 0x53, 0xfe, 0x7c, 0x06, 0xc6, 0xc2, 0x87, - 0x0b, 0x68, 0x11, 0xf2, 0x4d, 0x4b, 0xd7, 0xa8, 0x6a, 0xb1, 0x93, 0xad, 0xd9, 0x84, 0xf3, 0x88, - 0xb9, 0x15, 0x4e, 0xaf, 0x78, 0x9c, 0x95, 0xff, 0x28, 0x41, 0x5e, 0x54, 0xa3, 0xe3, 0x90, 0x6b, - 0x6b, 0xee, 0x2e, 0x85, 0x1b, 0xac, 0x65, 0x4a, 0x92, 0x42, 0xcb, 0xa4, 0xde, 0x69, 0x6b, 0x26, - 0x55, 0x01, 0x5e, 0x4f, 0xca, 0x64, 0x5e, 0x9b, 0x58, 0xab, 0xd3, 0x5d, 0x8f, 0xd5, 0x6a, 0x61, - 0xd3, 0x75, 0xc4, 0xbc, 0xf2, 0xfa, 0x05, 0x5e, 0x8d, 0xee, 0x87, 0x09, 0xd7, 0xd6, 0x8c, 0x66, - 0x88, 0x36, 0x47, 0x69, 0x4b, 0xe2, 0x81, 0x47, 0x5c, 0x85, 0x13, 0x02, 0xb7, 0x8e, 0x5d, 0x4d, - 0xdf, 0xc5, 0x75, 0x9f, 0x69, 0x88, 0x66, 0x37, 0x6e, 0xe3, 0x04, 0x8b, 0xfc, 0xb9, 0xe0, 0x95, - 0xbf, 0x29, 0xc1, 0x84, 0xd8, 0xa7, 0xd5, 0x3d, 0x61, 0xad, 0x02, 0x68, 0xa6, 0x69, 0xb9, 0x41, - 0x71, 0x75, 0xab, 0x72, 0x17, 0xdf, 0xdc, 0xbc, 0xc7, 0xa4, 0x04, 0x00, 0x2a, 0x2d, 0x00, 0xff, - 0x49, 0x4f, 0xb1, 0xcd, 0x40, 0x91, 0x9f, 0x1c, 0xd1, 0xe3, 0x47, 0xb6, 0xb3, 0x07, 0x56, 0x45, - 0x36, 0x74, 0x68, 0x0a, 0x06, 0xb7, 0x71, 0xc3, 0x30, 0x79, 0x3e, 0x98, 0x15, 0x44, 0xfe, 0x25, - 0xe7, 0xe5, 0x5f, 0x6a, 0x1f, 0x93, 0x60, 0x52, 0xb7, 0x5a, 0xd1, 0xfe, 0xd6, 0x4a, 0x91, 0xf4, - 0x82, 0x73, 0x59, 0x7a, 0xcf, 0x93, 0x0d, 0xc3, 0xdd, 0xed, 0x6c, 0xcf, 0xe9, 0x56, 0xeb, 0x6c, - 0xc3, 0x6a, 0x6a, 0x66, 0xc3, 0x3f, 0x3f, 0xa5, 0x3f, 0xf4, 0x07, 0x1b, 0xd8, 0x7c, 0xb0, 0x61, - 0x05, 0x4e, 0x53, 0x2f, 0xf8, 0x3f, 0xff, 0x5c, 0x92, 0x3e, 0x97, 0xc9, 0x5e, 0x5a, 0xaf, 0x7d, - 0x31, 0x53, 0xb9, 0xc4, 0x9a, 0x5b, 0x17, 0xe2, 0x51, 0xf0, 0x4e, 0x13, 0xeb, 0x64, 0xc8, 0xf0, - 0xbd, 0xfb, 0x61, 0xaa, 0x61, 0x35, 0x2c, 0x8a, 0x78, 0x96, 0xfc, 0xe2, 0x27, 0xb2, 0x05, 0xaf, - 0xb6, 0x92, 0x78, 0x7c, 0x5b, 0xbd, 0x02, 0x93, 0x9c, 0x58, 0xa5, 0x47, 0x42, 0x6c, 0x63, 0x83, - 0x0e, 0x4d, 0xab, 0x95, 0x7f, 0xeb, 0x3b, 0xd4, 0xa1, 0x2b, 0x13, 0x9c, 0x95, 0x3c, 0x63, 0x7b, - 0x9f, 0xaa, 0x02, 0xc7, 0x42, 0x78, 0x6c, 0xd9, 0x62, 0x3b, 0x01, 0xf1, 0xdf, 0x70, 0xc4, 0xc9, - 0x00, 0xe2, 0x06, 0x67, 0xad, 0x2e, 0xc0, 0x68, 0x3f, 0x58, 0xbf, 0xcb, 0xb1, 0x46, 0x70, 0x10, - 0xe4, 0x12, 0x8c, 0x53, 0x10, 0xbd, 0xe3, 0xb8, 0x56, 0x8b, 0xda, 0xc4, 0xc3, 0x61, 0xfe, 0xed, - 0x77, 0xd8, 0x3a, 0x1a, 0x23, 0x6c, 0x0b, 0x1e, 0x57, 0xb5, 0x0a, 0xf4, 0x14, 0xac, 0x8e, 0xf5, - 0x66, 0x02, 0xc2, 0xd7, 0x79, 0x47, 0x3c, 0xfa, 0xea, 0x55, 0x98, 0x22, 0xbf, 0xa9, 0xc9, 0x0a, - 0xf6, 0x24, 0x39, 0x07, 0x57, 0xfe, 0xe6, 0x07, 0xd8, 0x52, 0x9d, 0xf4, 0x00, 0x02, 0x7d, 0x0a, - 0xcc, 0x62, 0x03, 0xbb, 0x2e, 0xb6, 0x1d, 0x55, 0x6b, 0xc6, 0x75, 0x2f, 0x90, 0xc4, 0x28, 0xff, - 0xd2, 0xeb, 0xe1, 0x59, 0xbc, 0xc4, 0x38, 0xe7, 0x9b, 0xcd, 0xea, 0x16, 0xdc, 0x16, 0xa3, 0x15, - 0x29, 0x30, 0x3f, 0xc9, 0x31, 0xa7, 0xba, 0x34, 0x83, 0xc0, 0xae, 0x83, 0xa8, 0xf7, 0xe6, 0x32, - 0x05, 0xe6, 0x2f, 0x73, 0x4c, 0xc4, 0x79, 0xc5, 0x94, 0x12, 0xc4, 0xa7, 0x61, 0x62, 0x0f, 0xdb, - 0xdb, 0x96, 0xc3, 0x13, 0x47, 0x29, 0xe0, 0x3e, 0xc5, 0xe1, 0xc6, 0x39, 0x23, 0xcd, 0x24, 0x11, - 0xac, 0xf3, 0x90, 0xdf, 0xd1, 0x74, 0x9c, 0x02, 0xe2, 0xd3, 0x1c, 0x62, 0x98, 0xd0, 0x13, 0xd6, - 0x79, 0x18, 0x69, 0x58, 0xdc, 0x6b, 0x25, 0xb3, 0x7f, 0x86, 0xb3, 0x17, 0x05, 0x0f, 0x87, 0x68, - 0x5b, 0xed, 0x4e, 0x93, 0xb8, 0xb4, 0x64, 0x88, 0xbf, 0x2b, 0x20, 0x04, 0x0f, 0x87, 0xe8, 0x43, - 0xac, 0x9f, 0x15, 0x10, 0x4e, 0x40, 0x9e, 0x4f, 0x41, 0xd1, 0x32, 0x9b, 0x07, 0x96, 0x99, 0xa6, - 0x13, 0xbf, 0xc2, 0x11, 0x80, 0xb3, 0x10, 0x80, 0x0b, 0x50, 0x48, 0x3b, 0x11, 0x7f, 0xef, 0x75, - 0xb1, 0x3c, 0xc4, 0x0c, 0x5c, 0x82, 0x71, 0x61, 0xa0, 0x0c, 0xcb, 0x4c, 0x01, 0xf1, 0xf7, 0x39, - 0xc4, 0x58, 0x80, 0x8d, 0x0f, 0xc3, 0xc5, 0x8e, 0xdb, 0xc0, 0x69, 0x40, 0x3e, 0x2f, 0x86, 0xc1, - 0x59, 0xb8, 0x28, 0xb7, 0xb1, 0xa9, 0xef, 0xa6, 0x43, 0xf8, 0x82, 0x10, 0xa5, 0xe0, 0x21, 0x10, - 0x0b, 0x30, 0xda, 0xd2, 0x6c, 0x67, 0x57, 0x6b, 0xa6, 0x9a, 0x8e, 0x7f, 0xc0, 0x31, 0x46, 0x3c, - 0x26, 0x2e, 0x91, 0x8e, 0xd9, 0x0f, 0xcc, 0x17, 0x85, 0x44, 0x02, 0x6c, 0x7c, 0xe9, 0x39, 0x2e, - 0xcd, 0xb2, 0xf5, 0x83, 0xf6, 0x6b, 0x62, 0xe9, 0x31, 0xde, 0xd5, 0x20, 0xe2, 0x05, 0x28, 0x38, - 0xc6, 0xcb, 0xa9, 0x60, 0x7e, 0x5d, 0xcc, 0x34, 0x65, 0x20, 0xcc, 0x2f, 0xc0, 0x89, 0x58, 0x37, - 0x91, 0x02, 0xec, 0x1f, 0x72, 0xb0, 0xe3, 0x31, 0xae, 0x82, 0x9b, 0x84, 0x7e, 0x21, 0xff, 0x91, - 0x30, 0x09, 0x38, 0x82, 0xb5, 0x4e, 0xf6, 0x11, 0x8e, 0xb6, 0xd3, 0x9f, 0xd4, 0x7e, 0x43, 0x48, - 0x8d, 0xf1, 0x86, 0xa4, 0xb6, 0x09, 0xc7, 0x39, 0x62, 0x7f, 0xf3, 0xfa, 0x9b, 0xc2, 0xb0, 0x32, - 0xee, 0xad, 0xf0, 0xec, 0xbe, 0x17, 0x2a, 0x9e, 0x38, 0x45, 0xc0, 0xea, 0xa8, 0x2d, 0xad, 0x9d, - 0x02, 0xf9, 0xb7, 0x38, 0xb2, 0xb0, 0xf8, 0x5e, 0xc4, 0xeb, 0xac, 0x6a, 0x6d, 0x02, 0xfe, 0x3c, - 0x94, 0x05, 0x78, 0xc7, 0xb4, 0xb1, 0x6e, 0x35, 0x4c, 0xe3, 0x65, 0x5c, 0x4f, 0x01, 0xfd, 0x8f, - 0x23, 0x53, 0xb5, 0x15, 0x60, 0x27, 0xc8, 0xcb, 0x50, 0xf2, 0x62, 0x15, 0xd5, 0x68, 0xb5, 0x2d, - 0xdb, 0x4d, 0x40, 0xfc, 0x27, 0x62, 0xa6, 0x3c, 0xbe, 0x65, 0xca, 0x56, 0x5d, 0x82, 0x31, 0x5a, - 0x4c, 0xab, 0x92, 0x5f, 0xe2, 0x40, 0xa3, 0x3e, 0x17, 0x37, 0x1c, 0xba, 0xd5, 0x6a, 0x6b, 0x76, - 0x1a, 0xfb, 0xf7, 0x4f, 0x85, 0xe1, 0xe0, 0x2c, 0xdc, 0x70, 0xb8, 0x07, 0x6d, 0x4c, 0xbc, 0x7d, - 0x0a, 0x84, 0x2f, 0x0b, 0xc3, 0x21, 0x78, 0x38, 0x84, 0x08, 0x18, 0x52, 0x40, 0xfc, 0x33, 0x01, - 0x21, 0x78, 0x08, 0xc4, 0xb3, 0xbe, 0xa3, 0xb5, 0x71, 0xc3, 0x70, 0x5c, 0x9b, 0x85, 0xc9, 0x87, - 0x43, 0x7d, 0xe5, 0xf5, 0x70, 0x10, 0xa6, 0x04, 0x58, 0x89, 0x25, 0xe2, 0x69, 0x57, 0xba, 0x8b, - 0x4a, 0xee, 0xd8, 0x6f, 0x0b, 0x4b, 0x14, 0x60, 0x23, 0x7d, 0x0b, 0x44, 0x88, 0x44, 0xec, 0x3a, - 0xd9, 0x3b, 0xa4, 0x80, 0xfb, 0x9d, 0x48, 0xe7, 0x36, 0x04, 0x2f, 0xc1, 0x0c, 0xc4, 0x3f, 0x1d, - 0xf3, 0x1a, 0x3e, 0x48, 0xa5, 0x9d, 0xff, 0x3c, 0x12, 0xff, 0x6c, 0x31, 0x4e, 0x66, 0x43, 0xc6, - 0x23, 0xf1, 0x14, 0x4a, 0xba, 0x3f, 0x54, 0xfe, 0x2b, 0x6f, 0xf0, 0xf1, 0x86, 0xc3, 0xa9, 0xea, - 0x0a, 0x51, 0xf2, 0x70, 0xd0, 0x93, 0x0c, 0xf6, 0x81, 0x37, 0x3c, 0x3d, 0x0f, 0xc5, 0x3c, 0xd5, - 0x8b, 0x30, 0x1a, 0x0a, 0x78, 0x92, 0xa1, 0x3e, 0xc8, 0xa1, 0x46, 0x82, 0xf1, 0x4e, 0xf5, 0x51, - 0xc8, 0x91, 0xe0, 0x25, 0x99, 0xfd, 0xe7, 0x38, 0x3b, 0x25, 0xaf, 0xfe, 0x14, 0xe4, 0x45, 0xd0, - 0x92, 0xcc, 0xfa, 0x57, 0x39, 0xab, 0xc7, 0x42, 0xd8, 0x45, 0xc0, 0x92, 0xcc, 0xfe, 0x21, 0xc1, - 0x2e, 0x58, 0x08, 0x7b, 0x7a, 0x11, 0x7e, 0xf5, 0xaf, 0xe7, 0xb8, 0xd3, 0x11, 0xb2, 0xbb, 0x00, - 0xc3, 0x3c, 0x52, 0x49, 0xe6, 0xfe, 0x30, 0x6f, 0x5c, 0x70, 0x54, 0x1f, 0x87, 0xc1, 0x94, 0x02, - 0xff, 0x28, 0x67, 0x65, 0xf4, 0xd5, 0x05, 0x28, 0x06, 0xa2, 0x93, 0x64, 0xf6, 0xbf, 0xc1, 0xd9, - 0x83, 0x5c, 0xa4, 0xeb, 0x3c, 0x3a, 0x49, 0x06, 0xf8, 0x98, 0xe8, 0x3a, 0xe7, 0x20, 0x62, 0x13, - 0x81, 0x49, 0x32, 0xf7, 0xc7, 0x85, 0xd4, 0x05, 0x4b, 0xf5, 0x29, 0x28, 0x78, 0xce, 0x26, 0x99, - 0xff, 0x6f, 0x72, 0x7e, 0x9f, 0x87, 0x48, 0x20, 0xe0, 0xec, 0x92, 0x21, 0x7e, 0x41, 0x48, 0x20, - 0xc0, 0x45, 0x96, 0x51, 0x34, 0x80, 0x49, 0x46, 0xfa, 0x5b, 0x62, 0x19, 0x45, 0xe2, 0x17, 0x32, - 0x9b, 0xd4, 0xe6, 0x27, 0x43, 0x7c, 0x42, 0xcc, 0x26, 0xa5, 0x27, 0xdd, 0x88, 0x46, 0x04, 0xc9, - 0x18, 0x7f, 0x47, 0x74, 0x23, 0x12, 0x10, 0x54, 0xd7, 0x01, 0x75, 0x47, 0x03, 0xc9, 0x78, 0xaf, - 0x72, 0xbc, 0x89, 0xae, 0x60, 0xa0, 0xfa, 0x1c, 0x1c, 0x8f, 0x8f, 0x04, 0x92, 0x51, 0x7f, 0xe9, - 0x8d, 0xc8, 0xde, 0x2d, 0x18, 0x08, 0x54, 0x37, 0x7d, 0x97, 0x12, 0x8c, 0x02, 0x92, 0x61, 0x3f, - 0xf9, 0x46, 0xd8, 0x70, 0x07, 0x83, 0x80, 0xea, 0x3c, 0x80, 0xef, 0x80, 0x93, 0xb1, 0x3e, 0xc5, - 0xb1, 0x02, 0x4c, 0x64, 0x69, 0x70, 0xff, 0x9b, 0xcc, 0xff, 0x69, 0xb1, 0x34, 0x38, 0x07, 0x59, - 0x1a, 0xc2, 0xf5, 0x26, 0x73, 0x7f, 0x46, 0x2c, 0x0d, 0xc1, 0x42, 0x34, 0x3b, 0xe0, 0xdd, 0x92, - 0x11, 0x7e, 0x45, 0x68, 0x76, 0x80, 0xab, 0x7a, 0x05, 0x26, 0xba, 0x1c, 0x62, 0x32, 0xd4, 0xe7, - 0x38, 0x54, 0x29, 0xea, 0x0f, 0x83, 0xce, 0x8b, 0x3b, 0xc3, 0x64, 0xb4, 0x5f, 0x8d, 0x38, 0x2f, - 0xee, 0x0b, 0xab, 0x17, 0x20, 0x6f, 0x76, 0x9a, 0x4d, 0xb2, 0x78, 0xd0, 0xe1, 0x77, 0xfe, 0xca, - 0x7f, 0xfc, 0x03, 0x2e, 0x1d, 0xc1, 0x50, 0x7d, 0x14, 0x06, 0x71, 0x6b, 0x1b, 0xd7, 0x93, 0x38, - 0xbf, 0xf7, 0x03, 0x61, 0x30, 0x09, 0x75, 0xf5, 0x29, 0x00, 0x96, 0x1a, 0xa1, 0xc7, 0x83, 0x09, - 0xbc, 0xff, 0xe3, 0x07, 0xfc, 0x36, 0x8e, 0xcf, 0xe2, 0x03, 0xb0, 0xbb, 0x3d, 0x87, 0x03, 0xbc, - 0x1e, 0x06, 0xa0, 0x33, 0x72, 0x1e, 0x86, 0x5f, 0x74, 0x2c, 0xd3, 0xd5, 0x1a, 0x49, 0xdc, 0xff, - 0x93, 0x73, 0x0b, 0x7a, 0x22, 0xb0, 0x96, 0x65, 0x63, 0x57, 0x6b, 0x38, 0x49, 0xbc, 0xff, 0x8b, - 0xf3, 0x7a, 0x0c, 0x84, 0x59, 0xd7, 0x1c, 0x37, 0xcd, 0xb8, 0xff, 0x44, 0x30, 0x0b, 0x06, 0xd2, - 0x69, 0xf2, 0xfb, 0x1a, 0x3e, 0x48, 0xe2, 0xfd, 0x53, 0xd1, 0x69, 0x4e, 0x5f, 0xfd, 0x29, 0x28, - 0x90, 0x9f, 0xec, 0x8a, 0x5d, 0x02, 0xf3, 0xff, 0xe6, 0xcc, 0x3e, 0x07, 0x69, 0xd9, 0x71, 0xeb, - 0xae, 0x91, 0x2c, 0xec, 0x9b, 0x7c, 0xa6, 0x05, 0x7d, 0x75, 0x1e, 0x8a, 0x8e, 0x5b, 0xaf, 0x77, - 0x78, 0x7c, 0x9a, 0xc0, 0xfe, 0x7f, 0x7e, 0xe0, 0xa5, 0x2c, 0x3c, 0x1e, 0x32, 0xdb, 0xd7, 0xaf, - 0xb9, 0x6d, 0x8b, 0x1e, 0x81, 0x24, 0x21, 0xbc, 0xc1, 0x11, 0x02, 0x2c, 0xd5, 0x05, 0x18, 0x21, - 0x63, 0xb1, 0x71, 0x1b, 0xd3, 0xf3, 0xaa, 0x04, 0x88, 0xff, 0xcb, 0x05, 0x10, 0x62, 0xaa, 0xfd, - 0xec, 0xd7, 0x5f, 0x9b, 0x96, 0xbe, 0xf1, 0xda, 0xb4, 0xf4, 0x87, 0xaf, 0x4d, 0x4b, 0x1f, 0xff, - 0xf6, 0xf4, 0xc0, 0x37, 0xbe, 0x3d, 0x3d, 0xf0, 0x07, 0xdf, 0x9e, 0x1e, 0x88, 0x4f, 0x1b, 0xc3, - 0x25, 0xeb, 0x92, 0xc5, 0x12, 0xc6, 0xef, 0x91, 0x43, 0xe9, 0xe2, 0x86, 0xe5, 0x67, 0x6b, 0xbd, - 0x4d, 0x0e, 0x7c, 0x30, 0x0b, 0xd3, 0xba, 0xe5, 0xb4, 0x2c, 0xe7, 0xec, 0xb6, 0xe6, 0xe0, 0xb3, - 0x7b, 0x0f, 0x6d, 0x63, 0x57, 0x7b, 0xe8, 0xac, 0x6e, 0x19, 0x26, 0x4f, 0xfb, 0x4e, 0xb2, 0xe7, - 0x73, 0xe4, 0xf9, 0x1c, 0x7f, 0x5e, 0x89, 0xcd, 0x10, 0xcb, 0x97, 0x20, 0xb7, 0x60, 0x19, 0x26, - 0x9a, 0x82, 0xc1, 0x3a, 0x36, 0xad, 0x16, 0xbf, 0x01, 0xc6, 0x0a, 0xe8, 0x6e, 0x18, 0xd2, 0x5a, - 0x56, 0xc7, 0x74, 0x59, 0xba, 0xbc, 0x56, 0xfc, 0xfa, 0x8d, 0x99, 0x81, 0xff, 0x7a, 0x63, 0x26, - 0xbb, 0x6c, 0xba, 0x0a, 0x7f, 0x54, 0xcd, 0x7d, 0xf7, 0xb3, 0x33, 0x92, 0xfc, 0x34, 0x0c, 0x2f, - 0x62, 0xfd, 0x28, 0x58, 0x8b, 0x58, 0x8f, 0x60, 0x9d, 0x86, 0xfc, 0xb2, 0xe9, 0xb2, 0x3b, 0x7a, - 0x77, 0x42, 0xd6, 0x30, 0xd9, 0xad, 0x8f, 0x48, 0xfb, 0xa4, 0x9e, 0x90, 0x2e, 0x62, 0xdd, 0x23, - 0xad, 0x63, 0x3d, 0x4a, 0x4a, 0xe0, 0x49, 0x7d, 0x6d, 0xf1, 0x0f, 0xfe, 0x68, 0x7a, 0xe0, 0x95, - 0xd7, 0xa6, 0x07, 0x7a, 0xcd, 0x4f, 0x48, 0xfc, 0x5c, 0xc4, 0xec, 0xcf, 0x83, 0x4e, 0xfd, 0xda, - 0x59, 0xb2, 0xb4, 0x9c, 0xed, 0x21, 0x2a, 0xb7, 0x87, 0xe1, 0x77, 0x32, 0x70, 0x2f, 0xbd, 0x75, - 0x6d, 0xb7, 0x0c, 0xd3, 0x3d, 0xab, 0xdb, 0x07, 0x6d, 0xd7, 0x3a, 0xdb, 0xc2, 0xf6, 0xb5, 0x26, - 0xe6, 0x7f, 0xf8, 0x6c, 0x94, 0x7d, 0xb2, 0x39, 0x46, 0x36, 0xc7, 0x9e, 0xf7, 0x98, 0x92, 0x05, - 0x18, 0x5e, 0xb7, 0x2d, 0x6b, 0x67, 0xad, 0x8d, 0x10, 0xbf, 0x48, 0xce, 0x2f, 0x28, 0x52, 0x6b, - 0x50, 0x82, 0xec, 0x35, 0x7c, 0x40, 0x85, 0x38, 0xa2, 0x90, 0x9f, 0x84, 0xaa, 0xae, 0xb9, 0x1a, - 0x3d, 0xb7, 0x18, 0x51, 0xe8, 0x6f, 0xb9, 0x06, 0x83, 0x14, 0x04, 0x9d, 0x87, 0xac, 0xd5, 0x76, - 0xf8, 0x21, 0xcb, 0x5d, 0x73, 0xbd, 0xfa, 0x32, 0xc7, 0x9b, 0xac, 0xe5, 0x88, 0xdc, 0x14, 0xc2, - 0x53, 0x5b, 0xff, 0xf3, 0x3f, 0x9a, 0x96, 0xbe, 0xf0, 0xda, 0xb4, 0xd4, 0x53, 0x60, 0x73, 0x01, - 0x81, 0x05, 0x84, 0xd1, 0x4b, 0x2e, 0x9e, 0xf0, 0x3e, 0x92, 0x81, 0xe9, 0x00, 0x51, 0xd3, 0xd8, - 0x76, 0xce, 0x5e, 0xdb, 0x63, 0x12, 0xe6, 0x52, 0x43, 0x81, 0x9e, 0x92, 0xe7, 0x73, 0xd7, 0xf6, - 0x7a, 0xc8, 0x6b, 0x0e, 0x72, 0xeb, 0x9a, 0x61, 0x0b, 0xc1, 0x48, 0xbe, 0x60, 0xa6, 0xfc, 0x3b, - 0xc6, 0xa4, 0x8e, 0x15, 0xe4, 0x73, 0x90, 0x7f, 0x66, 0xf9, 0xb1, 0x47, 0xd2, 0xf0, 0x64, 0x39, - 0x4f, 0x4d, 0x11, 0xa2, 0xf8, 0x4a, 0x8c, 0x38, 0xbe, 0xfa, 0xed, 0x69, 0xc9, 0x13, 0xc9, 0x6c, - 0xa2, 0x48, 0xf8, 0x68, 0x3d, 0x61, 0x7c, 0x3c, 0x03, 0x33, 0xd1, 0xc3, 0x19, 0x62, 0x11, 0x1d, - 0x57, 0x6b, 0xb5, 0x7b, 0xbd, 0x5a, 0x77, 0x01, 0x0a, 0x9b, 0x82, 0x06, 0x95, 0x61, 0xd8, 0xc1, - 0xba, 0x65, 0xd6, 0x1d, 0x3a, 0x92, 0xac, 0x22, 0x8a, 0x64, 0x34, 0xa6, 0x66, 0x5a, 0x0e, 0xbf, - 0xf9, 0xcb, 0x0a, 0xb5, 0xbf, 0x2d, 0xf5, 0x67, 0xa2, 0xc6, 0xbc, 0xa6, 0xe8, 0x42, 0x5b, 0x97, - 0xde, 0x73, 0xff, 0x61, 0xe7, 0x5a, 0x74, 0x1a, 0xfd, 0x21, 0x04, 0x0e, 0xb1, 0xa6, 0xa3, 0x87, - 0x58, 0xcf, 0xe1, 0x66, 0xf3, 0x19, 0xd3, 0xba, 0x6e, 0x6e, 0x86, 0x16, 0xd7, 0xcf, 0x67, 0x60, - 0xba, 0xeb, 0xbc, 0x8a, 0x5b, 0xf9, 0x5e, 0x12, 0xa9, 0x42, 0x7e, 0x51, 0x38, 0x8f, 0x7e, 0x05, - 0xf2, 0x89, 0x3e, 0x05, 0x32, 0x2a, 0x5a, 0x12, 0xf2, 0x38, 0x93, 0x2c, 0x0f, 0xd1, 0xff, 0x23, - 0x88, 0xe3, 0x83, 0x4f, 0xc2, 0x5d, 0x01, 0x05, 0xd2, 0xb6, 0x75, 0xe3, 0x2c, 0x17, 0x72, 0x60, - 0xc5, 0x1c, 0x0b, 0xac, 0x18, 0x42, 0x32, 0x47, 0x1f, 0xc6, 0x2f, 0x9a, 0x4a, 0x3a, 0xdb, 0x55, - 0x49, 0x58, 0xa5, 0x95, 0x24, 0xc5, 0xad, 0x24, 0x4c, 0xa3, 0xfc, 0x67, 0x83, 0x30, 0xac, 0xe0, - 0x97, 0x3a, 0xd8, 0xa1, 0x6f, 0x86, 0x62, 0x7d, 0xd7, 0xe2, 0x2f, 0x1d, 0xc8, 0x73, 0xb1, 0xe3, - 0x99, 0xe3, 0xd4, 0x4b, 0xfa, 0xae, 0x75, 0x79, 0x40, 0xa1, 0x1c, 0xf4, 0x55, 0xbc, 0x66, 0xc7, - 0xd9, 0xe5, 0x77, 0xc3, 0xef, 0x3e, 0x9c, 0xf5, 0x22, 0x21, 0xbd, 0x3c, 0xa0, 0x30, 0x1e, 0xd2, - 0x2c, 0x7d, 0x8d, 0x30, 0x97, 0xa6, 0xd9, 0x65, 0x73, 0x87, 0x36, 0x4b, 0x38, 0xd0, 0x65, 0x00, - 0x07, 0xbb, 0xe2, 0x46, 0xc9, 0x20, 0xe5, 0x3f, 0x75, 0x38, 0xff, 0x06, 0x76, 0x59, 0xf4, 0x70, - 0x79, 0x40, 0x29, 0x38, 0xa2, 0x40, 0x90, 0x0c, 0xd3, 0x70, 0x55, 0x7d, 0x57, 0x33, 0x4c, 0x7a, - 0x15, 0x22, 0x11, 0x69, 0xd9, 0x34, 0xdc, 0x05, 0x42, 0x4e, 0x90, 0x0c, 0x51, 0x20, 0xa2, 0x78, - 0xa9, 0x83, 0xf9, 0x15, 0xc4, 0x44, 0x51, 0x3c, 0x4b, 0x48, 0x89, 0x28, 0x28, 0x0f, 0x7a, 0x06, - 0x8a, 0xf4, 0xd4, 0x5b, 0xdd, 0x6e, 0x5a, 0xfa, 0x35, 0xfe, 0x82, 0xcf, 0xec, 0xe1, 0x10, 0x35, - 0xc2, 0x50, 0x23, 0xf4, 0x97, 0x07, 0x14, 0xd8, 0xf6, 0x4a, 0xa8, 0x06, 0x79, 0x76, 0xfb, 0xda, - 0xdd, 0xe7, 0xaf, 0x68, 0xde, 0x7b, 0x38, 0x12, 0xbd, 0x88, 0xbd, 0xb9, 0x7f, 0x79, 0x40, 0x19, - 0xd6, 0xd9, 0x4f, 0xb4, 0x04, 0x05, 0x6c, 0xd6, 0x79, 0x77, 0x8a, 0xfc, 0x65, 0xb6, 0xc3, 0xf5, - 0xc2, 0xac, 0x8b, 0xce, 0xe4, 0x31, 0xff, 0x8d, 0x9e, 0x84, 0x21, 0xdd, 0x6a, 0xb5, 0x0c, 0x97, - 0xbe, 0xea, 0x59, 0x3c, 0x77, 0x4f, 0x42, 0x47, 0x28, 0xed, 0xe5, 0x01, 0x85, 0x73, 0x91, 0xe9, - 0xa9, 0xe3, 0xa6, 0xb1, 0x87, 0x6d, 0x32, 0x98, 0xc9, 0x34, 0xd3, 0xb3, 0xc8, 0xe8, 0xe9, 0x70, - 0x0a, 0x75, 0x51, 0xa8, 0x0d, 0x73, 0xf7, 0x22, 0x9f, 0x82, 0x62, 0x40, 0x93, 0x89, 0xc5, 0xe2, - 0x1b, 0x41, 0xee, 0xec, 0x45, 0x51, 0x1e, 0x83, 0x91, 0xa0, 0xde, 0xca, 0x2d, 0x8f, 0x91, 0xde, - 0xa5, 0x28, 0xc3, 0xf0, 0x1e, 0xb6, 0x1d, 0x76, 0x91, 0x82, 0x32, 0xf2, 0x22, 0xba, 0x1b, 0x46, - 0xa9, 0xdc, 0x54, 0xf1, 0x3c, 0x43, 0xef, 0xed, 0x8c, 0xd0, 0xca, 0xab, 0x9c, 0x68, 0x06, 0x8a, - 0xed, 0x73, 0x6d, 0x8f, 0x24, 0x4b, 0x49, 0xa0, 0x7d, 0xae, 0xcd, 0x09, 0xe4, 0x2a, 0x94, 0xa2, - 0xaa, 0x1b, 0xf4, 0x9a, 0x85, 0x18, 0xaf, 0x59, 0x10, 0x9e, 0xf6, 0x37, 0x33, 0x1e, 0xb3, 0xa7, - 0xad, 0x64, 0xb9, 0x11, 0x23, 0x41, 0xb9, 0x8b, 0xe7, 0x2a, 0x5d, 0x11, 0xb6, 0xe7, 0x6b, 0x6a, - 0x79, 0x12, 0x8a, 0x7c, 0xfc, 0x5b, 0x33, 0x92, 0x42, 0x39, 0xd0, 0x09, 0xa2, 0x50, 0x9a, 0x61, - 0xaa, 0x46, 0x5d, 0xbc, 0xd4, 0x4d, 0xcb, 0xcb, 0x75, 0xf4, 0x2c, 0x94, 0x74, 0xcb, 0x74, 0xb0, - 0xe9, 0x74, 0x1c, 0xb5, 0xad, 0xd9, 0x5a, 0xcb, 0x7f, 0xf7, 0x31, 0x7e, 0x9a, 0x16, 0x04, 0xf9, - 0x3a, 0xa5, 0x56, 0xc6, 0xf5, 0x70, 0x05, 0x5a, 0x01, 0xd8, 0xd3, 0x9a, 0x46, 0x5d, 0x73, 0x2d, - 0xdb, 0xe1, 0xef, 0x08, 0xf5, 0x02, 0xbb, 0x2a, 0x08, 0xb7, 0xda, 0x75, 0xcd, 0xc5, 0x3c, 0x88, - 0x0a, 0xf0, 0xa3, 0xfb, 0x60, 0x5c, 0x6b, 0xb7, 0x55, 0xc7, 0xd5, 0x5c, 0xac, 0x6e, 0x1f, 0xb8, - 0xd8, 0xa1, 0xf6, 0x62, 0x44, 0x19, 0xd5, 0xda, 0xed, 0x0d, 0x52, 0x5b, 0x23, 0x95, 0x72, 0xdd, - 0x9b, 0x6d, 0xba, 0x34, 0xbd, 0xd8, 0x4e, 0xf2, 0x63, 0x3b, 0x52, 0x47, 0x6f, 0xb8, 0x30, 0x19, - 0x88, 0x4b, 0x41, 0x43, 0xbb, 0xd8, 0x68, 0xec, 0xba, 0x74, 0xd8, 0x59, 0x85, 0x97, 0xc8, 0xc4, - 0xb4, 0x6d, 0x6b, 0x8f, 0x5d, 0xda, 0xca, 0x2b, 0xac, 0x20, 0xff, 0x62, 0x06, 0x26, 0xba, 0x96, - 0x2f, 0xc1, 0xa5, 0xef, 0x59, 0xf0, 0xb6, 0xc8, 0x6f, 0x74, 0x81, 0xe0, 0x6a, 0x75, 0xfe, 0xee, - 0x50, 0xf1, 0xdc, 0x9d, 0x3d, 0x24, 0x70, 0x99, 0x12, 0xf1, 0x81, 0x73, 0x16, 0xb4, 0x05, 0xa5, - 0xa6, 0xe6, 0xb8, 0x2a, 0x5b, 0x45, 0xec, 0x65, 0xed, 0xec, 0xa1, 0x96, 0x60, 0x45, 0x13, 0xab, - 0x8f, 0x28, 0x37, 0x87, 0x1b, 0x6b, 0x86, 0x6a, 0xd1, 0xf3, 0x30, 0xb5, 0x7d, 0xf0, 0xb2, 0x66, - 0xba, 0x86, 0x49, 0xef, 0x7c, 0x85, 0xe7, 0x68, 0xa6, 0x07, 0xf4, 0xd2, 0x9e, 0x51, 0xc7, 0xa6, - 0x2e, 0x26, 0x67, 0xd2, 0x83, 0xf0, 0x26, 0xcf, 0x91, 0x9f, 0x87, 0xb1, 0xb0, 0x2d, 0x42, 0x63, - 0x90, 0x71, 0xf7, 0xb9, 0x44, 0x32, 0xee, 0x3e, 0x7a, 0x8c, 0x47, 0xe4, 0x19, 0x7a, 0x69, 0xb1, - 0x97, 0xb3, 0xe0, 0xdc, 0xfe, 0x2b, 0x9d, 0xb2, 0xec, 0xad, 0x04, 0xcf, 0x30, 0x44, 0xb1, 0xe5, - 0xd3, 0x30, 0x1e, 0x31, 0x62, 0x81, 0x69, 0x95, 0x82, 0xd3, 0x2a, 0x8f, 0xc3, 0x68, 0xc8, 0x56, - 0xc9, 0xbf, 0x37, 0x04, 0x79, 0x05, 0x3b, 0x6d, 0xa2, 0xc4, 0xe8, 0x32, 0x14, 0xf0, 0xbe, 0x8e, - 0xdb, 0xae, 0xb0, 0x0a, 0x87, 0x19, 0x71, 0xc6, 0xb3, 0x24, 0xe8, 0x89, 0xb9, 0xf2, 0x98, 0xd1, - 0xf9, 0x90, 0x4b, 0xbe, 0x3b, 0x09, 0x24, 0xe8, 0x93, 0xdf, 0x1d, 0xf6, 0xc9, 0xf7, 0x24, 0xf0, - 0x46, 0x9c, 0xf2, 0xf9, 0x90, 0x53, 0x4e, 0x6a, 0x38, 0xe4, 0x95, 0x97, 0x63, 0xbc, 0x72, 0xd2, - 0xf0, 0x7b, 0xb8, 0xe5, 0xe5, 0x18, 0xb7, 0x3c, 0x9b, 0xd8, 0x97, 0x58, 0xbf, 0xfc, 0xee, 0xb0, - 0x5f, 0x4e, 0x12, 0x47, 0xc4, 0x31, 0xaf, 0xc4, 0x39, 0xe6, 0xd3, 0x09, 0x18, 0x3d, 0x3d, 0xf3, - 0x42, 0x97, 0x67, 0xbe, 0x2f, 0x01, 0x2a, 0xc6, 0x35, 0x2f, 0x87, 0x7c, 0x22, 0xa4, 0x92, 0x4d, - 0xbc, 0x53, 0x44, 0x17, 0xbb, 0xbd, 0xfc, 0xa9, 0x24, 0x55, 0x8b, 0x73, 0xf3, 0x4f, 0x45, 0xdc, - 0xfc, 0xbd, 0x49, 0xa3, 0x8a, 0xf8, 0x79, 0xdf, 0x3b, 0x9f, 0x26, 0xf6, 0x31, 0xb2, 0x32, 0x88, - 0x2d, 0xc5, 0xb6, 0x6d, 0xd9, 0x22, 0xaf, 0x41, 0x0b, 0xf2, 0x2c, 0xb1, 0xd8, 0xbe, 0xfe, 0x1f, - 0xe2, 0xc9, 0xe9, 0xa2, 0x0d, 0x68, 0xbb, 0xfc, 0x15, 0xc9, 0xe7, 0xa5, 0x96, 0x2d, 0x68, 0xed, - 0x0b, 0xdc, 0xda, 0x07, 0x1c, 0x7c, 0x26, 0xec, 0xe0, 0x67, 0xa0, 0x48, 0x7c, 0x4a, 0xc4, 0x77, - 0x6b, 0x6d, 0xe1, 0xbb, 0xd1, 0x19, 0x98, 0xa0, 0xf6, 0x97, 0x85, 0x01, 0xdc, 0x90, 0xe4, 0xa8, - 0x21, 0x19, 0x27, 0x0f, 0x98, 0x04, 0x99, 0xa3, 0x78, 0x10, 0x26, 0x03, 0xb4, 0x04, 0x97, 0xfa, - 0x02, 0xe6, 0xa4, 0x4a, 0x1e, 0xf5, 0x7c, 0xbb, 0x7d, 0x59, 0x73, 0x76, 0xe5, 0x55, 0x5f, 0x40, - 0x7e, 0x5c, 0x80, 0x20, 0xa7, 0x5b, 0x75, 0x36, 0xee, 0x51, 0x85, 0xfe, 0x26, 0xb1, 0x42, 0xd3, - 0x6a, 0xf0, 0x8b, 0xa8, 0xe4, 0x27, 0xa1, 0xf2, 0x96, 0x76, 0x81, 0xad, 0x59, 0xf9, 0x4b, 0x92, - 0x8f, 0xe7, 0x87, 0x0a, 0x71, 0x5e, 0x5d, 0xba, 0x95, 0x5e, 0x3d, 0xf3, 0xe6, 0xbc, 0xba, 0xfc, - 0x86, 0xe4, 0x4f, 0xa9, 0xe7, 0xaf, 0x8f, 0x26, 0x02, 0xa2, 0x5d, 0xec, 0x85, 0x7c, 0x76, 0x61, - 0x9a, 0x15, 0x44, 0xa8, 0x35, 0x14, 0x93, 0xa0, 0x18, 0x0e, 0x24, 0x35, 0xd0, 0xa3, 0xd4, 0xcf, - 0x5b, 0x3b, 0xdc, 0x34, 0xcc, 0x24, 0x24, 0x7a, 0x14, 0x46, 0x1d, 0xf0, 0x2f, 0x85, 0x50, 0xd8, - 0x70, 0x07, 0x14, 0x48, 0xd7, 0xd9, 0x5b, 0x68, 0xc0, 0xb3, 0xbc, 0xa2, 0x42, 0xae, 0x03, 0xea, - 0xb6, 0x31, 0xe8, 0x0a, 0x0c, 0xe1, 0x3d, 0x7a, 0x29, 0x98, 0x25, 0x9b, 0xee, 0xe8, 0xe9, 0x88, - 0xb1, 0xe9, 0xd6, 0xca, 0x44, 0x98, 0xdf, 0xbb, 0x31, 0x53, 0x62, 0x3c, 0x0f, 0x58, 0x2d, 0xc3, - 0xc5, 0xad, 0xb6, 0x7b, 0xa0, 0x70, 0x14, 0xf9, 0x43, 0x19, 0xe2, 0x0f, 0x43, 0xf6, 0x27, 0x56, - 0xbc, 0x62, 0xd1, 0x64, 0x02, 0x21, 0x52, 0x3a, 0x91, 0xdf, 0x09, 0xd0, 0xd0, 0x1c, 0xf5, 0xba, - 0x66, 0xba, 0xb8, 0xce, 0xe5, 0x5e, 0x68, 0x68, 0xce, 0x73, 0xb4, 0x82, 0xc4, 0x9b, 0xe4, 0x71, - 0xc7, 0xc1, 0x75, 0x3a, 0x01, 0x59, 0x65, 0xb8, 0xa1, 0x39, 0x5b, 0x0e, 0xae, 0x07, 0xc6, 0x3a, - 0x7c, 0x2b, 0xc6, 0x1a, 0x96, 0x77, 0x3e, 0x2a, 0xef, 0x0f, 0x67, 0xfc, 0xd5, 0xe1, 0x87, 0x0f, - 0x3f, 0x99, 0xb2, 0xf8, 0x34, 0xdd, 0x53, 0x84, 0x9d, 0x00, 0x7a, 0x01, 0x26, 0xbc, 0x55, 0xa9, - 0x76, 0xe8, 0x6a, 0x15, 0x5a, 0xd8, 0xdf, 0xe2, 0x2e, 0xed, 0x85, 0xab, 0x1d, 0xf4, 0x3e, 0xb8, - 0x2d, 0x62, 0x83, 0xbc, 0x06, 0x32, 0x7d, 0x99, 0xa2, 0x63, 0x61, 0x53, 0x24, 0xf0, 0x7d, 0xe9, - 0x65, 0x6f, 0xc9, 0xaa, 0xb9, 0x87, 0x84, 0xb0, 0x41, 0xf7, 0x16, 0xa7, 0x13, 0xf2, 0xef, 0x4b, - 0x30, 0x1e, 0xe9, 0x20, 0x7a, 0x02, 0x06, 0x99, 0x07, 0x96, 0x0e, 0x4d, 0x84, 0x50, 0x89, 0xf3, - 0x31, 0x31, 0x06, 0x34, 0x0f, 0x79, 0xcc, 0xa3, 0x6b, 0x2e, 0x94, 0x7b, 0x13, 0x82, 0x70, 0xce, - 0xef, 0xb1, 0xa1, 0x45, 0x28, 0x78, 0xa2, 0x4f, 0xd8, 0xb9, 0x79, 0x33, 0xc7, 0x41, 0x7c, 0x46, - 0x79, 0x01, 0x8a, 0x81, 0xee, 0xb1, 0x57, 0x32, 0xf7, 0xf9, 0x76, 0x8b, 0x05, 0xd0, 0xf9, 0x96, - 0xb6, 0x4f, 0x77, 0x5a, 0xe8, 0x36, 0x18, 0x26, 0x0f, 0x1b, 0xfc, 0x9d, 0xb5, 0xac, 0x32, 0xd4, - 0xd2, 0xf6, 0x2f, 0x69, 0x8e, 0xfc, 0xf3, 0x12, 0x8c, 0x85, 0xfb, 0x89, 0xee, 0x07, 0x44, 0x68, - 0xb5, 0x06, 0x56, 0xcd, 0x4e, 0x8b, 0xf9, 0x48, 0x81, 0x38, 0xde, 0xd2, 0xf6, 0xe7, 0x1b, 0xf8, - 0x4a, 0xa7, 0x45, 0x9b, 0x76, 0xd0, 0x2a, 0x94, 0x04, 0xb1, 0x48, 0x76, 0x71, 0xa9, 0x9c, 0xe8, - 0xfe, 0x6c, 0x10, 0x27, 0x60, 0x7b, 0xdd, 0x57, 0xc9, 0x5e, 0x77, 0x8c, 0xe1, 0x89, 0x27, 0xf2, - 0xa3, 0x30, 0x1e, 0x19, 0x31, 0x92, 0x61, 0xb4, 0xdd, 0xd9, 0x56, 0xaf, 0xe1, 0x03, 0xfa, 0x15, - 0x02, 0xa6, 0xea, 0x05, 0xa5, 0xd8, 0xee, 0x6c, 0x3f, 0x83, 0x0f, 0x68, 0xee, 0x50, 0xd6, 0x61, - 0x2c, 0xbc, 0x99, 0x22, 0x8e, 0xc3, 0xb6, 0x3a, 0x66, 0x5d, 0x7c, 0x5f, 0x82, 0x16, 0xd0, 0x05, - 0x18, 0xdc, 0xb3, 0x98, 0x36, 0x1f, 0xb6, 0x7b, 0xba, 0x6a, 0xb9, 0x38, 0xb0, 0x25, 0x63, 0x3c, - 0xb2, 0x03, 0x83, 0x54, 0x2f, 0x63, 0x0f, 0x2a, 0xae, 0x02, 0x68, 0xae, 0x6b, 0x1b, 0xdb, 0x1d, - 0x1f, 0xbe, 0x3c, 0xd7, 0x9d, 0xd6, 0x9f, 0x5b, 0xd7, 0x0c, 0xbb, 0x76, 0x07, 0xd7, 0xec, 0x29, - 0x9f, 0x27, 0xa0, 0xdd, 0x01, 0x24, 0xf9, 0xf5, 0x1c, 0x0c, 0xb1, 0xed, 0x26, 0x7a, 0x32, 0x9c, - 0xfc, 0x28, 0x9e, 0x9b, 0xee, 0xd5, 0x7d, 0x46, 0xc5, 0x7b, 0xef, 0x45, 0x50, 0xf7, 0x45, 0x33, - 0x0a, 0xb5, 0xe2, 0x6b, 0x37, 0x66, 0x86, 0x69, 0xf4, 0xb1, 0xbc, 0xe8, 0xa7, 0x17, 0x7a, 0xed, - 0xae, 0x45, 0x2e, 0x23, 0xd7, 0x77, 0x2e, 0xe3, 0x32, 0x8c, 0x06, 0xc2, 0x2d, 0xa3, 0xce, 0xf7, - 0x29, 0xd3, 0x87, 0x2d, 0xba, 0xe5, 0x45, 0xde, 0xff, 0xa2, 0x17, 0x8e, 0x2d, 0xd7, 0xd1, 0x6c, - 0x78, 0x93, 0x4d, 0xa3, 0x36, 0x16, 0x2e, 0x04, 0xf6, 0xcd, 0xf4, 0xd3, 0x08, 0xb7, 0x43, 0x81, - 0xbe, 0x5f, 0x4e, 0x49, 0x58, 0xf4, 0x90, 0x27, 0x15, 0xf4, 0xe1, 0x29, 0x18, 0xf7, 0x03, 0x1b, - 0x46, 0x92, 0x67, 0x28, 0x7e, 0x35, 0x25, 0x7c, 0x17, 0x4c, 0x99, 0x78, 0xdf, 0x55, 0xa3, 0xd4, - 0x05, 0x4a, 0x8d, 0xc8, 0xb3, 0xab, 0x61, 0x8e, 0x7b, 0x61, 0xcc, 0x37, 0xa1, 0x94, 0x16, 0x58, - 0xea, 0xc3, 0xab, 0xa5, 0x64, 0x27, 0x20, 0xef, 0x85, 0x9d, 0x45, 0x4a, 0x30, 0xac, 0xb1, 0x68, - 0xd3, 0x0b, 0x64, 0x6d, 0xec, 0x74, 0x9a, 0x2e, 0x07, 0x19, 0xa1, 0x34, 0x34, 0x90, 0x55, 0x58, - 0x3d, 0xa5, 0xbd, 0x1b, 0x46, 0x85, 0x55, 0x61, 0x74, 0xa3, 0x94, 0x6e, 0x44, 0x54, 0x52, 0xa2, - 0xd3, 0x50, 0x6a, 0xdb, 0x56, 0xdb, 0x72, 0xb0, 0xad, 0x6a, 0xf5, 0xba, 0x8d, 0x1d, 0xa7, 0x3c, - 0xc6, 0xf0, 0x44, 0xfd, 0x3c, 0xab, 0x96, 0x1f, 0x82, 0x61, 0x11, 0x4f, 0x4f, 0xc1, 0x60, 0xcd, - 0xb3, 0x90, 0x39, 0x85, 0x15, 0x88, 0x7f, 0x9d, 0x6f, 0xb7, 0x79, 0x76, 0x8d, 0xfc, 0x94, 0x9b, - 0x30, 0xcc, 0x27, 0x2c, 0x36, 0xa7, 0xb2, 0x0a, 0x23, 0x6d, 0xcd, 0x26, 0xc3, 0x08, 0x66, 0x56, - 0x7a, 0xed, 0x08, 0xd7, 0x35, 0xdb, 0xdd, 0xc0, 0x6e, 0x28, 0xc1, 0x52, 0xa4, 0xfc, 0xac, 0x4a, - 0x3e, 0x0f, 0xa3, 0x21, 0x1a, 0xd2, 0x4d, 0xd7, 0x72, 0xb5, 0xa6, 0x58, 0xe8, 0xb4, 0xe0, 0xf5, - 0x24, 0xe3, 0xf7, 0x44, 0xbe, 0x00, 0x05, 0x6f, 0xae, 0xc8, 0x46, 0x43, 0x88, 0x42, 0xe2, 0xe2, - 0x67, 0x45, 0x9a, 0x44, 0xb2, 0xae, 0xf3, 0x2f, 0x65, 0x65, 0x15, 0x56, 0x90, 0x71, 0xc0, 0x30, - 0x31, 0x6f, 0x86, 0xde, 0x0d, 0xc3, 0xdc, 0x30, 0xf1, 0xf5, 0xd8, 0x2b, 0x5d, 0xb4, 0x4e, 0x2d, - 0x95, 0x48, 0x17, 0x31, 0xbb, 0xe5, 0x37, 0x93, 0x09, 0x36, 0xf3, 0x7e, 0xc8, 0x0b, 0xe3, 0x13, - 0xf6, 0x12, 0xac, 0x85, 0x93, 0x49, 0x5e, 0x82, 0x37, 0xe2, 0x33, 0x12, 0x6d, 0x72, 0x8c, 0x86, - 0x89, 0xeb, 0xaa, 0xbf, 0x04, 0xf9, 0x7b, 0xcb, 0xe3, 0xec, 0xc1, 0x8a, 0x58, 0x5f, 0xf2, 0xbb, - 0x60, 0x88, 0xf5, 0x35, 0xd6, 0xc4, 0xc5, 0xb9, 0xd6, 0xef, 0x48, 0x90, 0x17, 0xee, 0x23, 0x96, - 0x29, 0x34, 0x88, 0xcc, 0x51, 0x07, 0x71, 0xeb, 0x4d, 0xd2, 0x03, 0x80, 0xa8, 0xa6, 0xa8, 0x7b, - 0x96, 0x6b, 0x98, 0x0d, 0x95, 0xcd, 0x05, 0x7f, 0x7d, 0x93, 0x3e, 0xb9, 0x4a, 0x1f, 0xac, 0x93, - 0xfa, 0x33, 0x77, 0x43, 0x31, 0x90, 0xe5, 0x42, 0xc3, 0x90, 0xbd, 0x82, 0xaf, 0x97, 0x06, 0x50, - 0x11, 0x86, 0x15, 0x4c, 0x73, 0x04, 0x25, 0xe9, 0xdc, 0xeb, 0xc3, 0x30, 0x3e, 0x5f, 0x5b, 0x58, - 0x9e, 0x6f, 0xb7, 0x9b, 0x06, 0x7f, 0xad, 0x71, 0x0d, 0x72, 0x74, 0x9f, 0x9c, 0xe2, 0x7c, 0xa7, - 0x92, 0x26, 0xe1, 0x84, 0x14, 0x18, 0xa4, 0xdb, 0x69, 0x94, 0xe6, 0xd8, 0xa7, 0x92, 0x2a, 0x0f, - 0x45, 0x3a, 0x49, 0x15, 0x2e, 0xc5, 0x69, 0x50, 0x25, 0x4d, 0x72, 0x0a, 0xbd, 0x0f, 0x0a, 0xfe, - 0x3e, 0x39, 0xed, 0x19, 0x51, 0x25, 0x75, 0xda, 0x8a, 0xe0, 0xfb, 0x3b, 0x83, 0xb4, 0x47, 0x13, - 0x95, 0xd4, 0xf9, 0x1a, 0xf4, 0x3c, 0x0c, 0x8b, 0x3d, 0x58, 0xba, 0x53, 0x9c, 0x4a, 0xca, 0x94, - 0x12, 0x99, 0x3e, 0xb6, 0x75, 0x4e, 0x73, 0x54, 0x55, 0x49, 0x95, 0x37, 0x43, 0x5b, 0x30, 0xc4, - 0x83, 0xdf, 0x54, 0x27, 0x3d, 0x95, 0x74, 0x89, 0x22, 0x22, 0x64, 0x3f, 0x39, 0x91, 0xf6, 0x78, - 0xae, 0x92, 0x3a, 0x61, 0x88, 0x34, 0x80, 0xc0, 0x7e, 0x3a, 0xf5, 0xb9, 0x5b, 0x25, 0x7d, 0x22, - 0x10, 0xbd, 0x17, 0xf2, 0xde, 0xae, 0x29, 0xe5, 0x49, 0x5a, 0x25, 0x6d, 0x2e, 0xae, 0xb6, 0x95, - 0xfa, 0x96, 0xc4, 0xfd, 0x89, 0xb7, 0x24, 0xfc, 0x43, 0x6e, 0xef, 0x18, 0xfc, 0x17, 0x1f, 0x82, - 0x7b, 0xf8, 0xb5, 0x1c, 0xc7, 0xd5, 0xae, 0x19, 0x66, 0xc3, 0xbb, 0xfc, 0xc4, 0xcb, 0xfc, 0x24, - 0xfc, 0x38, 0xbf, 0xff, 0x24, 0x6a, 0x0f, 0xbd, 0x02, 0x55, 0x49, 0x3e, 0x5a, 0x7f, 0xd3, 0xc7, - 0xdc, 0x95, 0x84, 0x1b, 0x5b, 0xf2, 0x27, 0x24, 0x18, 0xbb, 0x6c, 0x38, 0xae, 0x65, 0x1b, 0xba, - 0xd6, 0xa4, 0x16, 0xc3, 0x3f, 0x79, 0x91, 0xfa, 0x3f, 0x79, 0x79, 0x0a, 0x86, 0xf6, 0xb4, 0xa6, - 0x83, 0x5d, 0x1e, 0x77, 0xdf, 0x35, 0x17, 0x2f, 0x92, 0x2e, 0x0f, 0xc3, 0xd9, 0xf8, 0x45, 0xac, - 0xdf, 0xc8, 0x90, 0x6d, 0x62, 0xab, 0x65, 0x38, 0xec, 0x83, 0x9e, 0x64, 0xdf, 0x54, 0x83, 0x9c, - 0xad, 0xb9, 0xdc, 0xa5, 0xd5, 0xe6, 0xf8, 0x35, 0xab, 0xfb, 0x92, 0xaf, 0x4e, 0xcd, 0x2d, 0x62, - 0x5d, 0xa1, 0xbc, 0xe8, 0x67, 0x80, 0xec, 0xc3, 0x54, 0x8a, 0xc3, 0xe2, 0xee, 0xf9, 0xfe, 0x70, - 0x6e, 0xde, 0x98, 0x19, 0x3f, 0xd0, 0x5a, 0xcd, 0xaa, 0x2c, 0x70, 0x64, 0x85, 0x6c, 0xe7, 0x48, - 0x17, 0x51, 0x1b, 0xc8, 0x9e, 0x4c, 0xd5, 0x77, 0x35, 0xb3, 0x81, 0x59, 0x23, 0x34, 0xf9, 0x51, - 0xbb, 0xdc, 0x77, 0x23, 0xc7, 0xfd, 0x46, 0x02, 0x70, 0xb2, 0x32, 0xda, 0xd2, 0xf6, 0x17, 0x68, - 0x05, 0x69, 0xb1, 0x9a, 0x7f, 0xf5, 0xb3, 0x33, 0x03, 0x54, 0x62, 0xdf, 0x94, 0x00, 0x7c, 0x89, - 0xa1, 0x9f, 0x81, 0x92, 0xee, 0x95, 0x28, 0xaf, 0xc8, 0x60, 0x9e, 0xea, 0x35, 0x23, 0x11, 0x79, - 0x33, 0x37, 0xfd, 0x8d, 0x1b, 0x33, 0x92, 0x32, 0xae, 0x47, 0xa6, 0xe2, 0xbd, 0x50, 0x64, 0xb9, - 0x08, 0x95, 0xba, 0xfc, 0x4c, 0xa2, 0xcb, 0x9f, 0x26, 0x58, 0x37, 0x6f, 0xcc, 0x20, 0x36, 0xac, - 0x00, 0xb3, 0x4c, 0x03, 0x01, 0x60, 0x35, 0x84, 0x21, 0x30, 0xa6, 0x7f, 0x27, 0x41, 0x71, 0x31, - 0xf0, 0xde, 0x42, 0x19, 0x86, 0x5b, 0x96, 0x69, 0x5c, 0xc3, 0xb6, 0x97, 0xe1, 0x66, 0x45, 0x54, - 0x81, 0x3c, 0xfb, 0x84, 0x84, 0x7b, 0x20, 0xbe, 0x4d, 0x2a, 0xca, 0x84, 0xeb, 0x3a, 0xde, 0x76, - 0x0c, 0x31, 0x1b, 0x8a, 0x28, 0xa2, 0x8b, 0x50, 0x72, 0xb0, 0xde, 0xb1, 0x0d, 0xf7, 0x40, 0xd5, - 0x2d, 0xd3, 0xd5, 0x74, 0x96, 0xa5, 0x2e, 0xd4, 0x6e, 0xbf, 0x79, 0x63, 0xe6, 0x36, 0xd6, 0xd7, - 0x28, 0x85, 0xac, 0x8c, 0x8b, 0xaa, 0x05, 0x56, 0x43, 0x5a, 0xa8, 0x63, 0x57, 0x33, 0x9a, 0xec, - 0x6c, 0xb5, 0xa0, 0x88, 0x62, 0x60, 0x2c, 0xff, 0x62, 0x38, 0x18, 0xf2, 0x5e, 0x87, 0x92, 0xd5, - 0xc6, 0x36, 0x4d, 0x1b, 0x85, 0x62, 0xdf, 0xda, 0x8a, 0xdf, 0x72, 0x94, 0x42, 0xfe, 0xfe, 0x8d, - 0x99, 0x07, 0x53, 0x68, 0xd0, 0x55, 0xad, 0xc9, 0xf7, 0x10, 0xca, 0xb8, 0xc0, 0xe0, 0x15, 0x64, - 0xc8, 0x81, 0xac, 0x52, 0x67, 0x5b, 0xdc, 0xe8, 0x0b, 0x0d, 0x39, 0x4a, 0x21, 0x07, 0xd3, 0xd9, - 0xb4, 0x86, 0x44, 0x81, 0x2f, 0x6a, 0x46, 0x53, 0x7c, 0x57, 0x47, 0xe1, 0x25, 0xb4, 0x0c, 0x43, - 0x8e, 0xab, 0xb9, 0x1d, 0xf6, 0x55, 0x87, 0xc1, 0xda, 0x43, 0x29, 0xfb, 0x5c, 0xb3, 0xcc, 0xfa, - 0x06, 0x65, 0x54, 0x38, 0x00, 0xba, 0x08, 0x43, 0xae, 0x75, 0x0d, 0x9b, 0x5c, 0xa8, 0x7d, 0xad, - 0x78, 0x7a, 0x4d, 0x94, 0x71, 0x23, 0x17, 0x4a, 0x75, 0xdc, 0xc4, 0x0d, 0x2a, 0x4a, 0x67, 0x57, - 0xb3, 0xb1, 0xc3, 0xbe, 0x6d, 0x5b, 0x5b, 0xee, 0x7b, 0x59, 0x72, 0x01, 0x45, 0xf1, 0x64, 0x65, - 0xdc, 0xab, 0xda, 0xa0, 0x35, 0xe8, 0x99, 0xd0, 0x2b, 0x37, 0xde, 0xa5, 0x98, 0x1e, 0x6b, 0x2f, - 0xa0, 0xe5, 0x62, 0xa7, 0x15, 0x7c, 0x61, 0xe7, 0x22, 0x94, 0x3a, 0xe6, 0xb6, 0x65, 0xd2, 0x6f, - 0x61, 0xf0, 0xe8, 0x9b, 0x6c, 0x92, 0xb3, 0xc1, 0x59, 0x8b, 0x52, 0xc8, 0xca, 0xb8, 0x57, 0xc5, - 0xcf, 0x5a, 0xea, 0x30, 0xe6, 0x53, 0xd1, 0xa5, 0x5b, 0x48, 0x5c, 0xba, 0x77, 0xf1, 0xa5, 0x7b, - 0x2c, 0xda, 0x8a, 0xbf, 0x7a, 0x47, 0xbd, 0xca, 0x4d, 0x96, 0x62, 0x00, 0xdf, 0x60, 0xf0, 0x03, - 0x3a, 0x39, 0xd9, 0xea, 0x88, 0x63, 0x0e, 0x9f, 0x17, 0xbd, 0x1f, 0x26, 0x5b, 0x86, 0xa9, 0x3a, - 0xb8, 0xb9, 0xa3, 0x72, 0x01, 0x13, 0x48, 0xfa, 0x2d, 0xc3, 0xda, 0x4a, 0x7f, 0xfa, 0x70, 0xf3, - 0xc6, 0x4c, 0x85, 0x1b, 0xd5, 0x6e, 0x48, 0x59, 0x99, 0x68, 0x19, 0xe6, 0x06, 0x6e, 0xee, 0x2c, - 0x7a, 0x75, 0xd5, 0x91, 0xbf, 0xf6, 0xd9, 0x99, 0x01, 0x6f, 0x01, 0x1b, 0x30, 0xe2, 0x2f, 0x2c, - 0xec, 0xa0, 0x35, 0x28, 0x68, 0xa2, 0x40, 0xf3, 0x60, 0x23, 0xa9, 0x95, 0x3d, 0xb0, 0x40, 0x7d, - 0x0c, 0x66, 0x2b, 0x5e, 0xf9, 0x6f, 0x27, 0x25, 0xf9, 0x23, 0x19, 0x18, 0x5a, 0xbc, 0x4a, 0xef, - 0x89, 0xbe, 0x0c, 0x13, 0xbe, 0xb2, 0x85, 0x2d, 0xc5, 0xea, 0xcd, 0x1b, 0x33, 0xe5, 0xa8, 0x3e, - 0xf6, 0x69, 0x2a, 0xe6, 0x75, 0x5d, 0xf4, 0xc4, 0x5f, 0x24, 0xc2, 0x56, 0xbc, 0x1c, 0x4c, 0x6e, - 0x8b, 0xb6, 0x33, 0xd1, 0xb6, 0xbb, 0x48, 0x8e, 0x60, 0xa6, 0xfc, 0xec, 0x37, 0xaf, 0x09, 0x18, - 0xce, 0x25, 0x18, 0x66, 0xb2, 0x70, 0x50, 0x15, 0x06, 0xdb, 0xe4, 0x07, 0xcf, 0xb0, 0x4f, 0xf7, - 0x5c, 0x4d, 0x94, 0x5e, 0x64, 0x0c, 0x29, 0x8b, 0xfc, 0xb9, 0x2c, 0xc0, 0xe2, 0xd5, 0xab, 0x9b, - 0xb6, 0xd1, 0x6e, 0x62, 0xf7, 0x87, 0x2a, 0xd7, 0x9f, 0x93, 0xe0, 0x98, 0x2f, 0x35, 0xc7, 0xd6, - 0x23, 0xc2, 0x7d, 0xf6, 0xe6, 0x8d, 0x99, 0x3b, 0xa2, 0xc2, 0x0d, 0x90, 0x1d, 0x41, 0xc0, 0x93, - 0x1e, 0xd0, 0x86, 0xad, 0xc7, 0xf7, 0xa3, 0xee, 0xb8, 0x5e, 0x3f, 0xb2, 0xbd, 0xfb, 0x11, 0x20, - 0x7b, 0x53, 0xfd, 0x58, 0x74, 0xdc, 0xee, 0xb9, 0xde, 0x80, 0xa2, 0x3f, 0x47, 0x0e, 0x5a, 0x84, - 0xbc, 0xcb, 0x7f, 0xf3, 0x29, 0x97, 0x7b, 0x4f, 0xb9, 0x60, 0xe3, 0xd3, 0xee, 0x71, 0xca, 0xff, - 0x39, 0x03, 0xe0, 0xaf, 0xea, 0x9f, 0xd4, 0x15, 0x45, 0xdc, 0x29, 0x77, 0x7e, 0xd9, 0x23, 0x05, - 0xd0, 0x9c, 0x3b, 0x30, 0x5b, 0x7f, 0x9c, 0x81, 0xc9, 0x2d, 0x61, 0xf9, 0xdf, 0x91, 0x30, 0x5a, - 0x87, 0x61, 0x6c, 0xba, 0xb6, 0x81, 0xc5, 0x91, 0xda, 0xbb, 0x7a, 0x69, 0x6b, 0x8c, 0xd4, 0xe8, - 0xe7, 0x3a, 0xc5, 0x31, 0x01, 0x87, 0x09, 0xc8, 0xfa, 0x63, 0x59, 0x28, 0xf7, 0xe2, 0x42, 0x0b, - 0x30, 0xae, 0xdb, 0x98, 0x56, 0xa8, 0xc1, 0x5b, 0x5b, 0xb5, 0x8a, 0xbf, 0x93, 0x88, 0x10, 0xc8, - 0xca, 0x98, 0xa8, 0xe1, 0xb1, 0x41, 0x03, 0x48, 0x98, 0x4f, 0x96, 0x0c, 0xa1, 0x4a, 0x19, 0xd7, - 0xcb, 0x3c, 0x38, 0x10, 0x8d, 0x84, 0x01, 0x58, 0x74, 0x30, 0xe6, 0xd7, 0xd2, 0xf0, 0xe0, 0x25, - 0x18, 0x37, 0x4c, 0xc3, 0x35, 0xb4, 0xa6, 0xba, 0xad, 0x35, 0x35, 0x53, 0x3f, 0xca, 0x2e, 0x89, - 0x39, 0x74, 0xde, 0x6c, 0x04, 0x4e, 0x56, 0xc6, 0x78, 0x4d, 0x8d, 0x55, 0xa0, 0xcb, 0x30, 0x2c, - 0x9a, 0xca, 0x1d, 0x29, 0x96, 0x14, 0xec, 0x81, 0x19, 0xf9, 0x68, 0x16, 0x26, 0x14, 0x5c, 0x7f, - 0x67, 0x2a, 0xfa, 0x9b, 0x8a, 0x55, 0x00, 0x66, 0x48, 0x88, 0x27, 0x39, 0xc2, 0x6c, 0x10, 0x53, - 0x54, 0x60, 0x08, 0x8b, 0x8e, 0x1b, 0x98, 0x8f, 0x3f, 0xc9, 0xc2, 0x48, 0x70, 0x3e, 0xde, 0x71, - 0xf1, 0x3f, 0x3a, 0x2e, 0x1e, 0x2d, 0xfb, 0xa6, 0x31, 0xc7, 0xff, 0xed, 0x42, 0x0f, 0xd3, 0xd8, - 0xb5, 0xa4, 0x7a, 0xdb, 0xc4, 0x3f, 0xcb, 0xc0, 0x10, 0x3f, 0x98, 0xd6, 0xbb, 0x36, 0x36, 0x52, - 0xd2, 0xc1, 0xf7, 0xe1, 0xfb, 0x9a, 0x57, 0x63, 0xf6, 0x35, 0x3f, 0x0d, 0x63, 0x2d, 0x6d, 0x5f, - 0x0d, 0x5d, 0xe3, 0x92, 0x66, 0x47, 0x6b, 0x27, 0x7c, 0x94, 0xf0, 0x73, 0x96, 0xae, 0xf1, 0x0f, - 0x25, 0xd1, 0xe3, 0x50, 0x24, 0x14, 0xbe, 0x97, 0x20, 0xec, 0xc7, 0xfd, 0xbc, 0x48, 0xe0, 0xa1, - 0xac, 0x40, 0x4b, 0xdb, 0x5f, 0x62, 0x05, 0xb4, 0x02, 0x68, 0xd7, 0xcb, 0xd2, 0xa9, 0xbe, 0x28, - 0x09, 0xff, 0x9d, 0x37, 0x6f, 0xcc, 0x9c, 0x60, 0xfc, 0xdd, 0x34, 0xb2, 0x32, 0xe1, 0x57, 0x0a, - 0xb4, 0x47, 0x00, 0xc8, 0xb8, 0x54, 0xf6, 0xb2, 0x24, 0xdb, 0x5d, 0x1f, 0xbb, 0x79, 0x63, 0x66, - 0x82, 0xa1, 0xf8, 0xcf, 0x64, 0xa5, 0x40, 0x0a, 0x8b, 0xe4, 0x77, 0x40, 0xf0, 0xbf, 0x2a, 0x01, - 0xf2, 0x7d, 0x50, 0xe0, 0xf6, 0x2f, 0x04, 0x36, 0x69, 0xd2, 0xe1, 0xfb, 0x3e, 0x9f, 0x5f, 0xec, - 0xfb, 0x02, 0x4b, 0xf7, 0xbc, 0x6f, 0xaf, 0xc5, 0x05, 0x86, 0x98, 0x37, 0x4b, 0xe7, 0x16, 0x2c, - 0xc3, 0x3b, 0x59, 0xef, 0x36, 0xd0, 0xff, 0x5e, 0x82, 0x13, 0x5d, 0xda, 0xe4, 0x75, 0xf6, 0x7d, - 0x80, 0xec, 0xc0, 0x43, 0xfe, 0xf9, 0x6c, 0x89, 0xdf, 0x6f, 0xed, 0x53, 0x39, 0x27, 0xec, 0x2e, - 0x47, 0x70, 0xeb, 0x5c, 0x0e, 0xcb, 0x88, 0xfe, 0x4b, 0x09, 0xa6, 0x82, 0xcd, 0x7b, 0x03, 0xb9, - 0x02, 0x23, 0xc1, 0xd6, 0xf9, 0x10, 0xee, 0x49, 0x33, 0x04, 0xde, 0xfb, 0x10, 0x3f, 0x7a, 0xd6, - 0x5f, 0xaa, 0x2c, 0x85, 0xfb, 0x50, 0x6a, 0x69, 0x78, 0x69, 0xff, 0xc8, 0x92, 0x65, 0x23, 0xf8, - 0x0b, 0x09, 0x72, 0xeb, 0x96, 0xd5, 0x44, 0x16, 0x4c, 0x98, 0x96, 0xab, 0x12, 0xcd, 0xc2, 0x75, - 0x95, 0xe7, 0x78, 0x58, 0x56, 0x77, 0xa1, 0x3f, 0x21, 0x7d, 0xef, 0xc6, 0x4c, 0x37, 0x94, 0x32, - 0x6e, 0x5a, 0x6e, 0x8d, 0xd6, 0x6c, 0xb2, 0x0c, 0xd0, 0xfb, 0x61, 0x34, 0xdc, 0x18, 0xcb, 0x78, - 0x3d, 0xd7, 0x77, 0x63, 0x61, 0x98, 0x9b, 0x37, 0x66, 0xa6, 0xfc, 0x15, 0xe3, 0x55, 0xcb, 0xca, - 0xc8, 0x76, 0xa0, 0xf5, 0x6a, 0x9e, 0x8c, 0xfe, 0x4f, 0x3f, 0x3b, 0x23, 0xd5, 0x2e, 0xf6, 0x7c, - 0x9f, 0xf5, 0x81, 0x43, 0xbb, 0xb0, 0xef, 0x1d, 0x3b, 0x84, 0xcf, 0x25, 0x5e, 0x9d, 0x84, 0x99, - 0x1e, 0xe7, 0x12, 0xee, 0xfe, 0x91, 0x8e, 0x24, 0x12, 0x8e, 0x0b, 0x2a, 0xa9, 0x8e, 0x41, 0xe4, - 0x1f, 0xe4, 0x00, 0xad, 0x3a, 0x8d, 0x05, 0x12, 0xd5, 0xf8, 0x6f, 0x39, 0x44, 0x53, 0x62, 0xd2, - 0x9b, 0x4a, 0x89, 0xad, 0x86, 0x92, 0x4c, 0x99, 0xfe, 0x52, 0xdb, 0xa9, 0x33, 0x4d, 0xd9, 0xb7, - 0x25, 0xd3, 0x14, 0x1f, 0xaa, 0xe4, 0x7e, 0x88, 0x3b, 0xa6, 0xc1, 0xb7, 0x67, 0xc7, 0x74, 0x1c, - 0x86, 0x78, 0x0e, 0x9a, 0xfd, 0xb3, 0x31, 0x5e, 0x42, 0x8f, 0x06, 0xaf, 0x1a, 0xa7, 0xb0, 0xfe, - 0x8c, 0x9a, 0xdb, 0x99, 0xaf, 0x66, 0xa1, 0xb4, 0xea, 0x34, 0x96, 0xea, 0x86, 0xfb, 0x16, 0xe9, - 0x5e, 0xbb, 0xf7, 0x26, 0x73, 0xe1, 0xe6, 0x8d, 0x99, 0x31, 0x26, 0xb2, 0x5b, 0x29, 0xa8, 0x16, - 0x8c, 0x47, 0x8e, 0x73, 0xb8, 0x6a, 0x2e, 0x1e, 0xe5, 0x54, 0x29, 0x02, 0x25, 0xd3, 0x7d, 0x41, - 0x60, 0x81, 0xa0, 0xfd, 0xf8, 0xd5, 0xc0, 0x1c, 0xd9, 0xe5, 0xb7, 0x32, 0xe7, 0xca, 0xa6, 0xf0, - 0x6b, 0x19, 0x28, 0xae, 0x3a, 0x62, 0x9f, 0x8b, 0x7f, 0x62, 0x33, 0x0a, 0x8f, 0x7b, 0x9f, 0xae, - 0xc8, 0xa6, 0x5b, 0x08, 0xe1, 0xcf, 0x59, 0x7c, 0x2b, 0x4b, 0xed, 0x30, 0x3d, 0x85, 0xf7, 0x9c, - 0x35, 0x7e, 0x67, 0x63, 0xf4, 0x23, 0xb4, 0x31, 0xf2, 0x67, 0x38, 0x77, 0x94, 0x19, 0xfe, 0xdd, - 0x0c, 0x8c, 0xae, 0x3a, 0x8d, 0x2d, 0xb3, 0xfe, 0xce, 0x52, 0x79, 0x33, 0x4b, 0xe5, 0x96, 0x87, - 0x66, 0x5f, 0xcb, 0xc0, 0x99, 0x60, 0x2c, 0x45, 0xdf, 0xa6, 0xf3, 0xc2, 0xa5, 0xb6, 0xd6, 0x30, - 0xcc, 0xe0, 0x47, 0x25, 0x4e, 0x04, 0x3b, 0x4b, 0x69, 0x45, 0x97, 0x65, 0x13, 0x8a, 0xeb, 0x5a, - 0x03, 0x8b, 0x6f, 0x15, 0x74, 0x7f, 0x38, 0xe4, 0x38, 0x0c, 0x59, 0x3b, 0x3b, 0xec, 0xca, 0x85, - 0x34, 0x9b, 0x53, 0x78, 0x09, 0x4d, 0xc1, 0x60, 0xd3, 0x68, 0x19, 0x2e, 0x7f, 0x3f, 0x8b, 0x15, - 0xd0, 0x0c, 0x14, 0x75, 0x32, 0x6e, 0x95, 0xdd, 0xd4, 0xcc, 0x89, 0xaf, 0x87, 0x76, 0x4c, 0x77, - 0x93, 0xd4, 0xc8, 0x4f, 0xc1, 0x08, 0x6b, 0x8f, 0xef, 0x2f, 0x4e, 0x40, 0x9e, 0x5e, 0xbb, 0xf5, - 0x5b, 0x1d, 0x26, 0x65, 0x7e, 0x6f, 0x92, 0xa1, 0xb0, 0x86, 0x59, 0xa1, 0x56, 0xeb, 0x29, 0xca, - 0xd9, 0xe4, 0x49, 0x66, 0x82, 0xf2, 0xc4, 0xf8, 0xaf, 0x1e, 0x06, 0xb9, 0x47, 0xc8, 0xc9, 0xa4, - 0x74, 0x78, 0x90, 0xdb, 0xc7, 0x14, 0xf4, 0x08, 0x88, 0xd3, 0x05, 0xbc, 0xfb, 0x70, 0x9c, 0xde, - 0xff, 0xf2, 0xb7, 0xfa, 0x62, 0xba, 0x8e, 0x7b, 0xe7, 0xe1, 0x12, 0xff, 0x5f, 0xcf, 0xe2, 0x70, - 0x1b, 0xfc, 0x1e, 0x78, 0x2f, 0x74, 0xf4, 0xd4, 0x82, 0xb9, 0x80, 0x0a, 0x28, 0x01, 0x4e, 0xf9, - 0xd7, 0x24, 0xb8, 0xad, 0xab, 0x69, 0x3e, 0x73, 0x97, 0x42, 0xaf, 0x9c, 0x49, 0xfd, 0xdd, 0xc7, - 0x09, 0xbe, 0x43, 0x7e, 0x29, 0xa6, 0xb3, 0xa7, 0x12, 0x3b, 0xcb, 0x7a, 0x11, 0xea, 0xed, 0x4b, - 0x70, 0x2c, 0xdc, 0x59, 0x21, 0xa6, 0xe7, 0x61, 0x2c, 0x6c, 0x16, 0xb8, 0xc9, 0x3a, 0xc2, 0x89, - 0xea, 0x68, 0xc8, 0x34, 0xc8, 0x6a, 0x74, 0x6a, 0x3c, 0xf1, 0x2c, 0x75, 0xdf, 0xe9, 0x4d, 0x2d, - 0x9d, 0xc0, 0xab, 0x1f, 0x5f, 0x93, 0xe0, 0x64, 0xb8, 0x05, 0x3f, 0x9c, 0x71, 0xde, 0xf2, 0xf1, - 0xdd, 0x32, 0x45, 0xfa, 0xae, 0x04, 0x77, 0x1d, 0x32, 0x0c, 0x2e, 0xb3, 0x97, 0x61, 0x2a, 0x90, - 0x33, 0xb1, 0x79, 0xb5, 0x50, 0xae, 0x33, 0xc9, 0xc9, 0x1e, 0x2f, 0x45, 0x70, 0x3b, 0x91, 0xe3, - 0x17, 0xbf, 0x35, 0x33, 0xd9, 0xfd, 0xcc, 0x51, 0x26, 0xbb, 0xf3, 0x1c, 0xb7, 0x50, 0x0b, 0xff, - 0x83, 0x04, 0xa7, 0xc3, 0x43, 0x8d, 0x39, 0x59, 0xf9, 0x31, 0x9a, 0xba, 0xff, 0x22, 0xc1, 0x99, - 0x34, 0xe3, 0xe1, 0x73, 0xb8, 0x0d, 0x93, 0x7e, 0xb2, 0x33, 0x3a, 0x85, 0xf7, 0xf7, 0x71, 0x64, - 0xc5, 0xd7, 0x02, 0xf2, 0xd0, 0xde, 0x82, 0xb9, 0xfa, 0x3d, 0x89, 0xaf, 0xdf, 0xa0, 0x9a, 0x78, - 0x13, 0x13, 0x0e, 0x63, 0xfa, 0x9c, 0x98, 0x40, 0x28, 0x33, 0x1a, 0x0a, 0x65, 0x62, 0xa6, 0x3c, - 0x73, 0x8b, 0xac, 0xd1, 0x1e, 0xb7, 0xd6, 0x31, 0xd9, 0xd3, 0xf7, 0xc2, 0x64, 0xcc, 0xd2, 0xe2, - 0x86, 0xa9, 0x8f, 0x95, 0xa5, 0xa0, 0xee, 0xc5, 0x23, 0xff, 0x27, 0x09, 0x66, 0x68, 0xc3, 0x31, - 0xd3, 0xf8, 0xe3, 0x2c, 0xcf, 0x16, 0xb7, 0xbd, 0xb1, 0xc3, 0xe2, 0x82, 0x5d, 0x86, 0x21, 0xa6, - 0xa1, 0x5c, 0x96, 0x47, 0x50, 0x71, 0x0e, 0xe0, 0xdb, 0xfa, 0x45, 0x31, 0xbe, 0x78, 0x83, 0xf1, - 0x16, 0xc9, 0xf1, 0x56, 0x19, 0x8c, 0x6f, 0x0a, 0x5b, 0x1f, 0x3f, 0x0c, 0x2e, 0x37, 0xfd, 0x96, - 0xd9, 0x7a, 0xfe, 0xe1, 0x93, 0xb7, 0xc7, 0xa8, 0x7b, 0x63, 0x4a, 0x30, 0xea, 0x3f, 0xe2, 0x73, - 0xe4, 0x19, 0xf5, 0x84, 0xf1, 0xfc, 0x38, 0x1a, 0xf5, 0xbf, 0xc8, 0xc0, 0x09, 0x3a, 0xb6, 0xe0, - 0x09, 0xc2, 0xdb, 0x30, 0x37, 0x2a, 0x20, 0xc7, 0xd6, 0xd5, 0x5b, 0x65, 0x8b, 0x4a, 0x8e, 0xad, - 0x5f, 0x0d, 0x79, 0x74, 0x15, 0x50, 0xdd, 0x71, 0xa3, 0x0d, 0x64, 0x8f, 0xdc, 0x40, 0xdd, 0x71, - 0xaf, 0x1e, 0x12, 0x32, 0xe4, 0x8e, 0xac, 0x5d, 0xdf, 0x90, 0xa0, 0x12, 0x37, 0x03, 0x5c, 0x9b, - 0x0c, 0x38, 0x1e, 0x3a, 0x1c, 0x8b, 0x2a, 0xd4, 0x03, 0x69, 0x8e, 0x84, 0x22, 0xcb, 0xff, 0x98, - 0x8d, 0xdf, 0x52, 0x03, 0xf0, 0xaf, 0x85, 0x8b, 0xf3, 0x16, 0x4c, 0xf7, 0x6e, 0xec, 0x47, 0x7f, - 0xd9, 0x7f, 0xa9, 0xcb, 0xc3, 0xfc, 0x58, 0x6c, 0xec, 0x7e, 0x5f, 0x82, 0xe9, 0x1e, 0xdd, 0xfe, - 0x71, 0x0e, 0x2f, 0x76, 0x7b, 0xaa, 0xd4, 0xad, 0xde, 0x45, 0x3e, 0xc2, 0xd7, 0x63, 0xf8, 0x5d, - 0x9c, 0x40, 0x16, 0x21, 0xf6, 0x6b, 0x5c, 0x2f, 0xc0, 0xed, 0xb1, 0x5c, 0xbc, 0x6f, 0x55, 0xc8, - 0xed, 0x1a, 0x8e, 0xeb, 0x7d, 0xba, 0xa6, 0x47, 0xb7, 0x22, 0xdc, 0x94, 0x47, 0x46, 0x50, 0xa2, - 0xd0, 0xeb, 0x96, 0xd5, 0xe4, 0xdd, 0x90, 0x9f, 0x81, 0x89, 0x40, 0x1d, 0x6f, 0xe4, 0x31, 0xc8, - 0xb5, 0x2d, 0xab, 0xc9, 0x1b, 0xb9, 0xa3, 0x57, 0x23, 0x84, 0x87, 0x0f, 0x9b, 0xd2, 0xcb, 0x53, - 0x80, 0x18, 0x18, 0xfb, 0x98, 0x02, 0x6f, 0x62, 0x03, 0x26, 0x43, 0xb5, 0xbc, 0x91, 0x77, 0xc3, - 0x50, 0xe8, 0x33, 0x3c, 0x3d, 0xaf, 0xfe, 0x32, 0x3e, 0xef, 0xfd, 0x5e, 0x5a, 0x3a, 0xf7, 0xeb, - 0x63, 0xe2, 0x55, 0x3f, 0x0b, 0x20, 0x70, 0x1d, 0x63, 0xae, 0x17, 0x4a, 0x7c, 0x32, 0xa7, 0x72, - 0x36, 0x35, 0x3d, 0x0f, 0xbb, 0x07, 0x50, 0x33, 0xf8, 0xd6, 0xc7, 0x83, 0xe9, 0xf8, 0x45, 0x73, - 0x73, 0x69, 0xc9, 0xbd, 0xd6, 0x3e, 0x2a, 0xc1, 0x54, 0xdc, 0xfe, 0x1d, 0x3d, 0x91, 0x0e, 0xaa, - 0x3b, 0x52, 0xaa, 0x9c, 0x3f, 0x02, 0xa7, 0xd7, 0x9f, 0x2f, 0x48, 0x70, 0xe7, 0xa1, 0x9b, 0x52, - 0x34, 0x9f, 0x0e, 0xfe, 0x90, 0x58, 0xae, 0x52, 0x7b, 0x33, 0x10, 0x5e, 0x57, 0xad, 0xd0, 0x25, - 0xe1, 0xc3, 0x45, 0xdf, 0xb5, 0x77, 0x4a, 0xd0, 0x8c, 0xee, 0x90, 0x58, 0x1e, 0x40, 0x1f, 0x91, - 0xe2, 0x6f, 0xcf, 0x3e, 0x7e, 0x28, 0x54, 0xef, 0xfd, 0x5b, 0xe5, 0x89, 0xfe, 0x19, 0x43, 0x8a, - 0x13, 0xb7, 0x19, 0x48, 0x50, 0x9c, 0x43, 0xb6, 0x41, 0x09, 0x8a, 0x73, 0xd8, 0xce, 0x83, 0x2b, - 0xce, 0xa1, 0x81, 0x6f, 0x82, 0xe2, 0xa4, 0xd9, 0x04, 0x24, 0x28, 0x4e, 0xaa, 0xb8, 0x5b, 0x1e, - 0x40, 0xfb, 0x30, 0x1a, 0x0a, 0xa2, 0xd0, 0x43, 0x87, 0xc2, 0xc6, 0x85, 0xbc, 0x95, 0x73, 0xfd, - 0xb0, 0x84, 0x34, 0x28, 0x26, 0x4c, 0x48, 0xd0, 0xa0, 0xde, 0xe1, 0x51, 0xe5, 0x89, 0xfe, 0x19, - 0xbd, 0xce, 0x7c, 0xc8, 0xbf, 0x13, 0x16, 0xa0, 0x40, 0x8f, 0xf5, 0x09, 0x29, 0xba, 0xf2, 0x78, - 0xdf, 0x7c, 0x5e, 0x4f, 0xfe, 0x72, 0xd7, 0x1b, 0xad, 0x87, 0x8b, 0x37, 0xd6, 0xe5, 0x56, 0x1e, - 0xee, 0x8b, 0xc7, 0x6b, 0xfc, 0x67, 0xf9, 0x1d, 0xa7, 0xd9, 0x43, 0xd9, 0x03, 0x4e, 0xb5, 0x72, - 0x3a, 0x05, 0xa5, 0x07, 0xaf, 0x7b, 0x37, 0x1e, 0xcf, 0x1c, 0xce, 0x16, 0x74, 0xaa, 0x95, 0xfb, - 0x53, 0xd1, 0x8a, 0x46, 0x6e, 0xf9, 0x59, 0xd8, 0xff, 0xcb, 0xf7, 0x7c, 0x7d, 0xba, 0x81, 0x4d, - 0xec, 0x18, 0xce, 0x91, 0xee, 0x2a, 0xa5, 0x3b, 0x9a, 0xf9, 0xf2, 0x10, 0x8c, 0x5c, 0x62, 0xad, - 0xd0, 0xaf, 0xdd, 0xa2, 0x8b, 0x7d, 0x86, 0x12, 0x63, 0x24, 0x94, 0xf8, 0xfe, 0x8d, 0x19, 0x2e, - 0x78, 0x11, 0x54, 0x20, 0x87, 0x7f, 0xfe, 0x86, 0x7d, 0xba, 0xc2, 0xff, 0x7e, 0xc8, 0x48, 0x5f, - 0xaf, 0x15, 0xb2, 0x4b, 0x12, 0xfc, 0x0d, 0xbe, 0x28, 0x9e, 0xcc, 0xbe, 0xa4, 0x43, 0xcf, 0xe5, - 0xe8, 0xc7, 0x2f, 0xd0, 0x27, 0x25, 0x38, 0x46, 0xa9, 0xfc, 0x80, 0x97, 0x52, 0x8a, 0x37, 0x0e, - 0x7a, 0x6a, 0xc5, 0x8a, 0x16, 0xd8, 0x4a, 0x52, 0xac, 0x5a, 0x95, 0x5f, 0x80, 0xbd, 0x23, 0xd0, - 0x78, 0x14, 0x56, 0xfe, 0xfe, 0x8d, 0x19, 0xd4, 0xcd, 0xab, 0xd0, 0x4f, 0x36, 0x86, 0xeb, 0x1c, - 0xb4, 0x19, 0xf3, 0xe1, 0xe2, 0x14, 0xb1, 0xf0, 0x04, 0x17, 0xb0, 0x1f, 0x28, 0x85, 0xf6, 0x28, - 0xcf, 0x43, 0x31, 0x60, 0xfe, 0xca, 0x83, 0x09, 0xef, 0x01, 0xf9, 0x89, 0x0c, 0xc4, 0x71, 0x03, - 0x7e, 0x5d, 0x09, 0x42, 0xa1, 0x4f, 0x4b, 0x70, 0xcc, 0x4f, 0x9a, 0x04, 0x1b, 0x19, 0xea, 0x3f, - 0x6d, 0x72, 0x21, 0x2c, 0xcd, 0x58, 0x5c, 0x22, 0xcd, 0x38, 0x9f, 0xaf, 0x4c, 0x75, 0xe2, 0x5c, - 0xdc, 0x5f, 0x82, 0xd1, 0xe0, 0x9e, 0x59, 0x7c, 0xe6, 0x2e, 0xdd, 0xd5, 0xce, 0x29, 0x3e, 0xfa, - 0xd0, 0x9d, 0x78, 0x25, 0x0c, 0x88, 0x2a, 0x90, 0xc7, 0xfb, 0x6d, 0xcb, 0x76, 0x71, 0x9d, 0xbe, - 0x4f, 0x9a, 0x57, 0xbc, 0xb2, 0x7c, 0x1d, 0x62, 0x26, 0x1e, 0x3d, 0x13, 0xf9, 0x56, 0xcf, 0x51, - 0x36, 0x59, 0xdd, 0x9f, 0xf7, 0x09, 0x7e, 0x77, 0xe7, 0x56, 0x9b, 0x9f, 0xff, 0x1f, 0x00, 0x00, - 0xff, 0xff, 0xb0, 0x25, 0x40, 0x0c, 0x43, 0x9a, 0x00, 0x00, + 0x48, 0xe0, 0x00, 0x0e, 0x80, 0x23, 0x29, 0x59, 0x9a, 0x0c, 0x66, 0x1b, 0x8b, 0xe1, 0xed, 0xce, + 0x2c, 0x67, 0x66, 0x71, 0x00, 0xa3, 0x3f, 0x98, 0x92, 0x1c, 0x45, 0x8a, 0x15, 0xc9, 0x89, 0x9c, + 0xc8, 0x8a, 0xa4, 0xc8, 0x72, 0x25, 0x52, 0x64, 0x27, 0xb6, 0x13, 0x45, 0x91, 0x9d, 0xaa, 0x44, + 0x89, 0x15, 0x47, 0xa9, 0x38, 0x29, 0xa9, 0xca, 0x49, 0x39, 0xa9, 0xd4, 0xc9, 0xa6, 0x54, 0x15, + 0x59, 0x61, 0x62, 0xe7, 0xc2, 0xb8, 0x5c, 0x52, 0xaa, 0xec, 0xea, 0xaf, 0xf9, 0xda, 0x59, 0xcc, + 0x2c, 0x78, 0xa4, 0xa4, 0x12, 0xff, 0xc2, 0x76, 0xcf, 0x7b, 0xbf, 0xee, 0x7e, 0xfd, 0xfa, 0xbd, + 0xd7, 0xaf, 0x7b, 0x06, 0xf0, 0xdb, 0x17, 0xe0, 0x64, 0xc3, 0xb2, 0x1a, 0x4d, 0x7c, 0xb6, 0x6d, + 0x5b, 0xae, 0xb5, 0xdd, 0xd9, 0x39, 0x5b, 0xc7, 0x8e, 0x6e, 0x1b, 0x6d, 0xd7, 0xb2, 0xe7, 0x68, + 0x1d, 0x1a, 0x67, 0x14, 0x73, 0x82, 0x42, 0x5e, 0x85, 0x89, 0x8b, 0x46, 0x13, 0x2f, 0x7a, 0x84, + 0x1b, 0xd8, 0x45, 0x4f, 0x40, 0x6e, 0xc7, 0x68, 0xe2, 0xb2, 0x74, 0x32, 0x3b, 0x5b, 0x3c, 0x77, + 0xcf, 0x5c, 0x84, 0x69, 0x2e, 0xcc, 0xb1, 0x4e, 0xaa, 0x15, 0xca, 0x21, 0x7f, 0x27, 0x07, 0x93, + 0x31, 0x4f, 0x11, 0x82, 0x9c, 0xa9, 0xb5, 0x08, 0xa2, 0x34, 0x5b, 0x50, 0xe8, 0x6f, 0x54, 0x86, + 0xe1, 0xb6, 0xa6, 0x5f, 0xd3, 0x1a, 0xb8, 0x9c, 0xa1, 0xd5, 0xa2, 0x88, 0xa6, 0x01, 0xea, 0xb8, + 0x8d, 0xcd, 0x3a, 0x36, 0xf5, 0x83, 0x72, 0xf6, 0x64, 0x76, 0xb6, 0xa0, 0x04, 0x6a, 0xd0, 0xfd, + 0x30, 0xd1, 0xee, 0x6c, 0x37, 0x0d, 0x5d, 0x0d, 0x90, 0xc1, 0xc9, 0xec, 0xec, 0xa0, 0x52, 0x62, + 0x0f, 0x16, 0x7d, 0xe2, 0x53, 0x30, 0x7e, 0x1d, 0x6b, 0xd7, 0x82, 0xa4, 0x45, 0x4a, 0x3a, 0x46, + 0xaa, 0x03, 0x84, 0x0b, 0x30, 0xd2, 0xc2, 0x8e, 0xa3, 0x35, 0xb0, 0xea, 0x1e, 0xb4, 0x71, 0x39, + 0x47, 0x47, 0x7f, 0xb2, 0x6b, 0xf4, 0xd1, 0x91, 0x17, 0x39, 0xd7, 0xe6, 0x41, 0x1b, 0xa3, 0x79, + 0x28, 0x60, 0xb3, 0xd3, 0x62, 0x08, 0x83, 0x3d, 0xe4, 0xb7, 0x64, 0x76, 0x5a, 0x51, 0x94, 0x3c, + 0x61, 0xe3, 0x10, 0xc3, 0x0e, 0xb6, 0xf7, 0x0c, 0x1d, 0x97, 0x87, 0x28, 0xc0, 0xa9, 0x2e, 0x80, + 0x0d, 0xf6, 0x3c, 0x8a, 0x21, 0xf8, 0xd0, 0x02, 0x14, 0xf0, 0xbe, 0x8b, 0x4d, 0xc7, 0xb0, 0xcc, + 0xf2, 0x30, 0x05, 0xb9, 0x37, 0x66, 0x16, 0x71, 0xb3, 0x1e, 0x85, 0xf0, 0xf9, 0xd0, 0x63, 0x30, + 0x6c, 0xb5, 0x5d, 0xc3, 0x32, 0x9d, 0x72, 0xfe, 0xa4, 0x34, 0x5b, 0x3c, 0x77, 0x47, 0xac, 0x22, + 0xac, 0x31, 0x1a, 0x45, 0x10, 0xa3, 0x65, 0x28, 0x39, 0x56, 0xc7, 0xd6, 0xb1, 0xaa, 0x5b, 0x75, + 0xac, 0x1a, 0xe6, 0x8e, 0x55, 0x2e, 0x50, 0x80, 0x99, 0xee, 0x81, 0x50, 0xc2, 0x05, 0xab, 0x8e, + 0x97, 0xcd, 0x1d, 0x4b, 0x19, 0x73, 0x42, 0x65, 0x74, 0x1c, 0x86, 0x9c, 0x03, 0xd3, 0xd5, 0xf6, + 0xcb, 0x23, 0x54, 0x43, 0x78, 0x49, 0xfe, 0xcd, 0x21, 0x18, 0x4f, 0xa3, 0x62, 0x17, 0x60, 0x70, + 0x87, 0x8c, 0xb2, 0x9c, 0xe9, 0x47, 0x06, 0x8c, 0x27, 0x2c, 0xc4, 0xa1, 0x23, 0x0a, 0x71, 0x1e, + 0x8a, 0x26, 0x76, 0x5c, 0x5c, 0x67, 0x1a, 0x91, 0x4d, 0xa9, 0x53, 0xc0, 0x98, 0xba, 0x55, 0x2a, + 0x77, 0x24, 0x95, 0x7a, 0x1e, 0xc6, 0xbd, 0x2e, 0xa9, 0xb6, 0x66, 0x36, 0x84, 0x6e, 0x9e, 0x4d, + 0xea, 0xc9, 0xdc, 0x92, 0xe0, 0x53, 0x08, 0x9b, 0x32, 0x86, 0x43, 0x65, 0xb4, 0x08, 0x60, 0x99, + 0xd8, 0xda, 0x51, 0xeb, 0x58, 0x6f, 0x96, 0xf3, 0x3d, 0xa4, 0xb4, 0x46, 0x48, 0xba, 0xa4, 0x64, + 0xb1, 0x5a, 0xbd, 0x89, 0xce, 0xfb, 0xaa, 0x36, 0xdc, 0x43, 0x53, 0x56, 0xd9, 0x22, 0xeb, 0xd2, + 0xb6, 0x2d, 0x18, 0xb3, 0x31, 0xd1, 0x7b, 0x5c, 0xe7, 0x23, 0x2b, 0xd0, 0x4e, 0xcc, 0x25, 0x8e, + 0x4c, 0xe1, 0x6c, 0x6c, 0x60, 0xa3, 0x76, 0xb0, 0x88, 0xee, 0x06, 0xaf, 0x42, 0xa5, 0x6a, 0x05, + 0xd4, 0x0a, 0x8d, 0x88, 0xca, 0x2b, 0x5a, 0x0b, 0x57, 0x5e, 0x86, 0xb1, 0xb0, 0x78, 0xd0, 0x14, + 0x0c, 0x3a, 0xae, 0x66, 0xbb, 0x54, 0x0b, 0x07, 0x15, 0x56, 0x40, 0x25, 0xc8, 0x62, 0xb3, 0x4e, + 0xad, 0xdc, 0xa0, 0x42, 0x7e, 0xa2, 0x9f, 0xf6, 0x07, 0x9c, 0xa5, 0x03, 0xbe, 0xaf, 0x7b, 0x46, + 0x43, 0xc8, 0xd1, 0x71, 0x57, 0x1e, 0x87, 0xd1, 0xd0, 0x00, 0xd2, 0x36, 0x2d, 0xbf, 0x0f, 0x8e, + 0xc5, 0x42, 0xa3, 0xe7, 0x61, 0xaa, 0x63, 0x1a, 0xa6, 0x8b, 0xed, 0xb6, 0x8d, 0x89, 0xc6, 0xb2, + 0xa6, 0xca, 0xff, 0x63, 0xb8, 0x87, 0xce, 0x6d, 0x05, 0xa9, 0x19, 0x8a, 0x32, 0xd9, 0xe9, 0xae, + 0x3c, 0x53, 0xc8, 0x7f, 0x77, 0xb8, 0xf4, 0xca, 0x2b, 0xaf, 0xbc, 0x92, 0x91, 0xff, 0xf5, 0x10, + 0x4c, 0xc5, 0xad, 0x99, 0xd8, 0xe5, 0x7b, 0x1c, 0x86, 0xcc, 0x4e, 0x6b, 0x1b, 0xdb, 0x54, 0x48, + 0x83, 0x0a, 0x2f, 0xa1, 0x79, 0x18, 0x6c, 0x6a, 0xdb, 0xb8, 0x59, 0xce, 0x9d, 0x94, 0x66, 0xc7, + 0xce, 0xdd, 0x9f, 0x6a, 0x55, 0xce, 0xad, 0x10, 0x16, 0x85, 0x71, 0xa2, 0x27, 0x21, 0xc7, 0x4d, + 0x34, 0x41, 0x38, 0x93, 0x0e, 0x81, 0xac, 0x25, 0x85, 0xf2, 0xa1, 0xdb, 0xa1, 0x40, 0xfe, 0x32, + 0xdd, 0x18, 0xa2, 0x7d, 0xce, 0x93, 0x0a, 0xa2, 0x17, 0xa8, 0x02, 0x79, 0xba, 0x4c, 0xea, 0x58, + 0xb8, 0x36, 0xaf, 0x4c, 0x14, 0xab, 0x8e, 0x77, 0xb4, 0x4e, 0xd3, 0x55, 0xf7, 0xb4, 0x66, 0x07, + 0x53, 0x85, 0x2f, 0x28, 0x23, 0xbc, 0xf2, 0x2a, 0xa9, 0x43, 0x33, 0x50, 0x64, 0xab, 0xca, 0x30, + 0xeb, 0x78, 0x9f, 0x5a, 0xcf, 0x41, 0x85, 0x2d, 0xb4, 0x65, 0x52, 0x43, 0x9a, 0x7f, 0xd1, 0xb1, + 0x4c, 0xa1, 0x9a, 0xb4, 0x09, 0x52, 0x41, 0x9b, 0x7f, 0x3c, 0x6a, 0xb8, 0xef, 0x8c, 0x1f, 0x5e, + 0xd7, 0x5a, 0x3a, 0x05, 0xe3, 0x94, 0xe2, 0x61, 0x3e, 0xf5, 0x5a, 0xb3, 0x3c, 0x71, 0x52, 0x9a, + 0xcd, 0x2b, 0x63, 0xac, 0x7a, 0x8d, 0xd7, 0xca, 0x5f, 0xce, 0x40, 0x8e, 0x1a, 0x96, 0x71, 0x28, + 0x6e, 0xbe, 0xb0, 0xbe, 0xa4, 0x2e, 0xae, 0x6d, 0xd5, 0x56, 0x96, 0x4a, 0x12, 0x1a, 0x03, 0xa0, + 0x15, 0x17, 0x57, 0xd6, 0xe6, 0x37, 0x4b, 0x19, 0xaf, 0xbc, 0x7c, 0x65, 0xf3, 0xb1, 0x47, 0x4a, + 0x59, 0x8f, 0x61, 0x8b, 0x55, 0xe4, 0x82, 0x04, 0x0f, 0x9f, 0x2b, 0x0d, 0xa2, 0x12, 0x8c, 0x30, + 0x80, 0xe5, 0xe7, 0x97, 0x16, 0x1f, 0x7b, 0xa4, 0x34, 0x14, 0xae, 0x79, 0xf8, 0x5c, 0x69, 0x18, + 0x8d, 0x42, 0x81, 0xd6, 0xd4, 0xd6, 0xd6, 0x56, 0x4a, 0x79, 0x0f, 0x73, 0x63, 0x53, 0x59, 0xbe, + 0x72, 0xa9, 0x54, 0xf0, 0x30, 0x2f, 0x29, 0x6b, 0x5b, 0xeb, 0x25, 0xf0, 0x10, 0x56, 0x97, 0x36, + 0x36, 0xe6, 0x2f, 0x2d, 0x95, 0x8a, 0x1e, 0x45, 0xed, 0x85, 0xcd, 0xa5, 0x8d, 0xd2, 0x48, 0xa8, + 0x5b, 0x0f, 0x9f, 0x2b, 0x8d, 0x7a, 0x4d, 0x2c, 0x5d, 0xd9, 0x5a, 0x2d, 0x8d, 0xa1, 0x09, 0x18, + 0x65, 0x4d, 0x88, 0x4e, 0x8c, 0x47, 0xaa, 0x1e, 0x7b, 0xa4, 0x54, 0xf2, 0x3b, 0xc2, 0x50, 0x26, + 0x42, 0x15, 0x8f, 0x3d, 0x52, 0x42, 0xf2, 0x02, 0x0c, 0x52, 0x35, 0x44, 0x08, 0xc6, 0x56, 0xe6, + 0x6b, 0x4b, 0x2b, 0xea, 0xda, 0xfa, 0xe6, 0xf2, 0xda, 0x95, 0xf9, 0x95, 0x92, 0xe4, 0xd7, 0x29, + 0x4b, 0xcf, 0x6e, 0x2d, 0x2b, 0x4b, 0x8b, 0xa5, 0x4c, 0xb0, 0x6e, 0x7d, 0x69, 0x7e, 0x73, 0x69, + 0xb1, 0x94, 0x95, 0x75, 0x98, 0x8a, 0x33, 0xa8, 0xb1, 0x4b, 0x28, 0xa0, 0x0b, 0x99, 0x1e, 0xba, + 0x40, 0xb1, 0xa2, 0xba, 0x20, 0x7f, 0x3b, 0x03, 0x93, 0x31, 0x4e, 0x25, 0xb6, 0x91, 0xa7, 0x60, + 0x90, 0xe9, 0x32, 0x73, 0xb3, 0xa7, 0x63, 0xbd, 0x13, 0xd5, 0xec, 0x2e, 0x57, 0x4b, 0xf9, 0x82, + 0xa1, 0x46, 0xb6, 0x47, 0xa8, 0x41, 0x20, 0xba, 0x14, 0xf6, 0x3d, 0x5d, 0xc6, 0x9f, 0xf9, 0xc7, + 0xc7, 0xd2, 0xf8, 0x47, 0x5a, 0xd7, 0x9f, 0x13, 0x18, 0x8c, 0x71, 0x02, 0x17, 0x60, 0xa2, 0x0b, + 0x28, 0xb5, 0x31, 0x7e, 0xbf, 0x04, 0xe5, 0x5e, 0xc2, 0x49, 0x30, 0x89, 0x99, 0x90, 0x49, 0xbc, + 0x10, 0x95, 0xe0, 0x5d, 0xbd, 0x27, 0xa1, 0x6b, 0xae, 0x3f, 0x2f, 0xc1, 0xf1, 0xf8, 0x90, 0x32, + 0xb6, 0x0f, 0x4f, 0xc2, 0x50, 0x0b, 0xbb, 0xbb, 0x96, 0x08, 0xab, 0xee, 0x8b, 0x71, 0xd6, 0xe4, + 0x71, 0x74, 0xb2, 0x39, 0x57, 0xd0, 0xdb, 0x67, 0x7b, 0xc5, 0x85, 0xac, 0x37, 0x5d, 0x3d, 0xfd, + 0x50, 0x06, 0x8e, 0xc5, 0x82, 0xc7, 0x76, 0xf4, 0x4e, 0x00, 0xc3, 0x6c, 0x77, 0x5c, 0x16, 0x3a, + 0x31, 0x4b, 0x5c, 0xa0, 0x35, 0xd4, 0x78, 0x11, 0x2b, 0xdb, 0x71, 0xbd, 0xe7, 0x59, 0xfa, 0x1c, + 0x58, 0x15, 0x25, 0x78, 0xc2, 0xef, 0x68, 0x8e, 0x76, 0x74, 0xba, 0xc7, 0x48, 0xbb, 0x14, 0xf3, + 0x1d, 0x50, 0xd2, 0x9b, 0x06, 0x36, 0x5d, 0xd5, 0x71, 0x6d, 0xac, 0xb5, 0x0c, 0xb3, 0x41, 0x5d, + 0x4d, 0xbe, 0x3a, 0xb8, 0xa3, 0x35, 0x1d, 0xac, 0x8c, 0xb3, 0xc7, 0x1b, 0xe2, 0x29, 0xe1, 0xa0, + 0x0a, 0x64, 0x07, 0x38, 0x86, 0x42, 0x1c, 0xec, 0xb1, 0xc7, 0x21, 0xff, 0x7c, 0x01, 0x8a, 0x81, + 0x00, 0x1c, 0xdd, 0x05, 0x23, 0x2f, 0x6a, 0x7b, 0x9a, 0x2a, 0x36, 0x55, 0x4c, 0x12, 0x45, 0x52, + 0xb7, 0xce, 0x37, 0x56, 0xef, 0x80, 0x29, 0x4a, 0x62, 0x75, 0x5c, 0x6c, 0xab, 0x7a, 0x53, 0x73, + 0x1c, 0x2a, 0xb4, 0x3c, 0x25, 0x45, 0xe4, 0xd9, 0x1a, 0x79, 0xb4, 0x20, 0x9e, 0xa0, 0x47, 0x61, + 0x92, 0x72, 0xb4, 0x3a, 0x4d, 0xd7, 0x68, 0x37, 0xb1, 0x4a, 0xb6, 0x79, 0x0e, 0x75, 0x39, 0x5e, + 0xcf, 0x26, 0x08, 0xc5, 0x2a, 0x27, 0x20, 0x3d, 0x72, 0xd0, 0x22, 0xdc, 0x49, 0xd9, 0x1a, 0xd8, + 0xc4, 0xb6, 0xe6, 0x62, 0x15, 0xbf, 0xd4, 0xd1, 0x9a, 0x8e, 0xaa, 0x99, 0x75, 0x75, 0x57, 0x73, + 0x76, 0xcb, 0x53, 0x04, 0xa0, 0x96, 0x29, 0x4b, 0xca, 0x09, 0x42, 0x78, 0x89, 0xd3, 0x2d, 0x51, + 0xb2, 0x79, 0xb3, 0x7e, 0x59, 0x73, 0x76, 0x51, 0x15, 0x8e, 0x53, 0x14, 0xc7, 0xb5, 0x0d, 0xb3, + 0xa1, 0xea, 0xbb, 0x58, 0xbf, 0xa6, 0x76, 0xdc, 0x9d, 0x27, 0xca, 0xb7, 0x07, 0xdb, 0xa7, 0x3d, + 0xdc, 0xa0, 0x34, 0x0b, 0x84, 0x64, 0xcb, 0xdd, 0x79, 0x02, 0x6d, 0xc0, 0x08, 0x99, 0x8c, 0x96, + 0xf1, 0x32, 0x56, 0x77, 0x2c, 0x9b, 0xfa, 0xd0, 0xb1, 0x18, 0xd3, 0x14, 0x90, 0xe0, 0xdc, 0x1a, + 0x67, 0x58, 0xb5, 0xea, 0xb8, 0x3a, 0xb8, 0xb1, 0xbe, 0xb4, 0xb4, 0xa8, 0x14, 0x05, 0xca, 0x45, + 0xcb, 0x26, 0x0a, 0xd5, 0xb0, 0x3c, 0x01, 0x17, 0x99, 0x42, 0x35, 0x2c, 0x21, 0xde, 0x47, 0x61, + 0x52, 0xd7, 0xd9, 0x98, 0x0d, 0x5d, 0xe5, 0x9b, 0x31, 0xa7, 0x5c, 0x0a, 0x09, 0x4b, 0xd7, 0x2f, + 0x31, 0x02, 0xae, 0xe3, 0x0e, 0x3a, 0x0f, 0xc7, 0x7c, 0x61, 0x05, 0x19, 0x27, 0xba, 0x46, 0x19, + 0x65, 0x7d, 0x14, 0x26, 0xdb, 0x07, 0xdd, 0x8c, 0x28, 0xd4, 0x62, 0xfb, 0x20, 0xca, 0xf6, 0x38, + 0x4c, 0xb5, 0x77, 0xdb, 0xdd, 0x7c, 0x67, 0x82, 0x7c, 0xa8, 0xbd, 0xdb, 0x8e, 0x32, 0xde, 0x4b, + 0x77, 0xe6, 0x36, 0xd6, 0x35, 0x17, 0xd7, 0xcb, 0xb7, 0x05, 0xc9, 0x03, 0x0f, 0xd0, 0x1c, 0x94, + 0x74, 0x5d, 0xc5, 0xa6, 0xb6, 0xdd, 0xc4, 0xaa, 0x66, 0x63, 0x53, 0x73, 0xca, 0x33, 0x94, 0x38, + 0xe7, 0xda, 0x1d, 0xac, 0x8c, 0xe9, 0xfa, 0x12, 0x7d, 0x38, 0x4f, 0x9f, 0xa1, 0x33, 0x30, 0x61, + 0x6d, 0xbf, 0xa8, 0x33, 0x8d, 0x54, 0xdb, 0x36, 0xde, 0x31, 0xf6, 0xcb, 0xf7, 0x50, 0xf1, 0x8e, + 0x93, 0x07, 0x54, 0x1f, 0xd7, 0x69, 0x35, 0x3a, 0x0d, 0x25, 0xdd, 0xd9, 0xd5, 0xec, 0x36, 0x35, + 0xc9, 0x4e, 0x5b, 0xd3, 0x71, 0xf9, 0x5e, 0x46, 0xca, 0xea, 0xaf, 0x88, 0x6a, 0xb2, 0x22, 0x9c, + 0xeb, 0xc6, 0x8e, 0x2b, 0x10, 0x4f, 0xb1, 0x15, 0x41, 0xeb, 0x38, 0xda, 0x2c, 0x94, 0x88, 0x24, + 0x42, 0x0d, 0xcf, 0x52, 0xb2, 0xb1, 0xf6, 0x6e, 0x3b, 0xd8, 0xee, 0xdd, 0x30, 0x4a, 0x28, 0xfd, + 0x46, 0x4f, 0xb3, 0xc0, 0xad, 0xbd, 0x1b, 0x68, 0xf1, 0x11, 0x38, 0x4e, 0x88, 0x5a, 0xd8, 0xd5, + 0xea, 0x9a, 0xab, 0x05, 0xa8, 0x1f, 0xa0, 0xd4, 0x44, 0xec, 0xab, 0xfc, 0x61, 0xa8, 0x9f, 0x76, + 0x67, 0xfb, 0xc0, 0x53, 0xac, 0x07, 0x59, 0x3f, 0x49, 0x9d, 0x50, 0xad, 0x37, 0x2d, 0x38, 0x97, + 0xab, 0x30, 0x12, 0xd4, 0x7b, 0x54, 0x00, 0xa6, 0xf9, 0x25, 0x89, 0x04, 0x41, 0x0b, 0x6b, 0x8b, + 0x24, 0x7c, 0x79, 0xd7, 0x52, 0x29, 0x43, 0xc2, 0xa8, 0x95, 0xe5, 0xcd, 0x25, 0x55, 0xd9, 0xba, + 0xb2, 0xb9, 0xbc, 0xba, 0x54, 0xca, 0x06, 0x02, 0xfb, 0xa7, 0x73, 0xf9, 0xfb, 0x4a, 0xa7, 0xe4, + 0x6f, 0x66, 0x60, 0x2c, 0xbc, 0x53, 0x43, 0xef, 0x84, 0xdb, 0x44, 0x5a, 0xc5, 0xc1, 0xae, 0x7a, + 0xdd, 0xb0, 0xe9, 0x82, 0x6c, 0x69, 0xcc, 0x39, 0x7a, 0xfa, 0x33, 0xc5, 0xa9, 0x36, 0xb0, 0xfb, + 0x9c, 0x61, 0x93, 0xe5, 0xd6, 0xd2, 0x5c, 0xb4, 0x02, 0x33, 0xa6, 0xa5, 0x3a, 0xae, 0x66, 0xd6, + 0x35, 0xbb, 0xae, 0xfa, 0x09, 0x2d, 0x55, 0xd3, 0x75, 0xec, 0x38, 0x16, 0x73, 0x84, 0x1e, 0xca, + 0x1d, 0xa6, 0xb5, 0xc1, 0x89, 0x7d, 0x0f, 0x31, 0xcf, 0x49, 0x23, 0xea, 0x9b, 0xed, 0xa5, 0xbe, + 0xb7, 0x43, 0xa1, 0xa5, 0xb5, 0x55, 0x6c, 0xba, 0xf6, 0x01, 0x8d, 0xcf, 0xf3, 0x4a, 0xbe, 0xa5, + 0xb5, 0x97, 0x48, 0xf9, 0x2d, 0xd9, 0x26, 0x3d, 0x9d, 0xcb, 0xe7, 0x4b, 0x85, 0xa7, 0x73, 0xf9, + 0x42, 0x09, 0xe4, 0x57, 0xb3, 0x30, 0x12, 0x8c, 0xd7, 0xc9, 0xf6, 0x47, 0xa7, 0x1e, 0x4b, 0xa2, + 0x36, 0xed, 0xee, 0x43, 0xa3, 0xfb, 0xb9, 0x05, 0xe2, 0xca, 0xaa, 0x43, 0x2c, 0x38, 0x56, 0x18, + 0x27, 0x09, 0x23, 0x88, 0xb2, 0x61, 0x16, 0x8c, 0xe4, 0x15, 0x5e, 0x42, 0x97, 0x60, 0xe8, 0x45, + 0x87, 0x62, 0x0f, 0x51, 0xec, 0x7b, 0x0e, 0xc7, 0x7e, 0x7a, 0x83, 0x82, 0x17, 0x9e, 0xde, 0x50, + 0xaf, 0xac, 0x29, 0xab, 0xf3, 0x2b, 0x0a, 0x67, 0x47, 0x27, 0x20, 0xd7, 0xd4, 0x5e, 0x3e, 0x08, + 0x3b, 0x3d, 0x5a, 0x95, 0x76, 0x12, 0x4e, 0x40, 0xee, 0x3a, 0xd6, 0xae, 0x85, 0x5d, 0x0d, 0xad, + 0x7a, 0x13, 0x17, 0xc3, 0x59, 0x18, 0xa4, 0xf2, 0x42, 0x00, 0x5c, 0x62, 0xa5, 0x01, 0x94, 0x87, + 0xdc, 0xc2, 0x9a, 0x42, 0x16, 0x44, 0x09, 0x46, 0x58, 0xad, 0xba, 0xbe, 0xbc, 0xb4, 0xb0, 0x54, + 0xca, 0xc8, 0x8f, 0xc2, 0x10, 0x13, 0x02, 0x59, 0x2c, 0x9e, 0x18, 0x4a, 0x03, 0xbc, 0xc8, 0x31, + 0x24, 0xf1, 0x74, 0x6b, 0xb5, 0xb6, 0xa4, 0x94, 0x32, 0xe1, 0xa9, 0xce, 0x95, 0x06, 0x65, 0x07, + 0x46, 0x82, 0x71, 0xf8, 0x5b, 0xb3, 0x19, 0xff, 0xaa, 0x04, 0xc5, 0x40, 0x5c, 0x4d, 0x02, 0x22, + 0xad, 0xd9, 0xb4, 0xae, 0xab, 0x5a, 0xd3, 0xd0, 0x1c, 0xae, 0x1a, 0x40, 0xab, 0xe6, 0x49, 0x4d, + 0xda, 0xa9, 0x7b, 0x8b, 0x96, 0xc8, 0x60, 0x69, 0x48, 0xfe, 0x8c, 0x04, 0xa5, 0x68, 0x60, 0x1b, + 0xe9, 0xa6, 0xf4, 0xc3, 0xec, 0xa6, 0xfc, 0x29, 0x09, 0xc6, 0xc2, 0xd1, 0x6c, 0xa4, 0x7b, 0x77, + 0xfd, 0x50, 0xbb, 0xf7, 0x07, 0x19, 0x18, 0x0d, 0xc5, 0xb0, 0x69, 0x7b, 0xf7, 0x12, 0x4c, 0x18, + 0x75, 0xdc, 0x6a, 0x5b, 0x2e, 0x36, 0xf5, 0x03, 0xb5, 0x89, 0xf7, 0x70, 0xb3, 0x2c, 0x53, 0xa3, + 0x71, 0xf6, 0xf0, 0x28, 0x79, 0x6e, 0xd9, 0xe7, 0x5b, 0x21, 0x6c, 0xd5, 0xc9, 0xe5, 0xc5, 0xa5, + 0xd5, 0xf5, 0xb5, 0xcd, 0xa5, 0x2b, 0x0b, 0x2f, 0xa8, 0x5b, 0x57, 0x9e, 0xb9, 0xb2, 0xf6, 0xdc, + 0x15, 0xa5, 0x64, 0x44, 0xc8, 0xde, 0xc4, 0x65, 0xbf, 0x0e, 0xa5, 0x68, 0xa7, 0xd0, 0x6d, 0x10, + 0xd7, 0xad, 0xd2, 0x00, 0x9a, 0x84, 0xf1, 0x2b, 0x6b, 0xea, 0xc6, 0xf2, 0xe2, 0x92, 0xba, 0x74, + 0xf1, 0xe2, 0xd2, 0xc2, 0xe6, 0x06, 0xcb, 0x7b, 0x78, 0xd4, 0x9b, 0xa1, 0x05, 0x2e, 0x7f, 0x32, + 0x0b, 0x93, 0x31, 0x3d, 0x41, 0xf3, 0x7c, 0xc7, 0xc2, 0x36, 0x51, 0x0f, 0xa6, 0xe9, 0xfd, 0x1c, + 0x89, 0x19, 0xd6, 0x35, 0xdb, 0xe5, 0x1b, 0x9c, 0xd3, 0x40, 0xa4, 0x64, 0xba, 0xc6, 0x8e, 0x81, + 0x6d, 0x9e, 0x4f, 0x62, 0xdb, 0x98, 0x71, 0xbf, 0x9e, 0xa5, 0x94, 0x1e, 0x00, 0xd4, 0xb6, 0x1c, + 0xc3, 0x35, 0xf6, 0xb0, 0x6a, 0x98, 0x22, 0xf9, 0x44, 0xb6, 0x35, 0x39, 0xa5, 0x24, 0x9e, 0x2c, + 0x9b, 0xae, 0x47, 0x6d, 0xe2, 0x86, 0x16, 0xa1, 0x26, 0xc6, 0x3c, 0xab, 0x94, 0xc4, 0x13, 0x8f, + 0xfa, 0x2e, 0x18, 0xa9, 0x5b, 0x1d, 0x12, 0xeb, 0x31, 0x3a, 0xe2, 0x3b, 0x24, 0xa5, 0xc8, 0xea, + 0x3c, 0x12, 0x1e, 0xc5, 0xfb, 0x59, 0xaf, 0x11, 0xa5, 0xc8, 0xea, 0x18, 0xc9, 0x29, 0x18, 0xd7, + 0x1a, 0x0d, 0x9b, 0x80, 0x0b, 0x20, 0xb6, 0x2f, 0x19, 0xf3, 0xaa, 0x29, 0x61, 0xe5, 0x69, 0xc8, + 0x0b, 0x39, 0x10, 0x57, 0x4d, 0x24, 0xa1, 0xb6, 0xd9, 0x66, 0x3b, 0x33, 0x5b, 0x50, 0xf2, 0xa6, + 0x78, 0x78, 0x17, 0x8c, 0x18, 0x8e, 0xea, 0x27, 0xf1, 0x33, 0x27, 0x33, 0xb3, 0x79, 0xa5, 0x68, + 0x38, 0x5e, 0x02, 0x54, 0xfe, 0x7c, 0x06, 0xc6, 0xc2, 0x87, 0x10, 0x68, 0x11, 0xf2, 0x4d, 0x4b, + 0xd7, 0xa8, 0x6a, 0xb1, 0x13, 0xb0, 0xd9, 0x84, 0x73, 0x8b, 0xb9, 0x15, 0x4e, 0xaf, 0x78, 0x9c, + 0x95, 0xff, 0x24, 0x41, 0x5e, 0x54, 0xa3, 0xe3, 0x90, 0x6b, 0x6b, 0xee, 0x2e, 0x85, 0x1b, 0xac, + 0x65, 0x4a, 0x92, 0x42, 0xcb, 0xa4, 0xde, 0x69, 0x6b, 0x26, 0x55, 0x01, 0x5e, 0x4f, 0xca, 0x64, + 0x5e, 0x9b, 0x58, 0xab, 0xd3, 0x4d, 0x8f, 0xd5, 0x6a, 0x61, 0xd3, 0x75, 0xc4, 0xbc, 0xf2, 0xfa, + 0x05, 0x5e, 0x8d, 0xee, 0x87, 0x09, 0xd7, 0xd6, 0x8c, 0x66, 0x88, 0x36, 0x47, 0x69, 0x4b, 0xe2, + 0x81, 0x47, 0x5c, 0x85, 0x13, 0x02, 0xb7, 0x8e, 0x5d, 0x4d, 0xdf, 0xc5, 0x75, 0x9f, 0x69, 0x88, + 0x26, 0x37, 0x6e, 0xe3, 0x04, 0x8b, 0xfc, 0xb9, 0xe0, 0x95, 0xbf, 0x29, 0xc1, 0x84, 0xd8, 0xa6, + 0xd5, 0x3d, 0x61, 0xad, 0x02, 0x68, 0xa6, 0x69, 0xb9, 0x41, 0x71, 0x75, 0xab, 0x72, 0x17, 0xdf, + 0xdc, 0xbc, 0xc7, 0xa4, 0x04, 0x00, 0x2a, 0x2d, 0x00, 0xff, 0x49, 0x4f, 0xb1, 0xcd, 0x40, 0x91, + 0x9f, 0x30, 0xd1, 0x63, 0x4a, 0xb6, 0xb1, 0x07, 0x56, 0x45, 0xf6, 0x73, 0x68, 0x0a, 0x06, 0xb7, + 0x71, 0xc3, 0x30, 0x79, 0xde, 0x98, 0x15, 0x44, 0xfa, 0x25, 0xe7, 0xa5, 0x5f, 0x6a, 0x1f, 0x95, + 0x60, 0x52, 0xb7, 0x5a, 0xd1, 0xfe, 0xd6, 0x4a, 0x91, 0xec, 0x82, 0x73, 0x59, 0x7a, 0xd7, 0x93, + 0x0d, 0xc3, 0xdd, 0xed, 0x6c, 0xcf, 0xe9, 0x56, 0xeb, 0x6c, 0xc3, 0x6a, 0x6a, 0x66, 0xc3, 0x3f, + 0x67, 0xa5, 0x3f, 0xf4, 0x07, 0x1b, 0xd8, 0x7c, 0xb0, 0x61, 0x05, 0x4e, 0x5d, 0x2f, 0xf8, 0x3f, + 0xff, 0x4c, 0x92, 0x3e, 0x97, 0xc9, 0x5e, 0x5a, 0xaf, 0x7d, 0x31, 0x53, 0xb9, 0xc4, 0x9a, 0x5b, + 0x17, 0xe2, 0x51, 0xf0, 0x4e, 0x13, 0xeb, 0x64, 0xc8, 0xf0, 0xbd, 0xfb, 0x61, 0xaa, 0x61, 0x35, + 0x2c, 0x8a, 0x78, 0x96, 0xfc, 0xe2, 0x27, 0xb7, 0x05, 0xaf, 0xb6, 0x92, 0x78, 0xcc, 0x5b, 0xbd, + 0x02, 0x93, 0x9c, 0x58, 0xa5, 0x47, 0x47, 0x6c, 0x63, 0x83, 0x0e, 0xcd, 0xaa, 0x95, 0x7f, 0xe3, + 0x3b, 0xd4, 0xa1, 0x2b, 0x13, 0x9c, 0x95, 0x3c, 0x63, 0x7b, 0x9f, 0xaa, 0x02, 0xc7, 0x42, 0x78, + 0x6c, 0xd9, 0x62, 0x3b, 0x01, 0xf1, 0xdf, 0x72, 0xc4, 0xc9, 0x00, 0xe2, 0x06, 0x67, 0xad, 0x2e, + 0xc0, 0x68, 0x3f, 0x58, 0xbf, 0xc3, 0xb1, 0x46, 0x70, 0x10, 0xe4, 0x12, 0x8c, 0x53, 0x10, 0xbd, + 0xe3, 0xb8, 0x56, 0x8b, 0xda, 0xc4, 0xc3, 0x61, 0xfe, 0xdd, 0x77, 0xd8, 0x3a, 0x1a, 0x23, 0x6c, + 0x0b, 0x1e, 0x57, 0xb5, 0x0a, 0xf4, 0xb4, 0xac, 0x8e, 0xf5, 0x66, 0x02, 0xc2, 0xd7, 0x79, 0x47, + 0x3c, 0xfa, 0xea, 0x55, 0x98, 0x22, 0xbf, 0xa9, 0xc9, 0x0a, 0xf6, 0x24, 0x39, 0x05, 0x57, 0xfe, + 0xe6, 0xfb, 0xd9, 0x52, 0x9d, 0xf4, 0x00, 0x02, 0x7d, 0x0a, 0xcc, 0x62, 0x03, 0xbb, 0x2e, 0xb6, + 0x1d, 0x55, 0x6b, 0xc6, 0x75, 0x2f, 0x90, 0xc3, 0x28, 0xff, 0xe2, 0x6b, 0xe1, 0x59, 0xbc, 0xc4, + 0x38, 0xe7, 0x9b, 0xcd, 0xea, 0x16, 0xdc, 0x16, 0xa3, 0x15, 0x29, 0x30, 0x3f, 0xc9, 0x31, 0xa7, + 0xba, 0x34, 0x83, 0xc0, 0xae, 0x83, 0xa8, 0xf7, 0xe6, 0x32, 0x05, 0xe6, 0xdf, 0xe5, 0x98, 0x88, + 0xf3, 0x8a, 0x29, 0x25, 0x88, 0x4f, 0xc3, 0xc4, 0x1e, 0xb6, 0xb7, 0x2d, 0x87, 0xe7, 0x8d, 0x52, + 0xc0, 0x7d, 0x8a, 0xc3, 0x8d, 0x73, 0x46, 0x9a, 0x48, 0x22, 0x58, 0xe7, 0x21, 0xbf, 0xa3, 0xe9, + 0x38, 0x05, 0xc4, 0xa7, 0x39, 0xc4, 0x30, 0xa1, 0x27, 0xac, 0xf3, 0x30, 0xd2, 0xb0, 0xb8, 0xd7, + 0x4a, 0x66, 0xff, 0x0c, 0x67, 0x2f, 0x0a, 0x1e, 0x0e, 0xd1, 0xb6, 0xda, 0x9d, 0x26, 0x71, 0x69, + 0xc9, 0x10, 0x7f, 0x4f, 0x40, 0x08, 0x1e, 0x0e, 0xd1, 0x87, 0x58, 0x3f, 0x2b, 0x20, 0x9c, 0x80, + 0x3c, 0x9f, 0x82, 0xa2, 0x65, 0x36, 0x0f, 0x2c, 0x33, 0x4d, 0x27, 0x7e, 0x89, 0x23, 0x00, 0x67, + 0x21, 0x00, 0x17, 0xa0, 0x90, 0x76, 0x22, 0xfe, 0xfe, 0x6b, 0x62, 0x79, 0x88, 0x19, 0xb8, 0x04, + 0xe3, 0xc2, 0x40, 0x19, 0x96, 0x99, 0x02, 0xe2, 0x1f, 0x70, 0x88, 0xb1, 0x00, 0x1b, 0x1f, 0x86, + 0x8b, 0x1d, 0xb7, 0x81, 0xd3, 0x80, 0x7c, 0x5e, 0x0c, 0x83, 0xb3, 0x70, 0x51, 0x6e, 0x63, 0x53, + 0xdf, 0x4d, 0x87, 0xf0, 0x05, 0x21, 0x4a, 0xc1, 0x43, 0x20, 0x16, 0x60, 0xb4, 0xa5, 0xd9, 0xce, + 0xae, 0xd6, 0x4c, 0x35, 0x1d, 0xff, 0x90, 0x63, 0x8c, 0x78, 0x4c, 0x5c, 0x22, 0x1d, 0xb3, 0x1f, + 0x98, 0x2f, 0x0a, 0x89, 0x04, 0xd8, 0xf8, 0xd2, 0x73, 0x5c, 0x9a, 0x64, 0xeb, 0x07, 0xed, 0x57, + 0xc4, 0xd2, 0x63, 0xbc, 0xab, 0x41, 0xc4, 0x0b, 0x50, 0x70, 0x8c, 0x97, 0x53, 0xc1, 0xfc, 0xaa, + 0x98, 0x69, 0xca, 0x40, 0x98, 0x5f, 0x80, 0x13, 0xb1, 0x6e, 0x22, 0x05, 0xd8, 0x3f, 0xe2, 0x60, + 0xc7, 0x63, 0x5c, 0x05, 0x37, 0x09, 0xfd, 0x42, 0xfe, 0x63, 0x61, 0x12, 0x70, 0x04, 0x6b, 0x9d, + 0xec, 0x23, 0x1c, 0x6d, 0xa7, 0x3f, 0xa9, 0xfd, 0x9a, 0x90, 0x1a, 0xe3, 0x0d, 0x49, 0x6d, 0x13, + 0x8e, 0x73, 0xc4, 0xfe, 0xe6, 0xf5, 0xd7, 0x85, 0x61, 0x65, 0xdc, 0x5b, 0xe1, 0xd9, 0x7d, 0x37, + 0x54, 0x3c, 0x71, 0x8a, 0x80, 0xd5, 0x51, 0x5b, 0x5a, 0x3b, 0x05, 0xf2, 0x6f, 0x70, 0x64, 0x61, + 0xf1, 0xbd, 0x88, 0xd7, 0x59, 0xd5, 0xda, 0x04, 0xfc, 0x79, 0x28, 0x0b, 0xf0, 0x8e, 0x69, 0x63, + 0xdd, 0x6a, 0x98, 0xc6, 0xcb, 0xb8, 0x9e, 0x02, 0xfa, 0x9f, 0x44, 0xa6, 0x6a, 0x2b, 0xc0, 0x4e, + 0x90, 0x97, 0xa1, 0xe4, 0xc5, 0x2a, 0xaa, 0xd1, 0x6a, 0x5b, 0xb6, 0x9b, 0x80, 0xf8, 0x4f, 0xc5, + 0x4c, 0x79, 0x7c, 0xcb, 0x94, 0xad, 0xba, 0x04, 0xec, 0xe4, 0x39, 0xad, 0x4a, 0x7e, 0x89, 0x03, + 0x8d, 0xfa, 0x5c, 0xdc, 0x70, 0xe8, 0x56, 0xab, 0xad, 0xd9, 0x69, 0xec, 0xdf, 0x3f, 0x13, 0x86, + 0x83, 0xb3, 0x70, 0xc3, 0xe1, 0x1e, 0xb4, 0x31, 0xf1, 0xf6, 0x29, 0x10, 0xbe, 0x2c, 0x0c, 0x87, + 0xe0, 0xe1, 0x10, 0x22, 0x60, 0x48, 0x01, 0xf1, 0xcf, 0x05, 0x84, 0xe0, 0x21, 0x10, 0xcf, 0xfa, + 0x8e, 0xd6, 0xc6, 0x0d, 0xc3, 0x71, 0x6d, 0x16, 0x26, 0x1f, 0x0e, 0xf5, 0x95, 0xd7, 0xc2, 0x41, + 0x98, 0x12, 0x60, 0x25, 0x96, 0x88, 0xa7, 0x5d, 0xe9, 0x2e, 0x2a, 0xb9, 0x63, 0xbf, 0x29, 0x2c, + 0x51, 0x80, 0x8d, 0xf4, 0x2d, 0x10, 0x21, 0x12, 0xb1, 0xeb, 0x64, 0xef, 0x90, 0x02, 0xee, 0xb7, + 0x22, 0x9d, 0xdb, 0x10, 0xbc, 0x04, 0x33, 0x10, 0xff, 0x74, 0xcc, 0x6b, 0xf8, 0x20, 0x95, 0x76, + 0xfe, 0x8b, 0x48, 0xfc, 0xb3, 0xc5, 0x38, 0x99, 0x0d, 0x19, 0x8f, 0xc4, 0x53, 0x28, 0xe9, 0x9e, + 0x51, 0xf9, 0xaf, 0xbc, 0xce, 0xc7, 0x1b, 0x0e, 0xa7, 0xaa, 0x2b, 0x44, 0xc9, 0xc3, 0x41, 0x4f, + 0x32, 0xd8, 0xfb, 0x5f, 0xf7, 0xf4, 0x3c, 0x14, 0xf3, 0x54, 0x2f, 0xc2, 0x68, 0x28, 0xe0, 0x49, + 0x86, 0xfa, 0x00, 0x87, 0x1a, 0x09, 0xc6, 0x3b, 0xd5, 0x47, 0x21, 0x47, 0x82, 0x97, 0x64, 0xf6, + 0x9f, 0xe5, 0xec, 0x94, 0xbc, 0xfa, 0x53, 0x90, 0x17, 0x41, 0x4b, 0x32, 0xeb, 0x5f, 0xe5, 0xac, + 0x1e, 0x0b, 0x61, 0x17, 0x01, 0x4b, 0x32, 0xfb, 0x07, 0x05, 0xbb, 0x60, 0x21, 0xec, 0xe9, 0x45, + 0xf8, 0xd5, 0xbf, 0x9e, 0xe3, 0x4e, 0x47, 0xc8, 0xee, 0x02, 0x0c, 0xf3, 0x48, 0x25, 0x99, 0xfb, + 0x43, 0xbc, 0x71, 0xc1, 0x51, 0x7d, 0x1c, 0x06, 0x53, 0x0a, 0xfc, 0x23, 0x9c, 0x95, 0xd1, 0x57, + 0x17, 0xa0, 0x18, 0x88, 0x4e, 0x92, 0xd9, 0xff, 0x06, 0x67, 0x0f, 0x72, 0x91, 0xae, 0xf3, 0xe8, + 0x24, 0x19, 0xe0, 0xa3, 0xa2, 0xeb, 0x9c, 0x83, 0x88, 0x4d, 0x04, 0x26, 0xc9, 0xdc, 0x1f, 0x13, + 0x52, 0x17, 0x2c, 0xd5, 0xa7, 0xa0, 0xe0, 0x39, 0x9b, 0x64, 0xfe, 0x9f, 0xe7, 0xfc, 0x3e, 0x0f, + 0x91, 0x40, 0xc0, 0xd9, 0x25, 0x43, 0xfc, 0x4d, 0x21, 0x81, 0x00, 0x17, 0x59, 0x46, 0xd1, 0x00, + 0x26, 0x19, 0xe9, 0x6f, 0x89, 0x65, 0x14, 0x89, 0x5f, 0xc8, 0x6c, 0x52, 0x9b, 0x9f, 0x0c, 0xf1, + 0x71, 0x31, 0x9b, 0x94, 0x9e, 0x74, 0x23, 0x1a, 0x11, 0x24, 0x63, 0xfc, 0x1d, 0xd1, 0x8d, 0x48, + 0x40, 0x50, 0x5d, 0x07, 0xd4, 0x1d, 0x0d, 0x24, 0xe3, 0x7d, 0x82, 0xe3, 0x4d, 0x74, 0x05, 0x03, + 0xd5, 0xe7, 0xe0, 0x78, 0x7c, 0x24, 0x90, 0x8c, 0xfa, 0x8b, 0xaf, 0x47, 0xf6, 0x6e, 0xc1, 0x40, + 0xa0, 0xba, 0xe9, 0xbb, 0x94, 0x60, 0x14, 0x90, 0x0c, 0xfb, 0xc9, 0xd7, 0xc3, 0x86, 0x3b, 0x18, + 0x04, 0x54, 0xe7, 0x01, 0x7c, 0x07, 0x9c, 0x8c, 0xf5, 0x29, 0x8e, 0x15, 0x60, 0x22, 0x4b, 0x83, + 0xfb, 0xdf, 0x64, 0xfe, 0x4f, 0x8b, 0xa5, 0xc1, 0x39, 0xc8, 0xd2, 0x10, 0xae, 0x37, 0x99, 0xfb, + 0x33, 0x62, 0x69, 0x08, 0x16, 0xa2, 0xd9, 0x01, 0xef, 0x96, 0x8c, 0xf0, 0x4b, 0x42, 0xb3, 0x03, + 0x5c, 0xd5, 0x2b, 0x30, 0xd1, 0xe5, 0x10, 0x93, 0xa1, 0x3e, 0xc7, 0xa1, 0x4a, 0x51, 0x7f, 0x18, + 0x74, 0x5e, 0xdc, 0x19, 0x26, 0xa3, 0xfd, 0x72, 0xc4, 0x79, 0x71, 0x5f, 0x58, 0xbd, 0x00, 0x79, + 0xb3, 0xd3, 0x6c, 0x92, 0xc5, 0x83, 0x0e, 0xbf, 0x1b, 0x58, 0xfe, 0xa3, 0x1f, 0x70, 0xe9, 0x08, + 0x86, 0xea, 0xa3, 0x30, 0x88, 0x5b, 0xdb, 0xb8, 0x9e, 0xc4, 0xf9, 0xbd, 0x1f, 0x08, 0x83, 0x49, + 0xa8, 0xab, 0x4f, 0x01, 0xb0, 0xd4, 0x08, 0x3d, 0x1e, 0x4c, 0xe0, 0xfd, 0x9f, 0x3f, 0xe0, 0x97, + 0x71, 0x7c, 0x16, 0x1f, 0x80, 0x5d, 0xed, 0x39, 0x1c, 0xe0, 0xb5, 0x30, 0x00, 0x9d, 0x91, 0xf3, + 0x30, 0xfc, 0xa2, 0x63, 0x99, 0xae, 0xd6, 0x48, 0xe2, 0xfe, 0x5f, 0x9c, 0x5b, 0xd0, 0x13, 0x81, + 0xb5, 0x2c, 0x1b, 0xbb, 0x5a, 0xc3, 0x49, 0xe2, 0xfd, 0xdf, 0x9c, 0xd7, 0x63, 0x20, 0xcc, 0xba, + 0xe6, 0xb8, 0x69, 0xc6, 0xfd, 0xc7, 0x82, 0x59, 0x30, 0x90, 0x4e, 0x93, 0xdf, 0xd7, 0xf0, 0x41, + 0x12, 0xef, 0x9f, 0x88, 0x4e, 0x73, 0xfa, 0xea, 0x4f, 0x41, 0x81, 0xfc, 0x64, 0x37, 0xec, 0x12, + 0x98, 0xff, 0x0f, 0x67, 0xf6, 0x39, 0x48, 0xcb, 0x8e, 0x5b, 0x77, 0x8d, 0x64, 0x61, 0xdf, 0xe4, + 0x33, 0x2d, 0xe8, 0xab, 0xf3, 0x50, 0x74, 0xdc, 0x7a, 0xbd, 0xc3, 0xe3, 0xd3, 0x04, 0xf6, 0xff, + 0xfb, 0x03, 0x2f, 0x65, 0xe1, 0xf1, 0x90, 0xd9, 0xbe, 0x7e, 0xcd, 0x6d, 0x5b, 0xf4, 0x08, 0x24, + 0x09, 0xe1, 0x75, 0x8e, 0x10, 0x60, 0xa9, 0x2e, 0xc0, 0x08, 0x19, 0x8b, 0x8d, 0xdb, 0x98, 0x9e, + 0x57, 0x25, 0x40, 0xfc, 0x3f, 0x2e, 0x80, 0x10, 0x53, 0xed, 0x3d, 0x5f, 0x7f, 0x75, 0x5a, 0xfa, + 0xc6, 0xab, 0xd3, 0xd2, 0x1f, 0xbc, 0x3a, 0x2d, 0x7d, 0xec, 0xdb, 0xd3, 0x03, 0xdf, 0xf8, 0xf6, + 0xf4, 0xc0, 0xef, 0x7f, 0x7b, 0x7a, 0x20, 0x3e, 0x6d, 0x0c, 0x97, 0xac, 0x4b, 0x16, 0x4b, 0x18, + 0xbf, 0x4b, 0x0e, 0xa5, 0x8b, 0x1b, 0x96, 0x9f, 0xad, 0xf5, 0x36, 0x39, 0xf0, 0x81, 0x2c, 0x4c, + 0xeb, 0x96, 0xd3, 0xb2, 0x9c, 0xb3, 0xdb, 0x9a, 0x83, 0xcf, 0xee, 0x3d, 0xb4, 0x8d, 0x5d, 0xed, + 0xa1, 0xb3, 0xba, 0x65, 0x98, 0x3c, 0xed, 0x3b, 0xc9, 0x9e, 0xcf, 0x91, 0xe7, 0x73, 0xfc, 0x79, + 0x25, 0x36, 0x43, 0x2c, 0x5f, 0x82, 0xdc, 0x82, 0x65, 0x98, 0x68, 0x0a, 0x06, 0xeb, 0xd8, 0xb4, + 0x5a, 0xfc, 0x02, 0x18, 0x2b, 0xa0, 0xbb, 0x61, 0x48, 0x6b, 0x59, 0x1d, 0xd3, 0x65, 0xe9, 0xf2, + 0x5a, 0xf1, 0xeb, 0x37, 0x66, 0x06, 0xfe, 0xdb, 0x8d, 0x99, 0xec, 0xb2, 0xe9, 0x2a, 0xfc, 0x51, + 0x35, 0xf7, 0xdd, 0xcf, 0xce, 0x48, 0xf2, 0xd3, 0x30, 0xbc, 0x88, 0xf5, 0xa3, 0x60, 0x2d, 0x62, + 0x3d, 0x82, 0x75, 0x1a, 0xf2, 0xcb, 0xa6, 0xcb, 0xae, 0xe8, 0xdd, 0x09, 0x59, 0xc3, 0x64, 0xb7, + 0x3e, 0x22, 0xed, 0x93, 0x7a, 0x42, 0xba, 0x88, 0x75, 0x8f, 0xb4, 0x8e, 0xf5, 0x28, 0x29, 0x81, + 0x27, 0xf5, 0xb5, 0xc5, 0xdf, 0xff, 0xc3, 0xe9, 0x81, 0x57, 0x5e, 0x9d, 0x1e, 0xe8, 0x35, 0x3f, + 0x21, 0xf1, 0x73, 0x11, 0xb3, 0x3f, 0x0f, 0x3a, 0xf5, 0x6b, 0x67, 0xc9, 0xd2, 0x72, 0xb6, 0x87, + 0xd8, 0xad, 0x66, 0xf8, 0xad, 0x0c, 0xdc, 0x4b, 0x6f, 0x67, 0xdb, 0x2d, 0xc3, 0x74, 0xcf, 0xea, + 0xf6, 0x41, 0xdb, 0xb5, 0xce, 0xb6, 0xb0, 0x7d, 0xad, 0x89, 0xf9, 0x1f, 0x3e, 0x1b, 0x65, 0x9f, + 0x6c, 0x8e, 0x91, 0xcd, 0xb1, 0xe7, 0x3d, 0xa6, 0x64, 0x01, 0x86, 0xd7, 0x6d, 0xcb, 0xda, 0x59, + 0x6b, 0x23, 0xc4, 0x2f, 0x9c, 0xf3, 0xfb, 0x89, 0xd4, 0x1a, 0x94, 0x20, 0x7b, 0x0d, 0x1f, 0x50, + 0x21, 0x8e, 0x28, 0xe4, 0x27, 0xa1, 0xaa, 0x6b, 0xae, 0x46, 0xcf, 0x2d, 0x46, 0x14, 0xfa, 0x5b, + 0xae, 0xc1, 0x20, 0x05, 0x41, 0xe7, 0x21, 0x6b, 0xb5, 0x1d, 0x7e, 0xc8, 0x72, 0xd7, 0x5c, 0xaf, + 0xbe, 0xcc, 0xf1, 0x26, 0x6b, 0x39, 0x22, 0x37, 0x85, 0xf0, 0xd4, 0xd6, 0xff, 0xec, 0x0f, 0xa7, + 0xa5, 0x2f, 0xbc, 0x3a, 0x2d, 0xf5, 0x14, 0xd8, 0x5c, 0x40, 0x60, 0x01, 0x61, 0xf4, 0x92, 0x8b, + 0x27, 0xbc, 0x0f, 0x67, 0x60, 0x3a, 0x40, 0xd4, 0x34, 0xb6, 0x9d, 0xb3, 0xd7, 0xf6, 0x98, 0x84, + 0xb9, 0xd4, 0x50, 0xa0, 0xa7, 0xe4, 0xf9, 0xdc, 0xb5, 0xbd, 0x1e, 0xf2, 0x9a, 0x83, 0xdc, 0xba, + 0x66, 0xd8, 0x42, 0x30, 0x92, 0x2f, 0x98, 0x29, 0xff, 0x8a, 0x31, 0xa9, 0x63, 0x05, 0xf9, 0x1c, + 0xe4, 0x9f, 0x59, 0x7e, 0xec, 0x91, 0x34, 0x3c, 0x59, 0xce, 0x53, 0x53, 0x84, 0x28, 0xbe, 0x12, + 0x23, 0x8e, 0xaf, 0x7e, 0x7b, 0x5a, 0xf2, 0x44, 0x32, 0x9b, 0x28, 0x12, 0x3e, 0x5a, 0x4f, 0x18, + 0x1f, 0xcb, 0xc0, 0x4c, 0xf4, 0x70, 0x86, 0x58, 0x44, 0xc7, 0xd5, 0x5a, 0xed, 0x5e, 0xaf, 0xe0, + 0x5d, 0x80, 0xc2, 0xa6, 0xa0, 0x41, 0x65, 0x18, 0x76, 0xb0, 0x6e, 0x99, 0x75, 0x87, 0x8e, 0x24, + 0xab, 0x88, 0x22, 0x19, 0x8d, 0xa9, 0x99, 0x96, 0xc3, 0x2f, 0xfe, 0xb2, 0x42, 0xed, 0x6f, 0x4b, + 0xfd, 0x99, 0xa8, 0x31, 0xaf, 0x29, 0xba, 0xd0, 0xd6, 0xa5, 0x77, 0xdd, 0x7f, 0xd8, 0xb9, 0x16, + 0x9d, 0x46, 0x7f, 0x08, 0x81, 0x43, 0xac, 0xe9, 0xe8, 0x21, 0xd6, 0x73, 0xb8, 0xd9, 0x7c, 0xc6, + 0xb4, 0xae, 0x9b, 0x9b, 0xa1, 0xc5, 0xf5, 0x73, 0x19, 0x98, 0xee, 0x3a, 0xaf, 0xe2, 0x56, 0xbe, + 0x97, 0x44, 0xaa, 0x90, 0x5f, 0x14, 0xce, 0xa3, 0x5f, 0x81, 0x7c, 0xbc, 0x4f, 0x81, 0x8c, 0x8a, + 0x96, 0x84, 0x3c, 0xce, 0x24, 0xcb, 0x43, 0xf4, 0xff, 0x08, 0xe2, 0xf8, 0xc0, 0x93, 0x70, 0x57, + 0x40, 0x81, 0xb4, 0x6d, 0xdd, 0x38, 0xcb, 0x85, 0x1c, 0x58, 0x31, 0xc7, 0x02, 0x2b, 0x86, 0x90, + 0xcc, 0xd1, 0x87, 0xf1, 0x8b, 0xa6, 0x92, 0xce, 0x76, 0x55, 0x12, 0x56, 0x69, 0x25, 0x49, 0x71, + 0x2b, 0x09, 0xd3, 0x28, 0xff, 0xe9, 0x20, 0x0c, 0x2b, 0xf8, 0xa5, 0x0e, 0x76, 0xe8, 0x1b, 0xa4, + 0x58, 0xdf, 0xb5, 0xf8, 0x3b, 0x07, 0xf2, 0x5c, 0xec, 0x78, 0xe6, 0x38, 0xf5, 0x92, 0xbe, 0x6b, + 0x5d, 0x1e, 0x50, 0x28, 0x07, 0x7d, 0x65, 0xaf, 0xd9, 0x71, 0x76, 0xf9, 0xd5, 0xf0, 0xbb, 0x0f, + 0x67, 0xbd, 0x48, 0x48, 0x2f, 0x0f, 0x28, 0x8c, 0x87, 0x34, 0x4b, 0x5f, 0x37, 0xcc, 0xa5, 0x69, + 0x76, 0xd9, 0xdc, 0xa1, 0xcd, 0x12, 0x0e, 0x74, 0x19, 0xc0, 0xc1, 0xae, 0xb8, 0x51, 0x32, 0x48, + 0xf9, 0x4f, 0x1d, 0xce, 0xbf, 0x81, 0x5d, 0x16, 0x3d, 0x5c, 0x1e, 0x50, 0x0a, 0x8e, 0x28, 0x10, + 0x24, 0xc3, 0x34, 0x5c, 0x55, 0xdf, 0xd5, 0x0c, 0x93, 0x5e, 0x85, 0x48, 0x44, 0x5a, 0x36, 0x0d, + 0x77, 0x81, 0x90, 0x13, 0x24, 0x43, 0x14, 0x88, 0x28, 0x5e, 0xea, 0x60, 0x7e, 0x05, 0x31, 0x51, + 0x14, 0xcf, 0x12, 0x52, 0x22, 0x0a, 0xca, 0x83, 0x9e, 0x81, 0x22, 0x3d, 0xf5, 0x56, 0xb7, 0x9b, + 0x96, 0x7e, 0x8d, 0xbf, 0x08, 0x34, 0x7b, 0x38, 0x44, 0x8d, 0x30, 0xd4, 0x08, 0xfd, 0xe5, 0x01, + 0x05, 0xb6, 0xbd, 0x12, 0xaa, 0x41, 0x9e, 0x5d, 0xbe, 0x76, 0xf7, 0xf9, 0xab, 0x9c, 0xf7, 0x1e, + 0x8e, 0x44, 0xef, 0x61, 0x6f, 0xee, 0x5f, 0x1e, 0x50, 0x86, 0x75, 0xf6, 0x13, 0x2d, 0x41, 0x01, + 0x9b, 0x75, 0xde, 0x9d, 0x22, 0x7f, 0xe9, 0xed, 0x70, 0xbd, 0x30, 0xeb, 0xa2, 0x33, 0x79, 0xcc, + 0x7f, 0xa3, 0x27, 0x61, 0x48, 0xb7, 0x5a, 0x2d, 0xc3, 0xa5, 0xaf, 0x84, 0x16, 0xcf, 0xdd, 0x93, + 0xd0, 0x11, 0x4a, 0x7b, 0x79, 0x40, 0xe1, 0x5c, 0x64, 0x7a, 0xea, 0xb8, 0x69, 0xec, 0x61, 0x9b, + 0x0c, 0x66, 0x32, 0xcd, 0xf4, 0x2c, 0x32, 0x7a, 0x3a, 0x9c, 0x42, 0x5d, 0x14, 0x6a, 0xc3, 0xdc, + 0xbd, 0xc8, 0xa7, 0xa0, 0x18, 0xd0, 0x64, 0x62, 0xb1, 0xf8, 0x46, 0x90, 0x3b, 0x7b, 0x51, 0x94, + 0xc7, 0x60, 0x24, 0xa8, 0xb7, 0x72, 0xcb, 0x63, 0xa4, 0x77, 0x29, 0xca, 0x30, 0xbc, 0x87, 0x6d, + 0x87, 0x5d, 0xa4, 0xa0, 0x8c, 0xbc, 0x88, 0xee, 0x86, 0x51, 0x2a, 0x37, 0x55, 0x3c, 0xcf, 0xd0, + 0x7b, 0x3b, 0x23, 0xb4, 0xf2, 0x2a, 0x27, 0x9a, 0x81, 0x62, 0xfb, 0x5c, 0xdb, 0x23, 0xc9, 0x52, + 0x12, 0x68, 0x9f, 0x6b, 0x73, 0x02, 0xb9, 0x0a, 0xa5, 0xa8, 0xea, 0x06, 0xbd, 0x66, 0x21, 0xc6, + 0x6b, 0x16, 0x84, 0xa7, 0xfd, 0xf5, 0x8c, 0xc7, 0xec, 0x69, 0x2b, 0x59, 0x6e, 0xc4, 0x48, 0x50, + 0xee, 0xe2, 0xb9, 0x4a, 0x57, 0x84, 0xed, 0xf9, 0x9a, 0x5a, 0x9e, 0x84, 0x22, 0x1f, 0xfb, 0xd6, + 0x8c, 0xa4, 0x50, 0x0e, 0x74, 0x82, 0x28, 0x94, 0x66, 0x98, 0xaa, 0x51, 0x17, 0x2f, 0x7f, 0xd3, + 0xf2, 0x72, 0x1d, 0x3d, 0x0b, 0x25, 0xdd, 0x32, 0x1d, 0x6c, 0x3a, 0x1d, 0x47, 0x6d, 0x6b, 0xb6, + 0xd6, 0xf2, 0xdf, 0x91, 0x8c, 0x9f, 0xa6, 0x05, 0x41, 0xbe, 0x4e, 0xa9, 0x95, 0x71, 0x3d, 0x5c, + 0x81, 0x56, 0x00, 0xf6, 0xb4, 0xa6, 0x51, 0xd7, 0x5c, 0xcb, 0x76, 0xf8, 0x2b, 0x42, 0xbd, 0xc0, + 0xae, 0x0a, 0xc2, 0xad, 0x76, 0x5d, 0x73, 0x31, 0x0f, 0xa2, 0x02, 0xfc, 0xe8, 0x3e, 0x18, 0xd7, + 0xda, 0x6d, 0xd5, 0x71, 0x35, 0x17, 0xab, 0xdb, 0x07, 0x2e, 0x76, 0xa8, 0xbd, 0x18, 0x51, 0x46, + 0xb5, 0x76, 0x7b, 0x83, 0xd4, 0xd6, 0x48, 0xa5, 0x5c, 0xf7, 0x66, 0x9b, 0x2e, 0x4d, 0x2f, 0xb6, + 0x93, 0xfc, 0xd8, 0x8e, 0xd4, 0xd1, 0x1b, 0x2e, 0x4c, 0x06, 0xe2, 0x52, 0xd0, 0xd0, 0x2e, 0x36, + 0x1a, 0xbb, 0x2e, 0x1d, 0x76, 0x56, 0xe1, 0x25, 0x32, 0x31, 0x6d, 0xdb, 0xda, 0x63, 0x97, 0xb6, + 0xf2, 0x0a, 0x2b, 0xc8, 0xbf, 0x90, 0x81, 0x89, 0xae, 0xe5, 0x4b, 0x70, 0xe9, 0x6b, 0x16, 0xbc, + 0x2d, 0xf2, 0x1b, 0x5d, 0x20, 0xb8, 0x5a, 0x9d, 0xbf, 0x3a, 0x54, 0x3c, 0x77, 0x67, 0x0f, 0x09, + 0x5c, 0xa6, 0x44, 0x7c, 0xe0, 0x9c, 0x05, 0x6d, 0x41, 0xa9, 0xa9, 0x39, 0xae, 0xca, 0x56, 0x11, + 0x7b, 0xa9, 0x3b, 0x7b, 0xa8, 0x25, 0x58, 0xd1, 0xc4, 0xea, 0x23, 0xca, 0xcd, 0xe1, 0xc6, 0x9a, + 0xa1, 0x5a, 0xf4, 0x3c, 0x4c, 0x6d, 0x1f, 0xbc, 0xac, 0x99, 0xae, 0x61, 0xd2, 0x3b, 0x5f, 0xe1, + 0x39, 0x9a, 0xe9, 0x01, 0xbd, 0xb4, 0x67, 0xd4, 0xb1, 0xa9, 0x8b, 0xc9, 0x99, 0xf4, 0x20, 0xbc, + 0xc9, 0x73, 0xe4, 0xe7, 0x61, 0x2c, 0x6c, 0x8b, 0xd0, 0x18, 0x64, 0xdc, 0x7d, 0x2e, 0x91, 0x8c, + 0xbb, 0x8f, 0x1e, 0xe3, 0x11, 0x79, 0x86, 0x5e, 0x5a, 0xec, 0xe5, 0x2c, 0x38, 0xb7, 0xff, 0xea, + 0xa7, 0x2c, 0x7b, 0x2b, 0xc1, 0x33, 0x0c, 0x51, 0x6c, 0xf9, 0x34, 0x8c, 0x47, 0x8c, 0x58, 0x60, + 0x5a, 0xa5, 0xe0, 0xb4, 0xca, 0xe3, 0x30, 0x1a, 0xb2, 0x55, 0xf2, 0xef, 0x0e, 0x41, 0x5e, 0xc1, + 0x4e, 0x9b, 0x28, 0x31, 0xba, 0x0c, 0x05, 0xbc, 0xaf, 0xe3, 0xb6, 0x2b, 0xac, 0xc2, 0x61, 0x46, + 0x9c, 0xf1, 0x2c, 0x09, 0x7a, 0x62, 0xae, 0x3c, 0x66, 0x74, 0x3e, 0xe4, 0x92, 0xef, 0x4e, 0x02, + 0x09, 0xfa, 0xe4, 0x77, 0x86, 0x7d, 0xf2, 0x3d, 0x09, 0xbc, 0x11, 0xa7, 0x7c, 0x3e, 0xe4, 0x94, + 0x93, 0x1a, 0x0e, 0x79, 0xe5, 0xe5, 0x18, 0xaf, 0x9c, 0x34, 0xfc, 0x1e, 0x6e, 0x79, 0x39, 0xc6, + 0x2d, 0xcf, 0x26, 0xf6, 0x25, 0xd6, 0x2f, 0xbf, 0x33, 0xec, 0x97, 0x93, 0xc4, 0x11, 0x71, 0xcc, + 0x2b, 0x71, 0x8e, 0xf9, 0x74, 0x02, 0x46, 0x4f, 0xcf, 0xbc, 0xd0, 0xe5, 0x99, 0xef, 0x4b, 0x80, + 0x8a, 0x71, 0xcd, 0xcb, 0x21, 0x9f, 0x08, 0xa9, 0x64, 0x13, 0xef, 0x14, 0xd1, 0xc5, 0x6e, 0x2f, + 0x7f, 0x2a, 0x49, 0xd5, 0xe2, 0xdc, 0xfc, 0x53, 0x11, 0x37, 0x7f, 0x6f, 0xd2, 0xa8, 0x22, 0x7e, + 0xde, 0xf7, 0xce, 0xa7, 0x89, 0x7d, 0x8c, 0xac, 0x0c, 0x62, 0x4b, 0xb1, 0x6d, 0x5b, 0xb6, 0xc8, + 0x6b, 0xd0, 0x82, 0x3c, 0x4b, 0x2c, 0xb6, 0xaf, 0xff, 0x87, 0x78, 0x72, 0xba, 0x68, 0x03, 0xda, + 0x2e, 0x7f, 0x45, 0xf2, 0x79, 0xa9, 0x65, 0x0b, 0x5a, 0xfb, 0x02, 0xb7, 0xf6, 0x01, 0x07, 0x9f, + 0x09, 0x3b, 0xf8, 0x19, 0x28, 0x12, 0x9f, 0x12, 0xf1, 0xdd, 0x5a, 0x5b, 0xf8, 0x6e, 0x74, 0x06, + 0x26, 0xa8, 0xfd, 0x65, 0x61, 0x00, 0x37, 0x24, 0x39, 0x6a, 0x48, 0xc6, 0xc9, 0x03, 0x26, 0x41, + 0xe6, 0x28, 0x1e, 0x84, 0xc9, 0x00, 0x2d, 0xc1, 0xa5, 0xbe, 0x80, 0x39, 0xa9, 0x92, 0x47, 0x3d, + 0xdf, 0x6e, 0x5f, 0xd6, 0x9c, 0x5d, 0x79, 0xd5, 0x17, 0x90, 0x1f, 0x17, 0x20, 0xc8, 0xe9, 0x56, + 0x9d, 0x8d, 0x7b, 0x54, 0xa1, 0xbf, 0x49, 0xac, 0xd0, 0xb4, 0x1a, 0xfc, 0x22, 0x2a, 0xf9, 0x49, + 0xa8, 0xbc, 0xa5, 0x5d, 0x60, 0x6b, 0x56, 0xfe, 0x92, 0xe4, 0xe3, 0xf9, 0xa1, 0x42, 0x9c, 0x57, + 0x97, 0x6e, 0xa5, 0x57, 0xcf, 0xbc, 0x31, 0xaf, 0x2e, 0xbf, 0x2e, 0xf9, 0x53, 0xea, 0xf9, 0xeb, + 0xa3, 0x89, 0x80, 0x68, 0x17, 0x7b, 0x71, 0x9f, 0x5d, 0x98, 0x66, 0x05, 0x11, 0x6a, 0x0d, 0xc5, + 0x24, 0x28, 0x86, 0x03, 0x49, 0x0d, 0xf4, 0x28, 0xf5, 0xf3, 0xd6, 0x0e, 0x37, 0x0d, 0x33, 0x09, + 0x89, 0x1e, 0x85, 0x51, 0x07, 0xfc, 0x4b, 0x21, 0x14, 0x36, 0xdc, 0x01, 0x05, 0xd2, 0x75, 0xf6, + 0x16, 0x1a, 0xf0, 0x2c, 0xaf, 0xa8, 0x90, 0xeb, 0x80, 0xba, 0x6d, 0x0c, 0xba, 0x02, 0x43, 0x78, + 0x8f, 0x5e, 0x0a, 0x66, 0xc9, 0xa6, 0x3b, 0x7a, 0x3a, 0x62, 0x6c, 0xba, 0xb5, 0x32, 0x11, 0xe6, + 0xf7, 0x6e, 0xcc, 0x94, 0x18, 0xcf, 0x03, 0x56, 0xcb, 0x70, 0x71, 0xab, 0xed, 0x1e, 0x28, 0x1c, + 0x45, 0xfe, 0x60, 0x86, 0xf8, 0xc3, 0x90, 0xfd, 0x89, 0x15, 0xaf, 0x58, 0x34, 0x99, 0x40, 0x88, + 0x94, 0x4e, 0xe4, 0x77, 0x02, 0x34, 0x34, 0x47, 0xbd, 0xae, 0x99, 0x2e, 0xae, 0x73, 0xb9, 0x17, + 0x1a, 0x9a, 0xf3, 0x1c, 0xad, 0x20, 0xf1, 0x26, 0x79, 0xdc, 0x71, 0x70, 0x9d, 0x4e, 0x40, 0x56, + 0x19, 0x6e, 0x68, 0xce, 0x96, 0x83, 0xeb, 0x81, 0xb1, 0x0e, 0xdf, 0x8a, 0xb1, 0x86, 0xe5, 0x9d, + 0x8f, 0xca, 0xfb, 0x43, 0x19, 0x7f, 0x75, 0xf8, 0xe1, 0xc3, 0x4f, 0xa6, 0x2c, 0x3e, 0x4d, 0xf7, + 0x14, 0x61, 0x27, 0x80, 0x5e, 0x80, 0x09, 0x6f, 0x55, 0xaa, 0x1d, 0xba, 0x5a, 0x85, 0x16, 0xf6, + 0xb7, 0xb8, 0x4b, 0x7b, 0xe1, 0x6a, 0x07, 0xbd, 0x17, 0x6e, 0x8b, 0xd8, 0x20, 0xaf, 0x81, 0x4c, + 0x5f, 0xa6, 0xe8, 0x58, 0xd8, 0x14, 0x09, 0x7c, 0x5f, 0x7a, 0xd9, 0x5b, 0xb2, 0x6a, 0xee, 0x21, + 0x21, 0x6c, 0xd0, 0xbd, 0xc5, 0xe9, 0x84, 0xfc, 0x7b, 0x12, 0x8c, 0x47, 0x3a, 0x88, 0x9e, 0x80, + 0x41, 0xe6, 0x81, 0xa5, 0x43, 0x13, 0x21, 0x54, 0xe2, 0x7c, 0x4c, 0x8c, 0x01, 0xcd, 0x43, 0x1e, + 0xf3, 0xe8, 0x9a, 0x0b, 0xe5, 0xde, 0x84, 0x20, 0x9c, 0xf3, 0x7b, 0x6c, 0x68, 0x11, 0x0a, 0x9e, + 0xe8, 0x13, 0x76, 0x6e, 0xde, 0xcc, 0x71, 0x10, 0x9f, 0x51, 0x5e, 0x80, 0x62, 0xa0, 0x7b, 0xec, + 0x95, 0xcc, 0x7d, 0xbe, 0xdd, 0x62, 0x01, 0x74, 0xbe, 0xa5, 0xed, 0xd3, 0x9d, 0x16, 0xba, 0x0d, + 0x86, 0xc9, 0xc3, 0x06, 0x7f, 0x67, 0x2d, 0xab, 0x0c, 0xb5, 0xb4, 0xfd, 0x4b, 0x9a, 0x23, 0xff, + 0x9c, 0x04, 0x63, 0xe1, 0x7e, 0xa2, 0xfb, 0x01, 0x11, 0x5a, 0xad, 0x81, 0x55, 0xb3, 0xd3, 0x62, + 0x3e, 0x52, 0x20, 0x8e, 0xb7, 0xb4, 0xfd, 0xf9, 0x06, 0xbe, 0xd2, 0x69, 0xd1, 0xa6, 0x1d, 0xb4, + 0x0a, 0x25, 0x41, 0x2c, 0x92, 0x5d, 0x5c, 0x2a, 0x27, 0xba, 0x3f, 0x2f, 0xc4, 0x09, 0xd8, 0x5e, + 0xf7, 0x13, 0x64, 0xaf, 0x3b, 0xc6, 0xf0, 0xc4, 0x13, 0xf9, 0x51, 0x18, 0x8f, 0x8c, 0x18, 0xc9, + 0x30, 0xda, 0xee, 0x6c, 0xab, 0xd7, 0xf0, 0x01, 0xfd, 0x08, 0x01, 0x53, 0xf5, 0x82, 0x52, 0x6c, + 0x77, 0xb6, 0x9f, 0xc1, 0x07, 0x34, 0x77, 0x28, 0xeb, 0x30, 0x16, 0xde, 0x4c, 0x11, 0xc7, 0x61, + 0x5b, 0x1d, 0xb3, 0x2e, 0x3e, 0x2f, 0x41, 0x0b, 0xe8, 0x02, 0x0c, 0xee, 0x59, 0x4c, 0x9b, 0x0f, + 0xdb, 0x3d, 0x5d, 0xb5, 0x5c, 0x1c, 0xd8, 0x92, 0x31, 0x1e, 0xd9, 0x81, 0x41, 0xaa, 0x97, 0xb1, + 0x07, 0x15, 0x57, 0x01, 0x34, 0xd7, 0xb5, 0x8d, 0xed, 0x8e, 0x0f, 0x5f, 0x9e, 0xeb, 0x4e, 0xeb, + 0xcf, 0xad, 0x6b, 0x86, 0x5d, 0xbb, 0x83, 0x6b, 0xf6, 0x94, 0xcf, 0x13, 0xd0, 0xee, 0x00, 0x92, + 0xfc, 0x5a, 0x0e, 0x86, 0xd8, 0x76, 0x13, 0x3d, 0x19, 0x4e, 0x7e, 0x14, 0xcf, 0x4d, 0xf7, 0xea, + 0x3e, 0xa3, 0xe2, 0xbd, 0xf7, 0x22, 0xa8, 0xfb, 0xa2, 0x19, 0x85, 0x5a, 0xf1, 0xd5, 0x1b, 0x33, + 0xc3, 0x34, 0xfa, 0x58, 0x5e, 0xf4, 0xd3, 0x0b, 0xbd, 0x76, 0xd7, 0x22, 0x97, 0x91, 0xeb, 0x3b, + 0x97, 0x71, 0x19, 0x46, 0x03, 0xe1, 0x96, 0x51, 0xe7, 0xfb, 0x94, 0xe9, 0xc3, 0x16, 0xdd, 0xf2, + 0x22, 0xef, 0x7f, 0xd1, 0x0b, 0xc7, 0x96, 0xeb, 0x68, 0x36, 0xbc, 0xc9, 0xa6, 0x51, 0x1b, 0x0b, + 0x17, 0x02, 0xfb, 0x66, 0xfa, 0x65, 0x84, 0xdb, 0xa1, 0x40, 0xdf, 0x2f, 0xa7, 0x24, 0x2c, 0x7a, + 0xc8, 0x93, 0x0a, 0xfa, 0xf0, 0x14, 0x8c, 0xfb, 0x81, 0x0d, 0x23, 0xc9, 0x33, 0x14, 0xbf, 0x9a, + 0x12, 0xbe, 0x03, 0xa6, 0x4c, 0xbc, 0xef, 0xaa, 0x51, 0xea, 0x02, 0xa5, 0x46, 0xe4, 0xd9, 0xd5, + 0x30, 0xc7, 0xbd, 0x30, 0xe6, 0x9b, 0x50, 0x4a, 0x0b, 0x2c, 0xf5, 0xe1, 0xd5, 0x52, 0xb2, 0x13, + 0x90, 0xf7, 0xc2, 0xce, 0x22, 0x25, 0x18, 0xd6, 0x58, 0xb4, 0xe9, 0x05, 0xb2, 0x36, 0x76, 0x3a, + 0x4d, 0x97, 0x83, 0x8c, 0x50, 0x1a, 0x1a, 0xc8, 0x2a, 0xac, 0x9e, 0xd2, 0xde, 0x0d, 0xa3, 0xc2, + 0xaa, 0x30, 0xba, 0x51, 0x4a, 0x37, 0x22, 0x2a, 0x29, 0xd1, 0x69, 0x28, 0xb5, 0x6d, 0xab, 0x6d, + 0x39, 0xd8, 0x56, 0xb5, 0x7a, 0xdd, 0xc6, 0x8e, 0x53, 0x1e, 0x63, 0x78, 0xa2, 0x7e, 0x9e, 0x55, + 0xcb, 0x0f, 0xc1, 0xb0, 0x88, 0xa7, 0xa7, 0x60, 0xb0, 0xe6, 0x59, 0xc8, 0x9c, 0xc2, 0x0a, 0xc4, + 0xbf, 0xce, 0xb7, 0xdb, 0x3c, 0xbb, 0x46, 0x7e, 0xca, 0x4d, 0x18, 0xe6, 0x13, 0x16, 0x9b, 0x53, + 0x59, 0x85, 0x91, 0xb6, 0x66, 0x93, 0x61, 0x04, 0x33, 0x2b, 0xbd, 0x76, 0x84, 0xeb, 0x9a, 0xed, + 0x6e, 0x60, 0x37, 0x94, 0x60, 0x29, 0x52, 0x7e, 0x56, 0x25, 0x9f, 0x87, 0xd1, 0x10, 0x0d, 0xe9, + 0xa6, 0x6b, 0xb9, 0x5a, 0x53, 0x2c, 0x74, 0x5a, 0xf0, 0x7a, 0x92, 0xf1, 0x7b, 0x22, 0x5f, 0x80, + 0x82, 0x37, 0x57, 0x64, 0xa3, 0x21, 0x44, 0x21, 0x71, 0xf1, 0xb3, 0x22, 0x4d, 0x22, 0x59, 0xd7, + 0xf9, 0x17, 0xb5, 0xb2, 0x0a, 0x2b, 0xc8, 0x38, 0x60, 0x98, 0x98, 0x37, 0x43, 0xef, 0x84, 0x61, + 0x6e, 0x98, 0xf8, 0x7a, 0xec, 0x95, 0x2e, 0x5a, 0xa7, 0x96, 0x4a, 0xa4, 0x8b, 0x98, 0xdd, 0xf2, + 0x9b, 0xc9, 0x04, 0x9b, 0x79, 0x1f, 0xe4, 0x85, 0xf1, 0x09, 0x7b, 0x09, 0xd6, 0xc2, 0xc9, 0x24, + 0x2f, 0xc1, 0x1b, 0xf1, 0x19, 0x89, 0x36, 0x39, 0x46, 0xc3, 0xc4, 0x75, 0xd5, 0x5f, 0x82, 0xfc, + 0xbd, 0xe5, 0x71, 0xf6, 0x60, 0x45, 0xac, 0x2f, 0xf9, 0x1d, 0x30, 0xc4, 0xfa, 0x1a, 0x6b, 0xe2, + 0xe2, 0x5c, 0xeb, 0x77, 0x24, 0xc8, 0x0b, 0xf7, 0x11, 0xcb, 0x14, 0x1a, 0x44, 0xe6, 0xa8, 0x83, + 0xb8, 0xf5, 0x26, 0xe9, 0x01, 0x40, 0x54, 0x53, 0xd4, 0x3d, 0xcb, 0x35, 0xcc, 0x86, 0xca, 0xe6, + 0x82, 0xbf, 0xbe, 0x49, 0x9f, 0x5c, 0xa5, 0x0f, 0xd6, 0x49, 0xfd, 0x99, 0xbb, 0xa1, 0x18, 0xc8, + 0x72, 0xa1, 0x61, 0xc8, 0x5e, 0xc1, 0xd7, 0x4b, 0x03, 0xa8, 0x08, 0xc3, 0x0a, 0xa6, 0x39, 0x82, + 0x92, 0x74, 0xee, 0xb5, 0x61, 0x18, 0x9f, 0xaf, 0x2d, 0x2c, 0xcf, 0xb7, 0xdb, 0x4d, 0x83, 0xbf, + 0xd6, 0xb8, 0x06, 0x39, 0xba, 0x4f, 0x4e, 0x71, 0xbe, 0x53, 0x49, 0x93, 0x70, 0x42, 0x0a, 0x0c, + 0xd2, 0xed, 0x34, 0x4a, 0x73, 0xec, 0x53, 0x49, 0x95, 0x87, 0x22, 0x9d, 0xa4, 0x0a, 0x97, 0xe2, + 0x34, 0xa8, 0x92, 0x26, 0x39, 0x85, 0xde, 0x0b, 0x05, 0x7f, 0x9f, 0x9c, 0xf6, 0x8c, 0xa8, 0x92, + 0x3a, 0x6d, 0x45, 0xf0, 0xfd, 0x9d, 0x41, 0xda, 0xa3, 0x89, 0x4a, 0xea, 0x7c, 0x0d, 0x7a, 0x1e, + 0x86, 0xc5, 0x1e, 0x2c, 0xdd, 0x29, 0x4e, 0x25, 0x65, 0x4a, 0x89, 0x4c, 0x1f, 0xdb, 0x3a, 0xa7, + 0x39, 0xaa, 0xaa, 0xa4, 0xca, 0x9b, 0xa1, 0x2d, 0x18, 0xe2, 0xc1, 0x6f, 0xaa, 0x93, 0x9e, 0x4a, + 0xba, 0x44, 0x11, 0x11, 0xb2, 0x9f, 0x9c, 0x48, 0x7b, 0x3c, 0x57, 0x49, 0x9d, 0x30, 0x44, 0x1a, + 0x40, 0x60, 0x3f, 0x9d, 0xfa, 0xdc, 0xad, 0x92, 0x3e, 0x11, 0x88, 0xde, 0x0d, 0x79, 0x6f, 0xd7, + 0x94, 0xf2, 0x24, 0xad, 0x92, 0x36, 0x17, 0x57, 0xdb, 0x4a, 0x7d, 0x4b, 0xe2, 0xfe, 0xc4, 0x5b, + 0x12, 0xfe, 0x21, 0xb7, 0x77, 0x0c, 0xfe, 0x0b, 0x0f, 0xc1, 0x3d, 0xfc, 0x5a, 0x8e, 0xe3, 0x6a, + 0xd7, 0x0c, 0xb3, 0xe1, 0x5d, 0x7e, 0xe2, 0x65, 0x7e, 0x12, 0x7e, 0x9c, 0xdf, 0x7f, 0x12, 0xb5, + 0x87, 0x5e, 0x81, 0xaa, 0x24, 0x1f, 0xad, 0xbf, 0xe1, 0x63, 0xee, 0x4a, 0xc2, 0x8d, 0x2d, 0xf9, + 0xe3, 0x12, 0x8c, 0x5d, 0x36, 0x1c, 0xd7, 0xb2, 0x0d, 0x5d, 0x6b, 0x52, 0x8b, 0xe1, 0x9f, 0xbc, + 0x48, 0xfd, 0x9f, 0xbc, 0x3c, 0x05, 0x43, 0x7b, 0x5a, 0xd3, 0xc1, 0x2e, 0x8f, 0xbb, 0xef, 0x9a, + 0x8b, 0x17, 0x49, 0x97, 0x87, 0xe1, 0x6c, 0xfc, 0x22, 0xd6, 0xaf, 0x65, 0xc8, 0x36, 0xb1, 0xd5, + 0x32, 0x1c, 0xf6, 0xe1, 0x4f, 0xb2, 0x6f, 0xaa, 0x41, 0xce, 0xd6, 0x5c, 0xee, 0xd2, 0x6a, 0x73, + 0xfc, 0x9a, 0xd5, 0x7d, 0xc9, 0x57, 0xa7, 0xe6, 0x16, 0xb1, 0xae, 0x50, 0x5e, 0xf4, 0x33, 0x40, + 0xf6, 0x61, 0x2a, 0xc5, 0x61, 0x71, 0xf7, 0x7c, 0x7f, 0x38, 0x37, 0x6f, 0xcc, 0x8c, 0x1f, 0x68, + 0xad, 0x66, 0x55, 0x16, 0x38, 0xb2, 0x42, 0xb6, 0x73, 0xa4, 0x8b, 0xa8, 0x0d, 0x64, 0x4f, 0xa6, + 0xea, 0xbb, 0x9a, 0xd9, 0xc0, 0xac, 0x11, 0x9a, 0xfc, 0xa8, 0x5d, 0xee, 0xbb, 0x91, 0xe3, 0x7e, + 0x23, 0x01, 0x38, 0x59, 0x19, 0x6d, 0x69, 0xfb, 0x0b, 0xb4, 0x82, 0xb4, 0x58, 0xcd, 0x7f, 0xe2, + 0xb3, 0x33, 0x03, 0x54, 0x62, 0xdf, 0x94, 0x00, 0x7c, 0x89, 0xa1, 0x9f, 0x81, 0x92, 0xee, 0x95, + 0x28, 0xaf, 0xc8, 0x60, 0x9e, 0xea, 0x35, 0x23, 0x11, 0x79, 0x33, 0x37, 0xfd, 0x8d, 0x1b, 0x33, + 0x92, 0x32, 0xae, 0x47, 0xa6, 0xe2, 0xdd, 0x50, 0x64, 0xb9, 0x08, 0x95, 0xba, 0xfc, 0x4c, 0xa2, + 0xcb, 0x9f, 0x26, 0x58, 0x37, 0x6f, 0xcc, 0x20, 0x36, 0xac, 0x00, 0xb3, 0x4c, 0x03, 0x01, 0x60, + 0x35, 0x84, 0x21, 0x30, 0xa6, 0x7f, 0x2f, 0x41, 0x71, 0x31, 0xf0, 0xde, 0x42, 0x19, 0x86, 0x5b, + 0x96, 0x69, 0x5c, 0xc3, 0xb6, 0x97, 0xe1, 0x66, 0x45, 0x54, 0x81, 0x3c, 0xfb, 0x84, 0x84, 0x7b, + 0x20, 0xbe, 0x61, 0x2a, 0xca, 0x84, 0xeb, 0x3a, 0xde, 0x76, 0x0c, 0x31, 0x1b, 0x8a, 0x28, 0xa2, + 0x8b, 0x50, 0x72, 0xb0, 0xde, 0xb1, 0x0d, 0xf7, 0x40, 0xd5, 0x2d, 0xd3, 0xd5, 0x74, 0x96, 0xa5, + 0x2e, 0xd4, 0x6e, 0xbf, 0x79, 0x63, 0xe6, 0x36, 0xd6, 0xd7, 0x28, 0x85, 0xac, 0x8c, 0x8b, 0xaa, + 0x05, 0x56, 0x43, 0x5a, 0xa8, 0x63, 0x57, 0x33, 0x9a, 0xec, 0x6c, 0xb5, 0xa0, 0x88, 0x62, 0x60, + 0x2c, 0xff, 0x72, 0x38, 0x18, 0xf2, 0x5e, 0x87, 0x92, 0xd5, 0xc6, 0x36, 0x4d, 0x1b, 0x85, 0x62, + 0xdf, 0xda, 0x8a, 0xdf, 0x72, 0x94, 0x42, 0xfe, 0xfe, 0x8d, 0x99, 0x07, 0x53, 0x68, 0xd0, 0x55, + 0xad, 0xc9, 0xf7, 0x10, 0xca, 0xb8, 0xc0, 0xe0, 0x15, 0x64, 0xc8, 0x81, 0xac, 0x52, 0x67, 0x5b, + 0xdc, 0xe8, 0x0b, 0x0d, 0x39, 0x4a, 0x21, 0x07, 0xd3, 0xd9, 0xb4, 0x86, 0x44, 0x81, 0x2f, 0x6a, + 0x46, 0x53, 0x7c, 0x57, 0x47, 0xe1, 0x25, 0xb4, 0x0c, 0x43, 0x8e, 0xab, 0xb9, 0x1d, 0xf6, 0x55, + 0x87, 0xc1, 0xda, 0x43, 0x29, 0xfb, 0x5c, 0xb3, 0xcc, 0xfa, 0x06, 0x65, 0x54, 0x38, 0x00, 0xba, + 0x08, 0x43, 0xae, 0x75, 0x0d, 0x9b, 0x5c, 0xa8, 0x7d, 0xad, 0x78, 0x7a, 0x4d, 0x94, 0x71, 0x23, + 0x17, 0x4a, 0x75, 0xdc, 0xc4, 0x0d, 0x2a, 0x4a, 0x67, 0x57, 0xb3, 0xb1, 0xc3, 0xbe, 0x81, 0x5b, + 0x5b, 0xee, 0x7b, 0x59, 0x72, 0x01, 0x45, 0xf1, 0x64, 0x65, 0xdc, 0xab, 0xda, 0xa0, 0x35, 0xe8, + 0x99, 0xd0, 0x2b, 0x37, 0xde, 0xa5, 0x98, 0x1e, 0x6b, 0x2f, 0xa0, 0xe5, 0x62, 0xa7, 0x15, 0x7c, + 0x61, 0xe7, 0x22, 0x94, 0x3a, 0xe6, 0xb6, 0x65, 0xd2, 0x6f, 0x61, 0xf0, 0xe8, 0x9b, 0x6c, 0x92, + 0xb3, 0xc1, 0x59, 0x8b, 0x52, 0xc8, 0xca, 0xb8, 0x57, 0xc5, 0xcf, 0x5a, 0xea, 0x30, 0xe6, 0x53, + 0xd1, 0xa5, 0x5b, 0x48, 0x5c, 0xba, 0x77, 0xf1, 0xa5, 0x7b, 0x2c, 0xda, 0x8a, 0xbf, 0x7a, 0x47, + 0xbd, 0xca, 0x4d, 0x96, 0x62, 0x00, 0xdf, 0x60, 0xf0, 0x03, 0x3a, 0x39, 0xd9, 0xea, 0x88, 0x63, + 0x0e, 0x9f, 0x17, 0xbd, 0x0f, 0x26, 0x5b, 0x86, 0xa9, 0x3a, 0xb8, 0xb9, 0xa3, 0x72, 0x01, 0x13, + 0x48, 0xfa, 0x29, 0xc3, 0xda, 0x4a, 0x7f, 0xfa, 0x70, 0xf3, 0xc6, 0x4c, 0x85, 0x1b, 0xd5, 0x6e, + 0x48, 0x59, 0x99, 0x68, 0x19, 0xe6, 0x06, 0x6e, 0xee, 0x2c, 0x7a, 0x75, 0xd5, 0x91, 0xbf, 0xf6, + 0xd9, 0x99, 0x01, 0x6f, 0x01, 0x1b, 0x30, 0xe2, 0x2f, 0x2c, 0xec, 0xa0, 0x35, 0x28, 0x68, 0xa2, + 0x40, 0xf3, 0x60, 0x23, 0xa9, 0x95, 0x3d, 0xb0, 0x40, 0x7d, 0x0c, 0x66, 0x2b, 0x5e, 0xf9, 0xef, + 0x27, 0x25, 0xf9, 0xc3, 0x19, 0x18, 0x5a, 0xbc, 0x4a, 0xef, 0x89, 0xbe, 0x0c, 0x13, 0xbe, 0xb2, + 0x85, 0x2d, 0xc5, 0xea, 0xcd, 0x1b, 0x33, 0xe5, 0xa8, 0x3e, 0xf6, 0x69, 0x2a, 0xe6, 0x75, 0x5d, + 0xf4, 0xc4, 0x5f, 0x24, 0xc2, 0x56, 0xbc, 0x1c, 0x4c, 0x6e, 0x8b, 0xb6, 0x33, 0xd1, 0xb6, 0xbb, + 0x48, 0x8e, 0x60, 0xa6, 0xfc, 0xec, 0x37, 0xaf, 0x09, 0x18, 0xce, 0x25, 0x18, 0x66, 0xb2, 0x70, + 0x50, 0x15, 0x06, 0xdb, 0xe4, 0x07, 0xcf, 0xb0, 0x4f, 0xf7, 0x5c, 0x4d, 0x94, 0x5e, 0x64, 0x0c, + 0x29, 0x8b, 0xfc, 0xb9, 0x2c, 0xc0, 0xe2, 0xd5, 0xab, 0x9b, 0xb6, 0xd1, 0x6e, 0x62, 0xf7, 0x87, + 0x2a, 0xd7, 0x9f, 0x95, 0xe0, 0x98, 0x2f, 0x35, 0xc7, 0xd6, 0x23, 0xc2, 0x7d, 0xf6, 0xe6, 0x8d, + 0x99, 0x3b, 0xa2, 0xc2, 0x0d, 0x90, 0x1d, 0x41, 0xc0, 0x93, 0x1e, 0xd0, 0x86, 0xad, 0xc7, 0xf7, + 0xa3, 0xee, 0xb8, 0x5e, 0x3f, 0xb2, 0xbd, 0xfb, 0x11, 0x20, 0x7b, 0x43, 0xfd, 0x58, 0x74, 0xdc, + 0xee, 0xb9, 0xde, 0x80, 0xa2, 0x3f, 0x47, 0x0e, 0x5a, 0x84, 0xbc, 0xcb, 0x7f, 0xf3, 0x29, 0x97, + 0x7b, 0x4f, 0xb9, 0x60, 0xe3, 0xd3, 0xee, 0x71, 0xca, 0xff, 0x25, 0x03, 0xe0, 0xaf, 0xea, 0x9f, + 0xd4, 0x15, 0x45, 0xdc, 0x29, 0x77, 0x7e, 0xd9, 0x23, 0x05, 0xd0, 0x9c, 0x3b, 0x30, 0x5b, 0x7f, + 0x94, 0x81, 0xc9, 0x2d, 0x61, 0xf9, 0xdf, 0x96, 0x30, 0x5a, 0x87, 0x61, 0x6c, 0xba, 0xb6, 0x81, + 0xc5, 0x91, 0xda, 0x3b, 0x7a, 0x69, 0x6b, 0x8c, 0xd4, 0xe8, 0xe7, 0x3a, 0xc5, 0x31, 0x01, 0x87, + 0x09, 0xc8, 0xfa, 0xa3, 0x59, 0x28, 0xf7, 0xe2, 0x42, 0x0b, 0x30, 0xae, 0xdb, 0x98, 0x56, 0xa8, + 0xc1, 0x5b, 0x5b, 0xb5, 0x8a, 0xbf, 0x93, 0x88, 0x10, 0xc8, 0xca, 0x98, 0xa8, 0xe1, 0xb1, 0x41, + 0x03, 0x48, 0x98, 0x4f, 0x96, 0x0c, 0xa1, 0x4a, 0x19, 0xd7, 0xcb, 0x3c, 0x38, 0x10, 0x8d, 0x84, + 0x01, 0x58, 0x74, 0x30, 0xe6, 0xd7, 0xd2, 0xf0, 0xe0, 0x25, 0x18, 0x37, 0x4c, 0xc3, 0x35, 0xb4, + 0xa6, 0xba, 0xad, 0x35, 0x35, 0x53, 0x3f, 0xca, 0x2e, 0x89, 0x39, 0x74, 0xde, 0x6c, 0x04, 0x4e, + 0x56, 0xc6, 0x78, 0x4d, 0x8d, 0x55, 0xa0, 0xcb, 0x30, 0x2c, 0x9a, 0xca, 0x1d, 0x29, 0x96, 0x14, + 0xec, 0x81, 0x19, 0xf9, 0x48, 0x16, 0x26, 0x14, 0x5c, 0x7f, 0x7b, 0x2a, 0xfa, 0x9b, 0x8a, 0x55, + 0x00, 0x66, 0x48, 0x88, 0x27, 0x39, 0xc2, 0x6c, 0x10, 0x53, 0x54, 0x60, 0x08, 0x8b, 0x8e, 0x1b, + 0x98, 0x8f, 0x3f, 0xce, 0xc2, 0x48, 0x70, 0x3e, 0xde, 0x76, 0xf1, 0x3f, 0x3a, 0x2e, 0x1e, 0x2d, + 0xfb, 0xa6, 0x31, 0xc7, 0xff, 0xeb, 0x42, 0x0f, 0xd3, 0xd8, 0xb5, 0xa4, 0x7a, 0xdb, 0xc4, 0x3f, + 0xcd, 0xc0, 0x10, 0x3f, 0x98, 0xd6, 0xbb, 0x36, 0x36, 0x52, 0xd2, 0xc1, 0xf7, 0xe1, 0xfb, 0x9a, + 0x4f, 0xc4, 0xec, 0x6b, 0x7e, 0x1a, 0xc6, 0x5a, 0xda, 0xbe, 0x1a, 0xba, 0xc6, 0x25, 0xcd, 0x8e, + 0xd6, 0x4e, 0xf8, 0x28, 0xe1, 0xe7, 0x2c, 0x5d, 0xe3, 0x1f, 0x4a, 0xa2, 0xc7, 0xa1, 0x48, 0x28, + 0x7c, 0x2f, 0x41, 0xd8, 0x8f, 0xfb, 0x79, 0x91, 0xc0, 0x43, 0x59, 0x81, 0x96, 0xb6, 0xbf, 0xc4, + 0x0a, 0x68, 0x05, 0xd0, 0xae, 0x97, 0xa5, 0x53, 0x7d, 0x51, 0x12, 0xfe, 0x3b, 0x6f, 0xde, 0x98, + 0x39, 0xc1, 0xf8, 0xbb, 0x69, 0x64, 0x65, 0xc2, 0xaf, 0x14, 0x68, 0x8f, 0x00, 0x90, 0x71, 0xa9, + 0xec, 0x65, 0x49, 0xb6, 0xbb, 0x3e, 0x76, 0xf3, 0xc6, 0xcc, 0x04, 0x43, 0xf1, 0x9f, 0xc9, 0x4a, + 0x81, 0x14, 0x16, 0xc9, 0xef, 0x80, 0xe0, 0x7f, 0x59, 0x02, 0xe4, 0xfb, 0xa0, 0xc0, 0xed, 0x5f, + 0x08, 0x6c, 0xd2, 0xa4, 0xc3, 0xf7, 0x7d, 0x3e, 0xbf, 0xd8, 0xf7, 0x05, 0x96, 0xee, 0x79, 0xdf, + 0x5e, 0x8b, 0x0b, 0x0c, 0x31, 0x6f, 0x96, 0xce, 0x2d, 0x58, 0x86, 0x77, 0xb2, 0xde, 0x6d, 0xa0, + 0xff, 0x83, 0x04, 0x27, 0xba, 0xb4, 0xc9, 0xeb, 0xec, 0x7b, 0x01, 0xd9, 0x81, 0x87, 0xfc, 0xf3, + 0xd9, 0x12, 0xbf, 0xdf, 0xda, 0xa7, 0x72, 0x4e, 0xd8, 0x5d, 0x8e, 0xe0, 0xd6, 0xb9, 0x1c, 0x96, + 0x11, 0xfd, 0x57, 0x12, 0x4c, 0x05, 0x9b, 0xf7, 0x06, 0x72, 0x05, 0x46, 0x82, 0xad, 0xf3, 0x21, + 0xdc, 0x93, 0x66, 0x08, 0xbc, 0xf7, 0x21, 0x7e, 0xf4, 0xac, 0xbf, 0x54, 0x59, 0x0a, 0xf7, 0xa1, + 0xd4, 0xd2, 0xf0, 0xd2, 0xfe, 0x91, 0x25, 0xcb, 0x46, 0xf0, 0xe7, 0x12, 0xe4, 0xd6, 0x2d, 0xab, + 0x89, 0x2c, 0x98, 0x30, 0x2d, 0x57, 0x25, 0x9a, 0x85, 0xeb, 0x2a, 0xcf, 0xf1, 0xb0, 0xac, 0xee, + 0x42, 0x7f, 0x42, 0xfa, 0xde, 0x8d, 0x99, 0x6e, 0x28, 0x65, 0xdc, 0xb4, 0xdc, 0x1a, 0xad, 0xd9, + 0x64, 0x19, 0xa0, 0xf7, 0xc1, 0x68, 0xb8, 0x31, 0x96, 0xf1, 0x7a, 0xae, 0xef, 0xc6, 0xc2, 0x30, + 0x37, 0x6f, 0xcc, 0x4c, 0xf9, 0x2b, 0xc6, 0xab, 0x96, 0x95, 0x91, 0xed, 0x40, 0xeb, 0xd5, 0x3c, + 0x19, 0xfd, 0x9f, 0x7c, 0x76, 0x46, 0xaa, 0x5d, 0xec, 0xf9, 0x3e, 0xeb, 0x03, 0x87, 0x76, 0x61, + 0xdf, 0x3b, 0x76, 0x08, 0x9f, 0x4b, 0x7c, 0x62, 0x12, 0x66, 0x7a, 0x9c, 0x4b, 0xb8, 0xfb, 0x47, + 0x3a, 0x92, 0x48, 0x38, 0x2e, 0xa8, 0xa4, 0x3a, 0x06, 0x91, 0x7f, 0x90, 0x03, 0xb4, 0xea, 0x34, + 0x16, 0x48, 0x54, 0xe3, 0xbf, 0xe5, 0x10, 0x4d, 0x89, 0x49, 0x6f, 0x28, 0x25, 0xb6, 0x1a, 0x4a, + 0x32, 0x65, 0xfa, 0x4b, 0x6d, 0xa7, 0xce, 0x34, 0x65, 0xdf, 0x92, 0x4c, 0x53, 0x7c, 0xa8, 0x92, + 0xfb, 0x21, 0xee, 0x98, 0x06, 0xdf, 0x9a, 0x1d, 0xd3, 0x71, 0x18, 0xe2, 0x39, 0x68, 0xf6, 0x4f, + 0xc9, 0x78, 0x09, 0x3d, 0x1a, 0xbc, 0x6a, 0x9c, 0xc2, 0xfa, 0x33, 0x6a, 0x6e, 0x67, 0xbe, 0x9a, + 0x85, 0xd2, 0xaa, 0xd3, 0x58, 0xaa, 0x1b, 0xee, 0x9b, 0xa4, 0x7b, 0xed, 0xde, 0x9b, 0xcc, 0x85, + 0x9b, 0x37, 0x66, 0xc6, 0x98, 0xc8, 0x6e, 0xa5, 0xa0, 0x5a, 0x30, 0x1e, 0x39, 0xce, 0xe1, 0xaa, + 0xb9, 0x78, 0x94, 0x53, 0xa5, 0x08, 0x94, 0x4c, 0xf7, 0x05, 0x81, 0x05, 0x82, 0xf6, 0xe3, 0x57, + 0x03, 0x73, 0x64, 0x97, 0xdf, 0xcc, 0x9c, 0x2b, 0x9b, 0xc2, 0xaf, 0x65, 0xa0, 0xb8, 0xea, 0x88, + 0x7d, 0x2e, 0xfe, 0x89, 0xcd, 0x28, 0x3c, 0xee, 0x7d, 0xba, 0x22, 0x9b, 0x6e, 0x21, 0x84, 0x3f, + 0x67, 0xf1, 0xad, 0x2c, 0xb5, 0xc3, 0xf4, 0x14, 0xde, 0x73, 0xd6, 0xf8, 0xed, 0x8d, 0xd1, 0x8f, + 0xd0, 0xc6, 0xc8, 0x9f, 0xe1, 0xdc, 0x51, 0x66, 0xf8, 0x77, 0x32, 0x30, 0xba, 0xea, 0x34, 0xb6, + 0xcc, 0xfa, 0xdb, 0x4b, 0xe5, 0x8d, 0x2c, 0x95, 0x5b, 0x1e, 0x9a, 0x7d, 0x2d, 0x03, 0x67, 0x82, + 0xb1, 0x14, 0x7d, 0x9b, 0xce, 0x0b, 0x97, 0xda, 0x5a, 0xc3, 0x30, 0x83, 0x1f, 0x95, 0x38, 0x11, + 0xec, 0x2c, 0xa5, 0x15, 0x5d, 0x96, 0x4d, 0x28, 0xae, 0x6b, 0x0d, 0x2c, 0xbe, 0x55, 0xd0, 0xfd, + 0xe1, 0x90, 0xe3, 0x30, 0x64, 0xed, 0xec, 0xb0, 0x2b, 0x17, 0xd2, 0x6c, 0x4e, 0xe1, 0x25, 0x34, + 0x05, 0x83, 0x4d, 0xa3, 0x65, 0xb8, 0xfc, 0xfd, 0x2c, 0x56, 0x40, 0x33, 0x50, 0xd4, 0xc9, 0xb8, + 0x55, 0x76, 0x53, 0x33, 0x27, 0xbe, 0x1e, 0xda, 0x31, 0xdd, 0x4d, 0x52, 0x23, 0x3f, 0x05, 0x23, + 0xac, 0x3d, 0xbe, 0xbf, 0x38, 0x01, 0x79, 0x7a, 0xed, 0xd6, 0x6f, 0x75, 0x98, 0x94, 0xf9, 0xbd, + 0x49, 0x86, 0xc2, 0x1a, 0x66, 0x85, 0x5a, 0xad, 0xa7, 0x28, 0x67, 0x93, 0x27, 0x99, 0x09, 0xca, + 0x13, 0xe3, 0xbf, 0x79, 0x18, 0xe4, 0x1e, 0x21, 0x27, 0x93, 0xd2, 0xe1, 0x41, 0x6e, 0x1f, 0x53, + 0xd0, 0x23, 0x20, 0x4e, 0x17, 0xf0, 0xee, 0xc3, 0x71, 0x7a, 0xff, 0xcb, 0xdf, 0xea, 0x8b, 0xe9, + 0x3a, 0xee, 0x9d, 0x87, 0x4b, 0xfc, 0x7f, 0x42, 0x8b, 0xc3, 0x6d, 0xf0, 0x7b, 0xe0, 0xbd, 0xd0, + 0xd1, 0x53, 0x0b, 0xe6, 0x02, 0x2a, 0xa0, 0x04, 0x38, 0xe5, 0x5f, 0x91, 0xe0, 0xb6, 0xae, 0xa6, + 0xf9, 0xcc, 0x5d, 0x0a, 0xbd, 0x72, 0x26, 0xf5, 0x77, 0x1f, 0x27, 0xf8, 0x0e, 0xf9, 0xa5, 0x98, + 0xce, 0x9e, 0x4a, 0xec, 0x2c, 0xeb, 0x45, 0xa8, 0xb7, 0x2f, 0xc1, 0xb1, 0x70, 0x67, 0x85, 0x98, + 0x9e, 0x87, 0xb1, 0xb0, 0x59, 0xe0, 0x26, 0xeb, 0x08, 0x27, 0xaa, 0xa3, 0x21, 0xd3, 0x20, 0xab, + 0xd1, 0xa9, 0xf1, 0xc4, 0xb3, 0xd4, 0x7d, 0xa7, 0x37, 0xb5, 0x74, 0x02, 0xaf, 0x7e, 0x7c, 0x4d, + 0x82, 0x93, 0xe1, 0x16, 0xfc, 0x70, 0xc6, 0x79, 0xd3, 0xc7, 0x77, 0xcb, 0x14, 0xe9, 0xbb, 0x12, + 0xdc, 0x75, 0xc8, 0x30, 0xb8, 0xcc, 0x5e, 0x86, 0xa9, 0x40, 0xce, 0xc4, 0xe6, 0xd5, 0x42, 0xb9, + 0xce, 0x24, 0x27, 0x7b, 0xbc, 0x14, 0xc1, 0xed, 0x44, 0x8e, 0x5f, 0xfc, 0xd6, 0xcc, 0x64, 0xf7, + 0x33, 0x47, 0x99, 0xec, 0xce, 0x73, 0xdc, 0x42, 0x2d, 0xfc, 0x8f, 0x12, 0x9c, 0x0e, 0x0f, 0x35, + 0xe6, 0x64, 0xe5, 0xc7, 0x68, 0xea, 0xfe, 0xab, 0x04, 0x67, 0xd2, 0x8c, 0x87, 0xcf, 0xe1, 0x36, + 0x4c, 0xfa, 0xc9, 0xce, 0xe8, 0x14, 0xde, 0xdf, 0xc7, 0x91, 0x15, 0x5f, 0x0b, 0xc8, 0x43, 0x7b, + 0x13, 0xe6, 0xea, 0x77, 0x25, 0xbe, 0x7e, 0x83, 0x6a, 0xe2, 0x4d, 0x4c, 0x38, 0x8c, 0xe9, 0x73, + 0x62, 0x02, 0xa1, 0xcc, 0x68, 0x28, 0x94, 0x89, 0x99, 0xf2, 0xcc, 0x2d, 0xb2, 0x46, 0x7b, 0xdc, + 0x5a, 0xc7, 0x64, 0x4f, 0xdf, 0x0d, 0x93, 0x31, 0x4b, 0x8b, 0x1b, 0xa6, 0x3e, 0x56, 0x96, 0x82, + 0xba, 0x17, 0x8f, 0xfc, 0x9f, 0x25, 0x98, 0xa1, 0x0d, 0xc7, 0x4c, 0xe3, 0x8f, 0xb3, 0x3c, 0x5b, + 0xdc, 0xf6, 0xc6, 0x0e, 0x8b, 0x0b, 0x76, 0x19, 0x86, 0x98, 0x86, 0x72, 0x59, 0x1e, 0x41, 0xc5, + 0x39, 0x80, 0x6f, 0xeb, 0x17, 0xc5, 0xf8, 0xe2, 0x0d, 0xc6, 0x9b, 0x24, 0xc7, 0x5b, 0x65, 0x30, + 0xbe, 0x29, 0x6c, 0x7d, 0xfc, 0x30, 0xb8, 0xdc, 0xf4, 0x5b, 0x66, 0xeb, 0xf9, 0x87, 0x4f, 0xde, + 0x1a, 0xa3, 0xee, 0x8d, 0x29, 0xc1, 0xa8, 0xff, 0x88, 0xcf, 0x91, 0x67, 0xd4, 0x13, 0xc6, 0xf3, + 0xe3, 0x68, 0xd4, 0xff, 0x3c, 0x03, 0x27, 0xe8, 0xd8, 0x82, 0x27, 0x08, 0x6f, 0xc1, 0xdc, 0xa8, + 0x80, 0x1c, 0x5b, 0x57, 0x6f, 0x95, 0x2d, 0x2a, 0x39, 0xb6, 0x7e, 0x35, 0xe4, 0xd1, 0x55, 0x40, + 0x75, 0xc7, 0x8d, 0x36, 0x90, 0x3d, 0x72, 0x03, 0x75, 0xc7, 0xbd, 0x7a, 0x48, 0xc8, 0x90, 0x3b, + 0xb2, 0x76, 0x7d, 0x43, 0x82, 0x4a, 0xdc, 0x0c, 0x70, 0x6d, 0x32, 0xe0, 0x78, 0xe8, 0x70, 0x2c, + 0xaa, 0x50, 0x0f, 0xa4, 0x39, 0x12, 0x8a, 0x2c, 0xff, 0x63, 0x36, 0x7e, 0x53, 0x0d, 0xc0, 0x6f, + 0x0b, 0x17, 0xe7, 0x2d, 0x98, 0xee, 0xdd, 0xd8, 0x8f, 0xfe, 0xb2, 0xff, 0x52, 0x97, 0x87, 0xf9, + 0xb1, 0xd8, 0xd8, 0xfd, 0x9e, 0x04, 0xd3, 0x3d, 0xba, 0xfd, 0xe3, 0x1c, 0x5e, 0xec, 0xf6, 0x54, + 0xa9, 0x5b, 0xbd, 0x8b, 0x7c, 0x84, 0xaf, 0xc7, 0xf0, 0xbb, 0x38, 0x81, 0x2c, 0x42, 0xec, 0xd7, + 0xb8, 0x5e, 0x80, 0xdb, 0x63, 0xb9, 0x78, 0xdf, 0xaa, 0x90, 0xdb, 0x35, 0x1c, 0xd7, 0xfb, 0x74, + 0x4d, 0x8f, 0x6e, 0x45, 0xb8, 0x29, 0x8f, 0x8c, 0xa0, 0x44, 0xa1, 0xd7, 0x2d, 0xab, 0xc9, 0xbb, + 0x21, 0x3f, 0x03, 0x13, 0x81, 0x3a, 0xde, 0xc8, 0x63, 0x90, 0x6b, 0x5b, 0x56, 0x93, 0x37, 0x72, + 0x47, 0xaf, 0x46, 0x08, 0x0f, 0x1f, 0x36, 0xa5, 0x97, 0xa7, 0x00, 0x31, 0x30, 0xf6, 0x31, 0x05, + 0xde, 0xc4, 0x06, 0x4c, 0x86, 0x6a, 0x79, 0x23, 0xef, 0x84, 0xa1, 0xd0, 0x67, 0x78, 0x7a, 0x5e, + 0xfd, 0x65, 0x7c, 0xde, 0xfb, 0xbd, 0xb4, 0x74, 0xee, 0x57, 0xc7, 0xc4, 0xab, 0x7e, 0x16, 0x40, + 0xe0, 0x3a, 0xc6, 0x5c, 0x2f, 0x94, 0xf8, 0x64, 0x4e, 0xe5, 0x6c, 0x6a, 0x7a, 0x1e, 0x76, 0x0f, + 0xa0, 0x66, 0xf0, 0xad, 0x8f, 0x07, 0xd3, 0xf1, 0x8b, 0xe6, 0xe6, 0xd2, 0x92, 0x7b, 0xad, 0x7d, + 0x44, 0x82, 0xa9, 0xb8, 0xfd, 0x3b, 0x7a, 0x22, 0x1d, 0x54, 0x77, 0xa4, 0x54, 0x39, 0x7f, 0x04, + 0x4e, 0xaf, 0x3f, 0x5f, 0x90, 0xe0, 0xce, 0x43, 0x37, 0xa5, 0x68, 0x3e, 0x1d, 0xfc, 0x21, 0xb1, + 0x5c, 0xa5, 0xf6, 0x46, 0x20, 0xbc, 0xae, 0x5a, 0xa1, 0x4b, 0xc2, 0x87, 0x8b, 0xbe, 0x6b, 0xef, + 0x94, 0xa0, 0x19, 0xdd, 0x21, 0xb1, 0x3c, 0x80, 0x3e, 0x2c, 0xc5, 0xdf, 0x9e, 0x7d, 0xfc, 0x50, + 0xa8, 0xde, 0xfb, 0xb7, 0xca, 0x13, 0xfd, 0x33, 0x86, 0x14, 0x27, 0x6e, 0x33, 0x90, 0xa0, 0x38, + 0x87, 0x6c, 0x83, 0x12, 0x14, 0xe7, 0xb0, 0x9d, 0x07, 0x57, 0x9c, 0x43, 0x03, 0xdf, 0x04, 0xc5, + 0x49, 0xb3, 0x09, 0x48, 0x50, 0x9c, 0x54, 0x71, 0xb7, 0x3c, 0x80, 0xf6, 0x61, 0x34, 0x14, 0x44, + 0xa1, 0x87, 0x0e, 0x85, 0x8d, 0x0b, 0x79, 0x2b, 0xe7, 0xfa, 0x61, 0x09, 0x69, 0x50, 0x4c, 0x98, + 0x90, 0xa0, 0x41, 0xbd, 0xc3, 0xa3, 0xca, 0x13, 0xfd, 0x33, 0x7a, 0x9d, 0xf9, 0xa0, 0x7f, 0x27, + 0x2c, 0x40, 0x81, 0x1e, 0xeb, 0x13, 0x52, 0x74, 0xe5, 0xf1, 0xbe, 0xf9, 0xbc, 0x9e, 0xfc, 0xe5, + 0xae, 0x37, 0x5a, 0x0f, 0x17, 0x6f, 0xac, 0xcb, 0xad, 0x3c, 0xdc, 0x17, 0x8f, 0xd7, 0xf8, 0x7b, + 0xf8, 0x1d, 0xa7, 0xd9, 0x43, 0xd9, 0x03, 0x4e, 0xb5, 0x72, 0x3a, 0x05, 0xa5, 0x07, 0xaf, 0x7b, + 0x37, 0x1e, 0xcf, 0x1c, 0xce, 0x16, 0x74, 0xaa, 0x95, 0xfb, 0x53, 0xd1, 0x8a, 0x46, 0x6e, 0xf9, + 0x59, 0xd8, 0xff, 0xcf, 0xf7, 0x7c, 0x7d, 0xba, 0x81, 0x4d, 0xec, 0x18, 0xce, 0x91, 0xee, 0x2a, + 0xa5, 0x3b, 0x9a, 0xf9, 0xf2, 0x10, 0x8c, 0x5c, 0x62, 0xad, 0xd0, 0xaf, 0xdd, 0xa2, 0x8b, 0x7d, + 0x86, 0x12, 0x63, 0x24, 0x94, 0xf8, 0xfe, 0x8d, 0x19, 0x2e, 0x78, 0x11, 0x54, 0x20, 0x87, 0x7f, + 0xfe, 0x86, 0x7d, 0xba, 0xc2, 0xff, 0x7e, 0xc8, 0x48, 0x5f, 0xaf, 0x15, 0xb2, 0x4b, 0x12, 0xfc, + 0x0d, 0xbe, 0x28, 0x9e, 0xcc, 0xbe, 0xa4, 0x43, 0xcf, 0xe5, 0xe8, 0xc7, 0x2f, 0xd0, 0x27, 0x25, + 0x38, 0x46, 0xa9, 0xfc, 0x80, 0x97, 0x52, 0x8a, 0x37, 0x0e, 0x7a, 0x6a, 0xc5, 0x8a, 0x16, 0xd8, + 0x4a, 0x52, 0xac, 0x5a, 0x95, 0x5f, 0x80, 0xbd, 0x23, 0xd0, 0x78, 0x14, 0x56, 0xfe, 0xfe, 0x8d, + 0x19, 0xd4, 0xcd, 0xab, 0xd0, 0x4f, 0x36, 0x86, 0xeb, 0x1c, 0xb4, 0x19, 0xf3, 0xe1, 0xe2, 0x14, + 0xb1, 0xf0, 0x04, 0x17, 0xb0, 0x1f, 0x28, 0x85, 0xf6, 0x28, 0xcf, 0x43, 0x31, 0x60, 0xfe, 0xca, + 0x83, 0x09, 0xef, 0x01, 0xf9, 0x89, 0x0c, 0xc4, 0x71, 0x03, 0x7e, 0x5d, 0x09, 0x42, 0xa1, 0x4f, + 0x4b, 0x70, 0xcc, 0x4f, 0x9a, 0x04, 0x1b, 0x19, 0xea, 0x3f, 0x6d, 0x72, 0x21, 0x2c, 0xcd, 0x58, + 0x5c, 0x22, 0xcd, 0x38, 0x9f, 0xaf, 0x4c, 0x75, 0xe2, 0x5c, 0xdc, 0x5f, 0x82, 0xd1, 0xe0, 0x9e, + 0x59, 0x7c, 0xe6, 0x2e, 0xdd, 0xd5, 0xce, 0x29, 0x3e, 0xfa, 0xd0, 0x9d, 0x78, 0x25, 0x0c, 0x88, + 0x2a, 0x90, 0xc7, 0xfb, 0x6d, 0xcb, 0x76, 0x71, 0x9d, 0xbe, 0x4f, 0x9a, 0x57, 0xbc, 0xb2, 0x7c, + 0x1d, 0x62, 0x26, 0x1e, 0x3d, 0x13, 0xf9, 0x56, 0xcf, 0x51, 0x36, 0x59, 0xdd, 0x9f, 0xf7, 0x09, + 0x7e, 0x77, 0xe7, 0x56, 0x9b, 0x9f, 0xbf, 0x08, 0x00, 0x00, 0xff, 0xff, 0x83, 0x8c, 0x87, 0xe7, + 0x6b, 0x9a, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) diff --git a/x/upgrade/abci_test.go b/x/upgrade/abci_test.go index 98c66890a7..bbc4cbe23c 100644 --- a/x/upgrade/abci_test.go +++ b/x/upgrade/abci_test.go @@ -38,7 +38,7 @@ var s TestSuite func setupTest(height int64, skip map[int64]bool) TestSuite { db := dbm.NewMemDB() - app := simapp.NewSimApp(log.NewNopLogger(), db, nil, true, skip, simapp.DefaultNodeHome, 0) + app := simapp.NewSimApp(log.NewNopLogger(), db, nil, true, skip, simapp.DefaultNodeHome, 0, simapp.MakeEncodingConfig()) genesisState := simapp.NewDefaultGenesisState() stateBytes, err := codec.MarshalJSONIndent(app.LegacyAmino(), genesisState) if err != nil {