// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: cosmos/staking/v1beta1/staking.proto

package types

import (
	bytes "bytes"
	compress_gzip "compress/gzip"
	cosmossdk_io_math "cosmossdk.io/math"
	fmt "fmt"
	types2 "github.com/cometbft/cometbft/abci/types"
	types "github.com/cometbft/cometbft/proto/tendermint/types"
	_ "github.com/cosmos/cosmos-proto"
	types1 "github.com/cosmos/cosmos-sdk/types"
	_ "github.com/cosmos/cosmos-sdk/types/tx/amino"
	_ "github.com/cosmos/gogoproto/gogoproto"
	github_com_cosmos_gogoproto_proto "github.com/cosmos/gogoproto/proto"
	proto "github.com/cosmos/gogoproto/proto"
	github_com_cosmos_gogoproto_protoc_gen_gogo_descriptor "github.com/cosmos/gogoproto/protoc-gen-gogo/descriptor"
	github_com_cosmos_gogoproto_types "github.com/cosmos/gogoproto/types"
	any "github.com/cosmos/gogoproto/types/any"
	_ "google.golang.org/protobuf/types/known/durationpb"
	_ "google.golang.org/protobuf/types/known/timestamppb"
	io "io"
	io_ioutil "io/ioutil"
	math "math"
	math_bits "math/bits"
	time "time"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf
var _ = time.Kitchen

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package

// BondStatus is the status of a validator.
type BondStatus int32

const (
	// UNSPECIFIED defines an invalid validator status.
	Unspecified BondStatus = 0
	// UNBONDED defines a validator that is not bonded.
	Unbonded BondStatus = 1
	// UNBONDING defines a validator that is unbonding.
	Unbonding BondStatus = 2
	// BONDED defines a validator that is bonded.
	Bonded BondStatus = 3
)

var BondStatus_name = map[int32]string{
	0: "BOND_STATUS_UNSPECIFIED",
	1: "BOND_STATUS_UNBONDED",
	2: "BOND_STATUS_UNBONDING",
	3: "BOND_STATUS_BONDED",
}

var BondStatus_value = map[string]int32{
	"BOND_STATUS_UNSPECIFIED": 0,
	"BOND_STATUS_UNBONDED":    1,
	"BOND_STATUS_UNBONDING":   2,
	"BOND_STATUS_BONDED":      3,
}

func (x BondStatus) String() string {
	return proto.EnumName(BondStatus_name, int32(x))
}

func (BondStatus) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_64c30c6cf92913c9, []int{0}
}

// Infraction indicates the infraction a validator committed.
type Infraction int32

const (
	// UNSPECIFIED defines an empty infraction.
	Infraction_INFRACTION_UNSPECIFIED Infraction = 0
	// DOUBLE_SIGN defines a validator that double-signs a block.
	Infraction_INFRACTION_DOUBLE_SIGN Infraction = 1
	// DOWNTIME defines a validator that missed signing too many blocks.
	Infraction_INFRACTION_DOWNTIME Infraction = 2
)

var Infraction_name = map[int32]string{
	0: "INFRACTION_UNSPECIFIED",
	1: "INFRACTION_DOUBLE_SIGN",
	2: "INFRACTION_DOWNTIME",
}

var Infraction_value = map[string]int32{
	"INFRACTION_UNSPECIFIED": 0,
	"INFRACTION_DOUBLE_SIGN": 1,
	"INFRACTION_DOWNTIME":    2,
}

func (x Infraction) String() string {
	return proto.EnumName(Infraction_name, int32(x))
}

func (Infraction) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_64c30c6cf92913c9, []int{1}
}

// HistoricalInfo contains header and validator information for a given block.
// It is stored as part of staking module's state, which persists the `n` most
// recent HistoricalInfo
// (`n` is set by the staking module's `historical_entries` parameter).
type HistoricalInfo struct {
	Header types.Header `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	Valset []Validator  `protobuf:"bytes,2,rep,name=valset,proto3" json:"valset"`
}

func (m *HistoricalInfo) Reset()         { *m = HistoricalInfo{} }
func (m *HistoricalInfo) String() string { return proto.CompactTextString(m) }
func (*HistoricalInfo) ProtoMessage()    {}
func (*HistoricalInfo) Descriptor() ([]byte, []int) {
	return fileDescriptor_64c30c6cf92913c9, []int{0}
}
func (m *HistoricalInfo) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *HistoricalInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_HistoricalInfo.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *HistoricalInfo) XXX_Merge(src proto.Message) {
	xxx_messageInfo_HistoricalInfo.Merge(m, src)
}
func (m *HistoricalInfo) XXX_Size() int {
	return m.Size()
}
func (m *HistoricalInfo) XXX_DiscardUnknown() {
	xxx_messageInfo_HistoricalInfo.DiscardUnknown(m)
}

var xxx_messageInfo_HistoricalInfo proto.InternalMessageInfo

func (m *HistoricalInfo) GetHeader() types.Header {
	if m != nil {
		return m.Header
	}
	return types.Header{}
}

func (m *HistoricalInfo) GetValset() []Validator {
	if m != nil {
		return m.Valset
	}
	return nil
}

// CommissionRates defines the initial commission rates to be used for creating
// a validator.
type CommissionRates struct {
	// rate is the commission rate charged to delegators, as a fraction.
	Rate cosmossdk_io_math.LegacyDec `protobuf:"bytes,1,opt,name=rate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"rate"`
	// max_rate defines the maximum commission rate which validator can ever charge, as a fraction.
	MaxRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,2,opt,name=max_rate,json=maxRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"max_rate"`
	// max_change_rate defines the maximum daily increase of the validator commission, as a fraction.
	MaxChangeRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=max_change_rate,json=maxChangeRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"max_change_rate"`
}

func (m *CommissionRates) Reset()         { *m = CommissionRates{} }
func (m *CommissionRates) String() string { return proto.CompactTextString(m) }
func (*CommissionRates) ProtoMessage()    {}
func (*CommissionRates) Descriptor() ([]byte, []int) {
	return fileDescriptor_64c30c6cf92913c9, []int{1}
}
func (m *CommissionRates) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *CommissionRates) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_CommissionRates.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *CommissionRates) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CommissionRates.Merge(m, src)
}
func (m *CommissionRates) XXX_Size() int {
	return m.Size()
}
func (m *CommissionRates) XXX_DiscardUnknown() {
	xxx_messageInfo_CommissionRates.DiscardUnknown(m)
}

var xxx_messageInfo_CommissionRates proto.InternalMessageInfo

// Commission defines commission parameters for a given validator.
type Commission struct {
	// commission_rates defines the initial commission rates to be used for creating a validator.
	CommissionRates `protobuf:"bytes,1,opt,name=commission_rates,json=commissionRates,proto3,embedded=commission_rates" json:"commission_rates"`
	// update_time is the last time the commission rate was changed.
	UpdateTime time.Time `protobuf:"bytes,2,opt,name=update_time,json=updateTime,proto3,stdtime" json:"update_time"`
}

func (m *Commission) Reset()         { *m = Commission{} }
func (m *Commission) String() string { return proto.CompactTextString(m) }
func (*Commission) ProtoMessage()    {}
func (*Commission) Descriptor() ([]byte, []int) {
	return fileDescriptor_64c30c6cf92913c9, []int{2}
}
func (m *Commission) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *Commission) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_Commission.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *Commission) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Commission.Merge(m, src)
}
func (m *Commission) XXX_Size() int {
	return m.Size()
}
func (m *Commission) XXX_DiscardUnknown() {
	xxx_messageInfo_Commission.DiscardUnknown(m)
}

var xxx_messageInfo_Commission proto.InternalMessageInfo

func (m *Commission) GetUpdateTime() time.Time {
	if m != nil {
		return m.UpdateTime
	}
	return time.Time{}
}

// Description defines a validator description.
type Description struct {
	// moniker defines a human-readable name for the validator.
	Moniker string `protobuf:"bytes,1,opt,name=moniker,proto3" json:"moniker,omitempty"`
	// identity defines an optional identity signature (ex. UPort or Keybase).
	Identity string `protobuf:"bytes,2,opt,name=identity,proto3" json:"identity,omitempty"`
	// website defines an optional website link.
	Website string `protobuf:"bytes,3,opt,name=website,proto3" json:"website,omitempty"`
	// security_contact defines an optional email for security contact.
	SecurityContact string `protobuf:"bytes,4,opt,name=security_contact,json=securityContact,proto3" json:"security_contact,omitempty"`
	// details define other optional details.
	Details string `protobuf:"bytes,5,opt,name=details,proto3" json:"details,omitempty"`
}

func (m *Description) Reset()         { *m = Description{} }
func (m *Description) String() string { return proto.CompactTextString(m) }
func (*Description) ProtoMessage()    {}
func (*Description) Descriptor() ([]byte, []int) {
	return fileDescriptor_64c30c6cf92913c9, []int{3}
}
func (m *Description) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *Description) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_Description.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *Description) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Description.Merge(m, src)
}
func (m *Description) XXX_Size() int {
	return m.Size()
}
func (m *Description) XXX_DiscardUnknown() {
	xxx_messageInfo_Description.DiscardUnknown(m)
}

var xxx_messageInfo_Description proto.InternalMessageInfo

func (m *Description) GetMoniker() string {
	if m != nil {
		return m.Moniker
	}
	return ""
}

func (m *Description) GetIdentity() string {
	if m != nil {
		return m.Identity
	}
	return ""
}

func (m *Description) GetWebsite() string {
	if m != nil {
		return m.Website
	}
	return ""
}

func (m *Description) GetSecurityContact() string {
	if m != nil {
		return m.SecurityContact
	}
	return ""
}

func (m *Description) GetDetails() string {
	if m != nil {
		return m.Details
	}
	return ""
}

// Validator defines a validator, together with the total amount of the
// Validator's bond shares and their exchange rate to coins. Slashing results in
// a decrease in the exchange rate, allowing correct calculation of future
// undelegations without iterating over delegators. When coins are delegated to
// this validator, the validator is credited with a delegation whose number of
// bond shares is based on the amount of coins delegated divided by the current
// exchange rate. Voting power can be calculated as total bonded shares
// multiplied by exchange rate.
type Validator struct {
	// operator_address defines the address of the validator's operator; bech encoded in JSON.
	OperatorAddress string `protobuf:"bytes,1,opt,name=operator_address,json=operatorAddress,proto3" json:"operator_address,omitempty"`
	// consensus_pubkey is the consensus public key of the validator, as a Protobuf Any.
	ConsensusPubkey *any.Any `protobuf:"bytes,2,opt,name=consensus_pubkey,json=consensusPubkey,proto3" json:"consensus_pubkey,omitempty"`
	// jailed defined whether the validator has been jailed from bonded status or not.
	Jailed bool `protobuf:"varint,3,opt,name=jailed,proto3" json:"jailed,omitempty"`
	// status is the validator status (bonded/unbonding/unbonded).
	Status BondStatus `protobuf:"varint,4,opt,name=status,proto3,enum=cosmos.staking.v1beta1.BondStatus" json:"status,omitempty"`
	// tokens define the delegated tokens (incl. self-delegation).
	Tokens cosmossdk_io_math.Int `protobuf:"bytes,5,opt,name=tokens,proto3,customtype=cosmossdk.io/math.Int" json:"tokens"`
	// delegator_shares defines total shares issued to a validator's delegators.
	DelegatorShares cosmossdk_io_math.LegacyDec `protobuf:"bytes,6,opt,name=delegator_shares,json=delegatorShares,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"delegator_shares"`
	// description defines the description terms for the validator.
	Description Description `protobuf:"bytes,7,opt,name=description,proto3" json:"description"`
	// unbonding_height defines, if unbonding, the height at which this validator has begun unbonding.
	UnbondingHeight int64 `protobuf:"varint,8,opt,name=unbonding_height,json=unbondingHeight,proto3" json:"unbonding_height,omitempty"`
	// unbonding_time defines, if unbonding, the min time for the validator to complete unbonding.
	UnbondingTime time.Time `protobuf:"bytes,9,opt,name=unbonding_time,json=unbondingTime,proto3,stdtime" json:"unbonding_time"`
	// commission defines the commission parameters.
	Commission Commission `protobuf:"bytes,10,opt,name=commission,proto3" json:"commission"`
	// min_self_delegation is the validator's self declared minimum self delegation.
	MinSelfDelegation cosmossdk_io_math.Int `protobuf:"bytes,11,opt,name=min_self_delegation,json=minSelfDelegation,proto3,customtype=cosmossdk.io/math.Int" json:"min_self_delegation"`
	// strictly positive if this validator's unbonding has been stopped by external modules
	UnbondingOnHoldRefCount int64 `protobuf:"varint,12,opt,name=unbonding_on_hold_ref_count,json=unbondingOnHoldRefCount,proto3" json:"unbonding_on_hold_ref_count,omitempty"`
	// list of unbonding ids, each uniquely identifying an unbonding of this validator
	UnbondingIds []uint64 `protobuf:"varint,13,rep,packed,name=unbonding_ids,json=unbondingIds,proto3" json:"unbonding_ids,omitempty"`
}

func (m *Validator) Reset()         { *m = Validator{} }
func (m *Validator) String() string { return proto.CompactTextString(m) }
func (*Validator) ProtoMessage()    {}
func (*Validator) Descriptor() ([]byte, []int) {
	return fileDescriptor_64c30c6cf92913c9, []int{4}
}
func (m *Validator) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *Validator) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_Validator.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *Validator) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Validator.Merge(m, src)
}
func (m *Validator) XXX_Size() int {
	return m.Size()
}
func (m *Validator) XXX_DiscardUnknown() {
	xxx_messageInfo_Validator.DiscardUnknown(m)
}

var xxx_messageInfo_Validator proto.InternalMessageInfo

// ValAddresses defines a repeated set of validator addresses.
type ValAddresses struct {
	Addresses []string `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"`
}

func (m *ValAddresses) Reset()         { *m = ValAddresses{} }
func (m *ValAddresses) String() string { return proto.CompactTextString(m) }
func (*ValAddresses) ProtoMessage()    {}
func (*ValAddresses) Descriptor() ([]byte, []int) {
	return fileDescriptor_64c30c6cf92913c9, []int{5}
}
func (m *ValAddresses) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *ValAddresses) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_ValAddresses.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *ValAddresses) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ValAddresses.Merge(m, src)
}
func (m *ValAddresses) XXX_Size() int {
	return m.Size()
}
func (m *ValAddresses) XXX_DiscardUnknown() {
	xxx_messageInfo_ValAddresses.DiscardUnknown(m)
}

var xxx_messageInfo_ValAddresses proto.InternalMessageInfo

func (m *ValAddresses) GetAddresses() []string {
	if m != nil {
		return m.Addresses
	}
	return nil
}

// DVPair is struct that just has a delegator-validator pair with no other data.
// It is intended to be used as a marshalable pointer. For example, a DVPair can
// be used to construct the key to getting an UnbondingDelegation from state.
type DVPair struct {
	DelegatorAddress string `protobuf:"bytes,1,opt,name=delegator_address,json=delegatorAddress,proto3" json:"delegator_address,omitempty"`
	ValidatorAddress string `protobuf:"bytes,2,opt,name=validator_address,json=validatorAddress,proto3" json:"validator_address,omitempty"`
}

func (m *DVPair) Reset()         { *m = DVPair{} }
func (m *DVPair) String() string { return proto.CompactTextString(m) }
func (*DVPair) ProtoMessage()    {}
func (*DVPair) Descriptor() ([]byte, []int) {
	return fileDescriptor_64c30c6cf92913c9, []int{6}
}
func (m *DVPair) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *DVPair) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_DVPair.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *DVPair) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DVPair.Merge(m, src)
}
func (m *DVPair) XXX_Size() int {
	return m.Size()
}
func (m *DVPair) XXX_DiscardUnknown() {
	xxx_messageInfo_DVPair.DiscardUnknown(m)
}

var xxx_messageInfo_DVPair proto.InternalMessageInfo

// DVPairs defines an array of DVPair objects.
type DVPairs struct {
	Pairs []DVPair `protobuf:"bytes,1,rep,name=pairs,proto3" json:"pairs"`
}

func (m *DVPairs) Reset()         { *m = DVPairs{} }
func (m *DVPairs) String() string { return proto.CompactTextString(m) }
func (*DVPairs) ProtoMessage()    {}
func (*DVPairs) Descriptor() ([]byte, []int) {
	return fileDescriptor_64c30c6cf92913c9, []int{7}
}
func (m *DVPairs) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *DVPairs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_DVPairs.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *DVPairs) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DVPairs.Merge(m, src)
}
func (m *DVPairs) XXX_Size() int {
	return m.Size()
}
func (m *DVPairs) XXX_DiscardUnknown() {
	xxx_messageInfo_DVPairs.DiscardUnknown(m)
}

var xxx_messageInfo_DVPairs proto.InternalMessageInfo

func (m *DVPairs) GetPairs() []DVPair {
	if m != nil {
		return m.Pairs
	}
	return nil
}

// DVVTriplet is struct that just has a delegator-validator-validator triplet
// with no other data. It is intended to be used as a marshalable pointer. For
// example, a DVVTriplet can be used to construct the key to getting a
// Redelegation from state.
type DVVTriplet struct {
	DelegatorAddress    string `protobuf:"bytes,1,opt,name=delegator_address,json=delegatorAddress,proto3" json:"delegator_address,omitempty"`
	ValidatorSrcAddress string `protobuf:"bytes,2,opt,name=validator_src_address,json=validatorSrcAddress,proto3" json:"validator_src_address,omitempty"`
	ValidatorDstAddress string `protobuf:"bytes,3,opt,name=validator_dst_address,json=validatorDstAddress,proto3" json:"validator_dst_address,omitempty"`
}

func (m *DVVTriplet) Reset()         { *m = DVVTriplet{} }
func (m *DVVTriplet) String() string { return proto.CompactTextString(m) }
func (*DVVTriplet) ProtoMessage()    {}
func (*DVVTriplet) Descriptor() ([]byte, []int) {
	return fileDescriptor_64c30c6cf92913c9, []int{8}
}
func (m *DVVTriplet) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *DVVTriplet) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_DVVTriplet.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *DVVTriplet) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DVVTriplet.Merge(m, src)
}
func (m *DVVTriplet) XXX_Size() int {
	return m.Size()
}
func (m *DVVTriplet) XXX_DiscardUnknown() {
	xxx_messageInfo_DVVTriplet.DiscardUnknown(m)
}

var xxx_messageInfo_DVVTriplet proto.InternalMessageInfo

// DVVTriplets defines an array of DVVTriplet objects.
type DVVTriplets struct {
	Triplets []DVVTriplet `protobuf:"bytes,1,rep,name=triplets,proto3" json:"triplets"`
}

func (m *DVVTriplets) Reset()         { *m = DVVTriplets{} }
func (m *DVVTriplets) String() string { return proto.CompactTextString(m) }
func (*DVVTriplets) ProtoMessage()    {}
func (*DVVTriplets) Descriptor() ([]byte, []int) {
	return fileDescriptor_64c30c6cf92913c9, []int{9}
}
func (m *DVVTriplets) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *DVVTriplets) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_DVVTriplets.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *DVVTriplets) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DVVTriplets.Merge(m, src)
}
func (m *DVVTriplets) XXX_Size() int {
	return m.Size()
}
func (m *DVVTriplets) XXX_DiscardUnknown() {
	xxx_messageInfo_DVVTriplets.DiscardUnknown(m)
}

var xxx_messageInfo_DVVTriplets proto.InternalMessageInfo

func (m *DVVTriplets) GetTriplets() []DVVTriplet {
	if m != nil {
		return m.Triplets
	}
	return nil
}

// Delegation represents the bond with tokens held by an account. It is
// owned by one delegator, and is associated with the voting power of one
// validator.
type Delegation struct {
	// delegator_address is the encoded address of the delegator.
	DelegatorAddress string `protobuf:"bytes,1,opt,name=delegator_address,json=delegatorAddress,proto3" json:"delegator_address,omitempty"`
	// validator_address is the encoded address of the validator.
	ValidatorAddress string `protobuf:"bytes,2,opt,name=validator_address,json=validatorAddress,proto3" json:"validator_address,omitempty"`
	// shares define the delegation shares received.
	Shares cosmossdk_io_math.LegacyDec `protobuf:"bytes,3,opt,name=shares,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"shares"`
}

func (m *Delegation) Reset()         { *m = Delegation{} }
func (m *Delegation) String() string { return proto.CompactTextString(m) }
func (*Delegation) ProtoMessage()    {}
func (*Delegation) Descriptor() ([]byte, []int) {
	return fileDescriptor_64c30c6cf92913c9, []int{10}
}
func (m *Delegation) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *Delegation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_Delegation.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *Delegation) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Delegation.Merge(m, src)
}
func (m *Delegation) XXX_Size() int {
	return m.Size()
}
func (m *Delegation) XXX_DiscardUnknown() {
	xxx_messageInfo_Delegation.DiscardUnknown(m)
}

var xxx_messageInfo_Delegation proto.InternalMessageInfo

// UnbondingDelegation stores all of a single delegator's unbonding bonds
// for a single validator in an time-ordered list.
type UnbondingDelegation struct {
	// delegator_address is the encoded address of the delegator.
	DelegatorAddress string `protobuf:"bytes,1,opt,name=delegator_address,json=delegatorAddress,proto3" json:"delegator_address,omitempty"`
	// validator_address is the encoded address of the validator.
	ValidatorAddress string `protobuf:"bytes,2,opt,name=validator_address,json=validatorAddress,proto3" json:"validator_address,omitempty"`
	// entries are the unbonding delegation entries.
	Entries []UnbondingDelegationEntry `protobuf:"bytes,3,rep,name=entries,proto3" json:"entries"`
}

func (m *UnbondingDelegation) Reset()         { *m = UnbondingDelegation{} }
func (m *UnbondingDelegation) String() string { return proto.CompactTextString(m) }
func (*UnbondingDelegation) ProtoMessage()    {}
func (*UnbondingDelegation) Descriptor() ([]byte, []int) {
	return fileDescriptor_64c30c6cf92913c9, []int{11}
}
func (m *UnbondingDelegation) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *UnbondingDelegation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_UnbondingDelegation.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *UnbondingDelegation) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UnbondingDelegation.Merge(m, src)
}
func (m *UnbondingDelegation) XXX_Size() int {
	return m.Size()
}
func (m *UnbondingDelegation) XXX_DiscardUnknown() {
	xxx_messageInfo_UnbondingDelegation.DiscardUnknown(m)
}

var xxx_messageInfo_UnbondingDelegation proto.InternalMessageInfo

// UnbondingDelegationEntry defines an unbonding object with relevant metadata.
type UnbondingDelegationEntry struct {
	// creation_height is the height which the unbonding took place.
	CreationHeight int64 `protobuf:"varint,1,opt,name=creation_height,json=creationHeight,proto3" json:"creation_height,omitempty"`
	// completion_time is the unix time for unbonding completion.
	CompletionTime time.Time `protobuf:"bytes,2,opt,name=completion_time,json=completionTime,proto3,stdtime" json:"completion_time"`
	// initial_balance defines the tokens initially scheduled to receive at completion.
	InitialBalance cosmossdk_io_math.Int `protobuf:"bytes,3,opt,name=initial_balance,json=initialBalance,proto3,customtype=cosmossdk.io/math.Int" json:"initial_balance"`
	// balance defines the tokens to receive at completion.
	Balance cosmossdk_io_math.Int `protobuf:"bytes,4,opt,name=balance,proto3,customtype=cosmossdk.io/math.Int" json:"balance"`
	// Incrementing id that uniquely identifies this entry
	UnbondingId uint64 `protobuf:"varint,5,opt,name=unbonding_id,json=unbondingId,proto3" json:"unbonding_id,omitempty"`
	// Strictly positive if this entry's unbonding has been stopped by external modules
	UnbondingOnHoldRefCount int64 `protobuf:"varint,6,opt,name=unbonding_on_hold_ref_count,json=unbondingOnHoldRefCount,proto3" json:"unbonding_on_hold_ref_count,omitempty"`
}

func (m *UnbondingDelegationEntry) Reset()         { *m = UnbondingDelegationEntry{} }
func (m *UnbondingDelegationEntry) String() string { return proto.CompactTextString(m) }
func (*UnbondingDelegationEntry) ProtoMessage()    {}
func (*UnbondingDelegationEntry) Descriptor() ([]byte, []int) {
	return fileDescriptor_64c30c6cf92913c9, []int{12}
}
func (m *UnbondingDelegationEntry) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *UnbondingDelegationEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_UnbondingDelegationEntry.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *UnbondingDelegationEntry) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UnbondingDelegationEntry.Merge(m, src)
}
func (m *UnbondingDelegationEntry) XXX_Size() int {
	return m.Size()
}
func (m *UnbondingDelegationEntry) XXX_DiscardUnknown() {
	xxx_messageInfo_UnbondingDelegationEntry.DiscardUnknown(m)
}

var xxx_messageInfo_UnbondingDelegationEntry proto.InternalMessageInfo

func (m *UnbondingDelegationEntry) GetCreationHeight() int64 {
	if m != nil {
		return m.CreationHeight
	}
	return 0
}

func (m *UnbondingDelegationEntry) GetCompletionTime() time.Time {
	if m != nil {
		return m.CompletionTime
	}
	return time.Time{}
}

func (m *UnbondingDelegationEntry) GetUnbondingId() uint64 {
	if m != nil {
		return m.UnbondingId
	}
	return 0
}

func (m *UnbondingDelegationEntry) GetUnbondingOnHoldRefCount() int64 {
	if m != nil {
		return m.UnbondingOnHoldRefCount
	}
	return 0
}

// RedelegationEntry defines a redelegation object with relevant metadata.
type RedelegationEntry struct {
	// creation_height  defines the height which the redelegation took place.
	CreationHeight int64 `protobuf:"varint,1,opt,name=creation_height,json=creationHeight,proto3" json:"creation_height,omitempty"`
	// completion_time defines the unix time for redelegation completion.
	CompletionTime time.Time `protobuf:"bytes,2,opt,name=completion_time,json=completionTime,proto3,stdtime" json:"completion_time"`
	// initial_balance defines the initial balance when redelegation started.
	InitialBalance cosmossdk_io_math.Int `protobuf:"bytes,3,opt,name=initial_balance,json=initialBalance,proto3,customtype=cosmossdk.io/math.Int" json:"initial_balance"`
	// shares_dst is the amount of destination-validator shares created by redelegation.
	SharesDst cosmossdk_io_math.LegacyDec `protobuf:"bytes,4,opt,name=shares_dst,json=sharesDst,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"shares_dst"`
	// Incrementing id that uniquely identifies this entry
	UnbondingId uint64 `protobuf:"varint,5,opt,name=unbonding_id,json=unbondingId,proto3" json:"unbonding_id,omitempty"`
	// Strictly positive if this entry's unbonding has been stopped by external modules
	UnbondingOnHoldRefCount int64 `protobuf:"varint,6,opt,name=unbonding_on_hold_ref_count,json=unbondingOnHoldRefCount,proto3" json:"unbonding_on_hold_ref_count,omitempty"`
}

func (m *RedelegationEntry) Reset()         { *m = RedelegationEntry{} }
func (m *RedelegationEntry) String() string { return proto.CompactTextString(m) }
func (*RedelegationEntry) ProtoMessage()    {}
func (*RedelegationEntry) Descriptor() ([]byte, []int) {
	return fileDescriptor_64c30c6cf92913c9, []int{13}
}
func (m *RedelegationEntry) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *RedelegationEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_RedelegationEntry.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *RedelegationEntry) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RedelegationEntry.Merge(m, src)
}
func (m *RedelegationEntry) XXX_Size() int {
	return m.Size()
}
func (m *RedelegationEntry) XXX_DiscardUnknown() {
	xxx_messageInfo_RedelegationEntry.DiscardUnknown(m)
}

var xxx_messageInfo_RedelegationEntry proto.InternalMessageInfo

func (m *RedelegationEntry) GetCreationHeight() int64 {
	if m != nil {
		return m.CreationHeight
	}
	return 0
}

func (m *RedelegationEntry) GetCompletionTime() time.Time {
	if m != nil {
		return m.CompletionTime
	}
	return time.Time{}
}

func (m *RedelegationEntry) GetUnbondingId() uint64 {
	if m != nil {
		return m.UnbondingId
	}
	return 0
}

func (m *RedelegationEntry) GetUnbondingOnHoldRefCount() int64 {
	if m != nil {
		return m.UnbondingOnHoldRefCount
	}
	return 0
}

// Redelegation contains the list of a particular delegator's redelegating bonds
// from a particular source validator to a particular destination validator.
type Redelegation struct {
	// delegator_address is the bech32-encoded address of the delegator.
	DelegatorAddress string `protobuf:"bytes,1,opt,name=delegator_address,json=delegatorAddress,proto3" json:"delegator_address,omitempty"`
	// validator_src_address is the validator redelegation source operator address.
	ValidatorSrcAddress string `protobuf:"bytes,2,opt,name=validator_src_address,json=validatorSrcAddress,proto3" json:"validator_src_address,omitempty"`
	// validator_dst_address is the validator redelegation destination operator address.
	ValidatorDstAddress string `protobuf:"bytes,3,opt,name=validator_dst_address,json=validatorDstAddress,proto3" json:"validator_dst_address,omitempty"`
	// entries are the redelegation entries.
	Entries []RedelegationEntry `protobuf:"bytes,4,rep,name=entries,proto3" json:"entries"`
}

func (m *Redelegation) Reset()         { *m = Redelegation{} }
func (m *Redelegation) String() string { return proto.CompactTextString(m) }
func (*Redelegation) ProtoMessage()    {}
func (*Redelegation) Descriptor() ([]byte, []int) {
	return fileDescriptor_64c30c6cf92913c9, []int{14}
}
func (m *Redelegation) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *Redelegation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_Redelegation.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *Redelegation) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Redelegation.Merge(m, src)
}
func (m *Redelegation) XXX_Size() int {
	return m.Size()
}
func (m *Redelegation) XXX_DiscardUnknown() {
	xxx_messageInfo_Redelegation.DiscardUnknown(m)
}

var xxx_messageInfo_Redelegation proto.InternalMessageInfo

// Params defines the parameters for the x/staking module.
type Params struct {
	// unbonding_time is the time duration of unbonding.
	UnbondingTime time.Duration `protobuf:"bytes,1,opt,name=unbonding_time,json=unbondingTime,proto3,stdduration" json:"unbonding_time"`
	// max_validators is the maximum number of validators.
	MaxValidators uint32 `protobuf:"varint,2,opt,name=max_validators,json=maxValidators,proto3" json:"max_validators,omitempty"`
	// max_entries is the max entries for either unbonding delegation or redelegation (per pair/trio).
	MaxEntries uint32 `protobuf:"varint,3,opt,name=max_entries,json=maxEntries,proto3" json:"max_entries,omitempty"`
	// historical_entries is the number of historical entries to persist.
	HistoricalEntries uint32 `protobuf:"varint,4,opt,name=historical_entries,json=historicalEntries,proto3" json:"historical_entries,omitempty"`
	// bond_denom defines the bondable coin denomination.
	BondDenom string `protobuf:"bytes,5,opt,name=bond_denom,json=bondDenom,proto3" json:"bond_denom,omitempty"`
	// min_commission_rate is the chain-wide minimum commission rate that a validator can charge their delegators
	MinCommissionRate cosmossdk_io_math.LegacyDec `protobuf:"bytes,6,opt,name=min_commission_rate,json=minCommissionRate,proto3,customtype=cosmossdk.io/math.LegacyDec" json:"min_commission_rate" yaml:"min_commission_rate"`
}

func (m *Params) Reset()         { *m = Params{} }
func (m *Params) String() string { return proto.CompactTextString(m) }
func (*Params) ProtoMessage()    {}
func (*Params) Descriptor() ([]byte, []int) {
	return fileDescriptor_64c30c6cf92913c9, []int{15}
}
func (m *Params) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *Params) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_Params.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *Params) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Params.Merge(m, src)
}
func (m *Params) XXX_Size() int {
	return m.Size()
}
func (m *Params) XXX_DiscardUnknown() {
	xxx_messageInfo_Params.DiscardUnknown(m)
}

var xxx_messageInfo_Params proto.InternalMessageInfo

func (m *Params) GetUnbondingTime() time.Duration {
	if m != nil {
		return m.UnbondingTime
	}
	return 0
}

func (m *Params) GetMaxValidators() uint32 {
	if m != nil {
		return m.MaxValidators
	}
	return 0
}

func (m *Params) GetMaxEntries() uint32 {
	if m != nil {
		return m.MaxEntries
	}
	return 0
}

func (m *Params) GetHistoricalEntries() uint32 {
	if m != nil {
		return m.HistoricalEntries
	}
	return 0
}

func (m *Params) GetBondDenom() string {
	if m != nil {
		return m.BondDenom
	}
	return ""
}

// DelegationResponse is equivalent to Delegation except that it contains a
// balance in addition to shares which is more suitable for client responses.
type DelegationResponse struct {
	Delegation Delegation  `protobuf:"bytes,1,opt,name=delegation,proto3" json:"delegation"`
	Balance    types1.Coin `protobuf:"bytes,2,opt,name=balance,proto3" json:"balance"`
}

func (m *DelegationResponse) Reset()         { *m = DelegationResponse{} }
func (m *DelegationResponse) String() string { return proto.CompactTextString(m) }
func (*DelegationResponse) ProtoMessage()    {}
func (*DelegationResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_64c30c6cf92913c9, []int{16}
}
func (m *DelegationResponse) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *DelegationResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_DelegationResponse.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *DelegationResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DelegationResponse.Merge(m, src)
}
func (m *DelegationResponse) XXX_Size() int {
	return m.Size()
}
func (m *DelegationResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_DelegationResponse.DiscardUnknown(m)
}

var xxx_messageInfo_DelegationResponse proto.InternalMessageInfo

func (m *DelegationResponse) GetDelegation() Delegation {
	if m != nil {
		return m.Delegation
	}
	return Delegation{}
}

func (m *DelegationResponse) GetBalance() types1.Coin {
	if m != nil {
		return m.Balance
	}
	return types1.Coin{}
}

// RedelegationEntryResponse is equivalent to a RedelegationEntry except that it
// contains a balance in addition to shares which is more suitable for client
// responses.
type RedelegationEntryResponse struct {
	RedelegationEntry RedelegationEntry     `protobuf:"bytes,1,opt,name=redelegation_entry,json=redelegationEntry,proto3" json:"redelegation_entry"`
	Balance           cosmossdk_io_math.Int `protobuf:"bytes,4,opt,name=balance,proto3,customtype=cosmossdk.io/math.Int" json:"balance"`
}

func (m *RedelegationEntryResponse) Reset()         { *m = RedelegationEntryResponse{} }
func (m *RedelegationEntryResponse) String() string { return proto.CompactTextString(m) }
func (*RedelegationEntryResponse) ProtoMessage()    {}
func (*RedelegationEntryResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_64c30c6cf92913c9, []int{17}
}
func (m *RedelegationEntryResponse) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *RedelegationEntryResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_RedelegationEntryResponse.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *RedelegationEntryResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RedelegationEntryResponse.Merge(m, src)
}
func (m *RedelegationEntryResponse) XXX_Size() int {
	return m.Size()
}
func (m *RedelegationEntryResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_RedelegationEntryResponse.DiscardUnknown(m)
}

var xxx_messageInfo_RedelegationEntryResponse proto.InternalMessageInfo

func (m *RedelegationEntryResponse) GetRedelegationEntry() RedelegationEntry {
	if m != nil {
		return m.RedelegationEntry
	}
	return RedelegationEntry{}
}

// RedelegationResponse is equivalent to a Redelegation except that its entries
// contain a balance in addition to shares which is more suitable for client
// responses.
type RedelegationResponse struct {
	Redelegation Redelegation                `protobuf:"bytes,1,opt,name=redelegation,proto3" json:"redelegation"`
	Entries      []RedelegationEntryResponse `protobuf:"bytes,2,rep,name=entries,proto3" json:"entries"`
}

func (m *RedelegationResponse) Reset()         { *m = RedelegationResponse{} }
func (m *RedelegationResponse) String() string { return proto.CompactTextString(m) }
func (*RedelegationResponse) ProtoMessage()    {}
func (*RedelegationResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_64c30c6cf92913c9, []int{18}
}
func (m *RedelegationResponse) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *RedelegationResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_RedelegationResponse.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *RedelegationResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RedelegationResponse.Merge(m, src)
}
func (m *RedelegationResponse) XXX_Size() int {
	return m.Size()
}
func (m *RedelegationResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_RedelegationResponse.DiscardUnknown(m)
}

var xxx_messageInfo_RedelegationResponse proto.InternalMessageInfo

func (m *RedelegationResponse) GetRedelegation() Redelegation {
	if m != nil {
		return m.Redelegation
	}
	return Redelegation{}
}

func (m *RedelegationResponse) GetEntries() []RedelegationEntryResponse {
	if m != nil {
		return m.Entries
	}
	return nil
}

// Pool is used for tracking bonded and not-bonded token supply of the bond
// denomination.
type Pool struct {
	NotBondedTokens cosmossdk_io_math.Int `protobuf:"bytes,1,opt,name=not_bonded_tokens,json=notBondedTokens,proto3,customtype=cosmossdk.io/math.Int" json:"not_bonded_tokens"`
	BondedTokens    cosmossdk_io_math.Int `protobuf:"bytes,2,opt,name=bonded_tokens,json=bondedTokens,proto3,customtype=cosmossdk.io/math.Int" json:"bonded_tokens"`
}

func (m *Pool) Reset()         { *m = Pool{} }
func (m *Pool) String() string { return proto.CompactTextString(m) }
func (*Pool) ProtoMessage()    {}
func (*Pool) Descriptor() ([]byte, []int) {
	return fileDescriptor_64c30c6cf92913c9, []int{19}
}
func (m *Pool) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *Pool) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_Pool.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *Pool) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Pool.Merge(m, src)
}
func (m *Pool) XXX_Size() int {
	return m.Size()
}
func (m *Pool) XXX_DiscardUnknown() {
	xxx_messageInfo_Pool.DiscardUnknown(m)
}

var xxx_messageInfo_Pool proto.InternalMessageInfo

// ValidatorUpdates defines an array of abci.ValidatorUpdate objects.
// TODO: explore moving this to proto/cosmos/base to separate modules from tendermint dependence
type ValidatorUpdates struct {
	Updates []types2.ValidatorUpdate `protobuf:"bytes,1,rep,name=updates,proto3" json:"updates"`
}

func (m *ValidatorUpdates) Reset()         { *m = ValidatorUpdates{} }
func (m *ValidatorUpdates) String() string { return proto.CompactTextString(m) }
func (*ValidatorUpdates) ProtoMessage()    {}
func (*ValidatorUpdates) Descriptor() ([]byte, []int) {
	return fileDescriptor_64c30c6cf92913c9, []int{20}
}
func (m *ValidatorUpdates) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *ValidatorUpdates) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_ValidatorUpdates.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *ValidatorUpdates) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ValidatorUpdates.Merge(m, src)
}
func (m *ValidatorUpdates) XXX_Size() int {
	return m.Size()
}
func (m *ValidatorUpdates) XXX_DiscardUnknown() {
	xxx_messageInfo_ValidatorUpdates.DiscardUnknown(m)
}

var xxx_messageInfo_ValidatorUpdates proto.InternalMessageInfo

func (m *ValidatorUpdates) GetUpdates() []types2.ValidatorUpdate {
	if m != nil {
		return m.Updates
	}
	return nil
}

func init() {
	proto.RegisterEnum("cosmos.staking.v1beta1.BondStatus", BondStatus_name, BondStatus_value)
	proto.RegisterEnum("cosmos.staking.v1beta1.Infraction", Infraction_name, Infraction_value)
	proto.RegisterType((*HistoricalInfo)(nil), "cosmos.staking.v1beta1.HistoricalInfo")
	proto.RegisterType((*CommissionRates)(nil), "cosmos.staking.v1beta1.CommissionRates")
	proto.RegisterType((*Commission)(nil), "cosmos.staking.v1beta1.Commission")
	proto.RegisterType((*Description)(nil), "cosmos.staking.v1beta1.Description")
	proto.RegisterType((*Validator)(nil), "cosmos.staking.v1beta1.Validator")
	proto.RegisterType((*ValAddresses)(nil), "cosmos.staking.v1beta1.ValAddresses")
	proto.RegisterType((*DVPair)(nil), "cosmos.staking.v1beta1.DVPair")
	proto.RegisterType((*DVPairs)(nil), "cosmos.staking.v1beta1.DVPairs")
	proto.RegisterType((*DVVTriplet)(nil), "cosmos.staking.v1beta1.DVVTriplet")
	proto.RegisterType((*DVVTriplets)(nil), "cosmos.staking.v1beta1.DVVTriplets")
	proto.RegisterType((*Delegation)(nil), "cosmos.staking.v1beta1.Delegation")
	proto.RegisterType((*UnbondingDelegation)(nil), "cosmos.staking.v1beta1.UnbondingDelegation")
	proto.RegisterType((*UnbondingDelegationEntry)(nil), "cosmos.staking.v1beta1.UnbondingDelegationEntry")
	proto.RegisterType((*RedelegationEntry)(nil), "cosmos.staking.v1beta1.RedelegationEntry")
	proto.RegisterType((*Redelegation)(nil), "cosmos.staking.v1beta1.Redelegation")
	proto.RegisterType((*Params)(nil), "cosmos.staking.v1beta1.Params")
	proto.RegisterType((*DelegationResponse)(nil), "cosmos.staking.v1beta1.DelegationResponse")
	proto.RegisterType((*RedelegationEntryResponse)(nil), "cosmos.staking.v1beta1.RedelegationEntryResponse")
	proto.RegisterType((*RedelegationResponse)(nil), "cosmos.staking.v1beta1.RedelegationResponse")
	proto.RegisterType((*Pool)(nil), "cosmos.staking.v1beta1.Pool")
	proto.RegisterType((*ValidatorUpdates)(nil), "cosmos.staking.v1beta1.ValidatorUpdates")
}

func init() {
	proto.RegisterFile("cosmos/staking/v1beta1/staking.proto", fileDescriptor_64c30c6cf92913c9)
}

var fileDescriptor_64c30c6cf92913c9 = []byte{
	// 1920 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x58, 0x4f, 0x6c, 0x63, 0x47,
	0x19, 0xcf, 0x8b, 0x53, 0x27, 0xf9, 0x9c, 0xc4, 0xce, 0x6c, 0x76, 0xd7, 0xeb, 0xa5, 0xb1, 0xd7,
	0x5d, 0x68, 0xba, 0x34, 0x76, 0x37, 0xa0, 0x3d, 0x04, 0x54, 0x14, 0xc7, 0xde, 0xae, 0x4b, 0x9b,
	0x04, 0x3b, 0x09, 0x14, 0x01, 0x4f, 0xe3, 0xf7, 0x26, 0xce, 0x23, 0x7e, 0xf3, 0xcc, 0x9b, 0xf1,
	0x12, 0xdf, 0x39, 0x54, 0x41, 0x48, 0x95, 0x90, 0x10, 0x12, 0x44, 0xac, 0xc4, 0xa5, 0xdc, 0x7a,
	0x58, 0x71, 0xe7, 0x56, 0x90, 0x90, 0x56, 0x7b, 0x42, 0x95, 0x08, 0x68, 0xf7, 0xd0, 0x0a, 0x2e,
	0x88, 0x13, 0x47, 0x34, 0x7f, 0xde, 0x1f, 0xc7, 0xc9, 0x66, 0xb3, 0xad, 0xd0, 0x8a, 0x5e, 0x9e,
	0xde, 0xcc, 0x7c, 0xdf, 0x6f, 0xe6, 0xfb, 0x7d, 0x7f, 0xe6, 0x0f, 0x5c, 0xb7, 0x3c, 0xe6, 0x7a,
	0xac, 0xcc, 0x38, 0xde, 0x73, 0x68, 0xbb, 0x7c, 0xf7, 0x66, 0x8b, 0x70, 0x7c, 0x33, 0x68, 0x97,
	0xba, 0xbe, 0xc7, 0x3d, 0x74, 0x49, 0x49, 0x95, 0x82, 0x5e, 0x2d, 0x95, 0x9b, 0x6b, 0x7b, 0x6d,
	0x4f, 0x8a, 0x94, 0xc5, 0x9f, 0x92, 0xce, 0x5d, 0x69, 0x7b, 0x5e, 0xbb, 0x43, 0xca, 0xb2, 0xd5,
	0xea, 0xed, 0x94, 0x31, 0xed, 0xeb, 0xa1, 0xf9, 0xe3, 0x43, 0x76, 0xcf, 0xc7, 0xdc, 0xf1, 0xa8,
	0x1e, 0xcf, 0x1f, 0x1f, 0xe7, 0x8e, 0x4b, 0x18, 0xc7, 0x6e, 0x37, 0xc0, 0x56, 0x2b, 0x31, 0xd5,
	0xa4, 0x7a, 0x59, 0x1a, 0x5b, 0x9b, 0xd2, 0xc2, 0x8c, 0x84, 0x76, 0x58, 0x9e, 0x13, 0x60, 0xcf,
	0x62, 0xd7, 0xa1, 0x5e, 0x59, 0x7e, 0x75, 0xd7, 0x17, 0x38, 0xa1, 0x36, 0xf1, 0x5d, 0x87, 0xf2,
	0x32, 0xef, 0x77, 0x09, 0x53, 0x5f, 0x3d, 0x7a, 0x35, 0x36, 0x8a, 0x5b, 0x96, 0x13, 0x1f, 0x2c,
	0xfe, 0xdc, 0x80, 0x99, 0x3b, 0x0e, 0xe3, 0x9e, 0xef, 0x58, 0xb8, 0x53, 0xa7, 0x3b, 0x1e, 0xfa,
	0x1a, 0x24, 0x77, 0x09, 0xb6, 0x89, 0x9f, 0x35, 0x0a, 0xc6, 0x42, 0x6a, 0x29, 0x5b, 0x8a, 0x00,
	0x4a, 0x4a, 0xf7, 0x8e, 0x1c, 0xaf, 0x4c, 0x7e, 0x78, 0x94, 0x1f, 0x79, 0xff, 0xe3, 0x0f, 0x6e,
	0x18, 0x0d, 0xad, 0x82, 0xaa, 0x90, 0xbc, 0x8b, 0x3b, 0x8c, 0xf0, 0xec, 0x68, 0x21, 0xb1, 0x90,
	0x5a, 0xba, 0x56, 0x3a, 0x99, 0xf3, 0xd2, 0x36, 0xee, 0x38, 0x36, 0xe6, 0xde, 0x20, 0x8a, 0xd2,
	0x2d, 0xfe, 0x62, 0x14, 0xd2, 0xab, 0x9e, 0xeb, 0x3a, 0x8c, 0x39, 0x1e, 0x6d, 0x60, 0x4e, 0x18,
	0x7a, 0x13, 0xc6, 0x7c, 0xcc, 0x89, 0x5c, 0xd4, 0x64, 0xe5, 0x96, 0x50, 0xfa, 0xe8, 0x28, 0x7f,
	0x55, 0xc1, 0x33, 0x7b, 0xaf, 0xe4, 0x78, 0x65, 0x17, 0xf3, 0xdd, 0xd2, 0x5b, 0xa4, 0x8d, 0xad,
	0x7e, 0x95, 0x58, 0x0f, 0xef, 0x2f, 0x82, 0x9e, 0xbd, 0x4a, 0x2c, 0x35, 0x83, 0xc4, 0x40, 0xdf,
	0x82, 0x09, 0x17, 0xef, 0x9b, 0x12, 0x6f, 0xf4, 0x53, 0xe1, 0x8d, 0xbb, 0x78, 0x5f, 0xac, 0x0f,
	0xfd, 0x00, 0xd2, 0x02, 0xd2, 0xda, 0xc5, 0xb4, 0x4d, 0x14, 0x72, 0xe2, 0x53, 0x21, 0x4f, 0xbb,
	0x78, 0x7f, 0x55, 0xa2, 0x09, 0xfc, 0xe5, 0xb1, 0x4f, 0xee, 0xe5, 0x8d, 0xe2, 0x1f, 0x0c, 0x80,
	0x88, 0x18, 0x84, 0x21, 0x63, 0x85, 0x2d, 0x39, 0x29, 0xd3, 0x4e, 0x7b, 0xf9, 0x34, 0xde, 0x8f,
	0xd1, 0x5a, 0x99, 0x16, 0xcb, 0x7b, 0x70, 0x94, 0x37, 0xd4, 0xac, 0x69, 0x6b, 0x88, 0xf6, 0x54,
	0xaf, 0x6b, 0x63, 0x4e, 0x4c, 0x11, 0xc3, 0x92, 0xad, 0xd4, 0x52, 0xae, 0xa4, 0x02, 0xbc, 0x14,
	0x04, 0x78, 0x69, 0x33, 0x08, 0x70, 0x05, 0xf8, 0xde, 0xdf, 0x02, 0x40, 0x50, 0xda, 0x62, 0x5c,
	0xdb, 0xf0, 0xbe, 0x01, 0xa9, 0x2a, 0x61, 0x96, 0xef, 0x74, 0x45, 0xca, 0xa0, 0x2c, 0x8c, 0xbb,
	0x1e, 0x75, 0xf6, 0x74, 0xc0, 0x4d, 0x36, 0x82, 0x26, 0xca, 0xc1, 0x84, 0x63, 0x13, 0xca, 0x1d,
	0xde, 0x57, 0x6e, 0x6a, 0x84, 0x6d, 0xa1, 0xf5, 0x63, 0xd2, 0x62, 0x4e, 0xc0, 0x73, 0x23, 0x68,
	0xa2, 0x57, 0x20, 0xc3, 0x88, 0xd5, 0xf3, 0x1d, 0xde, 0x37, 0x2d, 0x8f, 0x72, 0x6c, 0xf1, 0xec,
	0x98, 0x14, 0x49, 0x07, 0xfd, 0xab, 0xaa, 0x5b, 0x80, 0xd8, 0x84, 0x63, 0xa7, 0xc3, 0xb2, 0x2f,
	0x28, 0x10, 0xdd, 0xd4, 0x4b, 0x3d, 0x1c, 0x87, 0xc9, 0x30, 0x50, 0xd1, 0x2a, 0x64, 0xbc, 0x2e,
	0xf1, 0xc5, 0xbf, 0x89, 0x6d, 0xdb, 0x27, 0x8c, 0xe9, 0x68, 0xcc, 0x3e, 0xbc, 0xbf, 0x38, 0xa7,
	0x09, 0x5f, 0x51, 0x23, 0x4d, 0xee, 0x3b, 0xb4, 0xdd, 0x48, 0x07, 0x1a, 0xba, 0x1b, 0xbd, 0x23,
	0x5c, 0x46, 0x19, 0xa1, 0xac, 0xc7, 0xcc, 0x6e, 0xaf, 0xb5, 0x47, 0xfa, 0x9a, 0xd4, 0xb9, 0x21,
	0x52, 0x57, 0x68, 0xbf, 0x92, 0xfd, 0x53, 0x04, 0x6d, 0xf9, 0xfd, 0x2e, 0xf7, 0x4a, 0x1b, 0xbd,
	0xd6, 0x37, 0x49, 0x5f, 0xb8, 0x4a, 0xe3, 0x6c, 0x48, 0x18, 0x74, 0x09, 0x92, 0x3f, 0xc4, 0x4e,
	0x87, 0xd8, 0x92, 0x91, 0x89, 0x86, 0x6e, 0xa1, 0x65, 0x48, 0x32, 0x8e, 0x79, 0x8f, 0x49, 0x1a,
	0x66, 0x96, 0x8a, 0xa7, 0xc5, 0x46, 0xc5, 0xa3, 0x76, 0x53, 0x4a, 0x36, 0xb4, 0x06, 0x5a, 0x85,
	0x24, 0xf7, 0xf6, 0x08, 0xd5, 0x04, 0x55, 0xbe, 0xac, 0xa3, 0xf9, 0xe2, 0x70, 0x34, 0xd7, 0x29,
	0x8f, 0xc5, 0x71, 0x9d, 0xf2, 0x86, 0x56, 0x45, 0xdf, 0x83, 0x8c, 0x4d, 0x3a, 0xa4, 0x2d, 0x99,
	0x63, 0xbb, 0xd8, 0x27, 0x2c, 0x9b, 0x94, 0x70, 0x37, 0xcf, 0x9d, 0x1c, 0x8d, 0x74, 0x08, 0xd5,
	0x94, 0x48, 0x68, 0x03, 0x52, 0x76, 0x14, 0x4e, 0xd9, 0x71, 0x49, 0xe6, 0x4b, 0xa7, 0xd9, 0x18,
	0x8b, 0xbc, 0x78, 0xe5, 0x89, 0x43, 0x88, 0x08, 0xea, 0xd1, 0x96, 0x47, 0x6d, 0x87, 0xb6, 0xcd,
	0x5d, 0xe2, 0xb4, 0x77, 0x79, 0x76, 0xa2, 0x60, 0x2c, 0x24, 0x1a, 0xe9, 0xb0, 0xff, 0x8e, 0xec,
	0x46, 0x1b, 0x30, 0x13, 0x89, 0xca, 0x0c, 0x99, 0x3c, 0x6f, 0x86, 0x4c, 0x87, 0x00, 0x42, 0x04,
	0xbd, 0x0d, 0x10, 0xe5, 0x60, 0x16, 0x24, 0x5a, 0xf1, 0xec, 0x6c, 0x8e, 0x1b, 0x13, 0x03, 0x40,
	0x14, 0x2e, 0xb8, 0x0e, 0x35, 0x19, 0xe9, 0xec, 0x98, 0x9a, 0x39, 0x81, 0x9b, 0x92, 0xf4, 0xbf,
	0x7e, 0x0e, 0x6f, 0x7e, 0x74, 0x7f, 0x31, 0xad, 0x5a, 0x8b, 0xcc, 0xde, 0x2b, 0xbc, 0x56, 0xfa,
	0xea, 0xad, 0xc6, 0xac, 0xeb, 0xd0, 0x26, 0xe9, 0xec, 0x54, 0x43, 0x60, 0xf4, 0x75, 0xb8, 0x1a,
	0x11, 0xe2, 0x51, 0x73, 0xd7, 0xeb, 0xd8, 0xa6, 0x4f, 0x76, 0x4c, 0xcb, 0xeb, 0x51, 0x9e, 0x9d,
	0x92, 0x34, 0x5e, 0x0e, 0x45, 0xd6, 0xe9, 0x1d, 0xaf, 0x63, 0x37, 0xc8, 0xce, 0xaa, 0x18, 0x46,
	0x2f, 0x41, 0xc4, 0x86, 0xe9, 0xd8, 0x2c, 0x3b, 0x5d, 0x48, 0x2c, 0x8c, 0x35, 0xa6, 0xc2, 0xce,
	0xba, 0xcd, 0x96, 0x27, 0xde, 0xbd, 0x97, 0x1f, 0xf9, 0xe4, 0x5e, 0x7e, 0xa4, 0x78, 0x1b, 0xa6,
	0xb6, 0x71, 0x47, 0xa7, 0x16, 0x61, 0xe8, 0x16, 0x4c, 0xe2, 0xa0, 0x91, 0x35, 0x0a, 0x89, 0x27,
	0xa6, 0x66, 0x24, 0x5a, 0xfc, 0x9d, 0x01, 0xc9, 0xea, 0xf6, 0x06, 0x76, 0x7c, 0x54, 0x83, 0xd9,
	0x28, 0x56, 0x9f, 0x36, 0xcb, 0xa3, 0xf0, 0x0e, 0xd2, 0x7c, 0x0d, 0x66, 0xef, 0x06, 0x85, 0x23,
	0x84, 0x51, 0x5b, 0xcd, 0xb5, 0x87, 0xf7, 0x17, 0x5f, 0xd4, 0x30, 0x61, 0x71, 0x39, 0x86, 0x77,
	0xf7, 0x58, 0x7f, 0xcc, 0xe6, 0x37, 0x61, 0x5c, 0x2d, 0x95, 0xa1, 0x6f, 0xc0, 0x0b, 0x5d, 0xf1,
	0x23, 0x4d, 0x4d, 0x2d, 0xcd, 0x9f, 0x1a, 0xf3, 0x52, 0x3e, 0x1e, 0x21, 0x4a, 0xaf, 0xf8, 0xd3,
	0x51, 0x80, 0xea, 0xf6, 0xf6, 0xa6, 0xef, 0x74, 0x3b, 0x84, 0x7f, 0x56, 0xb6, 0x6f, 0xc1, 0xc5,
	0xc8, 0x76, 0xe6, 0x5b, 0xe7, 0xb7, 0xff, 0x42, 0xa8, 0xdf, 0xf4, 0xad, 0x13, 0x61, 0x6d, 0xc6,
	0x43, 0xd8, 0xc4, 0xf9, 0x61, 0xab, 0x8c, 0x0f, 0x33, 0xfb, 0x1d, 0x48, 0x45, 0x64, 0x30, 0x54,
	0x87, 0x09, 0xae, 0xff, 0x35, 0xc1, 0xc5, 0xd3, 0x09, 0x0e, 0xd4, 0xe2, 0x24, 0x87, 0xea, 0xc5,
	0xff, 0x18, 0x00, 0xb1, 0x1c, 0x79, 0x3e, 0x63, 0x0c, 0xd5, 0x21, 0xa9, 0x8b, 0x73, 0xe2, 0x59,
	0x8b, 0xb3, 0x06, 0x88, 0x91, 0xfa, 0xb3, 0x51, 0xb8, 0xb0, 0x15, 0x64, 0xef, 0xf3, 0xcf, 0xc1,
	0x16, 0x8c, 0x13, 0xca, 0x7d, 0x47, 0x92, 0x20, 0x7c, 0xfe, 0xda, 0x69, 0x3e, 0x3f, 0xc1, 0xa8,
	0x1a, 0xe5, 0x7e, 0x3f, 0x1e, 0x01, 0x01, 0x56, 0x8c, 0x8f, 0x5f, 0x25, 0x20, 0x7b, 0x9a, 0x2a,
	0x7a, 0x19, 0xd2, 0x96, 0x4f, 0x64, 0x47, 0xb0, 0xef, 0x18, 0xb2, 0x60, 0xce, 0x04, 0xdd, 0x7a,
	0xdb, 0x69, 0x80, 0x38, 0xa8, 0x89, 0xe0, 0x12, 0xa2, 0xcf, 0x76, 0x32, 0x9b, 0x89, 0x10, 0xe4,
	0xc6, 0xb3, 0x09, 0x69, 0x87, 0x3a, 0xdc, 0xc1, 0x1d, 0xb3, 0x85, 0x3b, 0x98, 0x5a, 0xc1, 0x09,
	0xf6, 0x5c, 0x7b, 0xfe, 0x8c, 0xc6, 0xa8, 0x28, 0x08, 0x54, 0x83, 0xf1, 0x00, 0x6d, 0xec, 0xfc,
	0x68, 0x81, 0x2e, 0xba, 0x06, 0x53, 0xf1, 0x8d, 0x41, 0x9e, 0x46, 0xc6, 0x1a, 0xa9, 0xd8, 0xbe,
	0x70, 0xd6, 0xce, 0x93, 0x7c, 0xe2, 0xce, 0xa3, 0x0f, 0x7c, 0xbf, 0x49, 0xc0, 0x6c, 0x83, 0xd8,
	0xff, 0xff, 0x6e, 0xd9, 0x00, 0x50, 0xa9, 0x2a, 0x2a, 0xa9, 0xf6, 0xcc, 0x33, 0xe4, 0xfb, 0xa4,
	0x02, 0xa9, 0x32, 0xfe, 0xbf, 0xf2, 0xd0, 0x5f, 0x47, 0x61, 0x2a, 0xee, 0xa1, 0xcf, 0xe5, 0xa6,
	0x85, 0xd6, 0xa2, 0x32, 0x35, 0x26, 0xcb, 0xd4, 0x2b, 0xa7, 0x95, 0xa9, 0xa1, 0x68, 0x3e, 0xa3,
	0x3e, 0xfd, 0x3a, 0x01, 0xc9, 0x0d, 0xec, 0x63, 0x97, 0xa1, 0xf5, 0xa1, 0xb3, 0xad, 0xba, 0x5b,
	0x5e, 0x19, 0x0a, 0xe6, 0xaa, 0x7e, 0xfe, 0x50, 0xb1, 0xfc, 0xcb, 0xd3, 0x8e, 0xb6, 0x5f, 0x84,
	0x19, 0x71, 0x47, 0x0e, 0x0d, 0x52, 0xe4, 0x4e, 0xcb, 0xab, 0x6e, 0x68, 0x3d, 0x43, 0x79, 0x48,
	0x09, 0xb1, 0xa8, 0x0e, 0x0b, 0x19, 0x70, 0xf1, 0x7e, 0x4d, 0xf5, 0xa0, 0x45, 0x40, 0xbb, 0xe1,
	0x9b, 0x85, 0x19, 0x11, 0x21, 0xe4, 0x66, 0xa3, 0x91, 0x40, 0xfc, 0x45, 0x00, 0xb1, 0x0a, 0xd3,
	0x26, 0xd4, 0x73, 0xf5, 0x45, 0x6f, 0x52, 0xf4, 0x54, 0x45, 0x07, 0xfa, 0x89, 0xa1, 0x8e, 0xc8,
	0xc7, 0x6e, 0xd2, 0xfa, 0x86, 0xb2, 0xf9, 0x14, 0x49, 0xf1, 0xef, 0xa3, 0x7c, 0xae, 0x8f, 0xdd,
	0xce, 0x72, 0xf1, 0x04, 0x9c, 0xe2, 0x49, 0x97, 0x7b, 0x71, 0x70, 0x1e, 0xbc, 0x89, 0x2f, 0x5f,
	0x17, 0xe1, 0x7d, 0xf0, 0xf1, 0x07, 0x37, 0xae, 0x46, 0xa7, 0xec, 0xf2, 0x7e, 0xf8, 0xa2, 0xa5,
	0x7c, 0x22, 0x4e, 0xaa, 0x28, 0xda, 0x35, 0x1a, 0x84, 0x75, 0xc5, 0x25, 0x50, 0x5c, 0x1a, 0x62,
	0x87, 0x7b, 0xe3, 0xc9, 0x97, 0x86, 0x48, 0x7f, 0xe0, 0xd2, 0x10, 0xcb, 0xa9, 0xd7, 0xa3, 0xa2,
	0x3d, 0xaa, 0x5d, 0xae, 0xb1, 0x5a, 0x98, 0x91, 0xd8, 0xed, 0xc3, 0x19, 0x80, 0x08, 0x94, 0x64,
	0xaa, 0x8e, 0x14, 0xff, 0x6c, 0xc0, 0x95, 0xa1, 0xf0, 0x0b, 0x97, 0x6c, 0x01, 0xf2, 0x63, 0x83,
	0xd2, 0x8d, 0x7d, 0xbd, 0xf4, 0x67, 0x8b, 0xe6, 0x59, 0x7f, 0xa8, 0x72, 0x7f, 0x36, 0xbb, 0x8f,
	0x2e, 0x3d, 0x7f, 0x34, 0x60, 0x2e, 0xbe, 0x80, 0xd0, 0x94, 0x26, 0x4c, 0xc5, 0xa7, 0xd6, 0x46,
	0x5c, 0x7f, 0x1a, 0x23, 0xe2, 0xeb, 0x1f, 0x00, 0x41, 0xdb, 0x51, 0x8a, 0xab, 0xa7, 0xb4, 0x9b,
	0x4f, 0x4d, 0x4a, 0xb0, 0xb0, 0x13, 0x53, 0x5d, 0xf9, 0xe6, 0x9f, 0x06, 0x8c, 0x6d, 0x78, 0x5e,
	0x07, 0xfd, 0x08, 0x66, 0xa9, 0xc7, 0x4d, 0x91, 0x0e, 0xc4, 0x36, 0xf5, 0x5d, 0x5f, 0x95, 0xcf,
	0xda, 0x13, 0xb9, 0xfa, 0xc7, 0x51, 0x7e, 0x58, 0x73, 0x90, 0x40, 0xfd, 0xa4, 0x44, 0x3d, 0x5e,
	0x91, 0x42, 0x9b, 0xea, 0x39, 0x60, 0x07, 0xa6, 0x07, 0xa7, 0x53, 0x25, 0x76, 0xe5, 0xac, 0xe9,
	0xa6, 0xcf, 0x9c, 0x6a, 0xaa, 0x15, 0x9b, 0x67, 0x79, 0x42, 0x78, 0xed, 0x5f, 0xc2, 0x73, 0xef,
	0x40, 0x26, 0xac, 0x2f, 0x5b, 0xf2, 0x3d, 0x8a, 0x89, 0xd0, 0x50, 0x4f, 0x53, 0xc1, 0xe9, 0xbe,
	0x10, 0x7f, 0xe7, 0xc4, 0x2d, 0xcb, 0x29, 0x1d, 0xd3, 0x19, 0xa0, 0x53, 0xeb, 0xde, 0xf8, 0xbd,
	0x01, 0x10, 0xbd, 0x9b, 0xa0, 0x57, 0xe1, 0x72, 0x65, 0x7d, 0xad, 0x6a, 0x36, 0x37, 0x57, 0x36,
	0xb7, 0x9a, 0xe6, 0xd6, 0x5a, 0x73, 0xa3, 0xb6, 0x5a, 0xbf, 0x5d, 0xaf, 0x55, 0x33, 0x23, 0xb9,
	0xf4, 0xc1, 0x61, 0x21, 0xb5, 0x45, 0x59, 0x97, 0x58, 0xce, 0x8e, 0x43, 0x6c, 0xf4, 0x25, 0x98,
	0x1b, 0x94, 0x16, 0xad, 0x5a, 0x35, 0x63, 0xe4, 0xa6, 0x0e, 0x0e, 0x0b, 0x13, 0xea, 0x9c, 0x48,
	0x6c, 0xb4, 0x00, 0x17, 0x87, 0xe5, 0xea, 0x6b, 0x6f, 0x64, 0x46, 0x73, 0xd3, 0x07, 0x87, 0x85,
	0xc9, 0xf0, 0x40, 0x89, 0x8a, 0x80, 0xe2, 0x92, 0x1a, 0x2f, 0x91, 0x83, 0x83, 0xc3, 0x42, 0x52,
	0x79, 0x21, 0x37, 0xf6, 0xee, 0x6f, 0xe7, 0x47, 0x6e, 0x7c, 0x1f, 0xa0, 0x4e, 0x77, 0x7c, 0x6c,
	0xc9, 0x68, 0xcb, 0xc1, 0xa5, 0xfa, 0xda, 0xed, 0xc6, 0xca, 0xea, 0x66, 0x7d, 0x7d, 0x6d, 0x70,
	0xd9, 0xc7, 0xc6, 0xaa, 0xeb, 0x5b, 0x95, 0xb7, 0x6a, 0x66, 0xb3, 0xfe, 0xc6, 0x5a, 0xc6, 0x40,
	0x97, 0xe1, 0xc2, 0xc0, 0xd8, 0xb7, 0xd7, 0x36, 0xeb, 0x6f, 0xd7, 0x32, 0xa3, 0x95, 0xdb, 0x1f,
	0x3e, 0x9a, 0x37, 0x1e, 0x3c, 0x9a, 0x37, 0xfe, 0xfe, 0x68, 0xde, 0x78, 0xef, 0xf1, 0xfc, 0xc8,
	0x83, 0xc7, 0xf3, 0x23, 0x7f, 0x79, 0x3c, 0x3f, 0xf2, 0xdd, 0x57, 0xdb, 0x0e, 0xdf, 0xed, 0xb5,
	0x4a, 0x96, 0xe7, 0xea, 0x97, 0xef, 0xf2, 0x89, 0x15, 0x4f, 0x3e, 0x35, 0xb7, 0x92, 0x72, 0x93,
	0xf9, 0xca, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x81, 0x47, 0x51, 0xf7, 0xe2, 0x17, 0x00, 0x00,
}

func (this *Pool) Description() (desc *github_com_cosmos_gogoproto_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	return StakingDescription()
}
func StakingDescription() (desc *github_com_cosmos_gogoproto_protoc_gen_gogo_descriptor.FileDescriptorSet) {
	d := &github_com_cosmos_gogoproto_protoc_gen_gogo_descriptor.FileDescriptorSet{}
	var gzipped = []byte{
		// 12959 bytes of a gzipped FileDescriptorSet
		0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x6b, 0x94, 0x5b, 0xd7,
		0x75, 0x18, 0x3c, 0x17, 0x6f, 0x6c, 0x60, 0x80, 0x3b, 0x67, 0x86, 0x24, 0x08, 0x4a, 0x9c, 0x21,
		0x64, 0x49, 0x14, 0x25, 0x0e, 0xc5, 0x91, 0x48, 0x89, 0x43, 0xdb, 0xfa, 0xf0, 0x22, 0x09, 0x6a,
		0x06, 0x18, 0x5f, 0x60, 0x28, 0x51, 0x49, 0x7c, 0x73, 0x07, 0x38, 0x33, 0x73, 0x45, 0xe0, 0x5e,
		0x18, 0xf7, 0x82, 0x9a, 0xd1, 0xb7, 0x56, 0x96, 0x1d, 0x3b, 0xf9, 0x1c, 0x39, 0xce, 0xe7, 0x7c,
		0xc9, 0x4a, 0x94, 0xd8, 0x74, 0x6c, 0xe7, 0x8b, 0xed, 0xbc, 0x5a, 0xc7, 0x76, 0xf3, 0x68, 0x57,
		0xf3, 0x68, 0x9b, 0x36, 0x71, 0xd3, 0x2e, 0x27, 0x6b, 0xb5, 0x4d, 0xb3, 0x56, 0xdc, 0xc6, 0xc9,
		0x8a, 0xe4, 0x47, 0x9a, 0x97, 0xd2, 0xa6, 0xcb, 0xcd, 0x72, 0xd7, 0x79, 0xdd, 0x07, 0x1e, 0x03,
		0x0c, 0x2d, 0xa7, 0x6a, 0xd2, 0x3f, 0xe4, 0xdc, 0x73, 0xf6, 0xde, 0x67, 0x9f, 0x7d, 0xf6, 0xd9,
		0x67, 0xef, 0x7d, 0x1e, 0x80, 0xbf, 0xd1, 0x61, 0x69, 0xc7, 0x34, 0x77, 0xda, 0xf8, 0x5c, 0xb7,
		0x67, 0xda, 0xe6, 0x56, 0x7f, 0xfb, 0x5c, 0x0b, 0x5b, 0xcd, 0x9e, 0xde, 0xb5, 0xcd, 0xde, 0x32,
		0x2d, 0x43, 0x69, 0x06, 0xb1, 0x2c, 0x20, 0x72, 0x9f, 0x93, 0x60, 0xee, 0x8a, 0xde, 0xc6, 0x25,
		0x07, 0xb2, 0x8e, 0x6d, 0xf4, 0x24, 0x84, 0xb6, 0xf5, 0x36, 0xce, 0x48, 0x4b, 0xc1, 0xd3, 0x89,
		0x95, 0x37, 0x2d, 0x0f, 0x60, 0x2d, 0xfb, 0x31, 0x36, 0x48, 0xb1, 0x42, 0x31, 0xce, 0xfc, 0xdf,
		0xb1, 0x77, 0x7e, 0xf5, 0x73, 0x5f, 0x97, 0xe4, 0x77, 0x91, 0x7f, 0xb3, 0x1d, 0x74, 0x8b, 0x7d,
		0xa3, 0xc7, 0x97, 0x09, 0x9e, 0x87, 0x9f, 0xdb, 0xe7, 0x49, 0x89, 0x4a, 0x90, 0x54, 0xb7, 0x58,
		0xb5, 0xb0, 0xad, 0xe2, 0x3d, 0x1b, 0x1b, 0x96, 0x6e, 0x1a, 0xd9, 0xb3, 0x23, 0xb0, 0x86, 0xb8,
		0x2d, 0x0b, 0xf0, 0xdc, 0xaf, 0x87, 0x61, 0x7e, 0x04, 0x6b, 0x08, 0x41, 0xc8, 0xd0, 0x3a, 0xa4,
		0x3b, 0xd2, 0xe9, 0xb8, 0x42, 0xff, 0x46, 0x19, 0x88, 0x76, 0xb5, 0xe6, 0x2d, 0x6d, 0x07, 0x67,
		0x02, 0xb4, 0x58, 0x7c, 0xa2, 0x93, 0x00, 0x2d, 0xdc, 0xc5, 0x46, 0x0b, 0x1b, 0xcd, 0xfd, 0x4c,
		0x70, 0x29, 0x78, 0x3a, 0xae, 0x78, 0x4a, 0xd0, 0xc3, 0x30, 0xd7, 0xed, 0x6f, 0xb5, 0xf5, 0xa6,
		0xea, 0x01, 0x83, 0xa5, 0xe0, 0xe9, 0xb0, 0x22, 0xb3, 0x8a, 0x92, 0x0b, 0xfc, 0x20, 0xa4, 0x5f,
		0xc0, 0xda, 0x2d, 0x2f, 0x68, 0x82, 0x82, 0xa6, 0x48, 0x71, 0xc9, 0x47, 0xd5, 0xec, 0xda, 0xba,
		0x69, 0x78, 0x41, 0xd3, 0xb4, 0x71, 0x99, 0x55, 0x78, 0x80, 0x8b, 0x90, 0xec, 0x60, 0xcb, 0xd2,
		0x76, 0xb0, 0x6a, 0xef, 0x77, 0x71, 0x26, 0x44, 0xc7, 0x69, 0x69, 0x68, 0x9c, 0x06, 0xc7, 0x28,
		0xc1, 0xb1, 0x1a, 0xfb, 0x5d, 0x8c, 0xf2, 0x10, 0xc7, 0x46, 0xbf, 0xc3, 0x28, 0x84, 0xc7, 0x8c,
		0x74, 0xd9, 0xe8, 0x77, 0x06, 0xa9, 0xc4, 0x08, 0x1a, 0x27, 0x11, 0xb5, 0x70, 0xef, 0xb6, 0xde,
		0xc4, 0x99, 0x08, 0x25, 0xf0, 0xe0, 0x10, 0x81, 0x3a, 0xab, 0x1f, 0xa4, 0x21, 0xf0, 0x50, 0x11,
		0xe2, 0xce, 0x78, 0x67, 0xa2, 0x94, 0xc8, 0xfd, 0x23, 0xf4, 0x0d, 0xb7, 0x5b, 0x83, 0x24, 0x5c,
		0x3c, 0x74, 0x11, 0xa2, 0x4c, 0x46, 0x56, 0x26, 0xb6, 0x24, 0x9d, 0x4e, 0xac, 0xdc, 0x33, 0x52,
		0x65, 0x6b, 0x0c, 0x46, 0x11, 0xc0, 0xa8, 0x02, 0xb2, 0x65, 0xf6, 0x7b, 0x4d, 0xac, 0x36, 0xcd,
		0x16, 0x56, 0x75, 0x63, 0xdb, 0xcc, 0xc4, 0x29, 0x81, 0xc5, 0xe1, 0x8e, 0x50, 0xc0, 0xa2, 0xd9,
		0xc2, 0x15, 0x63, 0xdb, 0x54, 0x52, 0x96, 0xef, 0x1b, 0x1d, 0x85, 0x88, 0xb5, 0x6f, 0xd8, 0xda,
		0x5e, 0x26, 0x49, 0xd5, 0x89, 0x7f, 0xa1, 0x15, 0x88, 0xe2, 0x96, 0x4e, 0x9a, 0xcb, 0xa4, 0x96,
		0xa4, 0xd3, 0xa9, 0x95, 0xcc, 0xb0, 0x8c, 0x59, 0xbd, 0x22, 0x00, 0x73, 0xff, 0x23, 0x02, 0xe9,
		0x69, 0x74, 0xf8, 0x32, 0x84, 0xb7, 0x89, 0x64, 0x32, 0x81, 0xc3, 0xc8, 0x8d, 0xe1, 0xf8, 0x05,
		0x1f, 0xb9, 0x4b, 0xc1, 0xe7, 0x21, 0x61, 0x60, 0xcb, 0xc6, 0x2d, 0xa6, 0x45, 0xc1, 0x29, 0xf5,
		0x10, 0x18, 0xd2, 0xb0, 0x1a, 0x86, 0xee, 0x4a, 0x0d, 0x9f, 0x85, 0xb4, 0xc3, 0x92, 0xda, 0xd3,
		0x8c, 0x1d, 0xa1, 0xcf, 0xe7, 0x26, 0x71, 0xb2, 0xec, 0x18, 0x0f, 0x85, 0xa0, 0x29, 0x29, 0xec,
		0xfb, 0x46, 0x25, 0x00, 0xd3, 0xc0, 0xe6, 0xb6, 0xda, 0xc2, 0xcd, 0x76, 0x26, 0x36, 0x46, 0x4a,
		0x35, 0x02, 0x32, 0x24, 0x25, 0x93, 0x95, 0x36, 0xdb, 0xe8, 0x92, 0xab, 0x9e, 0xd1, 0x31, 0xda,
		0xb5, 0xce, 0x26, 0xe6, 0x90, 0x86, 0x6e, 0x42, 0xaa, 0x87, 0xc9, 0x5c, 0xc1, 0x2d, 0xde, 0xb3,
		0x38, 0x65, 0x62, 0x79, 0x62, 0xcf, 0x14, 0x8e, 0xc6, 0x3a, 0x36, 0xdb, 0xf3, 0x7e, 0xa2, 0xfb,
		0xc0, 0x29, 0x50, 0xa9, 0x5a, 0x01, 0xb5, 0x34, 0x49, 0x51, 0x58, 0x25, 0xea, 0x95, 0x07, 0xb8,
		0xad, 0x5b, 0xfa, 0x96, 0xde, 0xd6, 0x6d, 0x62, 0xb6, 0x88, 0xf6, 0x9e, 0x1a, 0x9e, 0x17, 0xfb,
		0x9d, 0x2d, 0xb3, 0x7d, 0xc3, 0x01, 0x54, 0x3c, 0x48, 0xd9, 0x17, 0x21, 0xe5, 0x97, 0x30, 0x5a,
		0x80, 0xb0, 0x65, 0x6b, 0x3d, 0x9b, 0x2a, 0x72, 0x58, 0x61, 0x1f, 0x48, 0x86, 0x20, 0x36, 0x5a,
		0xd4, 0x12, 0x87, 0x15, 0xf2, 0x27, 0xfa, 0xbf, 0x5c, 0x99, 0x05, 0xa9, 0xcc, 0x1e, 0x18, 0x56,
		0x0a, 0x1f, 0xe5, 0x41, 0xd1, 0x65, 0x9f, 0x80, 0x59, 0x9f, 0x0c, 0xa6, 0x6d, 0x3a, 0xf7, 0x5b,
		0x21, 0x38, 0x32, 0x92, 0x36, 0x7a, 0x16, 0x16, 0xfa, 0x86, 0x6e, 0xd8, 0xb8, 0xd7, 0xed, 0x61,
		0xa2, 0xf5, 0xac, 0xad, 0xcc, 0x2b, 0xd1, 0x31, 0x7a, 0xbb, 0xe9, 0x85, 0x66, 0x54, 0x94, 0xf9,
		0xfe, 0x70, 0x21, 0xba, 0x09, 0x09, 0xa2, 0x62, 0x5a, 0x4f, 0xa3, 0x04, 0xd9, 0x84, 0x5e, 0x99,
		0xae, 0xcb, 0xcb, 0x25, 0x17, 0xb3, 0x10, 0x7c, 0xaf, 0x14, 0x50, 0xbc, 0xb4, 0xd0, 0x13, 0x10,
		0xdb, 0xc6, 0x9a, 0xdd, 0xef, 0x61, 0x2b, 0xb3, 0x42, 0x45, 0x79, 0x62, 0x78, 0x9e, 0x33, 0x80,
		0x3a, 0xb6, 0x15, 0x07, 0x18, 0x75, 0x20, 0x79, 0x1b, 0xf7, 0xf4, 0x6d, 0xbd, 0xc9, 0x98, 0x0a,
		0x52, 0x0d, 0x78, 0x72, 0x4a, 0xa6, 0x6e, 0x78, 0x50, 0xeb, 0xb6, 0x66, 0xe3, 0x55, 0xd8, 0xac,
		0xde, 0x28, 0x2b, 0x95, 0x2b, 0x95, 0x72, 0x89, 0xb1, 0xe9, 0x23, 0x9f, 0xfd, 0x41, 0x09, 0x12,
		0x9e, 0x9e, 0x10, 0x8b, 0x6a, 0xf4, 0x3b, 0x5b, 0xb8, 0xc7, 0xc7, 0x8b, 0x7f, 0xa1, 0x13, 0x10,
		0xdf, 0xee, 0xb7, 0xdb, 0x4c, 0x6f, 0xd9, 0xda, 0x1d, 0x23, 0x05, 0x54, 0x67, 0x11, 0x84, 0xb8,
		0x25, 0xa2, 0x66, 0x92, 0xfc, 0x8d, 0xb2, 0x10, 0x13, 0x7a, 0x9d, 0x09, 0x2f, 0x49, 0xa7, 0x63,
		0x8a, 0xf3, 0xcd, 0xea, 0xba, 0x58, 0xb3, 0x71, 0x2b, 0x13, 0x11, 0x75, 0xec, 0xfb, 0x7a, 0x28,
		0x16, 0x92, 0xc3, 0xb9, 0xc7, 0x61, 0x6e, 0xa8, 0x2b, 0x28, 0x0d, 0x89, 0x52, 0xb9, 0xb8, 0x96,
		0x57, 0xf2, 0x8d, 0x4a, 0xad, 0x2a, 0xcf, 0xa0, 0x14, 0x78, 0x7a, 0x27, 0x4b, 0x67, 0xe2, 0xb1,
		0x57, 0xa3, 0xf2, 0x3b, 0xdf, 0xf9, 0xce, 0x77, 0x06, 0x72, 0xbf, 0x16, 0x81, 0x85, 0x51, 0x76,
		0x74, 0xa4, 0x49, 0x77, 0x3b, 0x1d, 0xf4, 0x75, 0x3a, 0x0f, 0xe1, 0xb6, 0xb6, 0x85, 0xdb, 0x99,
		0x10, 0x1d, 0x84, 0x87, 0xa7, 0xb2, 0xd4, 0xcb, 0x6b, 0x04, 0x45, 0x61, 0x98, 0xe8, 0xad, 0x5c,
		0x34, 0x61, 0x4a, 0xe1, 0xcc, 0x74, 0x14, 0x88, 0x7d, 0xe5, 0x62, 0x3c, 0x01, 0x71, 0xf2, 0x3f,
		0x93, 0x7b, 0x84, 0xc9, 0x9d, 0x14, 0x50, 0xb9, 0x67, 0x21, 0x46, 0x4d, 0x67, 0x0b, 0x3b, 0x63,
		0x22, 0xbe, 0x89, 0xb1, 0x69, 0xe1, 0x6d, 0xad, 0xdf, 0xb6, 0xd5, 0xdb, 0x5a, 0xbb, 0x8f, 0xa9,
		0x11, 0x8c, 0x2b, 0x49, 0x5e, 0x78, 0x83, 0x94, 0xa1, 0x45, 0x48, 0x30, 0x4b, 0xab, 0x1b, 0x2d,
		0xbc, 0x47, 0x57, 0xe1, 0xb0, 0xc2, 0x8c, 0x6f, 0x85, 0x94, 0x90, 0xe6, 0x9f, 0xb7, 0x4c, 0x43,
		0x98, 0x2b, 0xda, 0x04, 0x29, 0xa0, 0xcd, 0x3f, 0x31, 0xe8, 0x00, 0xdc, 0x3b, 0xba, 0x7b, 0x43,
		0xf6, 0xf5, 0x41, 0x48, 0x53, 0x88, 0xc7, 0xf8, 0x54, 0xd6, 0xda, 0x99, 0x39, 0xaa, 0x06, 0x29,
		0x56, 0x5c, 0xe3, 0xa5, 0xb9, 0x9f, 0x0f, 0x40, 0x88, 0x2e, 0x36, 0x69, 0x48, 0x34, 0x6e, 0x6e,
		0x94, 0xd5, 0x52, 0x6d, 0xb3, 0xb0, 0x56, 0x96, 0x25, 0x32, 0xf4, 0xb4, 0xe0, 0xca, 0x5a, 0x2d,
		0xdf, 0x90, 0x03, 0xce, 0x77, 0xa5, 0xda, 0xb8, 0xf8, 0xb8, 0x1c, 0x74, 0x10, 0x36, 0x59, 0x41,
		0xc8, 0x0b, 0xf0, 0xd8, 0x8a, 0x1c, 0x46, 0x32, 0x24, 0x19, 0x81, 0xca, 0xb3, 0xe5, 0xd2, 0xc5,
		0xc7, 0xe5, 0x88, 0xbf, 0xe4, 0xb1, 0x15, 0x39, 0x8a, 0x66, 0x21, 0x4e, 0x4b, 0x0a, 0xb5, 0xda,
		0x9a, 0x1c, 0x73, 0x68, 0xd6, 0x1b, 0x4a, 0xa5, 0x7a, 0x55, 0x8e, 0x3b, 0x34, 0xaf, 0x2a, 0xb5,
		0xcd, 0x0d, 0x19, 0x1c, 0x0a, 0xeb, 0xe5, 0x7a, 0x3d, 0x7f, 0xb5, 0x2c, 0x27, 0x1c, 0x88, 0xc2,
		0xcd, 0x46, 0xb9, 0x2e, 0x27, 0x7d, 0x6c, 0x3d, 0xb6, 0x22, 0xcf, 0x3a, 0x4d, 0x94, 0xab, 0x9b,
		0xeb, 0x72, 0x0a, 0xcd, 0xc1, 0x2c, 0x6b, 0x42, 0x30, 0x91, 0x1e, 0x28, 0xba, 0xf8, 0xb8, 0x2c,
		0xbb, 0x8c, 0x30, 0x2a, 0x73, 0xbe, 0x82, 0x8b, 0x8f, 0xcb, 0x28, 0x57, 0x84, 0x30, 0x55, 0x43,
		0x84, 0x20, 0xb5, 0x96, 0x2f, 0x94, 0xd7, 0xd4, 0xda, 0x06, 0x99, 0x34, 0xf9, 0x35, 0x59, 0x72,
		0xcb, 0x94, 0xf2, 0x46, 0x39, 0xdf, 0x28, 0x97, 0xe4, 0xa0, 0xb7, 0xec, 0x6d, 0x9b, 0x15, 0xa5,
		0x5c, 0x92, 0x03, 0xb9, 0x26, 0x2c, 0x8c, 0x5a, 0x64, 0x47, 0x4e, 0x21, 0x8f, 0x2e, 0x04, 0xc6,
		0xe8, 0x02, 0xa5, 0x35, 0xa8, 0x0b, 0xb9, 0x8f, 0x07, 0x61, 0x7e, 0x84, 0xa3, 0x31, 0xb2, 0x91,
		0xa7, 0x20, 0xcc, 0x74, 0x99, 0x59, 0xea, 0x87, 0x46, 0x7a, 0x2c, 0x54, 0xb3, 0x87, 0xdc, 0x2f,
		0x8a, 0xe7, 0x75, 0x59, 0x83, 0x63, 0x5c, 0x56, 0x42, 0x62, 0x48, 0x61, 0xbf, 0x6d, 0xc8, 0x21,
		0x60, 0x3e, 0xd3, 0xc5, 0x69, 0x7c, 0x26, 0x5a, 0x76, 0x38, 0xc7, 0x20, 0x3c, 0xd1, 0x31, 0x88,
		0xdc, 0x8d, 0x63, 0x70, 0x19, 0xe6, 0x86, 0x78, 0x99, 0x7a, 0x81, 0x7e, 0xb7, 0x04, 0x99, 0x71,
		0xf2, 0x9d, 0x60, 0x55, 0x03, 0x3e, 0xab, 0x7a, 0x79, 0x70, 0x10, 0x4e, 0x8d, 0x1f, 0xc7, 0x21,
		0x75, 0xf9, 0x84, 0x04, 0x47, 0x47, 0x47, 0x37, 0x23, 0x79, 0x78, 0x2b, 0x44, 0x3a, 0xd8, 0xde,
		0x35, 0x85, 0xb7, 0xfe, 0xc0, 0x08, 0x1f, 0x90, 0x54, 0x0f, 0xea, 0x0b, 0xc7, 0xf2, 0x3a, 0x91,
		0xc1, 0x71, 0x21, 0x0a, 0xe3, 0x66, 0x88, 0xd3, 0xef, 0x09, 0xc0, 0x91, 0x91, 0xc4, 0x47, 0x32,
		0x7a, 0x2f, 0x80, 0x6e, 0x74, 0xfb, 0x36, 0xf3, 0xc8, 0x99, 0x31, 0x8f, 0xd3, 0x12, 0x6a, 0xff,
		0x88, 0xa1, 0xee, 0xdb, 0x4e, 0x3d, 0x5b, 0x68, 0x81, 0x15, 0x51, 0x80, 0x27, 0x5d, 0x46, 0x43,
		0x94, 0xd1, 0x93, 0x63, 0x7a, 0x3a, 0xa4, 0xdb, 0x8f, 0x82, 0xdc, 0x6c, 0xeb, 0xd8, 0xb0, 0x55,
		0xcb, 0xee, 0x61, 0xad, 0xa3, 0x1b, 0x3b, 0x6c, 0xc1, 0x5e, 0x0d, 0x6f, 0x6b, 0x6d, 0x0b, 0x2b,
		0x69, 0x56, 0x5d, 0x17, 0xb5, 0x04, 0x83, 0x2a, 0x50, 0xcf, 0x83, 0x11, 0xf1, 0x61, 0xb0, 0x6a,
		0x07, 0x23, 0xf7, 0xb3, 0x71, 0x48, 0x78, 0x62, 0x41, 0x74, 0x0a, 0x92, 0xcf, 0x6b, 0xb7, 0x35,
		0x55, 0x24, 0x03, 0x98, 0x24, 0x12, 0xa4, 0x6c, 0x83, 0x27, 0x04, 0x1e, 0x85, 0x05, 0x0a, 0x62,
		0xf6, 0x6d, 0xdc, 0x53, 0x9b, 0x6d, 0xcd, 0xb2, 0xa8, 0xd0, 0x62, 0x14, 0x14, 0x91, 0xba, 0x1a,
		0xa9, 0x2a, 0x8a, 0x1a, 0x74, 0x01, 0xe6, 0x29, 0x46, 0xa7, 0xdf, 0xb6, 0xf5, 0x6e, 0x1b, 0xd3,
		0x34, 0x87, 0x45, 0x57, 0x2d, 0x87, 0xb3, 0x39, 0x02, 0xb1, 0xce, 0x01, 0x08, 0x47, 0x16, 0x2a,
		0xc1, 0xbd, 0x14, 0x6d, 0x07, 0x1b, 0xb8, 0xa7, 0xd9, 0x58, 0xc5, 0xef, 0xe8, 0x6b, 0x6d, 0x4b,
		0xd5, 0x8c, 0x96, 0xba, 0xab, 0x59, 0xbb, 0x99, 0x05, 0x42, 0xa0, 0x10, 0xc8, 0x48, 0xca, 0x71,
		0x02, 0x78, 0x95, 0xc3, 0x95, 0x29, 0x58, 0xde, 0x68, 0x5d, 0xd3, 0xac, 0x5d, 0xb4, 0x0a, 0x47,
		0x29, 0x15, 0xcb, 0xee, 0xe9, 0xc6, 0x8e, 0xda, 0xdc, 0xc5, 0xcd, 0x5b, 0x6a, 0xdf, 0xde, 0x7e,
		0x32, 0x73, 0xc2, 0xdb, 0x3e, 0xe5, 0xb0, 0x4e, 0x61, 0x8a, 0x04, 0x64, 0xd3, 0xde, 0x7e, 0x12,
		0xd5, 0x21, 0x49, 0x06, 0xa3, 0xa3, 0xbf, 0x88, 0xd5, 0x6d, 0xb3, 0x47, 0x97, 0xe1, 0xd4, 0x08,
		0xeb, 0xe6, 0x91, 0xe0, 0x72, 0x8d, 0x23, 0xac, 0x9b, 0x2d, 0xbc, 0x1a, 0xae, 0x6f, 0x94, 0xcb,
		0x25, 0x25, 0x21, 0xa8, 0x5c, 0x31, 0x7b, 0x44, 0xa1, 0x76, 0x4c, 0x47, 0xc0, 0x09, 0xa6, 0x50,
		0x3b, 0xa6, 0x10, 0xef, 0x05, 0x98, 0x6f, 0x36, 0x59, 0x9f, 0xf5, 0xa6, 0xca, 0xf3, 0x02, 0x56,
		0x46, 0xf6, 0x09, 0xab, 0xd9, 0xbc, 0xca, 0x00, 0xb8, 0x8e, 0x5b, 0xe8, 0x12, 0x1c, 0x71, 0x85,
		0xe5, 0x45, 0x9c, 0x1b, 0xea, 0xe5, 0x20, 0xea, 0x05, 0x98, 0xef, 0xee, 0x0f, 0x23, 0x22, 0x5f,
		0x8b, 0xdd, 0xfd, 0x41, 0xb4, 0xfb, 0x69, 0x62, 0xa8, 0x87, 0x9b, 0xd4, 0x5b, 0x3c, 0xe6, 0x85,
		0xf6, 0x54, 0xa0, 0x65, 0x90, 0x9b, 0x4d, 0x15, 0x1b, 0xda, 0x56, 0x1b, 0xab, 0x5a, 0x0f, 0x1b,
		0x9a, 0x95, 0x59, 0xa4, 0xc0, 0x21, 0xbb, 0xd7, 0xc7, 0x4a, 0xaa, 0xd9, 0x2c, 0xd3, 0xca, 0x3c,
		0xad, 0x43, 0x67, 0x60, 0xce, 0xdc, 0x7a, 0xbe, 0xc9, 0x14, 0x4b, 0xed, 0xf6, 0xf0, 0xb6, 0xbe,
		0x97, 0x79, 0x13, 0x95, 0x52, 0x9a, 0x54, 0x50, 0xb5, 0xda, 0xa0, 0xc5, 0xe8, 0x21, 0x90, 0x9b,
		0xd6, 0xae, 0xd6, 0xeb, 0x52, 0xe3, 0x6c, 0x75, 0xb5, 0x26, 0xce, 0xdc, 0xcf, 0x40, 0x59, 0x79,
		0x55, 0x14, 0x13, 0xc5, 0xb6, 0x5e, 0xd0, 0xb7, 0x6d, 0x41, 0xf1, 0x41, 0xa6, 0xd8, 0xb4, 0x8c,
		0x53, 0x3b, 0x0d, 0x72, 0x77, 0xb7, 0xeb, 0x6f, 0xf8, 0x34, 0x05, 0x4b, 0x75, 0x77, 0xbb, 0xde,
		0x76, 0xef, 0x83, 0x59, 0x02, 0xe9, 0x36, 0xfa, 0x10, 0x73, 0xe1, 0xba, 0xbb, 0x9e, 0x16, 0x1f,
		0x87, 0xa3, 0x04, 0xa8, 0x83, 0x6d, 0xad, 0xa5, 0xd9, 0x9a, 0x07, 0xfa, 0x11, 0x0a, 0xbd, 0xd0,
		0xdd, 0xed, 0xae, 0xf3, 0x4a, 0x1f, 0x9f, 0xbd, 0xfe, 0xd6, 0xbe, 0xa3, 0x1f, 0x67, 0x19, 0x9f,
		0xa4, 0x4c, 0x68, 0xc8, 0x5d, 0x47, 0x30, 0xdf, 0xb4, 0x78, 0x2d, 0xb7, 0x0a, 0x49, 0xaf, 0xde,
		0xa3, 0x38, 0x30, 0xcd, 0x97, 0x25, 0xe2, 0x47, 0x15, 0x6b, 0x25, 0xe2, 0x01, 0x3d, 0x57, 0x96,
		0x03, 0xc4, 0x13, 0x5b, 0xab, 0x34, 0xca, 0xaa, 0xb2, 0x59, 0x6d, 0x54, 0xd6, 0xcb, 0x72, 0xd0,
		0x13, 0x1b, 0x5c, 0x0f, 0xc5, 0xce, 0xc8, 0x0f, 0x5f, 0x0f, 0xc5, 0x1e, 0x90, 0x1f, 0xa4, 0xe2,
		0x19, 0x52, 0xca, 0xdc, 0x6b, 0x41, 0x48, 0xf9, 0x93, 0x03, 0xe8, 0xcd, 0x70, 0x4c, 0x64, 0xff,
		0x2c, 0x6c, 0xab, 0x2f, 0xe8, 0x3d, 0x3a, 0x59, 0x3b, 0x1a, 0x5b, 0x38, 0x1d, 0xa5, 0x5c, 0xe0,
		0x50, 0x75, 0x6c, 0x3f, 0xa3, 0xf7, 0xc8, 0x54, 0xec, 0x68, 0x36, 0x5a, 0x83, 0x45, 0xc3, 0x54,
		0x2d, 0x5b, 0x33, 0x5a, 0x5a, 0xaf, 0xe5, 0xcd, 0xbd, 0x6a, 0xcd, 0x26, 0xb6, 0x2c, 0x93, 0x2d,
		0x92, 0x0e, 0x95, 0x7b, 0x0c, 0xb3, 0xce, 0x81, 0xdd, 0xd5, 0x23, 0xcf, 0x41, 0x07, 0xe6, 0x44,
		0x70, 0xdc, 0x9c, 0x38, 0x01, 0xf1, 0x8e, 0xd6, 0x55, 0xb1, 0x61, 0xf7, 0xf6, 0xa9, 0xfb, 0x1f,
		0x53, 0x62, 0x1d, 0xad, 0x5b, 0x26, 0xdf, 0xe8, 0x06, 0x3c, 0xe0, 0x82, 0xaa, 0x6d, 0xbc, 0xa3,
		0x35, 0xf7, 0x55, 0xea, 0xeb, 0xd3, 0x4c, 0x95, 0xda, 0x34, 0x8d, 0xed, 0xb6, 0xde, 0xb4, 0x2d,
		0x6a, 0x3b, 0x98, 0xfd, 0xcb, 0xb9, 0x18, 0x6b, 0x14, 0xe1, 0xba, 0x65, 0x1a, 0xd4, 0xc5, 0x2f,
		0x0a, 0x68, 0x9f, 0xda, 0x24, 0xdf, 0x10, 0x6a, 0xe3, 0x1f, 0xfa, 0x90, 0x1c, 0xbe, 0x1e, 0x8a,
		0x85, 0xe5, 0xc8, 0xf5, 0x50, 0x2c, 0x22, 0x47, 0xaf, 0x87, 0x62, 0x31, 0x39, 0x7e, 0x3d, 0x14,
		0x8b, 0xcb, 0x90, 0xbb, 0x33, 0x0b, 0x49, 0x6f, 0xc4, 0x42, 0x02, 0xc0, 0x26, 0x5d, 0x70, 0x25,
		0x6a, 0x92, 0xef, 0x3b, 0x30, 0xbe, 0x59, 0x2e, 0x92, 0x95, 0x78, 0x35, 0xc2, 0xc2, 0x03, 0x85,
		0x61, 0x12, 0x2f, 0x88, 0x4c, 0x32, 0xcc, 0x7c, 0xa9, 0x98, 0xc2, 0xbf, 0xd0, 0x55, 0x88, 0x3c,
		0x6f, 0x51, 0xda, 0xcc, 0x95, 0x7b, 0xd3, 0xc1, 0xb4, 0xaf, 0xd7, 0x29, 0xf1, 0xf8, 0xf5, 0xba,
		0x5a, 0xad, 0x29, 0xeb, 0xf9, 0x35, 0x85, 0xa3, 0xa3, 0xe3, 0x10, 0x6a, 0x6b, 0x2f, 0xee, 0xfb,
		0xd7, 0x6c, 0x5a, 0x84, 0x96, 0x21, 0xdd, 0x37, 0x58, 0xb8, 0x4f, 0xc6, 0x98, 0x40, 0xa5, 0xbd,
		0x50, 0x29, 0xb7, 0x76, 0x8d, 0xc0, 0x4f, 0xa9, 0x57, 0xc7, 0x21, 0xf4, 0x02, 0xd6, 0x6e, 0xf9,
		0x57, 0x56, 0x5a, 0x84, 0x4e, 0x43, 0xb2, 0x85, 0xb7, 0xfa, 0x3b, 0x6a, 0x0f, 0xb7, 0xb4, 0xa6,
		0xed, 0x5f, 0x4f, 0x12, 0xb4, 0x4a, 0xa1, 0x35, 0xe8, 0x69, 0x88, 0x93, 0x31, 0x32, 0xe8, 0x18,
		0xcf, 0x51, 0x11, 0x9c, 0x3d, 0x58, 0x04, 0x7c, 0x88, 0x05, 0x92, 0xe2, 0xe2, 0xa3, 0x6b, 0x10,
		0xb5, 0xb5, 0xde, 0x0e, 0xb6, 0xad, 0xcc, 0xfc, 0x52, 0xf0, 0x74, 0x6a, 0x44, 0xa6, 0x6e, 0x04,
		0xa9, 0x06, 0x45, 0xa1, 0xc1, 0xb6, 0x40, 0x47, 0xcf, 0x80, 0xcc, 0x13, 0xc2, 0x2a, 0x8f, 0x94,
		0xad, 0xcc, 0x02, 0x55, 0xc0, 0x47, 0x0e, 0x26, 0xc9, 0xf3, 0xc9, 0x25, 0x86, 0xa4, 0xa4, 0xb1,
		0xef, 0xdb, 0x3f, 0x2f, 0x8e, 0x1c, 0x66, 0x5e, 0x6c, 0x42, 0x9a, 0xff, 0xad, 0x5a, 0xfd, 0x6e,
		0xd7, 0xec, 0xd9, 0x99, 0xa3, 0x14, 0x7f, 0x02, 0x43, 0x82, 0x18, 0xc3, 0x51, 0x52, 0xdb, 0xbe,
		0xef, 0x6f, 0xde, 0x74, 0xcb, 0x3e, 0x07, 0x29, 0xbf, 0x30, 0xbc, 0xe9, 0xf8, 0xe0, 0x94, 0xe9,
		0x78, 0x12, 0x96, 0x88, 0x58, 0x8f, 0x2c, 0x4d, 0xec, 0x23, 0xfb, 0x43, 0x01, 0x48, 0xf9, 0x3b,
		0x86, 0xae, 0x02, 0x12, 0x23, 0xa6, 0x1b, 0x76, 0xcf, 0x6c, 0xf5, 0x9b, 0xb8, 0xc5, 0x27, 0xec,
		0xf8, 0x76, 0xe6, 0x38, 0x4e, 0xc5, 0x41, 0xf1, 0x12, 0xf2, 0xcc, 0x82, 0xc0, 0x94, 0x84, 0x4a,
		0xee, 0xfc, 0x38, 0x07, 0xf3, 0x82, 0x00, 0x21, 0xf6, 0x82, 0xd6, 0x33, 0x88, 0x8b, 0xcc, 0x9c,
		0x76, 0xe4, 0xa9, 0x7a, 0x86, 0xd5, 0xa0, 0x3c, 0x08, 0x75, 0x51, 0x7b, 0xb8, 0x63, 0xde, 0xc6,
		0x2d, 0x9e, 0x71, 0x1a, 0xdf, 0x6c, 0x8a, 0x23, 0x28, 0x0c, 0x3e, 0x77, 0x0e, 0xc2, 0xd4, 0xfc,
		0x20, 0x00, 0x6e, 0x80, 0xe4, 0x19, 0x14, 0x83, 0x50, 0xb1, 0xa6, 0x90, 0xe5, 0x51, 0x86, 0x24,
		0x2b, 0x55, 0x37, 0x2a, 0xe5, 0x62, 0x59, 0x0e, 0xe4, 0x2e, 0x40, 0x84, 0xd9, 0x14, 0xb2, 0x74,
		0x3a, 0x56, 0x45, 0x9e, 0xe1, 0x9f, 0x9c, 0x86, 0x24, 0x6a, 0x37, 0xd7, 0x0b, 0x65, 0x45, 0x0e,
		0xe4, 0x36, 0x21, 0x3d, 0x30, 0x0f, 0xd1, 0x11, 0x98, 0x53, 0xca, 0x8d, 0x72, 0xb5, 0x51, 0xa9,
		0x55, 0xd5, 0xcd, 0xea, 0xd3, 0xd5, 0xda, 0x33, 0x55, 0x79, 0xc6, 0x5f, 0x2c, 0xd6, 0x61, 0x09,
		0x2d, 0x80, 0xec, 0x16, 0xd7, 0x6b, 0x9b, 0x0a, 0xe5, 0xe6, 0x7b, 0x03, 0x20, 0x0f, 0x4e, 0x4a,
		0x74, 0x0c, 0xe6, 0x1b, 0x79, 0xe5, 0x6a, 0xb9, 0xa1, 0xb2, 0x9c, 0x89, 0x43, 0x7a, 0x01, 0x64,
		0x6f, 0xc5, 0x95, 0x0a, 0x4d, 0x09, 0x2d, 0xc2, 0x09, 0x6f, 0x69, 0xf9, 0xd9, 0x46, 0xb9, 0x5a,
		0xa7, 0x8d, 0xe7, 0xab, 0x57, 0x89, 0x53, 0x30, 0x40, 0x4f, 0x64, 0x69, 0x82, 0x84, 0x55, 0x3f,
		0xbd, 0xf2, 0x5a, 0x49, 0x0e, 0x0d, 0x16, 0xd7, 0xaa, 0xe5, 0xda, 0x15, 0x39, 0x3c, 0xd8, 0x3a,
		0xcd, 0xdc, 0x44, 0x50, 0x16, 0x8e, 0x0e, 0x96, 0xaa, 0xe5, 0x6a, 0x43, 0xb9, 0x29, 0x47, 0x07,
		0x1b, 0xae, 0x97, 0x95, 0x1b, 0x95, 0x62, 0x59, 0x8e, 0xa1, 0xa3, 0x80, 0xfc, 0x1c, 0x35, 0xae,
		0xd5, 0x4a, 0x72, 0x7c, 0xd4, 0x8a, 0x85, 0xe4, 0xf9, 0xdc, 0xcf, 0x48, 0x90, 0xf4, 0x66, 0x51,
		0x7c, 0x46, 0x45, 0x7a, 0xa3, 0x2d, 0xb6, 0xb9, 0xdf, 0x0e, 0x40, 0xc2, 0x93, 0x4e, 0x21, 0x41,
		0xac, 0xd6, 0x6e, 0x9b, 0x2f, 0xa8, 0x5a, 0x5b, 0xd7, 0x2c, 0xbe, 0x1e, 0x02, 0x2d, 0xca, 0x93,
		0x92, 0x69, 0xd7, 0x9f, 0xe9, 0x5d, 0x97, 0xc8, 0x5d, 0xbb, 0x2e, 0xd1, 0x37, 0xa0, 0xeb, 0x12,
		0x96, 0x23, 0xb9, 0xdf, 0x0d, 0x80, 0x3c, 0x98, 0x1d, 0x19, 0x90, 0x9b, 0x34, 0x4e, 0x6e, 0xde,
		0xfe, 0x05, 0x0e, 0xd3, 0xbf, 0xc1, 0x55, 0x3d, 0x38, 0x76, 0x55, 0x1f, 0xb1, 0x58, 0x85, 0xde,
		0xc8, 0x8b, 0x95, 0x57, 0x5d, 0xff, 0x9d, 0x04, 0x29, 0x7f, 0x32, 0xc7, 0x27, 0xb1, 0xdc, 0x61,
		0x24, 0xe6, 0x1f, 0x91, 0x53, 0xe3, 0x46, 0xe4, 0x6f, 0xa5, 0x5f, 0x3f, 0x12, 0x84, 0x59, 0x5f,
		0xee, 0x67, 0x5a, 0xee, 0xde, 0x01, 0x73, 0x7a, 0x0b, 0x77, 0xba, 0xa6, 0x8d, 0x8d, 0xe6, 0xbe,
		0xda, 0xc6, 0xb7, 0x71, 0x9b, 0x8a, 0x21, 0x35, 0x62, 0x8f, 0xd7, 0xd7, 0xc2, 0x72, 0xc5, 0xc5,
		0x5b, 0x23, 0x68, 0xab, 0xf3, 0x95, 0x52, 0x79, 0x7d, 0xa3, 0xd6, 0x28, 0x57, 0x8b, 0x37, 0x85,
		0x25, 0x57, 0x64, 0x7d, 0x00, 0xcc, 0x27, 0xf0, 0xfb, 0xde, 0x18, 0x41, 0xe7, 0x06, 0xc8, 0x83,
		0xbd, 0x21, 0x06, 0x7d, 0x44, 0x7f, 0xe4, 0x19, 0x34, 0x0f, 0xe9, 0x6a, 0x4d, 0xad, 0x57, 0x4a,
		0x65, 0xb5, 0x7c, 0xe5, 0x4a, 0xb9, 0xd8, 0xa8, 0xb3, 0xbd, 0x0a, 0x07, 0xba, 0x21, 0x07, 0xbc,
		0x63, 0xf3, 0xa3, 0x41, 0x98, 0x1f, 0xc1, 0x09, 0xca, 0xf3, 0x14, 0x21, 0xcb, 0x5a, 0x9e, 0x9d,
		0x86, 0xfb, 0x65, 0x12, 0xdd, 0x6f, 0x68, 0x3d, 0x9b, 0x67, 0x14, 0x1f, 0x02, 0x22, 0x5e, 0xc3,
		0x26, 0xee, 0x7d, 0x8f, 0xef, 0x01, 0x31, 0x17, 0x24, 0xed, 0x96, 0xb3, 0x6d, 0xa0, 0x47, 0x00,
		0x75, 0x4d, 0x4b, 0xb7, 0xf5, 0xdb, 0x98, 0xf8, 0x50, 0x1c, 0x98, 0x4c, 0xdc, 0x90, 0x22, 0x8b,
		0x9a, 0x8a, 0x61, 0x3b, 0xd0, 0x06, 0xde, 0xd1, 0x06, 0xa0, 0x49, 0xf8, 0x11, 0x54, 0x64, 0x51,
		0xe3, 0x40, 0x9f, 0x82, 0x64, 0xcb, 0xec, 0x6f, 0xb5, 0x31, 0x87, 0x23, 0x26, 0x59, 0x52, 0x12,
		0xac, 0xcc, 0x01, 0xe1, 0x69, 0x33, 0x77, 0xa7, 0x2a, 0xa9, 0x24, 0x58, 0x19, 0x03, 0x79, 0x10,
		0xd2, 0xda, 0xce, 0x4e, 0x8f, 0x10, 0x17, 0x84, 0x58, 0x22, 0x30, 0xe5, 0x14, 0x53, 0xc0, 0xec,
		0x75, 0x88, 0x09, 0x39, 0x90, 0xf8, 0x97, 0x48, 0x42, 0xed, 0xb2, 0xec, 0x76, 0xe0, 0x74, 0x5c,
		0x89, 0x19, 0xa2, 0xf2, 0x14, 0x24, 0x75, 0xcb, 0x3d, 0xf5, 0x94, 0x09, 0x2c, 0x05, 0x4e, 0xc7,
		0x94, 0x84, 0x6e, 0xb9, 0x27, 0x9b, 0x7e, 0x49, 0x06, 0x70, 0x95, 0x0d, 0x7d, 0xbf, 0x04, 0x29,
		0xb6, 0xc0, 0x74, 0x7b, 0xd8, 0xc2, 0x46, 0x53, 0x84, 0x85, 0x0f, 0x1d, 0xa0, 0xa2, 0xcc, 0xcc,
		0x6d, 0x70, 0x84, 0xc2, 0x53, 0xef, 0x95, 0xa4, 0x97, 0xa5, 0xd0, 0xcb, 0x92, 0xf4, 0x31, 0x69,
		0x16, 0xc5, 0xca, 0xcf, 0x6e, 0xac, 0x55, 0x8a, 0x95, 0x46, 0xe6, 0x3d, 0x51, 0xfa, 0x5d, 0x59,
		0xe7, 0xdf, 0xaf, 0x44, 0xfd, 0xf5, 0xaf, 0x46, 0x3f, 0x2d, 0x05, 0x63, 0xaf, 0x46, 0x95, 0xd9,
		0x6d, 0x2f, 0x3d, 0xd4, 0xf6, 0x9e, 0xe3, 0x08, 0x8c, 0x0b, 0x24, 0x5d, 0x6e, 0xca, 0xfc, 0xf4,
		0x46, 0xe1, 0x21, 0xca, 0x48, 0x84, 0x32, 0x92, 0x40, 0x91, 0xe2, 0x5a, 0xad, 0x5e, 0x2e, 0x51,
		0x36, 0xe2, 0x28, 0x54, 0xdb, 0x28, 0x57, 0x33, 0xaf, 0x88, 0x26, 0xdd, 0x23, 0x1f, 0x2f, 0x4b,
		0x70, 0x4c, 0x6c, 0xd4, 0xf2, 0xb5, 0x16, 0x1b, 0x4d, 0xb3, 0x25, 0xbc, 0xdb, 0xd4, 0xca, 0xf9,
		0x83, 0x1a, 0x57, 0x38, 0x2a, 0x15, 0x49, 0x99, 0x23, 0x16, 0xce, 0x0e, 0x89, 0x24, 0x5f, 0x2d,
		0x71, 0x5e, 0x12, 0x28, 0xb2, 0x91, 0x2f, 0x3e, 0x5d, 0x2e, 0xb9, 0xdc, 0x1c, 0xe9, 0x8d, 0xa2,
		0x82, 0xbe, 0x03, 0xd2, 0x7d, 0x7b, 0xfb, 0x49, 0xa2, 0x1b, 0x7a, 0x8b, 0xed, 0x9c, 0x87, 0xc6,
		0x6d, 0xb9, 0xba, 0x1c, 0x6d, 0xda, 0xdb, 0x4f, 0xde, 0x70, 0x30, 0xb8, 0x50, 0x18, 0x2b, 0x71,
		0x14, 0xaa, 0xd6, 0xaa, 0x65, 0xc1, 0x06, 0xdd, 0x65, 0xbe, 0xe9, 0xb2, 0x91, 0xea, 0xfb, 0x50,
		0xd1, 0x77, 0x80, 0x2c, 0xd2, 0x43, 0x8e, 0x48, 0xc2, 0xe3, 0x76, 0x8d, 0x5d, 0x06, 0x78, 0x92,
		0xc9, 0x11, 0xc6, 0x03, 0x1e, 0x0e, 0x16, 0x50, 0x7a, 0xad, 0x5c, 0xbd, 0xda, 0xb8, 0xa6, 0x6e,
		0x28, 0x65, 0xba, 0xf9, 0x97, 0x79, 0x8f, 0x68, 0x3e, 0xdd, 0xf1, 0x23, 0xa2, 0xef, 0x94, 0x20,
		0xc1, 0x5c, 0x20, 0x96, 0x93, 0x62, 0x49, 0x85, 0x07, 0x0e, 0x6a, 0x9b, 0x7a, 0x40, 0x14, 0xba,
		0x70, 0x89, 0x36, 0x1b, 0x14, 0x0a, 0x71, 0x0c, 0xa1, 0xb5, 0xf2, 0xd5, 0x7c, 0xf1, 0xa6, 0x5a,
		0x28, 0xd7, 0x1b, 0xc4, 0x92, 0xd5, 0x14, 0xa6, 0xa3, 0x80, 0xc2, 0xf9, 0xb5, 0xb5, 0xda, 0x33,
		0xae, 0x20, 0xe0, 0x79, 0x87, 0x0c, 0xfa, 0x69, 0x09, 0x16, 0xb0, 0xb1, 0x6d, 0xf6, 0x9a, 0x74,
		0xc3, 0x9a, 0xcc, 0x68, 0xcb, 0xde, 0x6f, 0xb3, 0x19, 0x3d, 0x32, 0x28, 0xf7, 0x6a, 0x26, 0xc5,
		0xab, 0x52, 0xb4, 0x3a, 0xc1, 0x2a, 0x54, 0xde, 0x2b, 0x05, 0x5e, 0x26, 0x8c, 0x05, 0x28, 0x6f,
		0xa1, 0x97, 0xa5, 0x30, 0xe5, 0x30, 0xfa, 0xb2, 0x14, 0x7b, 0x59, 0x8a, 0x7f, 0x4c, 0x9a, 0x43,
		0xc9, 0x7a, 0xe3, 0xe6, 0x5a, 0x59, 0x65, 0xdc, 0x52, 0x0e, 0x53, 0x28, 0x4e, 0xcb, 0x56, 0x1e,
		0x5d, 0x79, 0x3c, 0xf3, 0x25, 0xca, 0xe5, 0x97, 0xa2, 0x0a, 0xc2, 0x43, 0xe4, 0xd1, 0x2f, 0x49,
		0x70, 0x5c, 0x6c, 0x91, 0x5b, 0x74, 0xdb, 0x4c, 0xf5, 0x6c, 0xb0, 0xc5, 0x28, 0xcb, 0xe5, 0x83,
		0x58, 0x76, 0x77, 0xd9, 0x78, 0xe1, 0x32, 0x0f, 0x78, 0x07, 0x37, 0xe1, 0x0a, 0x17, 0x59, 0x4f,
		0x3e, 0x26, 0xa5, 0x11, 0x94, 0x9f, 0xdd, 0xa8, 0x29, 0x0d, 0x35, 0xbf, 0xb6, 0x46, 0xf9, 0x3d,
		0x82, 0x64, 0x5e, 0xd2, 0xa8, 0x6d, 0xa8, 0x6b, 0xe5, 0x1b, 0xe5, 0x35, 0x97, 0xed, 0x63, 0xad,
		0xd1, 0x04, 0xb3, 0x1f, 0x95, 0x60, 0x6e, 0xa8, 0xf9, 0xdc, 0xbb, 0x24, 0x38, 0x36, 0x86, 0x05,
		0x74, 0x3f, 0x9c, 0x2a, 0x95, 0xaf, 0xe4, 0x37, 0xd7, 0x1a, 0x6a, 0xfd, 0xe6, 0x7a, 0xa1, 0xb6,
		0xa6, 0xde, 0xa8, 0xd4, 0x2b, 0x85, 0xca, 0x5a, 0xa5, 0xe1, 0x5d, 0xc0, 0x52, 0xe0, 0x61, 0x90,
		0x85, 0x6b, 0x83, 0xec, 0xc9, 0x01, 0x12, 0x14, 0xae, 0xd5, 0x8a, 0xf9, 0x35, 0x0a, 0x14, 0x14,
		0x31, 0x67, 0xb1, 0x21, 0x87, 0xae, 0xc7, 0x62, 0x12, 0x5f, 0xdb, 0xbe, 0x15, 0x66, 0x7d, 0xc6,
		0x8f, 0x84, 0x48, 0x34, 0xb4, 0x22, 0xfa, 0x5c, 0x2f, 0x57, 0x8b, 0xde, 0x90, 0x2e, 0x09, 0x8e,
		0xb1, 0x93, 0x25, 0xf2, 0x25, 0x4c, 0xa1, 0x1c, 0x20, 0x8b, 0x2a, 0x57, 0x47, 0x67, 0x73, 0x3a,
		0x98, 0x7b, 0x02, 0x62, 0xc2, 0x98, 0x91, 0x40, 0x8d, 0xc6, 0x5b, 0x03, 0x61, 0x62, 0x0c, 0xa8,
		0x25, 0x93, 0x25, 0xc2, 0x20, 0xb3, 0x70, 0x72, 0x20, 0x77, 0x03, 0x8e, 0x8c, 0x34, 0x44, 0xe8,
		0x3e, 0x58, 0x14, 0x1b, 0xe2, 0x2c, 0x04, 0x54, 0xcb, 0xd5, 0x62, 0xad, 0x44, 0x82, 0x66, 0x97,
		0x26, 0x00, 0xb7, 0x48, 0x8c, 0x4b, 0x61, 0xad, 0xe4, 0x40, 0xae, 0x02, 0x29, 0xbf, 0x39, 0x41,
		0x27, 0xe0, 0xd8, 0x66, 0xe3, 0xca, 0x93, 0xea, 0x8d, 0xfc, 0x5a, 0xa5, 0x94, 0x1f, 0x08, 0x8f,
		0x01, 0xb8, 0x4d, 0x91, 0x03, 0x84, 0x51, 0x62, 0x6b, 0xe4, 0x60, 0x2e, 0x14, 0x93, 0x64, 0x29,
		0x57, 0x87, 0xf4, 0x80, 0x61, 0x40, 0xf7, 0x40, 0x86, 0xc7, 0xab, 0xa3, 0xb8, 0xa2, 0x12, 0xf2,
		0x99, 0x0a, 0x16, 0xb9, 0x97, 0xca, 0x6b, 0x95, 0xf5, 0x4a, 0x83, 0xf2, 0x77, 0x0d, 0xc0, 0x9d,
		0xf1, 0xc4, 0x83, 0xb9, 0x5e, 0xaf, 0x55, 0xd5, 0x2b, 0x24, 0xec, 0x6f, 0x78, 0x48, 0xc5, 0x81,
		0xcd, 0x70, 0x59, 0x22, 0xd1, 0xe9, 0xb0, 0x19, 0x90, 0x03, 0xb9, 0x67, 0x00, 0x0d, 0xcf, 0x56,
		0xb4, 0x04, 0xf7, 0x94, 0xab, 0x57, 0x6a, 0x4a, 0xb1, 0xac, 0x56, 0xf3, 0xeb, 0x84, 0x3f, 0x36,
		0x37, 0x5d, 0xd2, 0xb3, 0xe0, 0x4e, 0x4d, 0x91, 0x93, 0x70, 0x67, 0xaf, 0x1c, 0x38, 0xf3, 0x29,
		0x89, 0x78, 0x46, 0xef, 0xab, 0x66, 0x3f, 0x21, 0xa1, 0x7b, 0x63, 0xaf, 0x46, 0x51, 0x74, 0xb9,
		0xbb, 0xb5, 0xdc, 0xec, 0x76, 0xb3, 0x69, 0xf2, 0x47, 0xb1, 0xdb, 0xbd, 0x22, 0xfc, 0xbd, 0xc5,
		0xd8, 0x97, 0xa2, 0x28, 0x46, 0x4a, 0x9f, 0xd7, 0x6e, 0x6b, 0x59, 0x99, 0xfc, 0x75, 0x5d, 0xbb,
		0xad, 0x39, 0x00, 0x27, 0x62, 0x5f, 0x8e, 0xa2, 0x08, 0x29, 0xde, 0x31, 0xb3, 0x29, 0xf2, 0xff,
		0x55, 0xd3, 0xa9, 0xbc, 0x2f, 0xf6, 0x95, 0x28, 0x02, 0x52, 0xd8, 0xdd, 0xb7, 0x77, 0x4d, 0x23,
		0x8b, 0xc8, 0xdf, 0x1b, 0xf4, 0x6f, 0x0f, 0xd0, 0x77, 0x57, 0x39, 0x10, 0x99, 0xfc, 0xe7, 0x39,
		0x10, 0xfd, 0x5b, 0x00, 0x9d, 0x89, 0xc4, 0xde, 0x57, 0x95, 0x3f, 0x50, 0x3d, 0x13, 0x89, 0x7d,
		0xa0, 0x2a, 0x7f, 0x7f, 0xf5, 0x7a, 0x24, 0xf6, 0x4a, 0x54, 0x7e, 0x35, 0x9a, 0xfb, 0xd3, 0x20,
		0x20, 0xd7, 0x54, 0x38, 0x59, 0xc0, 0x67, 0x21, 0xe6, 0xa4, 0x15, 0xd9, 0x39, 0xef, 0x37, 0x1f,
		0x60, 0x61, 0x04, 0x9a, 0xa7, 0x68, 0x20, 0xcd, 0xe8, 0x50, 0x43, 0x79, 0x48, 0x77, 0x74, 0x43,
		0xef, 0xf4, 0x3b, 0xaa, 0xc8, 0xb5, 0x4d, 0xcc, 0x21, 0x71, 0x04, 0xfe, 0x4d, 0x49, 0x68, 0x7b,
		0x3e, 0x12, 0xe1, 0x89, 0x24, 0x18, 0x02, 0xff, 0xce, 0xfe, 0xb5, 0x04, 0x99, 0x71, 0xcc, 0xde,
		0x55, 0x1a, 0xb0, 0x0a, 0x0b, 0xe6, 0x6d, 0xdc, 0xeb, 0xe9, 0x2d, 0xba, 0xb3, 0xe7, 0x04, 0x07,
		0xa1, 0xc9, 0xc1, 0xc1, 0xbc, 0x07, 0xd1, 0x19, 0xd4, 0x02, 0xf1, 0xe1, 0xf6, 0x88, 0xfb, 0x22,
		0x28, 0x85, 0x27, 0x53, 0x9a, 0xa5, 0x28, 0x82, 0xc6, 0x75, 0x32, 0x49, 0x49, 0x3c, 0x1e, 0x90,
		0x83, 0x6e, 0x04, 0x92, 0xfb, 0x70, 0x10, 0x52, 0xfe, 0xe3, 0xca, 0xa8, 0x04, 0xb1, 0xb6, 0xc9,
		0xcf, 0xf1, 0xb1, 0xd1, 0x3e, 0x3d, 0xe1, 0x84, 0xf3, 0xf2, 0x1a, 0x87, 0x57, 0x1c, 0xcc, 0xec,
		0xbf, 0x95, 0x20, 0x26, 0x8a, 0xd1, 0x51, 0x08, 0x75, 0x35, 0x7b, 0x97, 0x92, 0x0b, 0x17, 0x02,
		0xb2, 0xa4, 0xd0, 0x6f, 0x52, 0x6e, 0x75, 0x35, 0x76, 0x86, 0x91, 0x97, 0x93, 0x6f, 0x12, 0x05,
		0xb4, 0xb1, 0xd6, 0xa2, 0x7b, 0xd2, 0x66, 0xa7, 0x83, 0x0d, 0xdb, 0x12, 0x51, 0x00, 0x2f, 0x2f,
		0xf2, 0x62, 0xf4, 0x30, 0xcc, 0xd9, 0x3d, 0x4d, 0x6f, 0xfb, 0x60, 0x43, 0x14, 0x56, 0x16, 0x15,
		0x0e, 0xf0, 0x2a, 0x1c, 0x17, 0x74, 0x5b, 0xd8, 0xd6, 0x9a, 0xbb, 0xb8, 0xe5, 0x22, 0x45, 0xe8,
		0xf1, 0x95, 0x63, 0x1c, 0xa0, 0xc4, 0xeb, 0x05, 0xee, 0x99, 0xbe, 0xef, 0xba, 0xc2, 0x0e, 0xc2,
		0xfc, 0xba, 0xc2, 0xf9, 0x31, 0xd7, 0x15, 0x06, 0x4f, 0x8b, 0x7b, 0xee, 0x2a, 0x9c, 0x19, 0x81,
		0xe2, 0x97, 0xa8, 0xeb, 0xce, 0x7f, 0x3e, 0x00, 0x73, 0x62, 0xf3, 0xbe, 0xe5, 0x8c, 0xd1, 0x3a,
		0x80, 0x66, 0x18, 0xa6, 0xed, 0x1d, 0xa5, 0xe1, 0x78, 0x6b, 0x08, 0x6f, 0x39, 0xef, 0x20, 0x29,
		0x1e, 0x02, 0xd9, 0xaf, 0x48, 0x00, 0x6e, 0xd5, 0xd8, 0xe1, 0x5a, 0x84, 0x04, 0xef, 0x15, 0xbd,
		0xf2, 0xc1, 0x72, 0xdc, 0xc0, 0x8a, 0xae, 0xe8, 0x6d, 0x7a, 0x2a, 0x67, 0x0b, 0xef, 0xe8, 0x06,
		0x3f, 0x91, 0xc8, 0x3e, 0xc4, 0xa9, 0x9c, 0x90, 0x7b, 0x62, 0x57, 0x81, 0x98, 0x85, 0x3b, 0x9a,
		0x61, 0xeb, 0x4d, 0x3e, 0x59, 0x2f, 0x1e, 0x8a, 0xf9, 0xe5, 0x3a, 0xc7, 0x56, 0x1c, 0x3a, 0xb9,
		0xd3, 0x10, 0x13, 0xa5, 0xce, 0xd2, 0x34, 0x83, 0xa2, 0x10, 0xac, 0x97, 0xc9, 0xe2, 0x4c, 0x57,
		0x88, 0x4a, 0xbe, 0x2e, 0x07, 0xce, 0x7c, 0x22, 0x00, 0x51, 0x61, 0x3d, 0xe6, 0x21, 0x5d, 0x2e,
		0x55, 0x06, 0x56, 0xb9, 0x79, 0x48, 0x89, 0x42, 0x6e, 0xe5, 0xdf, 0x13, 0xf5, 0x16, 0x6e, 0x28,
		0xb5, 0x46, 0x6d, 0x45, 0xfe, 0xe3, 0xe1, 0xc2, 0xc7, 0xe4, 0x57, 0xa2, 0x68, 0x0e, 0x92, 0xa2,
		0x70, 0xe5, 0xd1, 0x95, 0xc7, 0xe4, 0x57, 0x07, 0x8b, 0x1e, 0x97, 0xbf, 0x44, 0xd3, 0xab, 0xa2,
		0xe8, 0xbc, 0xda, 0x20, 0x4b, 0x55, 0xad, 0xba, 0x76, 0x53, 0x96, 0xbc, 0x15, 0x2b, 0x9e, 0x8a,
		0x00, 0xba, 0x17, 0x8e, 0x89, 0x8a, 0x4b, 0x97, 0x2e, 0x5d, 0x7a, 0xc2, 0x53, 0x79, 0xe7, 0xfd,
		0x91, 0xc1, 0xea, 0x27, 0x3d, 0xd5, 0x1f, 0x1e, 0xae, 0xbe, 0xe4, 0xa9, 0xfe, 0xb1, 0xf7, 0x47,
		0xd0, 0x3c, 0x24, 0x44, 0xf5, 0x7a, 0xfe, 0x59, 0xf9, 0xeb, 0x5f, 0xff, 0xfa, 0xd7, 0xa3, 0x67,
		0x36, 0x41, 0x1e, 0x72, 0xc9, 0x16, 0x40, 0xf6, 0xf9, 0x60, 0x44, 0xbc, 0x33, 0x03, 0xa5, 0xd4,
		0xcd, 0x92, 0x25, 0xe2, 0xe2, 0x78, 0x4a, 0x99, 0x4b, 0x26, 0x07, 0x0a, 0xdf, 0x01, 0xf3, 0x4d,
		0xb3, 0x33, 0x38, 0xe2, 0x05, 0x79, 0xe0, 0xc8, 0x91, 0x75, 0x4d, 0x7a, 0xee, 0x2c, 0x07, 0xda,
		0x31, 0xdb, 0x9a, 0xb1, 0xb3, 0x6c, 0xf6, 0x76, 0xdc, 0x2b, 0x4b, 0x24, 0x7c, 0xb4, 0x3c, 0x17,
		0x97, 0xba, 0x5b, 0x7f, 0x2d, 0x49, 0x1f, 0x0b, 0x04, 0xaf, 0x6e, 0x14, 0x7e, 0x2a, 0x90, 0xbd,
		0xca, 0x10, 0x37, 0x84, 0x3e, 0x29, 0x78, 0xbb, 0x8d, 0x9b, 0x64, 0xd0, 0xe1, 0x4f, 0x1e, 0x86,
		0x85, 0x1d, 0x73, 0xc7, 0xa4, 0x94, 0xce, 0x91, 0xbf, 0xf8, 0x9d, 0xa7, 0xb8, 0x53, 0x9a, 0x9d,
		0x78, 0x41, 0x6a, 0xb5, 0x0a, 0xf3, 0x1c, 0x58, 0xa5, 0xd1, 0x2c, 0x3b, 0x15, 0x81, 0x0e, 0x3c,
		0x9c, 0x97, 0xf9, 0xb9, 0x3f, 0xa2, 0x69, 0x48, 0x65, 0x8e, 0xa3, 0x92, 0x3a, 0x76, 0x70, 0x62,
		0x55, 0x81, 0x23, 0x3e, 0x7a, 0x2c, 0x93, 0x80, 0x7b, 0x13, 0x28, 0xfe, 0x3a, 0xa7, 0x38, 0xef,
		0xa1, 0x58, 0xe7, 0xa8, 0xab, 0x45, 0x98, 0x3d, 0x0c, 0xad, 0x7f, 0xc9, 0x69, 0x25, 0xb1, 0x97,
		0xc8, 0x55, 0x48, 0x53, 0x22, 0xcd, 0xbe, 0x65, 0x9b, 0x1d, 0x9a, 0xa6, 0x39, 0x98, 0xcc, 0xbf,
		0xfa, 0x23, 0x66, 0xac, 0x53, 0x04, 0xad, 0xe8, 0x60, 0xad, 0xae, 0x02, 0x8d, 0xca, 0x5b, 0xb8,
		0xd9, 0x9e, 0x40, 0xe1, 0x37, 0x38, 0x23, 0x0e, 0xfc, 0xea, 0x0d, 0x12, 0xa4, 0xf5, 0x3b, 0x34,
		0x8b, 0xe2, 0xe5, 0x64, 0xf2, 0x31, 0xbc, 0xcc, 0x6f, 0xbf, 0x9b, 0xad, 0x07, 0xf3, 0x0e, 0x01,
		0x0f, 0x4f, 0x9e, 0x51, 0xdc, 0xc1, 0xb6, 0x8d, 0x7b, 0x96, 0xaa, 0xb5, 0x47, 0xb1, 0xe7, 0x39,
		0xc7, 0x94, 0xf9, 0x91, 0xaf, 0xfa, 0x47, 0xf1, 0x2a, 0xc3, 0xcc, 0xb7, 0xdb, 0xab, 0x9b, 0x70,
		0x6c, 0x84, 0x56, 0x4c, 0x41, 0xf3, 0x47, 0x39, 0xcd, 0x85, 0x21, 0xcd, 0x20, 0x64, 0x37, 0x40,
		0x94, 0x3b, 0x63, 0x39, 0x05, 0xcd, 0x0f, 0x72, 0x9a, 0x88, 0xe3, 0x8a, 0x21, 0x25, 0x14, 0xaf,
		0xc3, 0xdc, 0x6d, 0xdc, 0xdb, 0x32, 0x2d, 0x7e, 0x76, 0x6c, 0x0a, 0x72, 0x1f, 0xe2, 0xe4, 0xd2,
		0x1c, 0x91, 0x1e, 0x26, 0x23, 0xb4, 0x2e, 0x41, 0x6c, 0x5b, 0x6b, 0xe2, 0x29, 0x48, 0xdc, 0xe1,
		0x24, 0xa2, 0x04, 0x9e, 0xa0, 0xe6, 0x21, 0xb9, 0x63, 0xf2, 0x44, 0xda, 0x64, 0xf4, 0x0f, 0x73,
		0xf4, 0x84, 0xc0, 0xe1, 0x24, 0xba, 0x66, 0xb7, 0xdf, 0xd6, 0xec, 0x69, 0x38, 0xf8, 0x31, 0x41,
		0x42, 0xe0, 0x70, 0x12, 0x87, 0x10, 0xeb, 0x47, 0x04, 0x09, 0xcb, 0x23, 0xcf, 0xa7, 0x20, 0x61,
		0x1a, 0xed, 0x7d, 0xd3, 0x98, 0x86, 0x89, 0x8f, 0x72, 0x0a, 0xc0, 0x51, 0x08, 0x81, 0xcb, 0x10,
		0x9f, 0x76, 0x20, 0x7e, 0xe2, 0xab, 0x62, 0x7a, 0x88, 0x11, 0xb8, 0x0a, 0x69, 0x61, 0xa0, 0x74,
		0xd3, 0x98, 0x82, 0xc4, 0xc7, 0x39, 0x89, 0x94, 0x07, 0x8d, 0x77, 0xc3, 0xc6, 0x96, 0xbd, 0x83,
		0xa7, 0x21, 0xf2, 0x09, 0xd1, 0x0d, 0x8e, 0xc2, 0x45, 0xb9, 0x85, 0x8d, 0xe6, 0xee, 0x74, 0x14,
		0x3e, 0x29, 0x44, 0x29, 0x70, 0x08, 0x89, 0x22, 0xcc, 0x76, 0xb4, 0x9e, 0xb5, 0xab, 0xb5, 0xa7,
		0x1a, 0x8e, 0x9f, 0xe4, 0x34, 0x92, 0x0e, 0x12, 0x97, 0x48, 0xdf, 0x38, 0x0c, 0x99, 0x9f, 0x12,
		0x12, 0xf1, 0xa0, 0xf1, 0xa9, 0x67, 0xd9, 0xd4, 0x8f, 0x3f, 0x0c, 0xb5, 0x9f, 0x16, 0x53, 0x8f,
		0xe1, 0xae, 0x7b, 0x29, 0x5e, 0x86, 0xb8, 0xa5, 0xbf, 0x38, 0x15, 0x99, 0x9f, 0x11, 0x23, 0x4d,
		0x11, 0x08, 0xf2, 0x4d, 0x38, 0x3e, 0x72, 0x99, 0x98, 0x82, 0xd8, 0xcf, 0x72, 0x62, 0x47, 0x47,
		0x2c, 0x15, 0xdc, 0x24, 0x1c, 0x96, 0xe4, 0x3f, 0x10, 0x26, 0x01, 0x0f, 0xd0, 0xda, 0x80, 0x85,
		0xbe, 0x61, 0x69, 0xdb, 0x87, 0x93, 0xda, 0x3f, 0x14, 0x52, 0x63, 0xb8, 0x3e, 0xa9, 0x35, 0xe0,
		0x28, 0xa7, 0x78, 0xb8, 0x71, 0xfd, 0x94, 0x30, 0xac, 0x0c, 0x7b, 0xd3, 0x3f, 0xba, 0xdf, 0x02,
		0x59, 0x47, 0x9c, 0xc2, 0xe9, 0xb6, 0xd4, 0x8e, 0xd6, 0x9d, 0x82, 0xf2, 0xcf, 0x71, 0xca, 0xc2,
		0xe2, 0x3b, 0x5e, 0xbb, 0xb5, 0xae, 0x75, 0x09, 0xf1, 0x67, 0x21, 0x23, 0x88, 0xf7, 0x8d, 0x1e,
		0x6e, 0x9a, 0x3b, 0x86, 0xfe, 0x22, 0x6e, 0x4d, 0x41, 0xfa, 0xd3, 0x03, 0x43, 0xb5, 0xe9, 0x41,
		0x27, 0x94, 0x2b, 0x20, 0x3b, 0xbe, 0x8a, 0xaa, 0x77, 0xe8, 0x7e, 0xe3, 0xc1, 0x14, 0x3f, 0x23,
		0x46, 0xca, 0xc1, 0xab, 0x50, 0xb4, 0xd5, 0x32, 0xb0, 0x0b, 0x2c, 0xd3, 0xaa, 0xe4, 0x67, 0x39,
		0xa1, 0x59, 0x17, 0x8b, 0x1b, 0x8e, 0xa6, 0xd9, 0xe9, 0x6a, 0xbd, 0x69, 0xec, 0xdf, 0x3f, 0x12,
		0x86, 0x83, 0xa3, 0x70, 0xc3, 0x41, 0x3c, 0x3a, 0xb2, 0xda, 0x4f, 0x41, 0xe1, 0xe7, 0x85, 0xe1,
		0x10, 0x38, 0x9c, 0x84, 0x70, 0x18, 0xa6, 0x20, 0xf1, 0x0b, 0x82, 0x84, 0xc0, 0x21, 0x24, 0xde,
		0xe6, 0x2e, 0xb4, 0x3d, 0xbc, 0xa3, 0x5b, 0x36, 0xbf, 0x62, 0x76, 0x30, 0xa9, 0x5f, 0xfc, 0xaa,
		0xdf, 0x09, 0x53, 0x3c, 0xa8, 0xc4, 0x12, 0xf1, 0xc4, 0x37, 0xdd, 0xd8, 0x99, 0xcc, 0xd8, 0x2f,
		0x09, 0x4b, 0xe4, 0x41, 0x23, 0xbc, 0x79, 0x3c, 0x44, 0x22, 0xf6, 0x26, 0x09, 0x50, 0xa7, 0x20,
		0xf7, 0x8f, 0x07, 0x98, 0xab, 0x0b, 0x5c, 0x42, 0xd3, 0xe3, 0xff, 0xf4, 0x8d, 0x5b, 0x78, 0x7f,
		0x2a, 0xed, 0xfc, 0x27, 0x03, 0xfe, 0xcf, 0x26, 0xc3, 0x64, 0x36, 0x24, 0x3d, 0xe0, 0x4f, 0xa1,
		0x49, 0x57, 0x58, 0x33, 0xef, 0x7a, 0x8d, 0xf7, 0xd7, 0xef, 0x4e, 0xad, 0xae, 0x11, 0x25, 0xf7,
		0x3b, 0x3d, 0x93, 0x89, 0xbd, 0xfb, 0x35, 0x47, 0xcf, 0x7d, 0x3e, 0xcf, 0xea, 0x15, 0x98, 0xf5,
		0x39, 0x3c, 0x93, 0x49, 0xbd, 0x87, 0x93, 0x4a, 0x7a, 0xfd, 0x9d, 0xd5, 0x0b, 0x10, 0x22, 0xce,
		0xcb, 0x64, 0xf4, 0xef, 0xe2, 0xe8, 0x14, 0x7c, 0xf5, 0x2d, 0x10, 0x13, 0x4e, 0xcb, 0x64, 0xd4,
		0xef, 0xe6, 0xa8, 0x0e, 0x0a, 0x41, 0x17, 0x0e, 0xcb, 0x64, 0xf4, 0xff, 0x47, 0xa0, 0x0b, 0x14,
		0x82, 0x3e, 0xbd, 0x08, 0x7f, 0xf5, 0x7d, 0x21, 0xbe, 0xe8, 0x08, 0xd9, 0x5d, 0x86, 0x28, 0xf7,
		0x54, 0x26, 0x63, 0x7f, 0x0f, 0x6f, 0x5c, 0x60, 0xac, 0x3e, 0x01, 0xe1, 0x29, 0x05, 0xfe, 0x7e,
		0x8e, 0xca, 0xe0, 0x57, 0x8b, 0x90, 0xf0, 0x78, 0x27, 0x93, 0xd1, 0xbf, 0x8f, 0xa3, 0x7b, 0xb1,
		0x08, 0xeb, 0xdc, 0x3b, 0x99, 0x4c, 0xe0, 0xff, 0x15, 0xac, 0x73, 0x0c, 0x22, 0x36, 0xe1, 0x98,
		0x4c, 0xc6, 0xfe, 0x80, 0x90, 0xba, 0x40, 0x59, 0x7d, 0x0a, 0xe2, 0xce, 0x62, 0x33, 0x19, 0xff,
		0xfb, 0x39, 0xbe, 0x8b, 0x43, 0x24, 0xe0, 0x59, 0xec, 0x26, 0x93, 0xf8, 0xff, 0x84, 0x04, 0x3c,
		0x58, 0x64, 0x1a, 0x0d, 0x3a, 0x30, 0x93, 0x29, 0xfd, 0x80, 0x98, 0x46, 0x03, 0xfe, 0x0b, 0x19,
		0x4d, 0x6a, 0xf3, 0x27, 0x93, 0xf8, 0x41, 0x31, 0x9a, 0x14, 0x9e, 0xb0, 0x31, 0xe8, 0x11, 0x4c,
		0xa6, 0xf1, 0xc3, 0x82, 0x8d, 0x01, 0x87, 0x60, 0x75, 0x03, 0xd0, 0xb0, 0x37, 0x30, 0x99, 0xde,
		0xcb, 0x9c, 0xde, 0xdc, 0x90, 0x33, 0xb0, 0xfa, 0x0c, 0x1c, 0x1d, 0xed, 0x09, 0x4c, 0xa6, 0xfa,
		0x23, 0xaf, 0x0d, 0xc4, 0x6e, 0x5e, 0x47, 0x60, 0xb5, 0xe1, 0x2e, 0x29, 0x5e, 0x2f, 0x60, 0x32,
		0xd9, 0x1f, 0x7d, 0xcd, 0x6f, 0xb8, 0xbd, 0x4e, 0xc0, 0x6a, 0x1e, 0xc0, 0x5d, 0x80, 0x27, 0xd3,
		0xfa, 0x10, 0xa7, 0xe5, 0x41, 0x22, 0x53, 0x83, 0xaf, 0xbf, 0x93, 0xf1, 0xef, 0x88, 0xa9, 0xc1,
		0x31, 0xc8, 0xd4, 0x10, 0x4b, 0xef, 0x64, 0xec, 0x0f, 0x8b, 0xa9, 0x21, 0x50, 0x88, 0x66, 0x7b,
		0x56, 0xb7, 0xc9, 0x14, 0x3e, 0x2a, 0x34, 0xdb, 0x83, 0xb5, 0x5a, 0x85, 0xb9, 0xa1, 0x05, 0x71,
		0x32, 0xa9, 0x8f, 0x71, 0x52, 0xf2, 0xe0, 0x7a, 0xe8, 0x5d, 0xbc, 0xf8, 0x62, 0x38, 0x99, 0xda,
		0x8f, 0x0f, 0x2c, 0x5e, 0x7c, 0x2d, 0x5c, 0xbd, 0x0c, 0x31, 0xa3, 0xdf, 0x6e, 0x93, 0xc9, 0x83,
		0x0e, 0xbe, 0x62, 0x9c, 0xf9, 0xd2, 0xd7, 0xb8, 0x74, 0x04, 0xc2, 0xea, 0x05, 0x08, 0xe3, 0xce,
		0x16, 0x6e, 0x4d, 0xc2, 0xfc, 0xf2, 0xd7, 0x84, 0xc1, 0x24, 0xd0, 0xab, 0x4f, 0x01, 0xb0, 0xd4,
		0x08, 0x3d, 0x63, 0x3f, 0x01, 0xf7, 0x2b, 0x5f, 0xe3, 0x17, 0xf2, 0x5c, 0x14, 0x97, 0x00, 0xbb,
		0xde, 0x77, 0x30, 0x81, 0xaf, 0xfa, 0x09, 0xd0, 0x11, 0xb9, 0x04, 0xd1, 0xe7, 0x2d, 0xd3, 0xb0,
		0xb5, 0x9d, 0x49, 0xd8, 0x7f, 0xc2, 0xb1, 0x05, 0x3c, 0x11, 0x58, 0xc7, 0xec, 0x61, 0x5b, 0xdb,
		0xb1, 0x26, 0xe1, 0xfe, 0x17, 0x8e, 0xeb, 0x20, 0x10, 0xe4, 0xa6, 0x66, 0xd9, 0xd3, 0xf4, 0xfb,
		0x4f, 0x05, 0xb2, 0x40, 0x20, 0x4c, 0x93, 0xbf, 0x6f, 0xe1, 0xfd, 0x49, 0xb8, 0x7f, 0x26, 0x98,
		0xe6, 0xf0, 0xab, 0x6f, 0x81, 0x38, 0xf9, 0x93, 0x5d, 0xd4, 0x9d, 0x80, 0xfc, 0xe7, 0x1c, 0xd9,
		0xc5, 0x20, 0x2d, 0x5b, 0x76, 0xcb, 0xd6, 0x27, 0x0b, 0xfb, 0x2f, 0xf8, 0x48, 0x0b, 0xf8, 0xd5,
		0x3c, 0x24, 0x2c, 0xbb, 0xd5, 0xea, 0x73, 0xff, 0x74, 0x02, 0xfa, 0x5f, 0x7e, 0xcd, 0x49, 0x59,
		0x38, 0x38, 0x64, 0xb4, 0x5f, 0xb8, 0x65, 0x77, 0x4d, 0x7a, 0x2a, 0x6b, 0x12, 0x85, 0xd7, 0x38,
		0x05, 0x0f, 0xca, 0x6a, 0x11, 0x92, 0xa4, 0x2f, 0xe2, 0x70, 0xcb, 0x24, 0x12, 0x7f, 0xc5, 0x05,
		0xe0, 0x43, 0x2a, 0x7c, 0xfb, 0x6f, 0x7c, 0xf1, 0xa4, 0xf4, 0xf9, 0x2f, 0x9e, 0x94, 0xfe, 0xf3,
		0x17, 0x4f, 0x4a, 0x1f, 0xf8, 0xc3, 0x93, 0x33, 0x9f, 0xff, 0xc3, 0x93, 0x33, 0xbf, 0xfb, 0x87,
		0x27, 0x67, 0x46, 0x67, 0x89, 0xe1, 0xaa, 0x79, 0xd5, 0x64, 0xf9, 0xe1, 0xe7, 0xee, 0xdf, 0xd1,
		0xed, 0xdd, 0xfe, 0xd6, 0x72, 0xd3, 0xec, 0x9c, 0x6b, 0x9a, 0x56, 0xc7, 0xb4, 0xce, 0xf9, 0xf3,
		0xba, 0xf4, 0x2f, 0xf8, 0x1b, 0x89, 0xc4, 0xcc, 0xfe, 0x74, 0xae, 0x66, 0xec, 0x8f, 0x7b, 0xe8,
		0xea, 0x22, 0x04, 0xf3, 0xc6, 0x3e, 0x3a, 0xce, 0x0c, 0x9c, 0xda, 0xef, 0xb5, 0xf9, 0x55, 0xcf,
		0x28, 0xf9, 0xde, 0xec, 0xb5, 0xfd, 0xc7, 0xfc, 0x93, 0xfc, 0x98, 0x7f, 0xe1, 0xfb, 0xa4, 0xc3,
		0xf5, 0x24, 0x96, 0x37, 0xf6, 0x69, 0x47, 0x36, 0xa4, 0xe7, 0x1e, 0x99, 0x98, 0xe7, 0xbe, 0x65,
		0x98, 0x2f, 0x18, 0x84, 0xed, 0xee, 0x96, 0xc8, 0x71, 0x9f, 0x1c, 0xcc, 0x71, 0x3f, 0x83, 0xdb,
		0xed, 0xa7, 0x09, 0x5c, 0x83, 0xa0, 0x6c, 0x45, 0xd8, 0xc3, 0x04, 0xf0, 0x03, 0x01, 0x38, 0x39,
		0x94, 0xce, 0xe6, 0x4a, 0x30, 0x4e, 0x08, 0xab, 0x10, 0x2b, 0x09, 0xdd, 0xca, 0x40, 0xd4, 0xc2,
		0x4d, 0xd3, 0x68, 0xb1, 0xf3, 0xda, 0x41, 0x45, 0x7c, 0x12, 0x41, 0x18, 0x9a, 0x61, 0x5a, 0xfc,
		0xb2, 0x34, 0xfb, 0x28, 0x7c, 0xf0, 0x90, 0x82, 0x98, 0x15, 0x2d, 0x09, 0x69, 0x9c, 0x9f, 0x52,
		0x1a, 0xa2, 0x13, 0xbe, 0xcc, 0xff, 0xb4, 0x52, 0xf9, 0xe1, 0x00, 0x2c, 0x0e, 0x4a, 0x85, 0xcc,
		0x2c, 0xcb, 0xd6, 0x3a, 0xdd, 0x71, 0x62, 0xb9, 0x0c, 0xf1, 0x86, 0x80, 0x39, 0xb4, 0x5c, 0xee,
		0x1c, 0x52, 0x2e, 0x29, 0xa7, 0x29, 0x21, 0x98, 0x95, 0x29, 0x05, 0xe3, 0xf4, 0xe3, 0xae, 0x24,
		0xf3, 0xc1, 0x38, 0x1c, 0x67, 0xd3, 0x49, 0x65, 0x53, 0x89, 0x7d, 0x70, 0x99, 0x24, 0xbd, 0x55,
		0x93, 0xf7, 0x49, 0x72, 0x4f, 0xc3, 0x7c, 0x85, 0x58, 0x0b, 0x12, 0x05, 0xb9, 0x3b, 0x3c, 0x23,
		0xef, 0x93, 0x2f, 0xf9, 0x1c, 0x7e, 0xbe, 0xc1, 0xe8, 0x2d, 0xca, 0xbd, 0x4b, 0x02, 0xb9, 0xde,
		0xd4, 0xda, 0x5a, 0xef, 0x1b, 0x25, 0x85, 0x9e, 0x00, 0x60, 0xa7, 0x01, 0x9d, 0xf7, 0xa8, 0x52,
		0x2b, 0x99, 0x65, 0x6f, 0xe7, 0x96, 0x59, 0x4b, 0xf4, 0xae, 0x55, 0x9c, 0xc2, 0x92, 0x3f, 0xcf,
		0x3c, 0x0b, 0xe0, 0x56, 0xa0, 0x13, 0x70, 0xac, 0x5e, 0xcc, 0xaf, 0xe5, 0x15, 0x71, 0x90, 0xa7,
		0xbe, 0x51, 0x2e, 0xb2, 0xb7, 0x5d, 0x66, 0xd0, 0x51, 0x40, 0xde, 0x4a, 0xe7, 0x7e, 0xca, 0x11,
		0x98, 0xf3, 0x96, 0xb3, 0x87, 0x36, 0x02, 0xab, 0xd7, 0x20, 0xcd, 0xae, 0xf0, 0xab, 0x5a, 0xab,
		0x85, 0x5b, 0xaa, 0x6e, 0xa0, 0x09, 0x37, 0xe2, 0x33, 0xbf, 0xf9, 0xef, 0xc3, 0xb4, 0x6b, 0xb3,
		0x0c, 0x31, 0x4f, 0xf0, 0x2a, 0x06, 0xf1, 0x39, 0xf5, 0x4e, 0xb7, 0x8d, 0xe9, 0xde, 0xb5, 0xaa,
		0x0b, 0xf9, 0x4f, 0x76, 0x67, 0x08, 0xbd, 0xe0, 0xe9, 0xb8, 0x32, 0xef, 0xa2, 0x3b, 0xa3, 0xb7,
		0xfa, 0xb4, 0x7b, 0x5e, 0xd0, 0x61, 0x70, 0x22, 0xc5, 0xcf, 0x71, 0x0e, 0x45, 0x36, 0x43, 0xb0,
		0xb8, 0x06, 0x73, 0x5a, 0xb3, 0x89, 0xbb, 0x3e, 0xfe, 0x26, 0xac, 0x20, 0xa2, 0xb7, 0x32, 0xc7,
		0x74, 0x59, 0x7b, 0x02, 0x22, 0x16, 0x1d, 0x94, 0x49, 0x24, 0x04, 0x3b, 0x1c, 0x7c, 0xb5, 0x2c,
		0xce, 0xc7, 0x3a, 0x3d, 0x9a, 0x40, 0xe0, 0x5f, 0x73, 0x02, 0x49, 0x8a, 0x26, 0x7a, 0x63, 0xc0,
		0x1c, 0x7b, 0x49, 0x09, 0x7b, 0x7a, 0x73, 0x70, 0x16, 0xe5, 0x9f, 0x7e, 0xe6, 0x51, 0xba, 0x71,
		0x7f, 0xca, 0xaf, 0x74, 0x23, 0x26, 0x8b, 0x22, 0x73, 0xda, 0x6e, 0x7f, 0x31, 0xa4, 0x44, 0x7b,
		0xbc, 0xdf, 0x07, 0x37, 0xf6, 0xcb, 0xbc, 0xb1, 0x93, 0xa3, 0x34, 0xdc, 0xd3, 0xd2, 0x2c, 0xa7,
		0xca, 0x2a, 0x56, 0x0b, 0x30, 0x4b, 0xdf, 0x5d, 0x74, 0x84, 0x73, 0x70, 0x2b, 0xbf, 0xf2, 0x99,
		0x47, 0xd9, 0x44, 0x23, 0x48, 0x5c, 0x34, 0x85, 0xf2, 0x38, 0xab, 0xf7, 0xdc, 0xc3, 0xc3, 0xeb,
		0x37, 0xfb, 0xef, 0x2c, 0xa5, 0x7e, 0xd9, 0xcb, 0xaa, 0x6b, 0x9d, 0x42, 0x30, 0xa7, 0x75, 0x74,
		0xc3, 0x3c, 0x47, 0xff, 0xe5, 0x56, 0x29, 0x4c, 0x3f, 0xa6, 0xd8, 0xb6, 0xbd, 0xc8, 0x8c, 0xc5,
		0x64, 0xbd, 0xfd, 0xf3, 0xef, 0xfd, 0x78, 0xd8, 0x35, 0x28, 0xab, 0xeb, 0xc3, 0x67, 0x65, 0x27,
		0xd3, 0xf8, 0x0b, 0x41, 0x63, 0xf0, 0xe8, 0xeb, 0xea, 0x9b, 0x21, 0xe6, 0x90, 0x99, 0xe4, 0xbb,
		0x09, 0x22, 0x0e, 0x06, 0xf1, 0xdc, 0x98, 0xd2, 0x4e, 0xe3, 0xa7, 0xbf, 0x26, 0xf0, 0x99, 0x0d,
		0xab, 0x92, 0xde, 0x5c, 0x85, 0x54, 0xcb, 0x34, 0x6c, 0xd5, 0xec, 0xe8, 0x36, 0xee, 0x74, 0xed,
		0x89, 0x9e, 0xef, 0x5f, 0x31, 0x22, 0x31, 0x65, 0x96, 0xe0, 0xd5, 0x04, 0x1a, 0xe1, 0x84, 0x3d,
		0xc6, 0x34, 0x0d, 0x27, 0xff, 0xd5, 0xe1, 0x84, 0xe2, 0x10, 0x4e, 0xee, 0x4a, 0x3b, 0xac, 0xd6,
		0x2d, 0xbe, 0xdc, 0xd9, 0x7b, 0x4c, 0x0b, 0x1c, 0xed, 0xf8, 0xe7, 0x21, 0x38, 0xc9, 0x81, 0xb7,
		0x34, 0x0b, 0x9f, 0xbb, 0x7d, 0x7e, 0x0b, 0xdb, 0xda, 0xf9, 0x73, 0x4d, 0x53, 0x17, 0xbe, 0xce,
		0x3c, 0x5f, 0xce, 0x48, 0xfd, 0x32, 0xaf, 0xcf, 0x8e, 0x3c, 0x10, 0x90, 0x1d, 0xbf, 0x0c, 0x66,
		0x87, 0x75, 0x30, 0xd7, 0x86, 0x50, 0xd1, 0xd4, 0xe9, 0x2d, 0xd0, 0x16, 0x36, 0xcc, 0x0e, 0x5f,
		0x90, 0xd8, 0x07, 0xba, 0x06, 0x11, 0xad, 0x63, 0xf6, 0x0d, 0x9b, 0x2d, 0x46, 0x85, 0x47, 0x7f,
		0xe3, 0x0b, 0x8b, 0x33, 0xbf, 0xf7, 0x85, 0xc5, 0x23, 0x8c, 0xac, 0xd5, 0xba, 0xb5, 0xac, 0x9b,
		0xe7, 0x3a, 0x9a, 0xbd, 0x4b, 0x4c, 0xc0, 0xef, 0x7c, 0xf6, 0x2c, 0xf0, 0xf6, 0x2a, 0x86, 0xfd,
		0xc9, 0x57, 0x3e, 0x75, 0x46, 0x52, 0x38, 0xfe, 0x6a, 0xe8, 0xd5, 0x8f, 0x2c, 0x4a, 0xb9, 0x2e,
		0x44, 0x4b, 0xb8, 0x79, 0x40, 0x83, 0x95, 0x81, 0x06, 0xcf, 0xf3, 0x06, 0x4f, 0x0c, 0x37, 0xc8,
		0x6e, 0x97, 0x95, 0x70, 0xd3, 0xd3, 0x6c, 0x09, 0x37, 0x07, 0x5a, 0xac, 0x40, 0xac, 0x62, 0xd8,
		0xec, 0x39, 0x98, 0xb7, 0x40, 0x50, 0x37, 0xd8, 0x2b, 0x02, 0xf1, 0xc2, 0xc3, 0x87, 0xe8, 0x8a,
		0x42, 0xf0, 0x72, 0x35, 0x88, 0x95, 0x70, 0x93, 0x91, 0x2a, 0x42, 0xb0, 0x85, 0x9b, 0x9c, 0xd4,
		0x5d, 0x30, 0x49, 0xb0, 0x0b, 0xa5, 0xdf, 0xfd, 0x83, 0x93, 0x33, 0xef, 0xfc, 0xe2, 0xc9, 0x99,
		0xb1, 0xea, 0x94, 0x9b, 0xac, 0x4e, 0x8e, 0x16, 0x7d, 0x3c, 0x04, 0xf7, 0xd2, 0x27, 0xc9, 0x7a,
		0x1d, 0xdd, 0xb0, 0xcf, 0x35, 0x7b, 0xfb, 0x5d, 0xdb, 0x24, 0x46, 0xc5, 0xdc, 0xe6, 0x4a, 0x34,
		0xe7, 0x56, 0x2f, 0xb3, 0xea, 0xd1, 0x2a, 0x94, 0xdb, 0x86, 0xf0, 0x06, 0xc1, 0x23, 0x83, 0x64,
		0x9b, 0xb6, 0xd6, 0xe6, 0xbe, 0x22, 0xfb, 0x20, 0xa5, 0xec, 0x19, 0xb3, 0x00, 0x2b, 0xd5, 0xc5,
		0x0b, 0x66, 0x6d, 0xac, 0x6d, 0xb3, 0xa7, 0x5c, 0x82, 0x34, 0xc8, 0x88, 0x91, 0x02, 0xfa, 0x6a,
		0xcb, 0x02, 0x84, 0xb5, 0x3e, 0x3b, 0xe6, 0x16, 0x24, 0xd1, 0x07, 0xfd, 0xc8, 0x3d, 0x0d, 0x51,
		0x7e, 0xea, 0x01, 0xc9, 0x10, 0xbc, 0x85, 0xf7, 0x69, 0x3b, 0x49, 0x85, 0xfc, 0x89, 0x96, 0x21,
		0x4c, 0x99, 0xe7, 0x37, 0xe8, 0x32, 0xcb, 0x43, 0xdc, 0x2f, 0x53, 0x26, 0x15, 0x06, 0x96, 0xbb,
		0x0e, 0xb1, 0x92, 0x49, 0x34, 0xdb, 0x4f, 0x2d, 0xce, 0xa8, 0x51, 0x9e, 0xbb, 0x7d, 0x5b, 0xdc,
		0x72, 0xa6, 0x1f, 0xe8, 0x28, 0x44, 0xd8, 0xd3, 0x3e, 0xfc, 0xa8, 0x1e, 0xff, 0xca, 0x15, 0x21,
		0x4a, 0x69, 0xd7, 0xba, 0xce, 0x93, 0x7b, 0x92, 0xe7, 0xc9, 0x3d, 0x4e, 0x3e, 0xe0, 0x32, 0x8b,
		0x20, 0xd4, 0xd2, 0x6c, 0x8d, 0xf7, 0x9b, 0xfe, 0x9d, 0x7b, 0x2b, 0xc4, 0x38, 0x11, 0x0b, 0xad,
		0x40, 0xd0, 0xec, 0x8a, 0x93, 0xa8, 0xd9, 0x71, 0x5d, 0xa9, 0x75, 0x0b, 0x21, 0xa2, 0x4b, 0x0a,
		0x01, 0x2e, 0x54, 0xc7, 0xaa, 0xc5, 0xe3, 0x3e, 0xb5, 0xe8, 0x60, 0x7b, 0x6b, 0xdb, 0x76, 0xff,
		0x60, 0xc3, 0x39, 0xa4, 0x0a, 0x8e, 0xa2, 0xdc, 0x09, 0xc0, 0x49, 0x4f, 0xed, 0x6d, 0xdc, 0xb3,
		0x74, 0xd3, 0x60, 0xda, 0xc4, 0x35, 0x05, 0x79, 0x18, 0xe4, 0xf5, 0x63, 0x54, 0xe5, 0x2d, 0x10,
		0xcc, 0x77, 0xbb, 0x28, 0x0b, 0x31, 0xfa, 0xdd, 0x34, 0x99, 0xae, 0x84, 0x14, 0xe7, 0x9b, 0xd4,
		0x59, 0xe6, 0xb6, 0xfd, 0x82, 0xd6, 0x73, 0x1e, 0xcf, 0x13, 0xdf, 0xb9, 0x4b, 0x10, 0x2f, 0x9a,
		0x86, 0x85, 0x0d, 0xab, 0x4f, 0x23, 0x90, 0xad, 0xb6, 0xd9, 0xbc, 0xc5, 0x29, 0xb0, 0x0f, 0x22,
		0x6c, 0xad, 0xdb, 0xa5, 0x98, 0x21, 0x85, 0xfc, 0xc9, 0x66, 0x76, 0xa1, 0x36, 0x56, 0x3c, 0x17,
		0x0e, 0x27, 0x1e, 0xde, 0x41, 0x47, 0x3e, 0xff, 0x5d, 0x82, 0x7b, 0x86, 0x27, 0xd2, 0x2d, 0xbc,
		0x6f, 0x1d, 0x76, 0x1e, 0x3d, 0x0b, 0xf1, 0x0d, 0xfa, 0x64, 0xf2, 0xd3, 0x78, 0x1f, 0x65, 0x21,
		0x8a, 0x5b, 0x2b, 0x17, 0x2e, 0x9c, 0xbf, 0xc4, 0xb4, 0xfc, 0xda, 0x8c, 0x22, 0x0a, 0xd0, 0x49,
		0x88, 0x5b, 0xb8, 0xd9, 0x5d, 0xb9, 0x70, 0xf1, 0xd6, 0x79, 0xa6, 0x56, 0xd7, 0x66, 0x14, 0xb7,
		0x68, 0x35, 0x46, 0x7a, 0xfc, 0xea, 0x47, 0x17, 0xa5, 0x42, 0x18, 0x82, 0x56, 0xbf, 0xf3, 0x4d,
		0xd3, 0x8d, 0x3f, 0x8b, 0xc0, 0x92, 0xa7, 0x96, 0x2d, 0x58, 0xfc, 0xaa, 0x8f, 0xf3, 0xcc, 0xb6,
		0xec, 0xe9, 0x3f, 0x85, 0x18, 0xb3, 0x12, 0x1d, 0x28, 0xc5, 0xdc, 0xa7, 0x25, 0x48, 0xde, 0x10,
		0x94, 0xeb, 0xd8, 0x46, 0x97, 0x01, 0x9c, 0x96, 0xc4, 0x54, 0x39, 0xb1, 0x3c, 0xd8, 0xd6, 0xb2,
		0x83, 0xa3, 0x78, 0xc0, 0xd1, 0x13, 0x54, 0x01, 0xbb, 0xa6, 0xc5, 0x5f, 0x41, 0x9b, 0x80, 0xea,
		0x00, 0xa3, 0x47, 0x00, 0x51, 0xab, 0xa6, 0xde, 0x36, 0x6d, 0xdd, 0xd8, 0x51, 0xbb, 0xe6, 0x0b,
		0xfc, 0x79, 0xca, 0xa0, 0x22, 0xd3, 0x9a, 0x1b, 0xb4, 0x62, 0x83, 0x94, 0x13, 0xa6, 0xe3, 0x0e,
		0x15, 0x12, 0x4c, 0x6b, 0xad, 0x56, 0x0f, 0x5b, 0x16, 0x37, 0x5c, 0xe2, 0x13, 0x5d, 0x86, 0x68,
		0xb7, 0xbf, 0xa5, 0x0a, 0x2b, 0x91, 0x58, 0xb9, 0x67, 0xd4, 0x9c, 0x17, 0xba, 0xc1, 0x67, 0x7d,
		0xa4, 0xdb, 0xdf, 0x22, 0x9a, 0x72, 0x0a, 0x92, 0x23, 0x98, 0x49, 0xdc, 0x76, 0xf9, 0xa0, 0xaf,
		0x74, 0xf3, 0x1e, 0xa8, 0xdd, 0x9e, 0x6e, 0xf6, 0x74, 0x7b, 0x9f, 0x9e, 0x56, 0x0d, 0x2a, 0xb2,
		0xa8, 0xd8, 0xe0, 0xe5, 0xb9, 0x5b, 0x90, 0xae, 0xd3, 0xd0, 0xc8, 0xe5, 0xfc, 0x82, 0xcb, 0x9f,
		0x34, 0x99, 0xbf, 0xb1, 0x9c, 0x05, 0x86, 0x38, 0x3b, 0xf3, 0x1f, 0x24, 0x48, 0x14, 0xc8, 0xc4,
		0xad, 0x94, 0xae, 0xb4, 0xb5, 0x1d, 0x74, 0x1e, 0x8e, 0x14, 0xd6, 0x6a, 0xc5, 0xa7, 0xd5, 0x4a,
		0x49, 0xbd, 0xb2, 0x96, 0xf7, 0x5c, 0xa6, 0xc8, 0x1e, 0x7d, 0xe9, 0xce, 0x12, 0xf2, 0xc0, 0x6e,
		0x1a, 0x34, 0x13, 0x80, 0xce, 0xc1, 0x82, 0x1f, 0x25, 0x5f, 0xa8, 0x97, 0xab, 0x0d, 0x59, 0xca,
		0x1e, 0x79, 0xe9, 0xce, 0xd2, 0x9c, 0x07, 0x23, 0xbf, 0x65, 0x61, 0xc3, 0x1e, 0x46, 0x28, 0xd6,
		0xd6, 0xd7, 0x2b, 0x0d, 0x39, 0x30, 0x84, 0x50, 0x34, 0x3b, 0x1d, 0xdd, 0x46, 0x0f, 0xc1, 0x9c,
		0x1f, 0xa1, 0x5a, 0x59, 0x93, 0x83, 0x59, 0xf4, 0xd2, 0x9d, 0xa5, 0x94, 0x07, 0xba, 0xaa, 0xb7,
		0xb3, 0xb1, 0xf7, 0xfe, 0xf8, 0xc9, 0x99, 0x4f, 0xfe, 0xff, 0x27, 0xa5, 0xc2, 0xfa, 0xd8, 0x39,
		0xf7, 0xd8, 0xe1, 0xe6, 0x9c, 0x7f, 0xdd, 0xfe, 0xda, 0x3d, 0x3e, 0x73, 0xc3, 0x7d, 0x44, 0x8f,
		0x31, 0x9e, 0x76, 0xba, 0x4d, 0xca, 0x0c, 0x65, 0x0f, 0x76, 0x0f, 0xb2, 0x13, 0x16, 0x85, 0xec,
		0x44, 0xc3, 0x90, 0xbb, 0x04, 0xb3, 0x1b, 0x5a, 0xcf, 0xae, 0x63, 0xfb, 0x1a, 0xd6, 0x5a, 0xb8,
		0xe7, 0xf7, 0x1f, 0x66, 0x85, 0xff, 0x80, 0x20, 0x44, 0x9d, 0x04, 0xb6, 0x7e, 0xd2, 0xbf, 0x73,
		0xbb, 0x10, 0xa2, 0xb7, 0x45, 0x1d, 0xdf, 0x82, 0x63, 0x30, 0xdf, 0x82, 0xac, 0x0c, 0xfb, 0x36,
		0xbf, 0x4d, 0x9f, 0x54, 0xd8, 0x07, 0x7a, 0x5c, 0x78, 0x08, 0xc1, 0x83, 0x3d, 0x04, 0x3e, 0xbd,
		0xb8, 0x9f, 0xd0, 0x86, 0x28, 0x1f, 0x62, 0x87, 0x11, 0xc9, 0x65, 0x04, 0xad, 0x43, 0xba, 0xab,
		0xf5, 0x6c, 0xfa, 0xf6, 0xd4, 0x2e, 0xed, 0x05, 0x9f, 0xc1, 0x8b, 0xc3, 0xf6, 0xc4, 0xd7, 0x59,
		0xde, 0xca, 0x6c, 0xd7, 0x5b, 0x98, 0xfb, 0xe3, 0x10, 0x44, 0xb8, 0x30, 0xde, 0x02, 0x51, 0x2e,
		0x56, 0x3e, 0xe7, 0xee, 0x5d, 0x1e, 0x5e, 0x66, 0x97, 0x9d, 0xe5, 0x90, 0xd3, 0x13, 0x38, 0xe8,
		0x01, 0x88, 0x35, 0x77, 0x35, 0xdd, 0x50, 0xf5, 0x16, 0x77, 0x8e, 0x13, 0x5f, 0xfc, 0xc2, 0x62,
		0xb4, 0x48, 0xca, 0x2a, 0x25, 0x25, 0x4a, 0x2b, 0x2b, 0x2d, 0xe2, 0xd3, 0xec, 0x62, 0x7d, 0x67,
		0xd7, 0xe6, 0x76, 0x83, 0x7f, 0xa1, 0x27, 0x21, 0x44, 0x14, 0x82, 0x5f, 0xe8, 0xc8, 0x0e, 0x45,
		0x3d, 0x4e, 0xe2, 0xae, 0x10, 0x23, 0x0d, 0x7f, 0xe0, 0x3f, 0x2d, 0x4a, 0x0a, 0xc5, 0x40, 0x45,
		0x98, 0x6d, 0x6b, 0x96, 0xad, 0xd2, 0xf5, 0x98, 0x34, 0xcf, 0x6e, 0x72, 0x1c, 0x1f, 0x16, 0x08,
		0x17, 0x2c, 0x67, 0x3d, 0x41, 0xb0, 0x58, 0x51, 0x0b, 0x9d, 0x06, 0x99, 0x12, 0x69, 0xd2, 0x19,
		0xc8, 0xbc, 0xc4, 0x08, 0x95, 0x7b, 0x8a, 0x94, 0xb3, 0x89, 0x49, 0x7d, 0xc5, 0x13, 0x10, 0xa7,
		0x0f, 0xac, 0x51, 0x10, 0x76, 0x45, 0x39, 0x46, 0x0a, 0x68, 0xe5, 0x83, 0x90, 0x76, 0xad, 0x3e,
		0x03, 0x89, 0x31, 0x2a, 0x6e, 0x31, 0x05, 0x7c, 0x14, 0x16, 0x0c, 0xbc, 0x67, 0xab, 0x83, 0xd0,
		0x71, 0x0a, 0x8d, 0x48, 0xdd, 0x0d, 0x3f, 0xc6, 0xfd, 0x90, 0x6a, 0x0a, 0xe1, 0x33, 0x58, 0xa0,
		0xb0, 0xb3, 0x4e, 0x29, 0x05, 0x3b, 0x0e, 0x31, 0xad, 0xdb, 0x65, 0x00, 0x09, 0x6e, 0xf5, 0xbb,
		0x5d, 0x5a, 0x75, 0x06, 0xe6, 0x68, 0x1f, 0x7b, 0xd8, 0xea, 0xb7, 0x6d, 0x4e, 0x24, 0x49, 0x61,
		0xd2, 0xa4, 0x42, 0x61, 0xe5, 0x14, 0xf6, 0x3e, 0x98, 0xc5, 0xb7, 0xf5, 0x16, 0x36, 0x9a, 0x98,
		0xc1, 0xcd, 0x52, 0xb8, 0xa4, 0x28, 0xa4, 0x40, 0x0f, 0x81, 0x63, 0xcd, 0x55, 0xb1, 0xd2, 0xa4,
		0x18, 0x3d, 0x51, 0x9e, 0x67, 0xc5, 0xb9, 0x0c, 0x84, 0x4a, 0x9a, 0xad, 0x11, 0x77, 0xc9, 0xde,
		0x63, 0xcb, 0x67, 0x52, 0x21, 0x7f, 0xe6, 0x7e, 0x21, 0x08, 0xa1, 0x1b, 0xa6, 0x8d, 0xd1, 0x63,
		0x1e, 0x57, 0x36, 0x35, 0x4a, 0x9f, 0xeb, 0xfa, 0x8e, 0x81, 0x5b, 0xeb, 0xd6, 0x8e, 0xe7, 0x5d,
		0x64, 0x57, 0x9d, 0x02, 0x3e, 0x75, 0x5a, 0x80, 0x70, 0xcf, 0xec, 0x1b, 0x2d, 0x71, 0x6f, 0x82,
		0x7e, 0xa0, 0x32, 0xc4, 0x1c, 0x2d, 0x09, 0x4d, 0xd2, 0x92, 0x34, 0xd1, 0x12, 0xa2, 0xc3, 0xbc,
		0x40, 0x89, 0x6e, 0x71, 0x65, 0x29, 0x40, 0xdc, 0x31, 0x5e, 0x5c, 0xdb, 0xa6, 0x53, 0x58, 0x17,
		0x8d, 0x2c, 0x91, 0xce, 0xd8, 0x3b, 0xc2, 0x63, 0x1a, 0x27, 0x3b, 0x15, 0x5c, 0x7a, 0x3e, 0xb5,
		0xe2, 0x6f, 0x34, 0x47, 0x69, 0xbf, 0x5c, 0xb5, 0x62, 0xef, 0x34, 0xdf, 0x03, 0x71, 0x4b, 0xdf,
		0x31, 0xe8, 0x55, 0x24, 0xae, 0x79, 0x6e, 0x01, 0xa9, 0x75, 0x2f, 0xba, 0x33, 0x4d, 0xf3, 0xfc,
		0x9c, 0xc0, 0x39, 0x98, 0x77, 0x1f, 0xf2, 0x77, 0xa9, 0x30, 0x2d, 0x43, 0x4e, 0x55, 0x5d, 0xd4,
		0xe4, 0x7e, 0x55, 0x82, 0x08, 0x5f, 0xb1, 0xdc, 0x61, 0x90, 0x46, 0x0f, 0x43, 0x60, 0xdc, 0x30,
		0x04, 0xef, 0x7e, 0x18, 0xf2, 0x00, 0x0e, 0x9b, 0x16, 0x7f, 0x89, 0x77, 0x84, 0x5b, 0xc5, 0x58,
		0xac, 0xeb, 0x3b, 0x7c, 0xde, 0x7b, 0x90, 0x72, 0xbf, 0x2f, 0x11, 0x0f, 0x9f, 0xd7, 0xa3, 0x3c,
		0xcc, 0x0a, 0xbe, 0xd4, 0xed, 0xb6, 0xb6, 0xc3, 0x55, 0xf1, 0xde, 0xb1, 0xcc, 0x91, 0x55, 0x58,
		0x49, 0x70, 0x7e, 0xa8, 0x3f, 0x31, 0x72, 0x58, 0x03, 0x63, 0x86, 0xd5, 0xa7, 0x47, 0xc1, 0xbb,
		0xd3, 0x23, 0xdf, 0x88, 0x87, 0x06, 0x46, 0x3c, 0xf7, 0x07, 0x12, 0xff, 0x0d, 0x80, 0x16, 0xbb,
		0x77, 0xf5, 0xbf, 0x6a, 0xa8, 0x9e, 0xe3, 0xba, 0xd5, 0xc2, 0x2d, 0x75, 0x68, 0xcc, 0xee, 0x1b,
		0xa6, 0xe8, 0xe7, 0xd9, 0x1d, 0x3b, 0x24, 0xa8, 0xd4, 0xdd, 0x31, 0xfc, 0x6c, 0x00, 0xe6, 0x86,
		0xe0, 0xff, 0xee, 0x8d, 0xa5, 0x7f, 0xf6, 0x86, 0xa7, 0x9c, 0xbd, 0x91, 0xb1, 0xb3, 0xf7, 0x33,
		0x01, 0x9a, 0x00, 0xe8, 0x9a, 0x96, 0xd6, 0xfe, 0xdb, 0xb0, 0xbd, 0x27, 0x20, 0xde, 0x35, 0xdb,
		0x2a, 0xab, 0x61, 0x37, 0xd7, 0x62, 0x5d, 0xb3, 0xad, 0x0c, 0xa9, 0x59, 0xf8, 0x75, 0x32, 0xcc,
		0x91, 0xd7, 0x61, 0x10, 0xa2, 0x83, 0x13, 0xaa, 0x07, 0x49, 0x26, 0x0a, 0xee, 0x35, 0x3d, 0x4a,
		0x64, 0x40, 0xdd, 0x30, 0x69, 0xd8, 0xcb, 0x63, 0x6c, 0x33, 0x48, 0x85, 0xc3, 0x11, 0x0c, 0xe6,
		0x64, 0x8c, 0xca, 0x1c, 0x79, 0x2d, 0x96, 0xc2, 0xe1, 0x72, 0x3f, 0x24, 0x01, 0xac, 0x11, 0xc9,
		0xd2, 0xfe, 0x12, 0x7f, 0xc7, 0xa2, 0x2c, 0xa8, 0xbe, 0x96, 0x4f, 0x8e, 0x1b, 0x34, 0xde, 0x7e,
		0xd2, 0xf2, 0xf2, 0x5d, 0x84, 0x59, 0x57, 0xb7, 0x2d, 0x2c, 0x98, 0x39, 0x79, 0x40, 0x54, 0x5a,
		0xc7, 0xb6, 0x92, 0xbc, 0xed, 0xf9, 0xca, 0xfd, 0x33, 0x09, 0xe2, 0x94, 0xa7, 0x75, 0x6c, 0x6b,
		0xbe, 0x31, 0x94, 0xee, 0x7e, 0x0c, 0xef, 0x05, 0x60, 0x64, 0x2c, 0xfd, 0x45, 0xcc, 0x35, 0x2b,
		0x4e, 0x4b, 0xea, 0xfa, 0x8b, 0x18, 0x5d, 0x74, 0x04, 0x1e, 0x3c, 0x58, 0xe0, 0x22, 0x6a, 0xe5,
		0x62, 0x3f, 0x06, 0x51, 0xfa, 0x40, 0xca, 0x9e, 0xc5, 0x03, 0xd1, 0x88, 0xd1, 0xef, 0x34, 0xf6,
		0xac, 0xdc, 0xf3, 0x10, 0x6d, 0xec, 0xb1, 0x7c, 0xe2, 0x09, 0x88, 0xf7, 0x4c, 0x93, 0x7b, 0x7f,
		0xcc, 0xeb, 0x8e, 0x91, 0x02, 0xea, 0xec, 0x88, 0x1c, 0x5a, 0xc0, 0xcd, 0xa1, 0xb9, 0x49, 0xc0,
		0xe0, 0x54, 0x49, 0x40, 0x12, 0x7d, 0xce, 0xfa, 0x66, 0x12, 0x7a, 0x04, 0x8e, 0xd5, 0x2b, 0x57,
		0xab, 0xe5, 0x92, 0xba, 0x5e, 0xbf, 0x3a, 0xf0, 0x70, 0x41, 0x36, 0xfd, 0xd2, 0x9d, 0xa5, 0x04,
		0x0f, 0x3b, 0xc7, 0x41, 0x6f, 0x28, 0xe5, 0x1b, 0xb5, 0x46, 0x59, 0x96, 0x18, 0xf4, 0x46, 0x0f,
		0xdf, 0x36, 0x6d, 0xf6, 0x1b, 0x53, 0x8f, 0xc2, 0xf1, 0x11, 0xd0, 0x4e, 0xf0, 0x39, 0xf7, 0xd2,
		0x9d, 0xa5, 0xd9, 0x8d, 0x1e, 0x66, 0x5a, 0x46, 0x31, 0x96, 0x21, 0x33, 0x8c, 0x51, 0xdb, 0xa8,
		0xd5, 0xf3, 0x6b, 0xf2, 0x52, 0x56, 0x7e, 0xe9, 0xce, 0x52, 0x52, 0x98, 0x0c, 0x02, 0xff, 0xcd,
		0x8f, 0x3e, 0xbf, 0x27, 0xe6, 0xcb, 0x1a, 0xb3, 0xb8, 0xae, 0xab, 0xf5, 0xb4, 0xce, 0x61, 0xc3,
		0xcf, 0x09, 0xc7, 0x35, 0x72, 0x9f, 0x0e, 0x40, 0xda, 0x09, 0x6e, 0x36, 0x68, 0x0b, 0xe8, 0x31,
		0x6f, 0xc6, 0x2f, 0x31, 0x76, 0xed, 0x60, 0xd0, 0x22, 0x21, 0xf8, 0x66, 0x88, 0x09, 0x27, 0x99,
		0x4f, 0xaa, 0xa5, 0x11, 0xeb, 0x1b, 0x87, 0xe0, 0xa8, 0x0e, 0x06, 0x7a, 0x0a, 0xe2, 0xce, 0x14,
		0x73, 0x9e, 0xc5, 0x1f, 0x3f, 0x27, 0x39, 0xbe, 0x8b, 0x83, 0x2e, 0xb9, 0x61, 0x5c, 0x68, 0x5c,
		0x60, 0x78, 0x83, 0x01, 0x70, 0x64, 0x27, 0x84, 0x7b, 0x14, 0x42, 0xda, 0x56, 0x53, 0xe7, 0x06,
		0xf8, 0x9e, 0x61, 0xbc, 0x7c, 0xa1, 0x58, 0xe1, 0x48, 0x14, 0x32, 0x57, 0xe1, 0xc9, 0x14, 0x2e,
		0x2f, 0xfa, 0xd0, 0xf0, 0x9e, 0xca, 0x62, 0x61, 0xe6, 0x5d, 0xc4, 0x3a, 0xda, 0x5e, 0x81, 0x86,
		0xc3, 0xc7, 0x20, 0x4a, 0x2a, 0x77, 0xf8, 0x8b, 0x7f, 0x41, 0x25, 0xd2, 0xd1, 0xf6, 0xae, 0x6a,
		0xd6, 0xf5, 0x50, 0x2c, 0x28, 0x87, 0x72, 0x3f, 0x49, 0x3c, 0x15, 0x9f, 0x54, 0xd0, 0xc3, 0x80,
		0x08, 0x86, 0xb6, 0x83, 0x55, 0x32, 0x75, 0xa9, 0x78, 0x05, 0xdd, 0x74, 0x47, 0xdb, 0xcb, 0xef,
		0xe0, 0x6a, 0xbf, 0x43, 0x19, 0xb0, 0xd0, 0x3a, 0xc8, 0x02, 0x58, 0x8c, 0x2c, 0x17, 0xff, 0xf1,
		0xe1, 0x5f, 0x6b, 0xe2, 0x00, 0x6c, 0x01, 0x78, 0x99, 0x2c, 0x00, 0x29, 0x46, 0xcf, 0x39, 0xa0,
		0xe3, 0xeb, 0x4a, 0xd0, 0xdf, 0x95, 0xdc, 0x53, 0x90, 0x1e, 0x18, 0x01, 0x94, 0x83, 0x59, 0x9e,
		0xb1, 0xa2, 0x87, 0x1f, 0x58, 0x84, 0x13, 0x57, 0x12, 0x2c, 0x33, 0x45, 0x0f, 0x83, 0xac, 0xc6,
		0x7e, 0xf1, 0x23, 0x8b, 0x12, 0xdd, 0xf6, 0x79, 0x18, 0x66, 0x7d, 0x63, 0x20, 0xb2, 0xc8, 0x92,
		0x9b, 0x45, 0x76, 0x81, 0x9f, 0x83, 0x24, 0x31, 0x40, 0xb8, 0xc5, 0x61, 0x1f, 0x80, 0x34, 0x33,
		0x90, 0x83, 0xb2, 0x66, 0x0e, 0xcf, 0xba, 0x10, 0x78, 0x4e, 0x78, 0x40, 0x7e, 0xb1, 0x27, 0x04,
		0xd4, 0x55, 0xcd, 0xca, 0xd5, 0x00, 0xdc, 0x41, 0x45, 0x79, 0xb8, 0x97, 0x18, 0x0f, 0xef, 0x61,
		0x5d, 0xfe, 0x92, 0xba, 0xcf, 0x63, 0xcc, 0x12, 0x20, 0xf7, 0x40, 0x2e, 0x7b, 0x4f, 0xfd, 0x1a,
		0x85, 0x28, 0xbc, 0xed, 0x93, 0x5f, 0x3c, 0x29, 0x7d, 0x73, 0x6c, 0xc1, 0x7f, 0xbc, 0x09, 0x27,
		0x3c, 0x95, 0x44, 0x01, 0x7d, 0x89, 0xa8, 0xb4, 0x47, 0x5f, 0x49, 0xe5, 0xa4, 0x84, 0xd2, 0x81,
		0xf9, 0xdf, 0xec, 0xc1, 0x66, 0x67, 0x72, 0xb6, 0x69, 0x72, 0xbe, 0x6b, 0x74, 0x52, 0xfe, 0x57,
		0xe2, 0x10, 0x55, 0xf0, 0x3b, 0xfa, 0xd8, 0xb2, 0xd1, 0x0a, 0x84, 0x70, 0x73, 0xd7, 0x1c, 0x95,
		0x03, 0x25, 0x1d, 0x5c, 0xe6, 0x70, 0xe5, 0xe6, 0xae, 0x79, 0x6d, 0x46, 0xa1, 0xb0, 0xe8, 0x02,
		0x84, 0xb7, 0xdb, 0x7d, 0x9e, 0xbe, 0x1a, 0xb0, 0x59, 0x5e, 0xa4, 0x2b, 0x04, 0xe8, 0xda, 0x8c,
		0xc2, 0xa0, 0x49, 0x53, 0xf4, 0x07, 0xf8, 0x82, 0x07, 0x37, 0x55, 0x31, 0xb6, 0x69, 0x53, 0x04,
		0x16, 0x15, 0x00, 0x74, 0x43, 0xb7, 0x55, 0x9a, 0xda, 0xe1, 0x56, 0xe3, 0xd4, 0x78, 0x4c, 0xdd,
		0xa6, 0xc9, 0xa0, 0x6b, 0x33, 0x4a, 0x5c, 0x17, 0x1f, 0x84, 0xdd, 0x77, 0xf4, 0x71, 0x6f, 0x9f,
		0x7b, 0x6b, 0x63, 0xd9, 0x7d, 0x1b, 0x01, 0x22, 0xec, 0x52, 0x68, 0x62, 0x64, 0xd9, 0x4f, 0x2b,
		0xd8, 0x7b, 0xfc, 0x37, 0x87, 0x16, 0xc7, 0x61, 0xd2, 0xdf, 0x57, 0x68, 0xec, 0x5d, 0x9b, 0x51,
		0xa2, 0x4d, 0xf6, 0x27, 0x7a, 0xd2, 0x71, 0xc1, 0x12, 0xc3, 0x5e, 0x8f, 0x0f, 0x97, 0xa5, 0x7d,
		0x66, 0x84, 0x2b, 0x86, 0xaa, 0x90, 0x6a, 0xeb, 0x96, 0xad, 0x5a, 0x86, 0xd6, 0xb5, 0x76, 0x4d,
		0x5b, 0xbc, 0x6d, 0x7e, 0xff, 0x38, 0x0a, 0x6b, 0xba, 0x65, 0xd7, 0x05, 0xf0, 0xb5, 0x19, 0x65,
		0xb6, 0xed, 0x2d, 0x20, 0xf4, 0xcc, 0xed, 0x6d, 0xdc, 0x73, 0x08, 0xd2, 0x3c, 0xcb, 0x01, 0xf4,
		0x6a, 0x04, 0x5a, 0xe0, 0x13, 0x7a, 0xa6, 0xb7, 0x00, 0x7d, 0x0b, 0xcc, 0xb7, 0x4d, 0xad, 0xe5,
		0x90, 0x53, 0x9b, 0xbb, 0x7d, 0xe3, 0x16, 0x4d, 0xca, 0x24, 0x56, 0x1e, 0x1a, 0xcb, 0xa4, 0xa9,
		0xb5, 0x04, 0x89, 0x22, 0x41, 0xb8, 0x36, 0xa3, 0xcc, 0xb5, 0x07, 0x0b, 0xd1, 0xdb, 0x61, 0x41,
		0xeb, 0x76, 0xdb, 0xfb, 0x83, 0xd4, 0xd3, 0x94, 0xfa, 0x99, 0x71, 0xd4, 0xf3, 0x04, 0x67, 0x90,
		0x3c, 0xd2, 0x86, 0x4a, 0x51, 0x03, 0xe4, 0x6e, 0x0f, 0xd3, 0xfb, 0x6e, 0x5d, 0xee, 0x65, 0xd0,
		0x87, 0xc3, 0x13, 0x2b, 0x0f, 0x8e, 0xa3, 0xbd, 0xc1, 0xe0, 0x85, 0x53, 0x72, 0x6d, 0x46, 0x49,
		0x77, 0xfd, 0x45, 0x8c, 0xaa, 0xd9, 0xc4, 0xf4, 0x57, 0x16, 0x38, 0xd5, 0xb9, 0x49, 0x54, 0x29,
		0xbc, 0x9f, 0xaa, 0xaf, 0x08, 0x95, 0x21, 0xc1, 0x42, 0x51, 0x95, 0x18, 0x43, 0xfa, 0xeb, 0x15,
		0x89, 0x95, 0xdc, 0xd8, 0x19, 0x4a, 0x41, 0x6f, 0x98, 0x36, 0xbe, 0x36, 0xa3, 0x00, 0x76, 0xbe,
		0x90, 0x06, 0x47, 0xe8, 0xcb, 0xeb, 0xfb, 0xaa, 0xdf, 0xf0, 0x66, 0xe6, 0x29, 0xc1, 0x87, 0xc7,
		0x11, 0xa4, 0x3f, 0x8a, 0xb6, 0x7f, 0xc3, 0x6b, 0x87, 0xaf, 0xcd, 0x28, 0xf3, 0xb7, 0x87, 0x8b,
		0x89, 0x8a, 0x6d, 0xeb, 0x86, 0xd6, 0xd6, 0x5f, 0xc4, 0x6c, 0x09, 0xa5, 0x3f, 0x64, 0x72, 0x80,
		0x8a, 0x5d, 0xe1, 0xd0, 0x74, 0x61, 0x25, 0x2a, 0xb6, 0xed, 0x2d, 0x28, 0x44, 0xf9, 0x49, 0x5d,
		0xe7, 0x45, 0xe2, 0xa8, 0x1c, 0x63, 0xef, 0xe6, 0x5f, 0x0f, 0xc5, 0x40, 0x4e, 0xe4, 0x1e, 0x84,
		0x84, 0xc7, 0x30, 0xa1, 0x0c, 0x44, 0xf9, 0x49, 0x1d, 0x71, 0xe6, 0x97, 0x7f, 0xe6, 0x52, 0x90,
		0xf4, 0x1a, 0xa3, 0xdc, 0x07, 0x24, 0x07, 0x93, 0x3e, 0xc9, 0x92, 0xf1, 0x67, 0xa4, 0xe3, 0xae,
		0xa7, 0x72, 0x9f, 0x58, 0xda, 0x44, 0x3d, 0xdb, 0x7e, 0x4d, 0xd2, 0x42, 0xbe, 0xb2, 0xa2, 0x45,
		0x48, 0x74, 0x57, 0xba, 0x0e, 0x48, 0x90, 0x82, 0x40, 0x77, 0xa5, 0x2b, 0x00, 0x4e, 0x41, 0x92,
		0xf4, 0x5b, 0xf5, 0xfa, 0x4b, 0x71, 0x25, 0x41, 0xca, 0x38, 0x48, 0xee, 0xb7, 0x02, 0x20, 0x0f,
		0x1a, 0x30, 0x27, 0x55, 0x2d, 0x1d, 0x3a, 0x55, 0x7d, 0x7c, 0x30, 0x49, 0xee, 0xe6, 0xc5, 0xd7,
		0x40, 0x76, 0xd3, 0xbb, 0x6c, 0xa9, 0x19, 0xef, 0xff, 0x0d, 0x38, 0xaa, 0x4a, 0xba, 0x39, 0xe0,
		0xb9, 0x5e, 0xf1, 0x6d, 0x56, 0x8a, 0x5f, 0xa8, 0x1d, 0x1c, 0x70, 0xc7, 0x89, 0xd9, 0xec, 0xb6,
		0x34, 0x1b, 0x8b, 0xfc, 0x98, 0x67, 0xdf, 0xf2, 0x01, 0x48, 0x6b, 0xdd, 0xae, 0x6a, 0xd9, 0x9a,
		0x8d, 0xb9, 0xaf, 0xc1, 0x32, 0x0f, 0xb3, 0x5a, 0xb7, 0x4b, 0x7f, 0x8d, 0x8f, 0xf9, 0x1a, 0xf7,
		0x43, 0x8a, 0xd8, 0x74, 0x5d, 0x6b, 0x0b, 0x57, 0x21, 0xc2, 0x5c, 0x12, 0x5e, 0xca, 0xbc, 0x83,
		0x5c, 0xcb, 0x19, 0x71, 0x6a, 0xcf, 0x9d, 0x98, 0x4a, 0xf2, 0xc4, 0x54, 0x88, 0x3f, 0x95, 0xc3,
		0xe4, 0x23, 0x5e, 0x35, 0x1a, 0xbd, 0x69, 0xb0, 0x40, 0xe3, 0xaf, 0xdb, 0x2c, 0x59, 0x12, 0x53,
		0xd8, 0x47, 0x4e, 0x81, 0x94, 0xdf, 0xf6, 0xa3, 0x14, 0x04, 0xec, 0x3d, 0xde, 0x4a, 0xc0, 0xde,
		0x23, 0x9e, 0xae, 0xe7, 0xa5, 0xcc, 0xe1, 0xd5, 0x8e, 0xe3, 0xb9, 0xb9, 0x8e, 0x5c, 0x1a, 0x66,
		0x7d, 0x6b, 0x42, 0xee, 0x28, 0x2c, 0x8c, 0x32, 0xf1, 0xb9, 0x5d, 0xa7, 0xdc, 0x67, 0xaa, 0xd1,
		0x05, 0x88, 0x39, 0x36, 0x7e, 0x44, 0x74, 0x4c, 0x9b, 0x15, 0xc0, 0x8a, 0x03, 0xea, 0x4b, 0xe7,
		0x07, 0x7c, 0xe9, 0xfc, 0xdc, 0xb7, 0x43, 0x66, 0x9c, 0xfd, 0x1e, 0x48, 0xf2, 0x85, 0x1c, 0x81,
		0x1d, 0x85, 0x08, 0x7f, 0x18, 0x32, 0x40, 0x37, 0xb0, 0xf8, 0x17, 0x11, 0x24, 0xb3, 0xe5, 0x41,
		0xb6, 0xaf, 0x45, 0x3f, 0x72, 0x2a, 0x1c, 0x1f, 0x6b, 0xc3, 0xc7, 0x6f, 0x85, 0x31, 0x42, 0x7c,
		0x2b, 0xac, 0x29, 0xd8, 0xb1, 0x68, 0x5f, 0xc5, 0x41, 0x16, 0xf6, 0x95, 0x7b, 0x39, 0x08, 0x47,
		0x47, 0x5b, 0x72, 0xb4, 0x04, 0x49, 0xe2, 0xb7, 0xda, 0x7e, 0x17, 0x17, 0x3a, 0xda, 0x5e, 0x83,
		0xfb, 0xb7, 0x7c, 0x2b, 0x21, 0xe0, 0x6c, 0x25, 0xa0, 0x4d, 0x98, 0x6b, 0x9b, 0x4d, 0xad, 0xad,
		0x7a, 0xb6, 0x72, 0xf8, 0x24, 0xba, 0x6f, 0x48, 0xd8, 0xfe, 0x94, 0x21, 0x31, 0x38, 0x5c, 0xff,
		0xd3, 0x94, 0xc6, 0x9a, 0xb3, 0xeb, 0x83, 0x4a, 0x90, 0xe8, 0xe8, 0xd6, 0x16, 0xde, 0xd5, 0x6e,
		0xeb, 0x66, 0x8f, 0xcf, 0xa6, 0x61, 0xa5, 0x59, 0x77, 0x61, 0xc4, 0x0e, 0x93, 0x07, 0xcd, 0x33,
		0x24, 0xe1, 0x91, 0x1b, 0x5f, 0x91, 0x43, 0x5b, 0x93, 0x71, 0x7b, 0x48, 0xd1, 0xb1, 0x7b, 0x48,
		0xa3, 0x36, 0x6c, 0x62, 0xa3, 0x37, 0x6c, 0xde, 0xeb, 0x1d, 0x1a, 0xff, 0xda, 0x37, 0xb4, 0x87,
		0x83, 0xea, 0xb0, 0xc0, 0xf1, 0x5b, 0x3e, 0xd9, 0x8f, 0x38, 0xea, 0xc0, 0xe6, 0xd7, 0xa0, 0xcc,
		0x91, 0x40, 0x1f, 0x2f, 0xf6, 0xe0, 0xdd, 0x89, 0x5d, 0x6c, 0xa2, 0x86, 0x3c, 0x9b, 0xa8, 0xff,
		0x9b, 0x0d, 0xc5, 0xbb, 0x83, 0x30, 0x37, 0xe4, 0x48, 0x8c, 0xdc, 0x1d, 0x1e, 0x97, 0x91, 0x15,
		0x1d, 0x0b, 0x1e, 0xba, 0x63, 0x7c, 0xac, 0x43, 0x93, 0xc7, 0x3a, 0xfc, 0x3a, 0x8e, 0x75, 0xe4,
		0xee, 0xc6, 0xfa, 0x9b, 0x3a, 0x0a, 0x1f, 0x92, 0x20, 0x3b, 0xde, 0xfb, 0x1a, 0x39, 0x1c, 0x87,
		0xda, 0x40, 0x18, 0xb7, 0xc6, 0xdd, 0x0f, 0xa9, 0x01, 0xdf, 0x90, 0xa9, 0xf2, 0xac, 0x2f, 0x0a,
		0xcf, 0xbd, 0x27, 0xe8, 0x2c, 0x3c, 0x3e, 0x07, 0x6e, 0xc4, 0x6c, 0x7d, 0x1b, 0xcc, 0xb7, 0x70,
		0x53, 0x6f, 0xdd, 0xed, 0x64, 0x9d, 0xe3, 0xd8, 0xff, 0x67, 0xae, 0x0e, 0x6b, 0xc9, 0x0f, 0x02,
		0xc4, 0x14, 0x6c, 0x75, 0x89, 0x3f, 0x86, 0x0a, 0x10, 0xc7, 0x7b, 0x4d, 0xdc, 0xb5, 0xdd, 0x43,
		0x15, 0xa3, 0x42, 0x04, 0x06, 0x5d, 0x16, 0x90, 0x24, 0x40, 0x76, 0xd0, 0xd0, 0x63, 0x3c, 0x07,
		0x30, 0x3e, 0x9c, 0xe7, 0xe8, 0xde, 0x24, 0xc0, 0x45, 0x91, 0x04, 0x08, 0x8e, 0x8d, 0x6f, 0x19,
		0xd6, 0x40, 0x16, 0xe0, 0x31, 0x9e, 0x05, 0x08, 0x4d, 0x68, 0xcc, 0x97, 0x06, 0x28, 0xfa, 0xd2,
		0x00, 0x91, 0x09, 0xdd, 0x1c, 0x93, 0x07, 0xb8, 0x28, 0xf2, 0x00, 0xd1, 0x09, 0x1c, 0x0f, 0x24,
		0x02, 0xde, 0xe2, 0x49, 0x04, 0xc4, 0x87, 0xb3, 0xad, 0x3e, 0xd4, 0x11, 0x99, 0x80, 0x4b, 0x4e,
		0x26, 0x20, 0x39, 0x36, 0x8b, 0xc0, 0x91, 0x07, 0x53, 0x01, 0xb5, 0xa1, 0x54, 0xc0, 0x2c, 0xff,
		0xa9, 0xf4, 0x71, 0x24, 0x26, 0xe4, 0x02, 0x6a, 0x43, 0xb9, 0x80, 0xd4, 0x04, 0x82, 0x13, 0x92,
		0x01, 0xdf, 0x3a, 0x3a, 0x19, 0x30, 0x3e, 0x5c, 0xe7, 0x6c, 0x4e, 0x97, 0x0d, 0x50, 0xc7, 0x64,
		0x03, 0xe4, 0xb1, 0x91, 0x2b, 0x23, 0x3f, 0x75, 0x3a, 0x60, 0x73, 0x44, 0x3a, 0x80, 0x05, 0xee,
		0xa7, 0xc7, 0x12, 0x9f, 0x22, 0x1f, 0xb0, 0x39, 0x22, 0x1f, 0x80, 0x26, 0x92, 0x9d, 0x98, 0x10,
		0xb8, 0xe2, 0x4f, 0x08, 0xcc, 0x8f, 0xf1, 0x3a, 0xdd, 0xd9, 0x3e, 0x26, 0x23, 0xb0, 0x35, 0x2e,
		0x23, 0xb0, 0xc0, 0x7f, 0x3f, 0x65, 0x1c, 0xc5, 0x43, 0xa4, 0x04, 0x6a, 0x43, 0x29, 0x81, 0x23,
		0x13, 0x34, 0x6d, 0xfa, 0x9c, 0x00, 0xfb, 0x45, 0x3d, 0xf6, 0x5b, 0x7a, 0x20, 0x27, 0xae, 0x87,
		0x62, 0x09, 0x39, 0x99, 0x7b, 0x88, 0x78, 0x30, 0x03, 0x76, 0x8e, 0xc4, 0x0a, 0xb8, 0xd7, 0x33,
		0x7b, 0xe2, 0x8e, 0x05, 0xfd, 0xc8, 0x9d, 0x26, 0x31, 0xa2, 0x6b, 0xd3, 0x0e, 0xc8, 0x1f, 0xd0,
		0x98, 0xcc, 0x63, 0xc7, 0x72, 0xbf, 0x28, 0xb9, 0xb8, 0x34, 0x83, 0xe0, 0x8d, 0x2f, 0xe3, 0x3c,
		0xbe, 0xf4, 0x64, 0x15, 0x02, 0xfe, 0xac, 0xc2, 0x22, 0x24, 0x48, 0xac, 0x35, 0x90, 0x30, 0xd0,
		0xba, 0x4e, 0xc2, 0x40, 0x1c, 0xa0, 0x62, 0xb9, 0x07, 0xbe, 0x2c, 0xb1, 0xdd, 0xc4, 0xb4, 0x73,
		0x98, 0x8c, 0x85, 0xba, 0xe8, 0x2c, 0xcc, 0x7b, 0x60, 0x9d, 0x18, 0x8e, 0x45, 0xcf, 0xb2, 0x03,
		0x9d, 0xe7, 0xc1, 0xdc, 0xbf, 0x90, 0x5c, 0x09, 0xb9, 0x99, 0x86, 0x51, 0x49, 0x01, 0xe9, 0x75,
		0x4a, 0x0a, 0x04, 0xee, 0x3a, 0x29, 0xe0, 0x8d, 0x49, 0x83, 0xfe, 0x98, 0xf4, 0xbf, 0x49, 0xee,
		0x98, 0x38, 0x21, 0x7e, 0xd3, 0x6c, 0x61, 0x1e, 0x25, 0xd2, 0xbf, 0x89, 0x4b, 0xd2, 0x36, 0xc5,
		0x0f, 0xa1, 0x91, 0x3f, 0x09, 0x94, 0xb3, 0xf0, 0xc4, 0xf9, 0xba, 0xe2, 0x04, 0x98, 0x61, 0xef,
		0x3d, 0x0e, 0x7e, 0xb9, 0x21, 0xe2, 0x5e, 0x6e, 0x70, 0xae, 0x8e, 0x47, 0x3d, 0x57, 0xc7, 0xd1,
		0x93, 0x10, 0xa7, 0xc9, 0x7e, 0xd5, 0xec, 0x8a, 0x9f, 0xa5, 0x3f, 0x31, 0xfe, 0x62, 0x83, 0x45,
		0x8f, 0x5c, 0xb3, 0xcb, 0x10, 0xae, 0xc7, 0x11, 0xf7, 0x79, 0x1c, 0xf7, 0x40, 0x9c, 0x70, 0xcf,
		0x7e, 0x54, 0x15, 0xf8, 0xbb, 0x03, 0xa2, 0x20, 0xf7, 0x53, 0x01, 0x48, 0x0f, 0x2c, 0x34, 0x23,
		0xfb, 0x3e, 0x6a, 0x1b, 0x79, 0x3a, 0x79, 0x9c, 0x04, 0xd8, 0xd1, 0x2c, 0xf5, 0x05, 0xcd, 0xb0,
		0x71, 0x8b, 0x0b, 0xc5, 0x53, 0x82, 0xb2, 0x10, 0x23, 0x5f, 0x7d, 0x0b, 0xb7, 0x78, 0xf6, 0xc5,
		0xf9, 0x46, 0xd7, 0x20, 0x82, 0x6f, 0xd3, 0x37, 0x99, 0xd9, 0xef, 0xe0, 0x1c, 0x1d, 0x0e, 0x87,
		0x49, 0x75, 0x21, 0x43, 0x06, 0xfb, 0xcb, 0x5f, 0x58, 0x94, 0x19, 0xf4, 0x23, 0xce, 0x65, 0x36,
		0x85, 0xe3, 0xfb, 0xa5, 0x10, 0x1b, 0x90, 0x02, 0xcd, 0x03, 0x26, 0x45, 0x78, 0x4f, 0x64, 0xca,
		0xce, 0x78, 0x2b, 0xb3, 0x1d, 0xdc, 0xe9, 0x9a, 0x66, 0x5b, 0x65, 0x73, 0x3c, 0x0f, 0x29, 0xff,
		0xba, 0xca, 0x7e, 0xfa, 0xdc, 0xd6, 0x74, 0x43, 0xf5, 0x39, 0xc1, 0x49, 0x56, 0xc8, 0xe6, 0x94,
		0xf7, 0xc1, 0xed, 0xdc, 0x06, 0x1c, 0x19, 0xb9, 0xae, 0xa2, 0x27, 0x20, 0xee, 0x2e, 0xc9, 0xec,
		0x98, 0xfe, 0x01, 0x99, 0x16, 0x17, 0x36, 0xf7, 0xcb, 0x92, 0x4b, 0xd2, 0x9f, 0xbb, 0x29, 0x43,
		0x84, 0x9d, 0x99, 0xe4, 0xe7, 0x63, 0xce, 0x4e, 0xb7, 0x22, 0x2f, 0xb3, 0x03, 0x95, 0x0a, 0x47,
		0xce, 0xbd, 0x1d, 0x22, 0xac, 0x04, 0x25, 0x20, 0xea, 0xfb, 0x05, 0x80, 0x7c, 0xb1, 0x58, 0xde,
		0x10, 0x6f, 0x2a, 0x17, 0xe8, 0x93, 0xbe, 0xa4, 0x58, 0x29, 0x5f, 0x2f, 0x17, 0x1b, 0x72, 0x10,
		0xcd, 0xc1, 0x2c, 0xfb, 0x9b, 0xbf, 0xd3, 0x2f, 0x87, 0x3c, 0x45, 0xf5, 0x72, 0xb5, 0x54, 0x56,
		0xe4, 0x70, 0xee, 0x3c, 0x1c, 0x1f, 0xbb, 0x86, 0xbb, 0x89, 0x19, 0xc9, 0x93, 0x98, 0xc9, 0xbd,
		0x1c, 0x20, 0x41, 0xcd, 0xb8, 0x85, 0x19, 0x5d, 0x1f, 0xe8, 0xf8, 0xca, 0x21, 0x56, 0xf5, 0x81,
		0xde, 0x93, 0x38, 0xa6, 0x87, 0xb7, 0xb1, 0xdd, 0xdc, 0x65, 0x8e, 0x02, 0xb3, 0x40, 0xb3, 0xca,
		0x2c, 0x2f, 0xa5, 0x48, 0x16, 0x03, 0x7b, 0x1e, 0x37, 0x6d, 0x95, 0x29, 0x91, 0x45, 0x83, 0x89,
		0x38, 0x01, 0x23, 0xa5, 0x75, 0x56, 0x98, 0xfb, 0xf6, 0x43, 0xc9, 0x32, 0x0e, 0x61, 0xa5, 0xdc,
		0x50, 0x6e, 0xca, 0x41, 0x84, 0x20, 0x45, 0xff, 0x54, 0xeb, 0xd5, 0xfc, 0x46, 0xfd, 0x5a, 0x8d,
		0xc8, 0x72, 0x1e, 0xd2, 0x42, 0x96, 0xa2, 0x30, 0x9c, 0x7b, 0x18, 0x8e, 0x8d, 0xf1, 0x2a, 0x46,
		0x1c, 0x62, 0xfd, 0xa8, 0xe4, 0x85, 0xf6, 0x7b, 0x06, 0x35, 0x88, 0x58, 0xb6, 0x66, 0xf7, 0x2d,
		0x2e, 0xc4, 0x27, 0xa6, 0x75, 0x33, 0x96, 0xc5, 0x1f, 0x75, 0x8a, 0xae, 0x70, 0x32, 0xb9, 0x0b,
		0x90, 0xf2, 0xd7, 0x8c, 0x97, 0x81, 0xab, 0x44, 0x81, 0xdc, 0x65, 0x40, 0xc3, 0xde, 0xc7, 0x88,
		0xf0, 0x52, 0x1a, 0x15, 0x5e, 0xfe, 0x84, 0x04, 0x27, 0x0e, 0xf0, 0x34, 0xd0, 0xdb, 0x06, 0x3a,
		0x79, 0xe9, 0x30, 0x7e, 0xca, 0x32, 0x2b, 0x1b, 0xe8, 0xe6, 0x63, 0x90, 0xf4, 0x96, 0x4f, 0xd7,
		0xc9, 0x2f, 0x07, 0xdc, 0x49, 0xec, 0x8f, 0x83, 0x5d, 0x13, 0x28, 0x7d, 0x83, 0x26, 0xf0, 0xcd,
		0x00, 0xf6, 0x9e, 0x38, 0x45, 0xcd, 0xd7, 0xd1, 0x7b, 0x47, 0xe4, 0x17, 0x71, 0xb3, 0xb1, 0xc7,
		0x27, 0x41, 0xdc, 0xe6, 0x7f, 0x59, 0xa8, 0xee, 0x4d, 0x0a, 0xf4, 0xe9, 0x1a, 0x6b, 0xf1, 0x80,
		0x79, 0xda, 0xc5, 0xd8, 0x4d, 0x1e, 0xb0, 0x62, 0x0b, 0xdd, 0x84, 0x63, 0x03, 0x8e, 0x82, 0x43,
		0x3a, 0x34, 0xad, 0xbf, 0x70, 0xc4, 0xef, 0x2f, 0x08, 0xd2, 0xde, 0xd5, 0x3e, 0xec, 0x5f, 0xed,
		0x6f, 0x02, 0xb8, 0xc9, 0x01, 0xf7, 0xd8, 0x9f, 0xe4, 0x3d, 0xf6, 0x77, 0x01, 0xc2, 0x44, 0x93,
		0x84, 0x9c, 0x86, 0x4d, 0x31, 0xd1, 0x04, 0x4f, 0x72, 0x81, 0x41, 0xe7, 0x74, 0x40, 0xc3, 0x09,
		0xda, 0x31, 0x4d, 0xbc, 0xc5, 0xdf, 0xc4, 0xa9, 0xb1, 0xa9, 0xde, 0xd1, 0x4d, 0xbd, 0x08, 0x61,
		0x3a, 0xf2, 0x23, 0xef, 0x52, 0x7e, 0x1b, 0x80, 0x66, 0xdb, 0x3d, 0x7d, 0xab, 0xef, 0x36, 0xb0,
		0x38, 0x5a, 0x73, 0xf2, 0x02, 0xae, 0x70, 0x0f, 0x57, 0xa1, 0x05, 0x17, 0xd5, 0xa3, 0x46, 0x1e,
		0x82, 0xb9, 0x2a, 0xa4, 0xfc, 0xb8, 0xa3, 0xef, 0x86, 0x0e, 0xff, 0x02, 0xae, 0xeb, 0x1d, 0xf1,
		0xe7, 0xaa, 0xe8, 0x47, 0xee, 0x9d, 0x01, 0x48, 0x7a, 0x15, 0xef, 0xef, 0x9f, 0x0b, 0x92, 0xfb,
		0x2e, 0x09, 0x62, 0x4e, 0xf7, 0x0f, 0x38, 0xec, 0xec, 0xde, 0x11, 0x76, 0x36, 0x2f, 0xd8, 0x36,
		0x51, 0xd0, 0xd9, 0x26, 0xba, 0xec, 0x2c, 0x7f, 0xe3, 0x12, 0x22, 0x5e, 0x59, 0x8b, 0x03, 0x87,
		0x7c, 0xb5, 0xbf, 0x3c, 0xdd, 0x55, 0xbc, 0x05, 0x08, 0x7b, 0xaf, 0xd1, 0xb1, 0x8f, 0x5c, 0xcb,
		0x73, 0xc2, 0x88, 0x4d, 0x44, 0xef, 0x9d, 0x3d, 0xe9, 0xd0, 0x77, 0xf6, 0x9c, 0x56, 0x02, 0xde,
		0x56, 0x7e, 0x40, 0x82, 0x98, 0x98, 0x13, 0xe8, 0xad, 0xde, 0x93, 0x67, 0x62, 0x6b, 0x73, 0xac,
		0x3d, 0xe2, 0xf4, 0x3d, 0x07, 0xcf, 0x86, 0x0e, 0x5c, 0x07, 0x0f, 0x7b, 0xe0, 0x9a, 0x7b, 0x76,
		0x7f, 0x29, 0x81, 0x3c, 0x38, 0x63, 0xbf, 0x61, 0xee, 0x86, 0x97, 0xb9, 0xe0, 0x88, 0x65, 0x6e,
		0xdc, 0x29, 0xea, 0xd0, 0xb8, 0x53, 0xd4, 0xc3, 0xbd, 0x0e, 0xdf, 0x65, 0xaf, 0xdf, 0x1d, 0x80,
		0x84, 0x27, 0x3d, 0x8a, 0x1e, 0xf7, 0x9d, 0xc8, 0x5e, 0x3a, 0x28, 0x95, 0xea, 0x39, 0x92, 0xed,
		0x13, 0x53, 0xe0, 0xf0, 0x62, 0x7a, 0xfd, 0x6f, 0x67, 0x8d, 0xbe, 0xc0, 0x1a, 0x1e, 0x73, 0x81,
		0xf5, 0x3b, 0x25, 0x88, 0x39, 0x6e, 0xf7, 0x61, 0x37, 0x31, 0x8f, 0x42, 0x84, 0x7b, 0x96, 0x6c,
		0x17, 0x93, 0x7f, 0x8d, 0x4c, 0x2b, 0x67, 0x21, 0xd6, 0xc1, 0xb6, 0x46, 0xed, 0x20, 0x5b, 0xd5,
		0x9c, 0xef, 0x33, 0x97, 0x20, 0xe1, 0xd9, 0x00, 0x26, 0xa6, 0xb1, 0x5a, 0x7e, 0x46, 0x9e, 0xc9,
		0x46, 0x5f, 0xba, 0xb3, 0x14, 0xac, 0xe2, 0x17, 0xc8, 0x6c, 0x56, 0xca, 0xc5, 0x6b, 0xe5, 0xe2,
		0xd3, 0xb2, 0x94, 0x4d, 0xbc, 0x74, 0x67, 0x29, 0xaa, 0x60, 0x9a, 0x51, 0x3c, 0xf3, 0x34, 0xa4,
		0x07, 0x06, 0xc6, 0xef, 0xb6, 0x20, 0x48, 0x95, 0x36, 0x37, 0xd6, 0x2a, 0xc5, 0x7c, 0xa3, 0xac,
		0xb2, 0x73, 0xbb, 0xe8, 0x18, 0xcc, 0xaf, 0x55, 0xae, 0x5e, 0x6b, 0xa8, 0xc5, 0xb5, 0x4a, 0xb9,
		0xda, 0x50, 0xf3, 0x8d, 0x46, 0xbe, 0xf8, 0xb4, 0x1c, 0x58, 0xb9, 0x93, 0x80, 0x50, 0xbe, 0x50,
		0xac, 0xa0, 0x22, 0x84, 0x68, 0x2a, 0xe4, 0xc0, 0x13, 0x60, 0xd9, 0x83, 0x73, 0xc3, 0xe8, 0x0a,
		0x84, 0x69, 0x96, 0x04, 0x1d, 0x7c, 0x24, 0x2c, 0x3b, 0x21, 0x59, 0x4c, 0x98, 0xa1, 0x33, 0xf2,
		0xc0, 0x33, 0x62, 0xd9, 0x83, 0x73, 0xc7, 0x68, 0x0d, 0xa2, 0x22, 0x48, 0x9e, 0x74, 0x70, 0x2b,
		0x3b, 0x31, 0xa1, 0x4b, 0xba, 0xc6, 0x92, 0x0d, 0x07, 0x1f, 0x1f, 0xcb, 0x4e, 0xc8, 0x2a, 0xa3,
		0x8a, 0x73, 0x9f, 0x69, 0xc2, 0x89, 0xb0, 0xec, 0xa4, 0x3c, 0x31, 0x52, 0x20, 0xee, 0xa6, 0x71,
		0x26, 0x1f, 0x8a, 0xcb, 0x4e, 0x91, 0x30, 0x47, 0x6f, 0x87, 0x59, 0x7f, 0xa8, 0x3b, 0xdd, 0xa9,
		0xb3, 0xec, 0x94, 0x19, 0x69, 0x42, 0xdf, 0x1f, 0xf7, 0x4e, 0x77, 0x0a, 0x2d, 0x3b, 0x65, 0x82,
		0x1a, 0x3d, 0x0f, 0x73, 0xc3, 0x71, 0xe9, 0xf4, 0x87, 0xd2, 0xb2, 0x87, 0x48, 0x59, 0xa3, 0x0e,
		0xa0, 0x11, 0xf1, 0xec, 0x21, 0xce, 0xa8, 0x65, 0x0f, 0x93, 0xc1, 0x46, 0x2d, 0x48, 0x0f, 0x06,
		0x89, 0xd3, 0x9e, 0x59, 0xcb, 0x4e, 0x9d, 0xcd, 0x66, 0xad, 0xf8, 0x83, 0xcb, 0x69, 0xcf, 0xb0,
		0x65, 0xa7, 0x4e, 0x6e, 0xa3, 0x4d, 0x00, 0x4f, 0x7c, 0x38, 0xc5, 0x99, 0xb6, 0xec, 0x34, 0x69,
		0x6e, 0xd4, 0x85, 0xf9, 0x51, 0x81, 0xe3, 0x61, 0x8e, 0xb8, 0x65, 0x0f, 0x95, 0xfd, 0x26, 0xfa,
		0xec, 0x0f, 0x01, 0xa7, 0x3b, 0xf2, 0x96, 0x9d, 0x32, 0x0d, 0x5e, 0xc8, 0x8f, 0x3d, 0xe7, 0xfc,
		0xe0, 0x81, 0xe7, 0x9c, 0xdd, 0x93, 0xcb, 0xce, 0xd9, 0xe6, 0x2f, 0x9e, 0x83, 0x37, 0xf1, 0x17,
		0x74, 0x2c, 0x5b, 0xbb, 0xa5, 0x1b, 0x3b, 0xce, 0x33, 0x4b, 0xfc, 0x9b, 0x1f, 0x72, 0x3e, 0xca,
		0x5f, 0xe9, 0x11, 0xa5, 0x13, 0x1e, 0x5b, 0x1a, 0xfb, 0x46, 0xe7, 0xa4, 0xfb, 0x10, 0x93, 0x8f,
		0x2f, 0x1f, 0xf0, 0x90, 0xd3, 0x84, 0xe7, 0xa2, 0x46, 0x3c, 0xf4, 0x94, 0x3d, 0xf0, 0x8d, 0x81,
		0xec, 0x41, 0xe7, 0xbe, 0x89, 0x17, 0x9b, 0xba, 0xa6, 0x5b, 0xb6, 0xd9, 0xd3, 0x9b, 0x5a, 0x9b,
		0x2e, 0x2f, 0x97, 0xa7, 0xbd, 0x95, 0x55, 0x88, 0x13, 0x77, 0x85, 0xbf, 0x05, 0xc5, 0x6f, 0x0a,
		0x95, 0x20, 0x72, 0x5b, 0x6b, 0xb3, 0x3b, 0x51, 0xde, 0xc7, 0xe4, 0x06, 0x65, 0xee, 0xf1, 0xa3,
		0xbc, 0x54, 0x18, 0x6e, 0xee, 0x87, 0xe8, 0x7d, 0x92, 0x4e, 0x47, 0xb7, 0x88, 0x2e, 0x2a, 0x34,
		0x94, 0xbe, 0x0e, 0xa1, 0x9e, 0x66, 0xf3, 0x00, 0xb3, 0x70, 0xf1, 0xd0, 0xef, 0x32, 0xb1, 0x16,
		0x28, 0x0d, 0xf4, 0x36, 0x88, 0x75, 0xb4, 0x3d, 0x95, 0xd2, 0x0b, 0x7c, 0x43, 0xf4, 0xa2, 0x1d,
		0x6d, 0x8f, 0xf0, 0x87, 0xde, 0x4e, 0x7f, 0xf7, 0x51, 0x6d, 0xee, 0x6a, 0xc6, 0x0e, 0x66, 0x94,
		0x83, 0xdf, 0x10, 0xe5, 0xd9, 0x8e, 0xb6, 0x57, 0xa4, 0xd4, 0x08, 0x7d, 0xfe, 0xe4, 0xd5, 0xaf,
		0x49, 0x3c, 0x6b, 0x40, 0x05, 0x83, 0x34, 0x90, 0x9b, 0xce, 0x17, 0x6d, 0x54, 0x6c, 0x71, 0x3c,
		0x38, 0x4e, 0xee, 0x03, 0x62, 0x2d, 0xcc, 0x12, 0xf6, 0x3e, 0xff, 0x85, 0x45, 0x89, 0xb5, 0x9a,
		0x6e, 0x0e, 0x89, 0x3d, 0xc1, 0x92, 0x21, 0x2a, 0xf5, 0x61, 0x03, 0x13, 0x7d, 0xd8, 0x59, 0xe1,
		0xc3, 0x32, 0x82, 0xc0, 0xb0, 0x49, 0x3d, 0xef, 0xc3, 0x27, 0x25, 0x48, 0x94, 0x3c, 0x0f, 0x5f,
		0x66, 0x20, 0xda, 0x31, 0x0d, 0xfd, 0x16, 0xee, 0x39, 0x7b, 0x54, 0xec, 0x93, 0xf8, 0x99, 0xec,
		0x57, 0xd6, 0xed, 0x7d, 0xf1, 0xba, 0x90, 0xf8, 0x26, 0x58, 0x2f, 0xe0, 0x2d, 0x4b, 0x17, 0x72,
		0x56, 0xc4, 0x27, 0x7a, 0x08, 0x64, 0x0b, 0x37, 0xfb, 0x3d, 0xdd, 0xde, 0x57, 0x9b, 0xa6, 0x61,
		0x6b, 0x4d, 0x9b, 0xc7, 0xe1, 0x69, 0x51, 0x5e, 0x64, 0xc5, 0x84, 0x48, 0x0b, 0xdb, 0x9a, 0xde,
		0x66, 0x27, 0x33, 0xe3, 0x8a, 0xf8, 0xe4, 0xac, 0xde, 0x89, 0x7a, 0xe3, 0xd0, 0x22, 0xc8, 0x66,
		0x17, 0xf7, 0x7c, 0x07, 0x52, 0x98, 0x36, 0x66, 0x7e, 0xe7, 0xb3, 0x67, 0x17, 0xb8, 0xc0, 0xf9,
		0x61, 0x06, 0xf6, 0x3b, 0x0f, 0x4a, 0x5a, 0x60, 0x88, 0x93, 0x2a, 0x37, 0x7d, 0xbb, 0x52, 0xfd,
		0x2d, 0xf7, 0x19, 0x99, 0x85, 0x21, 0xa1, 0xe6, 0x8d, 0xfd, 0x42, 0xe6, 0x73, 0x2e, 0x69, 0x37,
		0x4e, 0x7d, 0x1a, 0xef, 0x7b, 0xb7, 0xa8, 0x28, 0x19, 0xe2, 0xc2, 0x3f, 0xaf, 0xe9, 0x6d, 0xdc,
		0xe2, 0x69, 0x0d, 0xfe, 0x85, 0x56, 0x9d, 0xf4, 0x22, 0xfb, 0x31, 0xd3, 0xdc, 0x38, 0xdd, 0x28,
		0x98, 0x46, 0xcb, 0x9f, 0x47, 0x44, 0x45, 0x88, 0xd8, 0xe6, 0x2d, 0x6c, 0x70, 0x01, 0x1d, 0xee,
		0x69, 0x35, 0x8e, 0x8a, 0xbe, 0x15, 0xe4, 0x16, 0x6e, 0xe3, 0x1d, 0x76, 0x5f, 0x72, 0x57, 0xeb,
		0x61, 0x76, 0x5b, 0xff, 0xae, 0x9e, 0x57, 0x4b, 0x3b, 0xa4, 0xea, 0x94, 0x12, 0xda, 0xf0, 0x3f,
		0xad, 0x1a, 0xe5, 0x9b, 0xc7, 0x63, 0xfa, 0xe8, 0xd1, 0x3c, 0xaf, 0xe5, 0xf1, 0x3d, 0xc5, 0xfa,
		0x10, 0xc8, 0x7d, 0x63, 0xcb, 0x34, 0xe8, 0x2f, 0x73, 0xf2, 0x28, 0x2a, 0xc6, 0x76, 0x2a, 0x9d,
		0x72, 0xbe, 0x53, 0xb9, 0x01, 0x29, 0x17, 0x94, 0xce, 0x90, 0xf8, 0x61, 0x67, 0xc8, 0xac, 0x43,
		0x80, 0x80, 0xa0, 0x75, 0x00, 0x77, 0x0e, 0xd2, 0xad, 0xb2, 0xc4, 0xf8, 0x11, 0x73, 0x67, 0xb3,
		0xb7, 0x33, 0x1e, 0x02, 0xc8, 0x80, 0xf9, 0x8e, 0x6e, 0xa8, 0x16, 0x6e, 0x6f, 0xab, 0x5c, 0x72,
		0x84, 0x6e, 0x82, 0x8a, 0xff, 0xad, 0x87, 0x18, 0xcd, 0xdf, 0xfb, 0xec, 0xd9, 0xb4, 0xfb, 0x40,
		0xdd, 0xd2, 0xa3, 0xcb, 0x8f, 0x5f, 0x54, 0xe6, 0x3a, 0xba, 0x51, 0xc7, 0xed, 0xed, 0x92, 0x43,
		0x18, 0xbd, 0x19, 0x4e, 0xb8, 0x02, 0x31, 0x0d, 0x75, 0xd7, 0x6c, 0xb7, 0xd4, 0x1e, 0xde, 0x56,
		0x9b, 0xf4, 0xe9, 0xbf, 0x24, 0x15, 0xe3, 0x31, 0x07, 0xa4, 0x66, 0x5c, 0x33, 0xdb, 0x2d, 0x05,
		0x6f, 0x17, 0x49, 0x35, 0xba, 0x0f, 0x5c, 0x69, 0xa8, 0x7a, 0xcb, 0xca, 0xcc, 0x2e, 0x05, 0x4f,
		0x87, 0x94, 0xa4, 0x53, 0x58, 0x69, 0x59, 0xab, 0xb1, 0xf7, 0x7e, 0x64, 0x71, 0xe6, 0xd5, 0x8f,
		0x2c, 0xce, 0xe4, 0xae, 0xd0, 0x67, 0xa6, 0xf8, 0xd4, 0xc2, 0x16, 0xba, 0x08, 0x71, 0x4d, 0x7c,
		0xb0, 0x4b, 0x64, 0x07, 0x4c, 0x4d, 0x17, 0x34, 0xf7, 0x93, 0x12, 0x44, 0x4a, 0x37, 0x36, 0x34,
		0xbd, 0x87, 0xca, 0x30, 0xe7, 0xea, 0xea, 0xb4, 0xb3, 0xdc, 0x55, 0x6f, 0x31, 0xcd, 0xab, 0xe3,
		0x4e, 0xaf, 0xc5, 0x0b, 0xa7, 0x7e, 0xe7, 0xb3, 0x67, 0xef, 0xe5, 0x64, 0x6e, 0x0c, 0x1c, 0x64,
		0x13, 0xf4, 0x06, 0x0f, 0xb8, 0x79, 0xfa, 0x7c, 0x1d, 0xa2, 0x8c, 0x55, 0x0b, 0x3d, 0x05, 0xe1,
		0x2e, 0xf9, 0x83, 0x27, 0xe5, 0x4f, 0x8e, 0xd5, 0x79, 0x0a, 0xef, 0xd5, 0x10, 0x86, 0x97, 0x7b,
		0x5f, 0x00, 0xa0, 0x74, 0xe3, 0x46, 0xa3, 0xa7, 0x77, 0xdb, 0xd8, 0x7e, 0xbd, 0xfa, 0xbe, 0x09,
		0x47, 0x3c, 0xd7, 0xa3, 0x7b, 0xcd, 0xc3, 0xf7, 0x7f, 0xde, 0xbd, 0x29, 0xdd, 0x6b, 0x8e, 0x24,
		0xdb, 0xb2, 0x6c, 0x87, 0x6c, 0xf0, 0xf0, 0x64, 0x4b, 0x96, 0x3d, 0x2c, 0xd9, 0x67, 0x21, 0xe1,
		0x0a, 0xc3, 0x42, 0x15, 0x88, 0xd9, 0xfc, 0x6f, 0x2e, 0xe0, 0xdc, 0x78, 0x01, 0x0b, 0x34, 0xaf,
		0x90, 0x1d, 0xf4, 0xdc, 0x5f, 0x4b, 0x00, 0x9e, 0x39, 0xf2, 0xc6, 0xd4, 0x31, 0x12, 0xc1, 0x73,
		0xe3, 0x1c, 0xbc, 0xeb, 0x07, 0x3a, 0x19, 0x01, 0x8f, 0x50, 0xdf, 0x1f, 0x80, 0xf9, 0x4d, 0x31,
		0x7b, 0xdf, 0xf8, 0x32, 0xd8, 0x84, 0x28, 0x36, 0xec, 0x9e, 0xee, 0x6c, 0x2b, 0x3d, 0x3a, 0x6e,
		0xcc, 0x47, 0x74, 0xaa, 0x6c, 0xd8, 0xbd, 0x7d, 0xaf, 0x06, 0x08, 0x5a, 0x1e, 0x79, 0x7c, 0x30,
		0x08, 0x99, 0x71, 0xa8, 0xe8, 0x41, 0x48, 0x37, 0x7b, 0x98, 0x16, 0xf8, 0x6f, 0x8d, 0xa6, 0x44,
		0x31, 0x5f, 0x76, 0x14, 0x20, 0x8e, 0x1a, 0x51, 0x2e, 0x02, 0x7a, 0x77, 0x9e, 0x59, 0xca, 0xa5,
		0x40, 0x17, 0x9e, 0x06, 0xa4, 0xc5, 0x35, 0x94, 0x2d, 0xad, 0xad, 0x19, 0x4d, 0xe1, 0xc1, 0x1e,
		0x6a, 0xcd, 0x17, 0x57, 0x59, 0x0a, 0x8c, 0x04, 0x2a, 0x43, 0x54, 0x50, 0x0b, 0x1d, 0x9e, 0x9a,
		0xc0, 0x45, 0xa7, 0x20, 0xe9, 0x5d, 0x18, 0xa8, 0x37, 0x12, 0x52, 0x12, 0x9e, 0x75, 0x61, 0xd2,
		0xca, 0x13, 0x39, 0x70, 0xe5, 0xe1, 0x0e, 0xdf, 0x8f, 0xd1, 0xd3, 0xe2, 0xad, 0xbf, 0xfb, 0xc3,
		0xb2, 0x01, 0xc0, 0xa6, 0x2a, 0xb1, 0xa4, 0x7c, 0x64, 0xee, 0x62, 0xbe, 0xc7, 0x19, 0x91, 0x92,
		0x65, 0xff, 0x6d, 0x8d, 0xd0, 0xef, 0x07, 0x20, 0xe9, 0x1d, 0xa1, 0xbf, 0x97, 0x8b, 0x16, 0xaa,
		0xba, 0x66, 0x8a, 0xdd, 0xa8, 0x79, 0x68, 0x9c, 0x99, 0x1a, 0xd2, 0xe6, 0x09, 0xf6, 0xe9, 0x43,
		0x41, 0x88, 0xf0, 0x23, 0x6f, 0xb5, 0x21, 0xdf, 0x56, 0x9a, 0xf4, 0x26, 0xc0, 0xac, 0x78, 0x13,
		0x60, 0xa4, 0x6b, 0x7b, 0x3f, 0xa4, 0x48, 0x8c, 0xec, 0x3b, 0x47, 0x27, 0x9d, 0x9e, 0xa5, 0xa1,
		0xae, 0x7b, 0x6a, 0x1c, 0x2d, 0x42, 0x82, 0x80, 0xb9, 0x76, 0x98, 0xc0, 0x40, 0x47, 0xdb, 0x2b,
		0xb3, 0x12, 0x74, 0x16, 0xd0, 0xae, 0x93, 0xb3, 0x50, 0x5d, 0x41, 0x10, 0xb8, 0x39, 0xb7, 0x46,
		0x80, 0xdf, 0x0b, 0x40, 0xb8, 0x50, 0xd9, 0x9b, 0xd4, 0xfc, 0xc5, 0x6f, 0x52, 0x52, 0xa2, 0xef,
		0x52, 0xbf, 0x47, 0x62, 0x2e, 0xf2, 0x40, 0x24, 0xcd, 0x23, 0x94, 0xc6, 0x14, 0x93, 0xe2, 0x2f,
		0xbe, 0xb0, 0x98, 0xdd, 0xd7, 0x3a, 0xed, 0xd5, 0xdc, 0x08, 0x3a, 0xb9, 0x51, 0xc1, 0x3d, 0x71,
		0x9c, 0xfd, 0x91, 0xf8, 0xea, 0x9b, 0x88, 0x7a, 0xbf, 0xf4, 0xca, 0xa7, 0xce, 0x9c, 0xf0, 0x3c,
		0x03, 0xbd, 0xe7, 0x64, 0xb4, 0xd8, 0x98, 0x10, 0x4f, 0x15, 0xb9, 0xab, 0x86, 0x73, 0x58, 0x7e,
		0x1d, 0xc0, 0xe3, 0xdc, 0x4b, 0x07, 0x07, 0x0d, 0x2e, 0xbe, 0x2f, 0x68, 0xf0, 0xcc, 0xa9, 0xb7,
		0xba, 0x46, 0x5b, 0x3c, 0x03, 0x31, 0xe2, 0x91, 0xf2, 0xe5, 0xa2, 0xa9, 0xfb, 0x48, 0x08, 0x24,
		0x3a, 0x55, 0x67, 0x72, 0xff, 0x46, 0x82, 0xe3, 0x43, 0xea, 0xe7, 0xb0, 0xdc, 0x04, 0xd4, 0xf3,
		0x54, 0xd2, 0x61, 0x14, 0xbb, 0xb3, 0x77, 0xa7, 0xcd, 0x73, 0xbd, 0x21, 0xcb, 0xfd, 0xfa, 0xac,
		0x3e, 0xdc, 0xf4, 0xfc, 0xa6, 0x04, 0x0b, 0x5e, 0x06, 0x9c, 0xae, 0xd4, 0x21, 0xe9, 0x6d, 0x9a,
		0x77, 0xe2, 0x4d, 0xd3, 0x74, 0xc2, 0xcb, 0xbf, 0x8f, 0x08, 0xba, 0xe1, 0x4e, 0x71, 0x96, 0x4a,
		0x3b, 0x3f, 0xb5, 0x50, 0x04, 0x63, 0x23, 0xa7, 0x3a, 0x1b, 0x9b, 0xaf, 0x48, 0x10, 0xda, 0x30,
		0xcd, 0x36, 0x7a, 0x07, 0xcc, 0x19, 0xa6, 0xad, 0x92, 0xe9, 0x80, 0x5b, 0x2a, 0x8f, 0xf5, 0x99,
		0xf9, 0x2c, 0x1f, 0x28, 0xab, 0x2f, 0x7f, 0x61, 0x71, 0x18, 0x73, 0xd4, 0x33, 0xf1, 0x69, 0xc3,
		0xb4, 0x0b, 0x14, 0xa8, 0xc1, 0xd2, 0x01, 0xdb, 0x30, 0xeb, 0x6f, 0x8e, 0x99, 0xd8, 0xfc, 0xa4,
		0xe6, 0x66, 0x27, 0x36, 0x95, 0xdc, 0xf2, 0xb4, 0xc3, 0x5e, 0x56, 0xfe, 0x33, 0x32, 0x72, 0x37,
		0x41, 0xbe, 0x31, 0x78, 0xea, 0xa7, 0x0c, 0x51, 0x71, 0xca, 0x47, 0x9a, 0xf2, 0x00, 0x91, 0x57,
		0x9c, 0x1c, 0xf7, 0xcc, 0xcf, 0x4b, 0x00, 0x6e, 0xde, 0x04, 0x3d, 0x02, 0xc7, 0x0a, 0xb5, 0x6a,
		0x49, 0xad, 0x37, 0xf2, 0x8d, 0xcd, 0xba, 0xff, 0xe7, 0x57, 0xc4, 0x93, 0x44, 0x56, 0x17, 0x37,
		0xf5, 0x6d, 0x1d, 0xb7, 0xd0, 0x03, 0xb0, 0xe0, 0x87, 0x26, 0x5f, 0xe5, 0x92, 0x2c, 0x65, 0x93,
		0x2f, 0xdd, 0x59, 0x8a, 0x31, 0x3f, 0x11, 0xb7, 0xd0, 0x69, 0x38, 0x32, 0x0c, 0x57, 0xa9, 0x5e,
		0x95, 0x03, 0xd9, 0xd9, 0x97, 0xee, 0x2c, 0xc5, 0x1d, 0x87, 0x12, 0xe5, 0x00, 0x79, 0x21, 0x39,
		0xbd, 0x60, 0x16, 0x5e, 0xba, 0xb3, 0x14, 0x61, 0xa3, 0x90, 0x0d, 0xbd, 0xf7, 0xc7, 0x4f, 0xce,
		0x9c, 0xf9, 0x36, 0x80, 0x8a, 0xb1, 0xdd, 0xd3, 0x9a, 0x54, 0xdb, 0xb2, 0x70, 0xb4, 0x52, 0xbd,
		0xa2, 0xe4, 0x8b, 0x8d, 0x4a, 0xad, 0x3a, 0xf0, 0xab, 0x31, 0xfe, 0xba, 0x52, 0x6d, 0xb3, 0xb0,
		0x56, 0x56, 0xeb, 0x95, 0xab, 0x55, 0xb6, 0xff, 0xea, 0xab, 0x7b, 0xa6, 0xda, 0xa8, 0xac, 0x97,
		0xe5, 0x40, 0xe1, 0xca, 0xd8, 0xfc, 0xfe, 0x23, 0x07, 0x3e, 0x7c, 0xef, 0x5a, 0x3c, 0x5f, 0x92,
		0xff, 0x7f, 0x06, 0x00, 0x00, 0xff, 0xff, 0xbc, 0x75, 0xa9, 0xc4, 0x25, 0xb6, 0x00, 0x00,
	}
	r := bytes.NewReader(gzipped)
	gzipr, err := compress_gzip.NewReader(r)
	if err != nil {
		panic(err)
	}
	ungzipped, err := io_ioutil.ReadAll(gzipr)
	if err != nil {
		panic(err)
	}
	if err := github_com_cosmos_gogoproto_proto.Unmarshal(ungzipped, d); err != nil {
		panic(err)
	}
	return d
}
func (this *CommissionRates) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*CommissionRates)
	if !ok {
		that2, ok := that.(CommissionRates)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.Rate.Equal(that1.Rate) {
		return false
	}
	if !this.MaxRate.Equal(that1.MaxRate) {
		return false
	}
	if !this.MaxChangeRate.Equal(that1.MaxChangeRate) {
		return false
	}
	return true
}
func (this *Commission) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*Commission)
	if !ok {
		that2, ok := that.(Commission)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.CommissionRates.Equal(&that1.CommissionRates) {
		return false
	}
	if !this.UpdateTime.Equal(that1.UpdateTime) {
		return false
	}
	return true
}
func (this *Description) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*Description)
	if !ok {
		that2, ok := that.(Description)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Moniker != that1.Moniker {
		return false
	}
	if this.Identity != that1.Identity {
		return false
	}
	if this.Website != that1.Website {
		return false
	}
	if this.SecurityContact != that1.SecurityContact {
		return false
	}
	if this.Details != that1.Details {
		return false
	}
	return true
}
func (this *UnbondingDelegationEntry) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*UnbondingDelegationEntry)
	if !ok {
		that2, ok := that.(UnbondingDelegationEntry)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.CreationHeight != that1.CreationHeight {
		return false
	}
	if !this.CompletionTime.Equal(that1.CompletionTime) {
		return false
	}
	if !this.InitialBalance.Equal(that1.InitialBalance) {
		return false
	}
	if !this.Balance.Equal(that1.Balance) {
		return false
	}
	if this.UnbondingId != that1.UnbondingId {
		return false
	}
	if this.UnbondingOnHoldRefCount != that1.UnbondingOnHoldRefCount {
		return false
	}
	return true
}
func (this *RedelegationEntry) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*RedelegationEntry)
	if !ok {
		that2, ok := that.(RedelegationEntry)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.CreationHeight != that1.CreationHeight {
		return false
	}
	if !this.CompletionTime.Equal(that1.CompletionTime) {
		return false
	}
	if !this.InitialBalance.Equal(that1.InitialBalance) {
		return false
	}
	if !this.SharesDst.Equal(that1.SharesDst) {
		return false
	}
	if this.UnbondingId != that1.UnbondingId {
		return false
	}
	if this.UnbondingOnHoldRefCount != that1.UnbondingOnHoldRefCount {
		return false
	}
	return true
}
func (this *Params) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*Params)
	if !ok {
		that2, ok := that.(Params)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.UnbondingTime != that1.UnbondingTime {
		return false
	}
	if this.MaxValidators != that1.MaxValidators {
		return false
	}
	if this.MaxEntries != that1.MaxEntries {
		return false
	}
	if this.HistoricalEntries != that1.HistoricalEntries {
		return false
	}
	if this.BondDenom != that1.BondDenom {
		return false
	}
	if !this.MinCommissionRate.Equal(that1.MinCommissionRate) {
		return false
	}
	return true
}
func (this *RedelegationEntryResponse) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*RedelegationEntryResponse)
	if !ok {
		that2, ok := that.(RedelegationEntryResponse)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.RedelegationEntry.Equal(&that1.RedelegationEntry) {
		return false
	}
	if !this.Balance.Equal(that1.Balance) {
		return false
	}
	return true
}
func (this *Pool) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*Pool)
	if !ok {
		that2, ok := that.(Pool)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.NotBondedTokens.Equal(that1.NotBondedTokens) {
		return false
	}
	if !this.BondedTokens.Equal(that1.BondedTokens) {
		return false
	}
	return true
}
func (m *HistoricalInfo) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *HistoricalInfo) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *HistoricalInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if len(m.Valset) > 0 {
		for iNdEx := len(m.Valset) - 1; iNdEx >= 0; iNdEx-- {
			{
				size, err := m.Valset[iNdEx].MarshalToSizedBuffer(dAtA[:i])
				if err != nil {
					return 0, err
				}
				i -= size
				i = encodeVarintStaking(dAtA, i, uint64(size))
			}
			i--
			dAtA[i] = 0x12
		}
	}
	{
		size, err := m.Header.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintStaking(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0xa
	return len(dAtA) - i, nil
}

func (m *CommissionRates) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *CommissionRates) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *CommissionRates) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	{
		size := m.MaxChangeRate.Size()
		i -= size
		if _, err := m.MaxChangeRate.MarshalTo(dAtA[i:]); err != nil {
			return 0, err
		}
		i = encodeVarintStaking(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0x1a
	{
		size := m.MaxRate.Size()
		i -= size
		if _, err := m.MaxRate.MarshalTo(dAtA[i:]); err != nil {
			return 0, err
		}
		i = encodeVarintStaking(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0x12
	{
		size := m.Rate.Size()
		i -= size
		if _, err := m.Rate.MarshalTo(dAtA[i:]); err != nil {
			return 0, err
		}
		i = encodeVarintStaking(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0xa
	return len(dAtA) - i, nil
}

func (m *Commission) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *Commission) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *Commission) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	n2, err2 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.UpdateTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.UpdateTime):])
	if err2 != nil {
		return 0, err2
	}
	i -= n2
	i = encodeVarintStaking(dAtA, i, uint64(n2))
	i--
	dAtA[i] = 0x12
	{
		size, err := m.CommissionRates.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintStaking(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0xa
	return len(dAtA) - i, nil
}

func (m *Description) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *Description) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *Description) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if len(m.Details) > 0 {
		i -= len(m.Details)
		copy(dAtA[i:], m.Details)
		i = encodeVarintStaking(dAtA, i, uint64(len(m.Details)))
		i--
		dAtA[i] = 0x2a
	}
	if len(m.SecurityContact) > 0 {
		i -= len(m.SecurityContact)
		copy(dAtA[i:], m.SecurityContact)
		i = encodeVarintStaking(dAtA, i, uint64(len(m.SecurityContact)))
		i--
		dAtA[i] = 0x22
	}
	if len(m.Website) > 0 {
		i -= len(m.Website)
		copy(dAtA[i:], m.Website)
		i = encodeVarintStaking(dAtA, i, uint64(len(m.Website)))
		i--
		dAtA[i] = 0x1a
	}
	if len(m.Identity) > 0 {
		i -= len(m.Identity)
		copy(dAtA[i:], m.Identity)
		i = encodeVarintStaking(dAtA, i, uint64(len(m.Identity)))
		i--
		dAtA[i] = 0x12
	}
	if len(m.Moniker) > 0 {
		i -= len(m.Moniker)
		copy(dAtA[i:], m.Moniker)
		i = encodeVarintStaking(dAtA, i, uint64(len(m.Moniker)))
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *Validator) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *Validator) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *Validator) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if len(m.UnbondingIds) > 0 {
		dAtA5 := make([]byte, len(m.UnbondingIds)*10)
		var j4 int
		for _, num := range m.UnbondingIds {
			for num >= 1<<7 {
				dAtA5[j4] = uint8(uint64(num)&0x7f | 0x80)
				num >>= 7
				j4++
			}
			dAtA5[j4] = uint8(num)
			j4++
		}
		i -= j4
		copy(dAtA[i:], dAtA5[:j4])
		i = encodeVarintStaking(dAtA, i, uint64(j4))
		i--
		dAtA[i] = 0x6a
	}
	if m.UnbondingOnHoldRefCount != 0 {
		i = encodeVarintStaking(dAtA, i, uint64(m.UnbondingOnHoldRefCount))
		i--
		dAtA[i] = 0x60
	}
	{
		size := m.MinSelfDelegation.Size()
		i -= size
		if _, err := m.MinSelfDelegation.MarshalTo(dAtA[i:]); err != nil {
			return 0, err
		}
		i = encodeVarintStaking(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0x5a
	{
		size, err := m.Commission.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintStaking(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0x52
	n7, err7 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.UnbondingTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.UnbondingTime):])
	if err7 != nil {
		return 0, err7
	}
	i -= n7
	i = encodeVarintStaking(dAtA, i, uint64(n7))
	i--
	dAtA[i] = 0x4a
	if m.UnbondingHeight != 0 {
		i = encodeVarintStaking(dAtA, i, uint64(m.UnbondingHeight))
		i--
		dAtA[i] = 0x40
	}
	{
		size, err := m.Description.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintStaking(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0x3a
	{
		size := m.DelegatorShares.Size()
		i -= size
		if _, err := m.DelegatorShares.MarshalTo(dAtA[i:]); err != nil {
			return 0, err
		}
		i = encodeVarintStaking(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0x32
	{
		size := m.Tokens.Size()
		i -= size
		if _, err := m.Tokens.MarshalTo(dAtA[i:]); err != nil {
			return 0, err
		}
		i = encodeVarintStaking(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0x2a
	if m.Status != 0 {
		i = encodeVarintStaking(dAtA, i, uint64(m.Status))
		i--
		dAtA[i] = 0x20
	}
	if m.Jailed {
		i--
		if m.Jailed {
			dAtA[i] = 1
		} else {
			dAtA[i] = 0
		}
		i--
		dAtA[i] = 0x18
	}
	if m.ConsensusPubkey != nil {
		{
			size, err := m.ConsensusPubkey.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintStaking(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x12
	}
	if len(m.OperatorAddress) > 0 {
		i -= len(m.OperatorAddress)
		copy(dAtA[i:], m.OperatorAddress)
		i = encodeVarintStaking(dAtA, i, uint64(len(m.OperatorAddress)))
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *ValAddresses) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *ValAddresses) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *ValAddresses) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if len(m.Addresses) > 0 {
		for iNdEx := len(m.Addresses) - 1; iNdEx >= 0; iNdEx-- {
			i -= len(m.Addresses[iNdEx])
			copy(dAtA[i:], m.Addresses[iNdEx])
			i = encodeVarintStaking(dAtA, i, uint64(len(m.Addresses[iNdEx])))
			i--
			dAtA[i] = 0xa
		}
	}
	return len(dAtA) - i, nil
}

func (m *DVPair) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *DVPair) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *DVPair) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if len(m.ValidatorAddress) > 0 {
		i -= len(m.ValidatorAddress)
		copy(dAtA[i:], m.ValidatorAddress)
		i = encodeVarintStaking(dAtA, i, uint64(len(m.ValidatorAddress)))
		i--
		dAtA[i] = 0x12
	}
	if len(m.DelegatorAddress) > 0 {
		i -= len(m.DelegatorAddress)
		copy(dAtA[i:], m.DelegatorAddress)
		i = encodeVarintStaking(dAtA, i, uint64(len(m.DelegatorAddress)))
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *DVPairs) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *DVPairs) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *DVPairs) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if len(m.Pairs) > 0 {
		for iNdEx := len(m.Pairs) - 1; iNdEx >= 0; iNdEx-- {
			{
				size, err := m.Pairs[iNdEx].MarshalToSizedBuffer(dAtA[:i])
				if err != nil {
					return 0, err
				}
				i -= size
				i = encodeVarintStaking(dAtA, i, uint64(size))
			}
			i--
			dAtA[i] = 0xa
		}
	}
	return len(dAtA) - i, nil
}

func (m *DVVTriplet) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *DVVTriplet) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *DVVTriplet) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if len(m.ValidatorDstAddress) > 0 {
		i -= len(m.ValidatorDstAddress)
		copy(dAtA[i:], m.ValidatorDstAddress)
		i = encodeVarintStaking(dAtA, i, uint64(len(m.ValidatorDstAddress)))
		i--
		dAtA[i] = 0x1a
	}
	if len(m.ValidatorSrcAddress) > 0 {
		i -= len(m.ValidatorSrcAddress)
		copy(dAtA[i:], m.ValidatorSrcAddress)
		i = encodeVarintStaking(dAtA, i, uint64(len(m.ValidatorSrcAddress)))
		i--
		dAtA[i] = 0x12
	}
	if len(m.DelegatorAddress) > 0 {
		i -= len(m.DelegatorAddress)
		copy(dAtA[i:], m.DelegatorAddress)
		i = encodeVarintStaking(dAtA, i, uint64(len(m.DelegatorAddress)))
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *DVVTriplets) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *DVVTriplets) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *DVVTriplets) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if len(m.Triplets) > 0 {
		for iNdEx := len(m.Triplets) - 1; iNdEx >= 0; iNdEx-- {
			{
				size, err := m.Triplets[iNdEx].MarshalToSizedBuffer(dAtA[:i])
				if err != nil {
					return 0, err
				}
				i -= size
				i = encodeVarintStaking(dAtA, i, uint64(size))
			}
			i--
			dAtA[i] = 0xa
		}
	}
	return len(dAtA) - i, nil
}

func (m *Delegation) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *Delegation) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *Delegation) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	{
		size := m.Shares.Size()
		i -= size
		if _, err := m.Shares.MarshalTo(dAtA[i:]); err != nil {
			return 0, err
		}
		i = encodeVarintStaking(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0x1a
	if len(m.ValidatorAddress) > 0 {
		i -= len(m.ValidatorAddress)
		copy(dAtA[i:], m.ValidatorAddress)
		i = encodeVarintStaking(dAtA, i, uint64(len(m.ValidatorAddress)))
		i--
		dAtA[i] = 0x12
	}
	if len(m.DelegatorAddress) > 0 {
		i -= len(m.DelegatorAddress)
		copy(dAtA[i:], m.DelegatorAddress)
		i = encodeVarintStaking(dAtA, i, uint64(len(m.DelegatorAddress)))
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *UnbondingDelegation) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *UnbondingDelegation) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *UnbondingDelegation) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if len(m.Entries) > 0 {
		for iNdEx := len(m.Entries) - 1; iNdEx >= 0; iNdEx-- {
			{
				size, err := m.Entries[iNdEx].MarshalToSizedBuffer(dAtA[:i])
				if err != nil {
					return 0, err
				}
				i -= size
				i = encodeVarintStaking(dAtA, i, uint64(size))
			}
			i--
			dAtA[i] = 0x1a
		}
	}
	if len(m.ValidatorAddress) > 0 {
		i -= len(m.ValidatorAddress)
		copy(dAtA[i:], m.ValidatorAddress)
		i = encodeVarintStaking(dAtA, i, uint64(len(m.ValidatorAddress)))
		i--
		dAtA[i] = 0x12
	}
	if len(m.DelegatorAddress) > 0 {
		i -= len(m.DelegatorAddress)
		copy(dAtA[i:], m.DelegatorAddress)
		i = encodeVarintStaking(dAtA, i, uint64(len(m.DelegatorAddress)))
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *UnbondingDelegationEntry) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *UnbondingDelegationEntry) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *UnbondingDelegationEntry) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.UnbondingOnHoldRefCount != 0 {
		i = encodeVarintStaking(dAtA, i, uint64(m.UnbondingOnHoldRefCount))
		i--
		dAtA[i] = 0x30
	}
	if m.UnbondingId != 0 {
		i = encodeVarintStaking(dAtA, i, uint64(m.UnbondingId))
		i--
		dAtA[i] = 0x28
	}
	{
		size := m.Balance.Size()
		i -= size
		if _, err := m.Balance.MarshalTo(dAtA[i:]); err != nil {
			return 0, err
		}
		i = encodeVarintStaking(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0x22
	{
		size := m.InitialBalance.Size()
		i -= size
		if _, err := m.InitialBalance.MarshalTo(dAtA[i:]); err != nil {
			return 0, err
		}
		i = encodeVarintStaking(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0x1a
	n10, err10 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.CompletionTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.CompletionTime):])
	if err10 != nil {
		return 0, err10
	}
	i -= n10
	i = encodeVarintStaking(dAtA, i, uint64(n10))
	i--
	dAtA[i] = 0x12
	if m.CreationHeight != 0 {
		i = encodeVarintStaking(dAtA, i, uint64(m.CreationHeight))
		i--
		dAtA[i] = 0x8
	}
	return len(dAtA) - i, nil
}

func (m *RedelegationEntry) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *RedelegationEntry) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *RedelegationEntry) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.UnbondingOnHoldRefCount != 0 {
		i = encodeVarintStaking(dAtA, i, uint64(m.UnbondingOnHoldRefCount))
		i--
		dAtA[i] = 0x30
	}
	if m.UnbondingId != 0 {
		i = encodeVarintStaking(dAtA, i, uint64(m.UnbondingId))
		i--
		dAtA[i] = 0x28
	}
	{
		size := m.SharesDst.Size()
		i -= size
		if _, err := m.SharesDst.MarshalTo(dAtA[i:]); err != nil {
			return 0, err
		}
		i = encodeVarintStaking(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0x22
	{
		size := m.InitialBalance.Size()
		i -= size
		if _, err := m.InitialBalance.MarshalTo(dAtA[i:]); err != nil {
			return 0, err
		}
		i = encodeVarintStaking(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0x1a
	n11, err11 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.CompletionTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.CompletionTime):])
	if err11 != nil {
		return 0, err11
	}
	i -= n11
	i = encodeVarintStaking(dAtA, i, uint64(n11))
	i--
	dAtA[i] = 0x12
	if m.CreationHeight != 0 {
		i = encodeVarintStaking(dAtA, i, uint64(m.CreationHeight))
		i--
		dAtA[i] = 0x8
	}
	return len(dAtA) - i, nil
}

func (m *Redelegation) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *Redelegation) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *Redelegation) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if len(m.Entries) > 0 {
		for iNdEx := len(m.Entries) - 1; iNdEx >= 0; iNdEx-- {
			{
				size, err := m.Entries[iNdEx].MarshalToSizedBuffer(dAtA[:i])
				if err != nil {
					return 0, err
				}
				i -= size
				i = encodeVarintStaking(dAtA, i, uint64(size))
			}
			i--
			dAtA[i] = 0x22
		}
	}
	if len(m.ValidatorDstAddress) > 0 {
		i -= len(m.ValidatorDstAddress)
		copy(dAtA[i:], m.ValidatorDstAddress)
		i = encodeVarintStaking(dAtA, i, uint64(len(m.ValidatorDstAddress)))
		i--
		dAtA[i] = 0x1a
	}
	if len(m.ValidatorSrcAddress) > 0 {
		i -= len(m.ValidatorSrcAddress)
		copy(dAtA[i:], m.ValidatorSrcAddress)
		i = encodeVarintStaking(dAtA, i, uint64(len(m.ValidatorSrcAddress)))
		i--
		dAtA[i] = 0x12
	}
	if len(m.DelegatorAddress) > 0 {
		i -= len(m.DelegatorAddress)
		copy(dAtA[i:], m.DelegatorAddress)
		i = encodeVarintStaking(dAtA, i, uint64(len(m.DelegatorAddress)))
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *Params) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *Params) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	{
		size := m.MinCommissionRate.Size()
		i -= size
		if _, err := m.MinCommissionRate.MarshalTo(dAtA[i:]); err != nil {
			return 0, err
		}
		i = encodeVarintStaking(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0x32
	if len(m.BondDenom) > 0 {
		i -= len(m.BondDenom)
		copy(dAtA[i:], m.BondDenom)
		i = encodeVarintStaking(dAtA, i, uint64(len(m.BondDenom)))
		i--
		dAtA[i] = 0x2a
	}
	if m.HistoricalEntries != 0 {
		i = encodeVarintStaking(dAtA, i, uint64(m.HistoricalEntries))
		i--
		dAtA[i] = 0x20
	}
	if m.MaxEntries != 0 {
		i = encodeVarintStaking(dAtA, i, uint64(m.MaxEntries))
		i--
		dAtA[i] = 0x18
	}
	if m.MaxValidators != 0 {
		i = encodeVarintStaking(dAtA, i, uint64(m.MaxValidators))
		i--
		dAtA[i] = 0x10
	}
	n12, err12 := github_com_cosmos_gogoproto_types.StdDurationMarshalTo(m.UnbondingTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdDuration(m.UnbondingTime):])
	if err12 != nil {
		return 0, err12
	}
	i -= n12
	i = encodeVarintStaking(dAtA, i, uint64(n12))
	i--
	dAtA[i] = 0xa
	return len(dAtA) - i, nil
}

func (m *DelegationResponse) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *DelegationResponse) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *DelegationResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	{
		size, err := m.Balance.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintStaking(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0x12
	{
		size, err := m.Delegation.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintStaking(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0xa
	return len(dAtA) - i, nil
}

func (m *RedelegationEntryResponse) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *RedelegationEntryResponse) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *RedelegationEntryResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	{
		size := m.Balance.Size()
		i -= size
		if _, err := m.Balance.MarshalTo(dAtA[i:]); err != nil {
			return 0, err
		}
		i = encodeVarintStaking(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0x22
	{
		size, err := m.RedelegationEntry.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintStaking(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0xa
	return len(dAtA) - i, nil
}

func (m *RedelegationResponse) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *RedelegationResponse) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *RedelegationResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if len(m.Entries) > 0 {
		for iNdEx := len(m.Entries) - 1; iNdEx >= 0; iNdEx-- {
			{
				size, err := m.Entries[iNdEx].MarshalToSizedBuffer(dAtA[:i])
				if err != nil {
					return 0, err
				}
				i -= size
				i = encodeVarintStaking(dAtA, i, uint64(size))
			}
			i--
			dAtA[i] = 0x12
		}
	}
	{
		size, err := m.Redelegation.MarshalToSizedBuffer(dAtA[:i])
		if err != nil {
			return 0, err
		}
		i -= size
		i = encodeVarintStaking(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0xa
	return len(dAtA) - i, nil
}

func (m *Pool) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *Pool) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *Pool) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	{
		size := m.BondedTokens.Size()
		i -= size
		if _, err := m.BondedTokens.MarshalTo(dAtA[i:]); err != nil {
			return 0, err
		}
		i = encodeVarintStaking(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0x12
	{
		size := m.NotBondedTokens.Size()
		i -= size
		if _, err := m.NotBondedTokens.MarshalTo(dAtA[i:]); err != nil {
			return 0, err
		}
		i = encodeVarintStaking(dAtA, i, uint64(size))
	}
	i--
	dAtA[i] = 0xa
	return len(dAtA) - i, nil
}

func (m *ValidatorUpdates) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *ValidatorUpdates) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *ValidatorUpdates) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if len(m.Updates) > 0 {
		for iNdEx := len(m.Updates) - 1; iNdEx >= 0; iNdEx-- {
			{
				size, err := m.Updates[iNdEx].MarshalToSizedBuffer(dAtA[:i])
				if err != nil {
					return 0, err
				}
				i -= size
				i = encodeVarintStaking(dAtA, i, uint64(size))
			}
			i--
			dAtA[i] = 0xa
		}
	}
	return len(dAtA) - i, nil
}

func encodeVarintStaking(dAtA []byte, offset int, v uint64) int {
	offset -= sovStaking(v)
	base := offset
	for v >= 1<<7 {
		dAtA[offset] = uint8(v&0x7f | 0x80)
		v >>= 7
		offset++
	}
	dAtA[offset] = uint8(v)
	return base
}
func (m *HistoricalInfo) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = m.Header.Size()
	n += 1 + l + sovStaking(uint64(l))
	if len(m.Valset) > 0 {
		for _, e := range m.Valset {
			l = e.Size()
			n += 1 + l + sovStaking(uint64(l))
		}
	}
	return n
}

func (m *CommissionRates) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = m.Rate.Size()
	n += 1 + l + sovStaking(uint64(l))
	l = m.MaxRate.Size()
	n += 1 + l + sovStaking(uint64(l))
	l = m.MaxChangeRate.Size()
	n += 1 + l + sovStaking(uint64(l))
	return n
}

func (m *Commission) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = m.CommissionRates.Size()
	n += 1 + l + sovStaking(uint64(l))
	l = github_com_cosmos_gogoproto_types.SizeOfStdTime(m.UpdateTime)
	n += 1 + l + sovStaking(uint64(l))
	return n
}

func (m *Description) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = len(m.Moniker)
	if l > 0 {
		n += 1 + l + sovStaking(uint64(l))
	}
	l = len(m.Identity)
	if l > 0 {
		n += 1 + l + sovStaking(uint64(l))
	}
	l = len(m.Website)
	if l > 0 {
		n += 1 + l + sovStaking(uint64(l))
	}
	l = len(m.SecurityContact)
	if l > 0 {
		n += 1 + l + sovStaking(uint64(l))
	}
	l = len(m.Details)
	if l > 0 {
		n += 1 + l + sovStaking(uint64(l))
	}
	return n
}

func (m *Validator) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = len(m.OperatorAddress)
	if l > 0 {
		n += 1 + l + sovStaking(uint64(l))
	}
	if m.ConsensusPubkey != nil {
		l = m.ConsensusPubkey.Size()
		n += 1 + l + sovStaking(uint64(l))
	}
	if m.Jailed {
		n += 2
	}
	if m.Status != 0 {
		n += 1 + sovStaking(uint64(m.Status))
	}
	l = m.Tokens.Size()
	n += 1 + l + sovStaking(uint64(l))
	l = m.DelegatorShares.Size()
	n += 1 + l + sovStaking(uint64(l))
	l = m.Description.Size()
	n += 1 + l + sovStaking(uint64(l))
	if m.UnbondingHeight != 0 {
		n += 1 + sovStaking(uint64(m.UnbondingHeight))
	}
	l = github_com_cosmos_gogoproto_types.SizeOfStdTime(m.UnbondingTime)
	n += 1 + l + sovStaking(uint64(l))
	l = m.Commission.Size()
	n += 1 + l + sovStaking(uint64(l))
	l = m.MinSelfDelegation.Size()
	n += 1 + l + sovStaking(uint64(l))
	if m.UnbondingOnHoldRefCount != 0 {
		n += 1 + sovStaking(uint64(m.UnbondingOnHoldRefCount))
	}
	if len(m.UnbondingIds) > 0 {
		l = 0
		for _, e := range m.UnbondingIds {
			l += sovStaking(uint64(e))
		}
		n += 1 + sovStaking(uint64(l)) + l
	}
	return n
}

func (m *ValAddresses) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if len(m.Addresses) > 0 {
		for _, s := range m.Addresses {
			l = len(s)
			n += 1 + l + sovStaking(uint64(l))
		}
	}
	return n
}

func (m *DVPair) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = len(m.DelegatorAddress)
	if l > 0 {
		n += 1 + l + sovStaking(uint64(l))
	}
	l = len(m.ValidatorAddress)
	if l > 0 {
		n += 1 + l + sovStaking(uint64(l))
	}
	return n
}

func (m *DVPairs) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if len(m.Pairs) > 0 {
		for _, e := range m.Pairs {
			l = e.Size()
			n += 1 + l + sovStaking(uint64(l))
		}
	}
	return n
}

func (m *DVVTriplet) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = len(m.DelegatorAddress)
	if l > 0 {
		n += 1 + l + sovStaking(uint64(l))
	}
	l = len(m.ValidatorSrcAddress)
	if l > 0 {
		n += 1 + l + sovStaking(uint64(l))
	}
	l = len(m.ValidatorDstAddress)
	if l > 0 {
		n += 1 + l + sovStaking(uint64(l))
	}
	return n
}

func (m *DVVTriplets) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if len(m.Triplets) > 0 {
		for _, e := range m.Triplets {
			l = e.Size()
			n += 1 + l + sovStaking(uint64(l))
		}
	}
	return n
}

func (m *Delegation) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = len(m.DelegatorAddress)
	if l > 0 {
		n += 1 + l + sovStaking(uint64(l))
	}
	l = len(m.ValidatorAddress)
	if l > 0 {
		n += 1 + l + sovStaking(uint64(l))
	}
	l = m.Shares.Size()
	n += 1 + l + sovStaking(uint64(l))
	return n
}

func (m *UnbondingDelegation) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = len(m.DelegatorAddress)
	if l > 0 {
		n += 1 + l + sovStaking(uint64(l))
	}
	l = len(m.ValidatorAddress)
	if l > 0 {
		n += 1 + l + sovStaking(uint64(l))
	}
	if len(m.Entries) > 0 {
		for _, e := range m.Entries {
			l = e.Size()
			n += 1 + l + sovStaking(uint64(l))
		}
	}
	return n
}

func (m *UnbondingDelegationEntry) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.CreationHeight != 0 {
		n += 1 + sovStaking(uint64(m.CreationHeight))
	}
	l = github_com_cosmos_gogoproto_types.SizeOfStdTime(m.CompletionTime)
	n += 1 + l + sovStaking(uint64(l))
	l = m.InitialBalance.Size()
	n += 1 + l + sovStaking(uint64(l))
	l = m.Balance.Size()
	n += 1 + l + sovStaking(uint64(l))
	if m.UnbondingId != 0 {
		n += 1 + sovStaking(uint64(m.UnbondingId))
	}
	if m.UnbondingOnHoldRefCount != 0 {
		n += 1 + sovStaking(uint64(m.UnbondingOnHoldRefCount))
	}
	return n
}

func (m *RedelegationEntry) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.CreationHeight != 0 {
		n += 1 + sovStaking(uint64(m.CreationHeight))
	}
	l = github_com_cosmos_gogoproto_types.SizeOfStdTime(m.CompletionTime)
	n += 1 + l + sovStaking(uint64(l))
	l = m.InitialBalance.Size()
	n += 1 + l + sovStaking(uint64(l))
	l = m.SharesDst.Size()
	n += 1 + l + sovStaking(uint64(l))
	if m.UnbondingId != 0 {
		n += 1 + sovStaking(uint64(m.UnbondingId))
	}
	if m.UnbondingOnHoldRefCount != 0 {
		n += 1 + sovStaking(uint64(m.UnbondingOnHoldRefCount))
	}
	return n
}

func (m *Redelegation) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = len(m.DelegatorAddress)
	if l > 0 {
		n += 1 + l + sovStaking(uint64(l))
	}
	l = len(m.ValidatorSrcAddress)
	if l > 0 {
		n += 1 + l + sovStaking(uint64(l))
	}
	l = len(m.ValidatorDstAddress)
	if l > 0 {
		n += 1 + l + sovStaking(uint64(l))
	}
	if len(m.Entries) > 0 {
		for _, e := range m.Entries {
			l = e.Size()
			n += 1 + l + sovStaking(uint64(l))
		}
	}
	return n
}

func (m *Params) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = github_com_cosmos_gogoproto_types.SizeOfStdDuration(m.UnbondingTime)
	n += 1 + l + sovStaking(uint64(l))
	if m.MaxValidators != 0 {
		n += 1 + sovStaking(uint64(m.MaxValidators))
	}
	if m.MaxEntries != 0 {
		n += 1 + sovStaking(uint64(m.MaxEntries))
	}
	if m.HistoricalEntries != 0 {
		n += 1 + sovStaking(uint64(m.HistoricalEntries))
	}
	l = len(m.BondDenom)
	if l > 0 {
		n += 1 + l + sovStaking(uint64(l))
	}
	l = m.MinCommissionRate.Size()
	n += 1 + l + sovStaking(uint64(l))
	return n
}

func (m *DelegationResponse) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = m.Delegation.Size()
	n += 1 + l + sovStaking(uint64(l))
	l = m.Balance.Size()
	n += 1 + l + sovStaking(uint64(l))
	return n
}

func (m *RedelegationEntryResponse) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = m.RedelegationEntry.Size()
	n += 1 + l + sovStaking(uint64(l))
	l = m.Balance.Size()
	n += 1 + l + sovStaking(uint64(l))
	return n
}

func (m *RedelegationResponse) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = m.Redelegation.Size()
	n += 1 + l + sovStaking(uint64(l))
	if len(m.Entries) > 0 {
		for _, e := range m.Entries {
			l = e.Size()
			n += 1 + l + sovStaking(uint64(l))
		}
	}
	return n
}

func (m *Pool) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = m.NotBondedTokens.Size()
	n += 1 + l + sovStaking(uint64(l))
	l = m.BondedTokens.Size()
	n += 1 + l + sovStaking(uint64(l))
	return n
}

func (m *ValidatorUpdates) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if len(m.Updates) > 0 {
		for _, e := range m.Updates {
			l = e.Size()
			n += 1 + l + sovStaking(uint64(l))
		}
	}
	return n
}

func sovStaking(x uint64) (n int) {
	return (math_bits.Len64(x|1) + 6) / 7
}
func sozStaking(x uint64) (n int) {
	return sovStaking(uint64((x << 1) ^ uint64((int64(x) >> 63))))
}
func (m *HistoricalInfo) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowStaking
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: HistoricalInfo: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: HistoricalInfo: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Header", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Header.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Valset", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Valset = append(m.Valset, Validator{})
			if err := m.Valset[len(m.Valset)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipStaking(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthStaking
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *CommissionRates) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowStaking
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: CommissionRates: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: CommissionRates: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Rate", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Rate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field MaxRate", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.MaxRate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field MaxChangeRate", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.MaxChangeRate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipStaking(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthStaking
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *Commission) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowStaking
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: Commission: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: Commission: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field CommissionRates", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.CommissionRates.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field UpdateTime", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := github_com_cosmos_gogoproto_types.StdTimeUnmarshal(&m.UpdateTime, dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipStaking(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthStaking
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *Description) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowStaking
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: Description: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: Description: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Moniker", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Moniker = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Identity", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Identity = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Website", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Website = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		case 4:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field SecurityContact", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.SecurityContact = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		case 5:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Details", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Details = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipStaking(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthStaking
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *Validator) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowStaking
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: Validator: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: Validator: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field OperatorAddress", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.OperatorAddress = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field ConsensusPubkey", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.ConsensusPubkey == nil {
				m.ConsensusPubkey = &any.Any{}
			}
			if err := m.ConsensusPubkey.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 3:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Jailed", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Jailed = bool(v != 0)
		case 4:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType)
			}
			m.Status = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.Status |= BondStatus(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 5:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Tokens", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Tokens.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 6:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field DelegatorShares", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.DelegatorShares.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 7:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Description.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 8:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field UnbondingHeight", wireType)
			}
			m.UnbondingHeight = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.UnbondingHeight |= int64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 9:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field UnbondingTime", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := github_com_cosmos_gogoproto_types.StdTimeUnmarshal(&m.UnbondingTime, dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 10:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Commission", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Commission.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 11:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field MinSelfDelegation", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.MinSelfDelegation.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 12:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field UnbondingOnHoldRefCount", wireType)
			}
			m.UnbondingOnHoldRefCount = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.UnbondingOnHoldRefCount |= int64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 13:
			if wireType == 0 {
				var v uint64
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowStaking
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					v |= uint64(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.UnbondingIds = append(m.UnbondingIds, v)
			} else if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowStaking
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					packedLen |= int(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthStaking
				}
				postIndex := iNdEx + packedLen
				if postIndex < 0 {
					return ErrInvalidLengthStaking
				}
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				var elementCount int
				var count int
				for _, integer := range dAtA[iNdEx:postIndex] {
					if integer < 128 {
						count++
					}
				}
				elementCount = count
				if elementCount != 0 && len(m.UnbondingIds) == 0 {
					m.UnbondingIds = make([]uint64, 0, elementCount)
				}
				for iNdEx < postIndex {
					var v uint64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowStaking
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						v |= uint64(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.UnbondingIds = append(m.UnbondingIds, v)
				}
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field UnbondingIds", wireType)
			}
		default:
			iNdEx = preIndex
			skippy, err := skipStaking(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthStaking
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *ValAddresses) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowStaking
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: ValAddresses: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: ValAddresses: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Addresses", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Addresses = append(m.Addresses, string(dAtA[iNdEx:postIndex]))
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipStaking(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthStaking
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *DVPair) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowStaking
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: DVPair: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: DVPair: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field DelegatorAddress", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.DelegatorAddress = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field ValidatorAddress", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.ValidatorAddress = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipStaking(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthStaking
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *DVPairs) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowStaking
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: DVPairs: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: DVPairs: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Pairs", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Pairs = append(m.Pairs, DVPair{})
			if err := m.Pairs[len(m.Pairs)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipStaking(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthStaking
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *DVVTriplet) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowStaking
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: DVVTriplet: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: DVVTriplet: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field DelegatorAddress", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.DelegatorAddress = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field ValidatorSrcAddress", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.ValidatorSrcAddress = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field ValidatorDstAddress", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.ValidatorDstAddress = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipStaking(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthStaking
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *DVVTriplets) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowStaking
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: DVVTriplets: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: DVVTriplets: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Triplets", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Triplets = append(m.Triplets, DVVTriplet{})
			if err := m.Triplets[len(m.Triplets)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipStaking(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthStaking
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *Delegation) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowStaking
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: Delegation: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: Delegation: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field DelegatorAddress", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.DelegatorAddress = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field ValidatorAddress", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.ValidatorAddress = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Shares", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Shares.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipStaking(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthStaking
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *UnbondingDelegation) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowStaking
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: UnbondingDelegation: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: UnbondingDelegation: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field DelegatorAddress", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.DelegatorAddress = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field ValidatorAddress", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.ValidatorAddress = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Entries", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Entries = append(m.Entries, UnbondingDelegationEntry{})
			if err := m.Entries[len(m.Entries)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipStaking(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthStaking
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *UnbondingDelegationEntry) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowStaking
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: UnbondingDelegationEntry: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: UnbondingDelegationEntry: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field CreationHeight", wireType)
			}
			m.CreationHeight = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.CreationHeight |= int64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field CompletionTime", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := github_com_cosmos_gogoproto_types.StdTimeUnmarshal(&m.CompletionTime, dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field InitialBalance", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.InitialBalance.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 4:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Balance", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Balance.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 5:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field UnbondingId", wireType)
			}
			m.UnbondingId = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.UnbondingId |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 6:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field UnbondingOnHoldRefCount", wireType)
			}
			m.UnbondingOnHoldRefCount = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.UnbondingOnHoldRefCount |= int64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		default:
			iNdEx = preIndex
			skippy, err := skipStaking(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthStaking
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *RedelegationEntry) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowStaking
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: RedelegationEntry: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: RedelegationEntry: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field CreationHeight", wireType)
			}
			m.CreationHeight = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.CreationHeight |= int64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field CompletionTime", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := github_com_cosmos_gogoproto_types.StdTimeUnmarshal(&m.CompletionTime, dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field InitialBalance", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.InitialBalance.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 4:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field SharesDst", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.SharesDst.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 5:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field UnbondingId", wireType)
			}
			m.UnbondingId = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.UnbondingId |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 6:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field UnbondingOnHoldRefCount", wireType)
			}
			m.UnbondingOnHoldRefCount = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.UnbondingOnHoldRefCount |= int64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		default:
			iNdEx = preIndex
			skippy, err := skipStaking(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthStaking
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *Redelegation) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowStaking
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: Redelegation: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: Redelegation: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field DelegatorAddress", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.DelegatorAddress = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field ValidatorSrcAddress", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.ValidatorSrcAddress = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field ValidatorDstAddress", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.ValidatorDstAddress = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		case 4:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Entries", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Entries = append(m.Entries, RedelegationEntry{})
			if err := m.Entries[len(m.Entries)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipStaking(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthStaking
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *Params) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowStaking
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: Params: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: Params: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field UnbondingTime", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := github_com_cosmos_gogoproto_types.StdDurationUnmarshal(&m.UnbondingTime, dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field MaxValidators", wireType)
			}
			m.MaxValidators = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.MaxValidators |= uint32(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 3:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field MaxEntries", wireType)
			}
			m.MaxEntries = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.MaxEntries |= uint32(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 4:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field HistoricalEntries", wireType)
			}
			m.HistoricalEntries = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.HistoricalEntries |= uint32(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 5:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field BondDenom", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.BondDenom = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		case 6:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field MinCommissionRate", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.MinCommissionRate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipStaking(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthStaking
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *DelegationResponse) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowStaking
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: DelegationResponse: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: DelegationResponse: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Delegation", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Delegation.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Balance", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Balance.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipStaking(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthStaking
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *RedelegationEntryResponse) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowStaking
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: RedelegationEntryResponse: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: RedelegationEntryResponse: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field RedelegationEntry", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.RedelegationEntry.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 4:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Balance", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Balance.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipStaking(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthStaking
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *RedelegationResponse) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowStaking
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: RedelegationResponse: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: RedelegationResponse: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Redelegation", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Redelegation.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Entries", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Entries = append(m.Entries, RedelegationEntryResponse{})
			if err := m.Entries[len(m.Entries)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipStaking(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthStaking
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *Pool) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowStaking
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: Pool: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: Pool: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field NotBondedTokens", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.NotBondedTokens.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field BondedTokens", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.BondedTokens.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipStaking(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthStaking
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *ValidatorUpdates) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowStaking
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: ValidatorUpdates: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: ValidatorUpdates: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Updates", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthStaking
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthStaking
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Updates = append(m.Updates, types2.ValidatorUpdate{})
			if err := m.Updates[len(m.Updates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipStaking(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if (skippy < 0) || (iNdEx+skippy) < 0 {
				return ErrInvalidLengthStaking
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func skipStaking(dAtA []byte) (n int, err error) {
	l := len(dAtA)
	iNdEx := 0
	depth := 0
	for iNdEx < l {
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return 0, ErrIntOverflowStaking
			}
			if iNdEx >= l {
				return 0, io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		wireType := int(wire & 0x7)
		switch wireType {
		case 0:
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return 0, ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return 0, io.ErrUnexpectedEOF
				}
				iNdEx++
				if dAtA[iNdEx-1] < 0x80 {
					break
				}
			}
		case 1:
			iNdEx += 8
		case 2:
			var length int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return 0, ErrIntOverflowStaking
				}
				if iNdEx >= l {
					return 0, io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				length |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if length < 0 {
				return 0, ErrInvalidLengthStaking
			}
			iNdEx += length
		case 3:
			depth++
		case 4:
			if depth == 0 {
				return 0, ErrUnexpectedEndOfGroupStaking
			}
			depth--
		case 5:
			iNdEx += 4
		default:
			return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
		}
		if iNdEx < 0 {
			return 0, ErrInvalidLengthStaking
		}
		if depth == 0 {
			return iNdEx, nil
		}
	}
	return 0, io.ErrUnexpectedEOF
}

var (
	ErrInvalidLengthStaking        = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowStaking          = fmt.Errorf("proto: integer overflow")
	ErrUnexpectedEndOfGroupStaking = fmt.Errorf("proto: unexpected end of group")
)
