diff --git a/api/cosmos/evm/vm/v1/evm.pulsar.go b/api/cosmos/evm/vm/v1/evm.pulsar.go index f7e079e38..9026cb946 100644 --- a/api/cosmos/evm/vm/v1/evm.pulsar.go +++ b/api/cosmos/evm/vm/v1/evm.pulsar.go @@ -159,6 +159,7 @@ var ( fd_Params_evm_channels protoreflect.FieldDescriptor fd_Params_access_control protoreflect.FieldDescriptor fd_Params_active_static_precompiles protoreflect.FieldDescriptor + fd_Params_history_serve_window protoreflect.FieldDescriptor ) func init() { @@ -169,6 +170,7 @@ func init() { fd_Params_evm_channels = md_Params.Fields().ByName("evm_channels") fd_Params_access_control = md_Params.Fields().ByName("access_control") fd_Params_active_static_precompiles = md_Params.Fields().ByName("active_static_precompiles") + fd_Params_history_serve_window = md_Params.Fields().ByName("history_serve_window") } var _ protoreflect.Message = (*fastReflection_Params)(nil) @@ -266,6 +268,12 @@ func (x *fastReflection_Params) Range(f func(protoreflect.FieldDescriptor, proto return } } + if x.HistoryServeWindow != uint64(0) { + value := protoreflect.ValueOfUint64(x.HistoryServeWindow) + if !f(fd_Params_history_serve_window, value) { + return + } + } } // Has reports whether a field is populated. @@ -291,6 +299,8 @@ func (x *fastReflection_Params) Has(fd protoreflect.FieldDescriptor) bool { return x.AccessControl != nil case "cosmos.evm.vm.v1.Params.active_static_precompiles": return len(x.ActiveStaticPrecompiles) != 0 + case "cosmos.evm.vm.v1.Params.history_serve_window": + return x.HistoryServeWindow != uint64(0) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.Params")) @@ -317,6 +327,8 @@ func (x *fastReflection_Params) Clear(fd protoreflect.FieldDescriptor) { x.AccessControl = nil case "cosmos.evm.vm.v1.Params.active_static_precompiles": x.ActiveStaticPrecompiles = nil + case "cosmos.evm.vm.v1.Params.history_serve_window": + x.HistoryServeWindow = uint64(0) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.Params")) @@ -357,6 +369,9 @@ func (x *fastReflection_Params) Get(descriptor protoreflect.FieldDescriptor) pro } listValue := &_Params_9_list{list: &x.ActiveStaticPrecompiles} return protoreflect.ValueOfList(listValue) + case "cosmos.evm.vm.v1.Params.history_serve_window": + value := x.HistoryServeWindow + return protoreflect.ValueOfUint64(value) default: if descriptor.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.Params")) @@ -393,6 +408,8 @@ func (x *fastReflection_Params) Set(fd protoreflect.FieldDescriptor, value proto lv := value.List() clv := lv.(*_Params_9_list) x.ActiveStaticPrecompiles = *clv.list + case "cosmos.evm.vm.v1.Params.history_serve_window": + x.HistoryServeWindow = value.Uint() default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.Params")) @@ -438,6 +455,8 @@ func (x *fastReflection_Params) Mutable(fd protoreflect.FieldDescriptor) protore return protoreflect.ValueOfList(value) case "cosmos.evm.vm.v1.Params.evm_denom": panic(fmt.Errorf("field evm_denom of message cosmos.evm.vm.v1.Params is not mutable")) + case "cosmos.evm.vm.v1.Params.history_serve_window": + panic(fmt.Errorf("field history_serve_window of message cosmos.evm.vm.v1.Params is not mutable")) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.Params")) @@ -465,6 +484,8 @@ func (x *fastReflection_Params) NewField(fd protoreflect.FieldDescriptor) protor case "cosmos.evm.vm.v1.Params.active_static_precompiles": list := []string{} return protoreflect.ValueOfList(&_Params_9_list{list: &list}) + case "cosmos.evm.vm.v1.Params.history_serve_window": + return protoreflect.ValueOfUint64(uint64(0)) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.evm.vm.v1.Params")) @@ -561,6 +582,9 @@ func (x *fastReflection_Params) ProtoMethods() *protoiface.Methods { n += 1 + l + runtime.Sov(uint64(l)) } } + if x.HistoryServeWindow != 0 { + n += 1 + runtime.Sov(uint64(x.HistoryServeWindow)) + } if x.unknownFields != nil { n += len(x.unknownFields) } @@ -590,6 +614,11 @@ func (x *fastReflection_Params) ProtoMethods() *protoiface.Methods { i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } + if x.HistoryServeWindow != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.HistoryServeWindow)) + i-- + dAtA[i] = 0x50 + } if len(x.ActiveStaticPrecompiles) > 0 { for iNdEx := len(x.ActiveStaticPrecompiles) - 1; iNdEx >= 0; iNdEx-- { i -= len(x.ActiveStaticPrecompiles[iNdEx]) @@ -907,6 +936,25 @@ func (x *fastReflection_Params) ProtoMethods() *protoiface.Methods { } x.ActiveStaticPrecompiles = append(x.ActiveStaticPrecompiles, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex + case 10: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field HistoryServeWindow", wireType) + } + x.HistoryServeWindow = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.HistoryServeWindow |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := runtime.Skip(dAtA[iNdEx:]) @@ -8738,6 +8786,7 @@ type Params struct { // active_static_precompiles defines the slice of hex addresses of the // precompiled contracts that are active ActiveStaticPrecompiles []string `protobuf:"bytes,9,rep,name=active_static_precompiles,json=activeStaticPrecompiles,proto3" json:"active_static_precompiles,omitempty"` + HistoryServeWindow uint64 `protobuf:"varint,10,opt,name=history_serve_window,json=historyServeWindow,proto3" json:"history_serve_window,omitempty"` } func (x *Params) Reset() { @@ -8795,6 +8844,13 @@ func (x *Params) GetActiveStaticPrecompiles() []string { return nil } +func (x *Params) GetHistoryServeWindow() uint64 { + if x != nil { + return x.HistoryServeWindow + } + return 0 +} + // AccessControl defines the permission policy of the EVM // for creating and calling contracts type AccessControl struct { @@ -9682,7 +9738,7 @@ var file_cosmos_evm_vm_v1_evm_proto_rawDesc = []byte{ 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x65, 0x76, 0x6d, 0x2e, 0x76, 0x6d, 0x2e, 0x76, 0x31, 0x1a, 0x11, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x67, 0x6f, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x67, - 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x82, 0x03, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, + 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb4, 0x03, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x31, 0x0a, 0x09, 0x65, 0x76, 0x6d, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x14, 0xf2, 0xde, 0x1f, 0x10, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x65, 0x76, 0x6d, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x52, 0x08, 0x65, 0x76, 0x6d, @@ -9703,279 +9759,282 @@ var file_cosmos_evm_vm_v1_evm_proto_rawDesc = []byte{ 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x5f, 0x70, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x17, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x50, 0x72, 0x65, 0x63, - 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x73, 0x3a, 0x1b, 0x8a, 0xe7, 0xb0, 0x2a, 0x16, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x65, 0x76, 0x6d, 0x2f, 0x78, 0x2f, 0x76, 0x6d, 0x2f, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, - 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x22, 0x91, 0x01, 0x0a, - 0x0d, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x41, - 0x0a, 0x06, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, - 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x65, 0x76, 0x6d, 0x2e, 0x76, 0x6d, 0x2e, 0x76, - 0x31, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x54, - 0x79, 0x70, 0x65, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x06, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x12, 0x3d, 0x0a, 0x04, 0x63, 0x61, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x65, 0x76, 0x6d, 0x2e, 0x76, 0x6d, 0x2e, - 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x04, 0x63, 0x61, 0x6c, 0x6c, - 0x22, 0xdd, 0x01, 0x0a, 0x11, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x63, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x65, 0x76, 0x6d, 0x2e, 0x76, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x41, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x42, 0x24, 0xe2, 0xde, 0x1f, 0x0a, 0x41, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0xf2, 0xde, 0x1f, 0x12, 0x79, 0x61, 0x6d, - 0x6c, 0x3a, 0x22, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x52, - 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x63, 0x0a, 0x13, 0x61, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6c, 0x69, - 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x33, 0xe2, 0xde, 0x1f, 0x11, 0x41, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0xf2, - 0xde, 0x1f, 0x1a, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, - 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x52, 0x11, 0x61, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4c, 0x69, 0x73, 0x74, - 0x22, 0xa8, 0x10, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x12, 0x5c, 0x0a, 0x0f, 0x68, 0x6f, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x61, 0x64, 0x5f, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x33, 0xda, 0xde, 0x1f, 0x15, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, - 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x16, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x68, 0x6f, - 0x6d, 0x65, 0x73, 0x74, 0x65, 0x61, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x0e, - 0x68, 0x6f, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x61, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x68, - 0x0a, 0x0e, 0x64, 0x61, 0x6f, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x42, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, - 0x74, 0xe2, 0xde, 0x1f, 0x0c, 0x44, 0x41, 0x4f, 0x46, 0x6f, 0x72, 0x6b, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0xf2, 0xde, 0x1f, 0x15, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x64, 0x61, 0x6f, 0x5f, 0x66, - 0x6f, 0x72, 0x6b, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x0c, 0x64, 0x61, 0x6f, 0x46, - 0x6f, 0x72, 0x6b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x57, 0x0a, 0x10, 0x64, 0x61, 0x6f, 0x5f, - 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x08, 0x42, 0x2d, 0xe2, 0xde, 0x1f, 0x0e, 0x44, 0x41, 0x4f, 0x46, 0x6f, 0x72, 0x6b, 0x53, - 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0xf2, 0xde, 0x1f, 0x17, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, - 0x64, 0x61, 0x6f, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, - 0x22, 0x52, 0x0e, 0x64, 0x61, 0x6f, 0x46, 0x6f, 0x72, 0x6b, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, - 0x74, 0x12, 0x62, 0x0a, 0x0c, 0x65, 0x69, 0x70, 0x31, 0x35, 0x30, 0x5f, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3f, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, - 0x6e, 0x74, 0xe2, 0xde, 0x1f, 0x0b, 0x45, 0x49, 0x50, 0x31, 0x35, 0x30, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0xf2, 0xde, 0x1f, 0x13, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x65, 0x69, 0x70, 0x31, 0x35, - 0x30, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x0b, 0x65, 0x69, 0x70, 0x31, 0x35, 0x30, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x62, 0x0a, 0x0c, 0x65, 0x69, 0x70, 0x31, 0x35, 0x35, 0x5f, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3f, 0xda, 0xde, 0x1f, + 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x68, 0x69, 0x73, 0x74, 0x6f, + 0x72, 0x79, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x3a, 0x1b, 0x8a, 0xe7, 0xb0, 0x2a, 0x16, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x65, 0x76, 0x6d, 0x2f, 0x78, 0x2f, 0x76, 0x6d, 0x2f, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, 0x08, 0x03, + 0x10, 0x04, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x22, 0x91, + 0x01, 0x0a, 0x0d, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x12, 0x41, 0x0a, 0x06, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x65, 0x76, 0x6d, 0x2e, 0x76, 0x6d, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x06, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x12, 0x3d, 0x0a, 0x04, 0x63, 0x61, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x65, 0x76, 0x6d, 0x2e, 0x76, + 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x04, 0x63, 0x61, + 0x6c, 0x6c, 0x22, 0xdd, 0x01, 0x0a, 0x11, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x63, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x65, 0x76, 0x6d, 0x2e, 0x76, 0x6d, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x42, 0x24, 0xe2, 0xde, 0x1f, + 0x0a, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0xf2, 0xde, 0x1f, 0x12, 0x79, + 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x22, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x63, 0x0a, + 0x13, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, + 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x33, 0xe2, 0xde, 0x1f, 0x11, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4c, 0x69, 0x73, + 0x74, 0xf2, 0xde, 0x1f, 0x1a, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x52, + 0x11, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4c, 0x69, + 0x73, 0x74, 0x22, 0xa8, 0x10, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x12, 0x5c, 0x0a, 0x0f, 0x68, 0x6f, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x61, 0x64, 0x5f, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x33, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, - 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xe2, 0xde, 0x1f, 0x0b, 0x45, 0x49, 0x50, 0x31, 0x35, 0x35, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0xf2, 0xde, 0x1f, 0x13, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x65, - 0x69, 0x70, 0x31, 0x35, 0x35, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x0b, 0x65, 0x69, - 0x70, 0x31, 0x35, 0x35, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x62, 0x0a, 0x0c, 0x65, 0x69, 0x70, - 0x31, 0x35, 0x38, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x3f, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, - 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xe2, 0xde, 0x1f, 0x0b, 0x45, 0x49, - 0x50, 0x31, 0x35, 0x38, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0xf2, 0xde, 0x1f, 0x13, 0x79, 0x61, 0x6d, - 0x6c, 0x3a, 0x22, 0x65, 0x69, 0x70, 0x31, 0x35, 0x38, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, - 0x52, 0x0b, 0x65, 0x69, 0x70, 0x31, 0x35, 0x38, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x5c, 0x0a, - 0x0f, 0x62, 0x79, 0x7a, 0x61, 0x6e, 0x74, 0x69, 0x75, 0x6d, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x33, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, - 0x74, 0xf2, 0xde, 0x1f, 0x16, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x62, 0x79, 0x7a, 0x61, 0x6e, - 0x74, 0x69, 0x75, 0x6d, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x0e, 0x62, 0x79, 0x7a, - 0x61, 0x6e, 0x74, 0x69, 0x75, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x6b, 0x0a, 0x14, 0x63, - 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x6e, 0x6f, 0x70, 0x6c, 0x65, 0x5f, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x38, 0xda, 0xde, 0x1f, 0x15, 0x63, + 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x16, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, + 0x68, 0x6f, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x61, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, + 0x52, 0x0e, 0x68, 0x6f, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x61, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x12, 0x68, 0x0a, 0x0e, 0x64, 0x61, 0x6f, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x42, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, + 0x49, 0x6e, 0x74, 0xe2, 0xde, 0x1f, 0x0c, 0x44, 0x41, 0x4f, 0x46, 0x6f, 0x72, 0x6b, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0xf2, 0xde, 0x1f, 0x15, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x64, 0x61, 0x6f, + 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x0c, 0x64, 0x61, + 0x6f, 0x46, 0x6f, 0x72, 0x6b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x57, 0x0a, 0x10, 0x64, 0x61, + 0x6f, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x2d, 0xe2, 0xde, 0x1f, 0x0e, 0x44, 0x41, 0x4f, 0x46, 0x6f, 0x72, + 0x6b, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0xf2, 0xde, 0x1f, 0x17, 0x79, 0x61, 0x6d, 0x6c, + 0x3a, 0x22, 0x64, 0x61, 0x6f, 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, + 0x72, 0x74, 0x22, 0x52, 0x0e, 0x64, 0x61, 0x6f, 0x46, 0x6f, 0x72, 0x6b, 0x53, 0x75, 0x70, 0x70, + 0x6f, 0x72, 0x74, 0x12, 0x62, 0x0a, 0x0c, 0x65, 0x69, 0x70, 0x31, 0x35, 0x30, 0x5f, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3f, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, - 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x1b, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x63, 0x6f, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x6e, 0x6f, 0x70, 0x6c, 0x65, 0x5f, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x22, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x6e, 0x6f, - 0x70, 0x6c, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x5f, 0x0a, 0x10, 0x70, 0x65, 0x74, 0x65, - 0x72, 0x73, 0x62, 0x75, 0x72, 0x67, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x34, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, + 0x2e, 0x49, 0x6e, 0x74, 0xe2, 0xde, 0x1f, 0x0b, 0x45, 0x49, 0x50, 0x31, 0x35, 0x30, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0xf2, 0xde, 0x1f, 0x13, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x65, 0x69, 0x70, + 0x31, 0x35, 0x30, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x0b, 0x65, 0x69, 0x70, 0x31, + 0x35, 0x30, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x62, 0x0a, 0x0c, 0x65, 0x69, 0x70, 0x31, 0x35, + 0x35, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3f, 0xda, + 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, + 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xe2, 0xde, 0x1f, 0x0b, 0x45, 0x49, 0x50, 0x31, + 0x35, 0x35, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0xf2, 0xde, 0x1f, 0x13, 0x79, 0x61, 0x6d, 0x6c, 0x3a, + 0x22, 0x65, 0x69, 0x70, 0x31, 0x35, 0x35, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x0b, + 0x65, 0x69, 0x70, 0x31, 0x35, 0x35, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x62, 0x0a, 0x0c, 0x65, + 0x69, 0x70, 0x31, 0x35, 0x38, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x3f, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, + 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xe2, 0xde, 0x1f, 0x0b, + 0x45, 0x49, 0x50, 0x31, 0x35, 0x38, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0xf2, 0xde, 0x1f, 0x13, 0x79, + 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x65, 0x69, 0x70, 0x31, 0x35, 0x38, 0x5f, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x22, 0x52, 0x0b, 0x65, 0x69, 0x70, 0x31, 0x35, 0x38, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, + 0x5c, 0x0a, 0x0f, 0x62, 0x79, 0x7a, 0x61, 0x6e, 0x74, 0x69, 0x75, 0x6d, 0x5f, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x33, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, + 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x16, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x62, 0x79, 0x7a, + 0x61, 0x6e, 0x74, 0x69, 0x75, 0x6d, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x0e, 0x62, + 0x79, 0x7a, 0x61, 0x6e, 0x74, 0x69, 0x75, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x6b, 0x0a, + 0x14, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x6e, 0x6f, 0x70, 0x6c, 0x65, 0x5f, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x38, 0xda, 0xde, 0x1f, + 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, + 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x1b, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, + 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, 0x6e, 0x6f, 0x70, 0x6c, 0x65, 0x5f, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x69, + 0x6e, 0x6f, 0x70, 0x6c, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x5f, 0x0a, 0x10, 0x70, 0x65, + 0x74, 0x65, 0x72, 0x73, 0x62, 0x75, 0x72, 0x67, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x34, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, + 0xde, 0x1f, 0x17, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x70, 0x65, 0x74, 0x65, 0x72, 0x73, 0x62, + 0x75, 0x72, 0x67, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x0f, 0x70, 0x65, 0x74, 0x65, + 0x72, 0x73, 0x62, 0x75, 0x72, 0x67, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x59, 0x0a, 0x0e, 0x69, + 0x73, 0x74, 0x61, 0x6e, 0x62, 0x75, 0x6c, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x32, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, + 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, + 0x1f, 0x15, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x62, 0x75, 0x6c, + 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x0d, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x62, 0x75, + 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x64, 0x0a, 0x12, 0x6d, 0x75, 0x69, 0x72, 0x5f, 0x67, + 0x6c, 0x61, 0x63, 0x69, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x36, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, - 0x17, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x70, 0x65, 0x74, 0x65, 0x72, 0x73, 0x62, 0x75, 0x72, - 0x67, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x0f, 0x70, 0x65, 0x74, 0x65, 0x72, 0x73, - 0x62, 0x75, 0x72, 0x67, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x59, 0x0a, 0x0e, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x62, 0x75, 0x6c, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x32, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, - 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x15, - 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x62, 0x75, 0x6c, 0x5f, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x0d, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x62, 0x75, 0x6c, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x64, 0x0a, 0x12, 0x6d, 0x75, 0x69, 0x72, 0x5f, 0x67, 0x6c, 0x61, - 0x63, 0x69, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x36, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, - 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x19, 0x79, - 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6d, 0x75, 0x69, 0x72, 0x5f, 0x67, 0x6c, 0x61, 0x63, 0x69, 0x65, - 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x10, 0x6d, 0x75, 0x69, 0x72, 0x47, 0x6c, - 0x61, 0x63, 0x69, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x53, 0x0a, 0x0c, 0x62, 0x65, - 0x72, 0x6c, 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x30, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, - 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x13, 0x79, - 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x62, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x22, 0x52, 0x0b, 0x62, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, - 0x53, 0x0a, 0x0c, 0x6c, 0x6f, 0x6e, 0x64, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, - 0x11, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, - 0xf2, 0xde, 0x1f, 0x13, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6c, 0x6f, 0x6e, 0x64, 0x6f, 0x6e, - 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x0b, 0x6c, 0x6f, 0x6e, 0x64, 0x6f, 0x6e, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x67, 0x0a, 0x13, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x5f, 0x67, 0x6c, - 0x61, 0x63, 0x69, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x12, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x37, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, - 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x1a, - 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x5f, 0x67, 0x6c, 0x61, 0x63, - 0x69, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x11, 0x61, 0x72, 0x72, 0x6f, - 0x77, 0x47, 0x6c, 0x61, 0x63, 0x69, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x64, 0x0a, - 0x12, 0x67, 0x72, 0x61, 0x79, 0x5f, 0x67, 0x6c, 0x61, 0x63, 0x69, 0x65, 0x72, 0x5f, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x42, 0x36, 0xda, 0xde, 0x1f, 0x15, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, - 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x19, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x67, 0x72, - 0x61, 0x79, 0x5f, 0x67, 0x6c, 0x61, 0x63, 0x69, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x22, 0x52, 0x10, 0x67, 0x72, 0x61, 0x79, 0x47, 0x6c, 0x61, 0x63, 0x69, 0x65, 0x72, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x12, 0x6a, 0x0a, 0x14, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x5f, 0x6e, 0x65, 0x74, - 0x73, 0x70, 0x6c, 0x69, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x15, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x38, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, - 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x1b, - 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x5f, 0x6e, 0x65, 0x74, 0x73, - 0x70, 0x6c, 0x69, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x12, 0x6d, 0x65, 0x72, - 0x67, 0x65, 0x4e, 0x65, 0x74, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, - 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, - 0x6e, 0x6f, 0x6d, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, - 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x18, 0x1a, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x08, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x12, 0x56, 0x0a, 0x0d, - 0x73, 0x68, 0x61, 0x6e, 0x67, 0x68, 0x61, 0x69, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x1b, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x31, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, + 0x19, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6d, 0x75, 0x69, 0x72, 0x5f, 0x67, 0x6c, 0x61, 0x63, + 0x69, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x10, 0x6d, 0x75, 0x69, 0x72, + 0x47, 0x6c, 0x61, 0x63, 0x69, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x53, 0x0a, 0x0c, + 0x62, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x30, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, + 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, + 0x13, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x62, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x5f, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x0b, 0x62, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x12, 0x53, 0x0a, 0x0c, 0x6c, 0x6f, 0x6e, 0x64, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, + 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x13, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6c, 0x6f, 0x6e, 0x64, + 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x0b, 0x6c, 0x6f, 0x6e, 0x64, 0x6f, + 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x67, 0x0a, 0x13, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x5f, + 0x67, 0x6c, 0x61, 0x63, 0x69, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x12, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x37, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, - 0x1f, 0x14, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x73, 0x68, 0x61, 0x6e, 0x67, 0x68, 0x61, 0x69, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x52, 0x0c, 0x73, 0x68, 0x61, 0x6e, 0x67, 0x68, 0x61, 0x69, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x50, 0x0a, 0x0b, 0x63, 0x61, 0x6e, 0x63, 0x75, 0x6e, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, 0xda, 0xde, 0x1f, 0x15, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, - 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x12, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x63, 0x61, - 0x6e, 0x63, 0x75, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x52, 0x0a, 0x63, 0x61, 0x6e, 0x63, - 0x75, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x50, 0x0a, 0x0b, 0x70, 0x72, 0x61, 0x67, 0x75, 0x65, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, 0xda, 0xde, 0x1f, + 0x1f, 0x1a, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x5f, 0x67, 0x6c, + 0x61, 0x63, 0x69, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x11, 0x61, 0x72, + 0x72, 0x6f, 0x77, 0x47, 0x6c, 0x61, 0x63, 0x69, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, + 0x64, 0x0a, 0x12, 0x67, 0x72, 0x61, 0x79, 0x5f, 0x67, 0x6c, 0x61, 0x63, 0x69, 0x65, 0x72, 0x5f, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x42, 0x36, 0xda, 0xde, 0x1f, + 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, + 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x19, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, + 0x67, 0x72, 0x61, 0x79, 0x5f, 0x67, 0x6c, 0x61, 0x63, 0x69, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x22, 0x52, 0x10, 0x67, 0x72, 0x61, 0x79, 0x47, 0x6c, 0x61, 0x63, 0x69, 0x65, 0x72, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x6a, 0x0a, 0x14, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x5f, 0x6e, + 0x65, 0x74, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x15, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x38, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, + 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, + 0x1f, 0x1b, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x5f, 0x6e, 0x65, + 0x74, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x52, 0x12, 0x6d, + 0x65, 0x72, 0x67, 0x65, 0x4e, 0x65, 0x74, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x18, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, + 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, + 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x18, 0x1a, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x64, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x73, 0x12, 0x56, + 0x0a, 0x0d, 0x73, 0x68, 0x61, 0x6e, 0x67, 0x68, 0x61, 0x69, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x1b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x31, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, + 0xf2, 0xde, 0x1f, 0x14, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x73, 0x68, 0x61, 0x6e, 0x67, 0x68, + 0x61, 0x69, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x52, 0x0c, 0x73, 0x68, 0x61, 0x6e, 0x67, 0x68, + 0x61, 0x69, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x50, 0x0a, 0x0b, 0x63, 0x61, 0x6e, 0x63, 0x75, 0x6e, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x12, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, - 0x70, 0x72, 0x61, 0x67, 0x75, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x52, 0x0a, 0x70, 0x72, - 0x61, 0x67, 0x75, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x50, 0x0a, 0x0b, 0x76, 0x65, 0x72, 0x6b, - 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, 0xda, + 0x63, 0x61, 0x6e, 0x63, 0x75, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x52, 0x0a, 0x63, 0x61, + 0x6e, 0x63, 0x75, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x50, 0x0a, 0x0b, 0x70, 0x72, 0x61, 0x67, + 0x75, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x12, 0x79, 0x61, 0x6d, 0x6c, - 0x3a, 0x22, 0x76, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x52, 0x0a, - 0x76, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4d, 0x0a, 0x0a, 0x6f, 0x73, - 0x61, 0x6b, 0x61, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2e, - 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, - 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x11, 0x79, 0x61, 0x6d, - 0x6c, 0x3a, 0x22, 0x6f, 0x73, 0x61, 0x6b, 0x61, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x52, 0x09, - 0x6f, 0x73, 0x61, 0x6b, 0x61, 0x54, 0x69, 0x6d, 0x65, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, - 0x04, 0x08, 0x16, 0x10, 0x17, 0x4a, 0x04, 0x08, 0x17, 0x10, 0x18, 0x22, 0x2f, 0x0a, 0x05, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x50, 0x0a, 0x0f, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x12, - 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, - 0x61, 0x73, 0x68, 0x12, 0x29, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x65, 0x76, 0x6d, 0x2e, 0x76, - 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x22, 0xca, - 0x02, 0x0a, 0x03, 0x4c, 0x6f, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x16, 0x0a, 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x0c, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x04, 0x42, 0x0f, 0xea, 0xde, 0x1f, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x2c, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x13, 0xea, 0xde, 0x1f, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x48, 0x61, 0x73, 0x68, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, 0x12, 0x2f, - 0x0a, 0x08, 0x74, 0x78, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, - 0x42, 0x14, 0xea, 0xde, 0x1f, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x07, 0x74, 0x78, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, - 0x2c, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x0d, 0xea, 0xde, 0x1f, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, - 0x73, 0x68, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, - 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x42, 0x0c, 0xea, 0xde, - 0x1f, 0x08, 0x6c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, - 0x78, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x22, 0x90, 0x02, 0x0a, 0x08, - 0x54, 0x78, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x46, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x1b, 0xf2, 0xde, 0x1f, 0x17, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x52, - 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x14, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x05, 0x62, 0x6c, 0x6f, 0x6f, 0x6d, 0x12, 0x57, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x6c, 0x6f, 0x67, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x65, 0x76, 0x6d, 0x2e, 0x76, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x42, 0x1b, 0xc8, 0xde, 0x1f, 0x00, - 0xf2, 0xde, 0x1f, 0x0e, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x74, 0x78, 0x5f, 0x6c, 0x6f, 0x67, - 0x73, 0x22, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x74, 0x78, 0x4c, 0x6f, 0x67, 0x73, 0x12, - 0x10, 0x0a, 0x03, 0x72, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x72, 0x65, - 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x65, 0x72, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x76, 0x65, 0x72, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, - 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x07, 0x67, 0x61, 0x73, 0x55, 0x73, 0x65, 0x64, 0x3a, 0x04, 0x88, 0xa0, 0x1f, 0x00, 0x22, 0x61, - 0x0a, 0x0b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x32, 0x0a, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x0f, 0xea, - 0xde, 0x1f, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x0b, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x3a, 0x04, 0x88, 0xa0, 0x1f, - 0x00, 0x22, 0xa0, 0x04, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x63, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x74, 0x72, 0x61, 0x63, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, - 0x65, 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, - 0x6f, 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x65, 0x78, 0x65, 0x63, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x06, 0x72, 0x65, 0x65, 0x78, 0x65, 0x63, 0x12, 0x35, 0x0a, 0x0d, 0x64, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x08, 0x42, 0x10, 0xea, 0xde, 0x1f, 0x0c, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, - 0x74, 0x61, 0x63, 0x6b, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x61, - 0x63, 0x6b, 0x12, 0x3b, 0x0a, 0x0f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x12, 0xea, 0xde, 0x1f, - 0x0e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, - 0x0e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x64, 0x65, 0x62, 0x75, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, - 0x64, 0x65, 0x62, 0x75, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x3b, 0x0a, 0x09, 0x6f, - 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, - 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x65, 0x76, 0x6d, 0x2e, 0x76, 0x6d, 0x2e, 0x76, - 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x09, 0x6f, - 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x0d, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x42, - 0x10, 0xea, 0xde, 0x1f, 0x0c, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x72, - 0x79, 0x52, 0x0c, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, - 0x42, 0x0a, 0x12, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, - 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x42, 0x14, 0xea, 0xde, 0x1f, - 0x10, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x10, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x3e, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x63, 0x65, 0x72, 0x5f, 0x6a, 0x73, - 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x10, 0xea, 0xde, 0x1f, 0x0c, 0x74, 0x72, 0x61, 0x63, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x10, 0x74, 0x72, 0x61, 0x63, 0x65, 0x72, 0x4a, 0x73, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x07, 0x10, 0x08, 0x52, - 0x0e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x52, - 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, - 0x64, 0x61, 0x74, 0x61, 0x22, 0x4e, 0x0a, 0x0a, 0x50, 0x72, 0x65, 0x69, 0x6e, 0x73, 0x74, 0x61, - 0x6c, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x63, 0x6f, 0x64, 0x65, 0x2a, 0xc0, 0x01, 0x0a, 0x0a, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x3c, 0x0a, 0x1a, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x50, 0x45, 0x52, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x4c, 0x45, 0x53, - 0x53, 0x10, 0x00, 0x1a, 0x1c, 0x8a, 0x9d, 0x20, 0x18, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, - 0x79, 0x70, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x6c, 0x65, 0x73, - 0x73, 0x12, 0x34, 0x0a, 0x16, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x52, 0x45, 0x53, 0x54, 0x52, 0x49, 0x43, 0x54, 0x45, 0x44, 0x10, 0x01, 0x1a, 0x18, 0x8a, - 0x9d, 0x20, 0x14, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, - 0x74, 0x72, 0x69, 0x63, 0x74, 0x65, 0x64, 0x12, 0x38, 0x0a, 0x18, 0x41, 0x43, 0x43, 0x45, 0x53, - 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x45, 0x52, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, - 0x4e, 0x45, 0x44, 0x10, 0x02, 0x1a, 0x1a, 0x8a, 0x9d, 0x20, 0x16, 0x41, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x54, 0x79, 0x70, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x65, - 0x64, 0x1a, 0x04, 0x88, 0xa3, 0x1e, 0x00, 0x42, 0xab, 0x01, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x2e, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x65, 0x76, 0x6d, 0x2e, 0x76, 0x6d, 0x2e, 0x76, 0x31, - 0x42, 0x08, 0x45, 0x76, 0x6d, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x26, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x65, 0x76, 0x6d, 0x2f, 0x76, 0x6d, 0x2f, 0x76, 0x31, 0x3b, - 0x76, 0x6d, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x45, 0x56, 0xaa, 0x02, 0x10, 0x43, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x45, 0x76, 0x6d, 0x2e, 0x56, 0x6d, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x10, - 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x45, 0x76, 0x6d, 0x5c, 0x56, 0x6d, 0x5c, 0x56, 0x31, - 0xe2, 0x02, 0x1c, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x45, 0x76, 0x6d, 0x5c, 0x56, 0x6d, - 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, - 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x45, 0x76, 0x6d, 0x3a, 0x3a, 0x56, - 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x3a, 0x22, 0x70, 0x72, 0x61, 0x67, 0x75, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x52, 0x0a, + 0x70, 0x72, 0x61, 0x67, 0x75, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x50, 0x0a, 0x0b, 0x76, 0x65, + 0x72, 0x6b, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x2f, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, + 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x12, 0x79, 0x61, + 0x6d, 0x6c, 0x3a, 0x22, 0x76, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, + 0x52, 0x0a, 0x76, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4d, 0x0a, 0x0a, + 0x6f, 0x73, 0x61, 0x6b, 0x61, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x2e, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, + 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xf2, 0xde, 0x1f, 0x11, 0x79, + 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6f, 0x73, 0x61, 0x6b, 0x61, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, + 0x52, 0x09, 0x6f, 0x73, 0x61, 0x6b, 0x61, 0x54, 0x69, 0x6d, 0x65, 0x4a, 0x04, 0x08, 0x05, 0x10, + 0x06, 0x4a, 0x04, 0x08, 0x16, 0x10, 0x17, 0x4a, 0x04, 0x08, 0x17, 0x10, 0x18, 0x22, 0x2f, 0x0a, + 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x50, + 0x0a, 0x0f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, + 0x73, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x29, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x65, 0x76, 0x6d, + 0x2e, 0x76, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x73, + 0x22, 0xca, 0x02, 0x0a, 0x03, 0x4c, 0x6f, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, + 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x0f, 0xea, 0xde, 0x1f, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x13, 0xea, 0xde, 0x1f, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x61, 0x73, 0x68, 0x52, 0x06, 0x74, 0x78, 0x48, 0x61, 0x73, 0x68, + 0x12, 0x2f, 0x0a, 0x08, 0x74, 0x78, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x04, 0x42, 0x14, 0xea, 0xde, 0x1f, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x07, 0x74, 0x78, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x12, 0x2c, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0d, 0xea, 0xde, 0x1f, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x48, 0x61, 0x73, 0x68, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, + 0x22, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x42, 0x0c, + 0xea, 0xde, 0x1f, 0x08, 0x6c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x05, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x22, 0x90, 0x02, + 0x0a, 0x08, 0x54, 0x78, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x46, 0x0a, 0x10, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x1b, 0xf2, 0xde, 0x1f, 0x17, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x22, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x6f, 0x6d, 0x12, 0x57, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x6c, + 0x6f, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x65, 0x76, 0x6d, 0x2e, 0x76, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x42, 0x1b, 0xc8, 0xde, + 0x1f, 0x00, 0xf2, 0xde, 0x1f, 0x0e, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x74, 0x78, 0x5f, 0x6c, + 0x6f, 0x67, 0x73, 0x22, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x74, 0x78, 0x4c, 0x6f, 0x67, + 0x73, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, + 0x72, 0x65, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x65, 0x72, 0x74, 0x65, 0x64, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x76, 0x65, 0x72, 0x74, 0x65, 0x64, 0x12, + 0x19, 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x07, 0x67, 0x61, 0x73, 0x55, 0x73, 0x65, 0x64, 0x3a, 0x04, 0x88, 0xa0, 0x1f, 0x00, + 0x22, 0x61, 0x0a, 0x0b, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x32, 0x0a, 0x0c, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, + 0x0f, 0xea, 0xde, 0x1f, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x73, + 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x3a, 0x04, 0x88, + 0xa0, 0x1f, 0x00, 0x22, 0xa0, 0x04, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x63, 0x65, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x72, 0x61, 0x63, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x74, + 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x69, + 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x65, 0x78, 0x65, 0x63, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x72, 0x65, 0x65, 0x78, 0x65, 0x63, 0x12, 0x35, 0x0a, + 0x0d, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x10, 0xea, 0xde, 0x1f, 0x0c, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, + 0x74, 0x61, 0x63, 0x6b, 0x12, 0x3b, 0x0a, 0x0f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x12, 0xea, + 0xde, 0x1f, 0x0e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x52, 0x0e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x62, 0x75, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x05, 0x64, 0x65, 0x62, 0x75, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x3b, 0x0a, + 0x09, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x65, 0x76, 0x6d, 0x2e, 0x76, 0x6d, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, + 0x09, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x0d, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x10, 0xea, 0xde, 0x1f, 0x0c, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x65, 0x6d, + 0x6f, 0x72, 0x79, 0x52, 0x0c, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x72, + 0x79, 0x12, 0x42, 0x0a, 0x12, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x42, 0x14, 0xea, + 0xde, 0x1f, 0x10, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x10, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3e, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x63, 0x65, 0x72, 0x5f, + 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x10, 0xea, 0xde, 0x1f, 0x0c, 0x74, 0x72, 0x61, 0x63, 0x65, 0x72, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x10, 0x74, 0x72, 0x61, 0x63, 0x65, 0x72, 0x4a, 0x73, 0x6f, 0x6e, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x07, 0x10, + 0x08, 0x52, 0x0e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, + 0x79, 0x52, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x22, 0x4e, 0x0a, 0x0a, 0x50, 0x72, 0x65, 0x69, 0x6e, 0x73, + 0x74, 0x61, 0x6c, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x2a, 0xc0, 0x01, 0x0a, 0x0a, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3c, 0x0a, 0x1a, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x45, 0x52, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x4c, + 0x45, 0x53, 0x53, 0x10, 0x00, 0x1a, 0x1c, 0x8a, 0x9d, 0x20, 0x18, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x6c, + 0x65, 0x73, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x52, 0x45, 0x53, 0x54, 0x52, 0x49, 0x43, 0x54, 0x45, 0x44, 0x10, 0x01, 0x1a, + 0x18, 0x8a, 0x9d, 0x20, 0x14, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x65, 0x64, 0x12, 0x38, 0x0a, 0x18, 0x41, 0x43, 0x43, + 0x45, 0x53, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x45, 0x52, 0x4d, 0x49, 0x53, 0x53, + 0x49, 0x4f, 0x4e, 0x45, 0x44, 0x10, 0x02, 0x1a, 0x1a, 0x8a, 0x9d, 0x20, 0x16, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x65, 0x64, 0x1a, 0x04, 0x88, 0xa3, 0x1e, 0x00, 0x42, 0xab, 0x01, 0x0a, 0x14, 0x63, 0x6f, + 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x65, 0x76, 0x6d, 0x2e, 0x76, 0x6d, 0x2e, + 0x76, 0x31, 0x42, 0x08, 0x45, 0x76, 0x6d, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x26, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x65, 0x76, 0x6d, 0x2f, 0x76, 0x6d, 0x2f, 0x76, + 0x31, 0x3b, 0x76, 0x6d, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x45, 0x56, 0xaa, 0x02, 0x10, 0x43, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x45, 0x76, 0x6d, 0x2e, 0x56, 0x6d, 0x2e, 0x56, 0x31, 0xca, + 0x02, 0x10, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x45, 0x76, 0x6d, 0x5c, 0x56, 0x6d, 0x5c, + 0x56, 0x31, 0xe2, 0x02, 0x1c, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x45, 0x76, 0x6d, 0x5c, + 0x56, 0x6d, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0xea, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x45, 0x76, 0x6d, 0x3a, + 0x3a, 0x56, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/proto/cosmos/evm/vm/v1/evm.proto b/proto/cosmos/evm/vm/v1/evm.proto index e338c493b..71636d4bc 100644 --- a/proto/cosmos/evm/vm/v1/evm.proto +++ b/proto/cosmos/evm/vm/v1/evm.proto @@ -35,6 +35,7 @@ message Params { // active_static_precompiles defines the slice of hex addresses of the // precompiled contracts that are active repeated string active_static_precompiles = 9; + uint64 history_serve_window = 10; } // AccessControl defines the permission policy of the EVM diff --git a/tests/integration/x/vm/test_genesis.go b/tests/integration/x/vm/test_genesis.go index de241713b..a927310cf 100644 --- a/tests/integration/x/vm/test_genesis.go +++ b/tests/integration/x/vm/test_genesis.go @@ -222,7 +222,7 @@ func (s *GenesisTestSuite) TestExportGenesis() { genState := vm.ExportGenesis(s.network.GetContext(), s.network.App.GetEVMKeeper()) // Exported accounts 4 default preinstalls - s.Require().Len(genState.Accounts, 7) + s.Require().Len(genState.Accounts, 8) addrs := make([]string, len(genState.Accounts)) for i, acct := range genState.Accounts { diff --git a/tests/integration/x/vm/test_iterate_contracts.go b/tests/integration/x/vm/test_iterate_contracts.go index 66f2659d2..3c6cd5497 100644 --- a/tests/integration/x/vm/test_iterate_contracts.go +++ b/tests/integration/x/vm/test_iterate_contracts.go @@ -67,7 +67,7 @@ func TestIterateContracts(t *testing.T, create network.CreateEvmApp, options ... return false }) - require.Len(t, foundAddrs, 6, "expected 6 contracts to be found when iterating (4 preinstalled + 2 deployed)") + require.Len(t, foundAddrs, 7, "expected 7 contracts to be found when iterating (5 preinstalled + 2 deployed)") require.Contains(t, foundAddrs, contractAddr, "expected contract 1 to be found when iterating") require.Contains(t, foundAddrs, contractAddr2, "expected contract 2 to be found when iterating") diff --git a/tests/integration/x/vm/test_keeper.go b/tests/integration/x/vm/test_keeper.go index c31b3bb7f..8e5d0b446 100644 --- a/tests/integration/x/vm/test_keeper.go +++ b/tests/integration/x/vm/test_keeper.go @@ -5,6 +5,7 @@ import ( "math/big" "github.com/ethereum/go-ethereum/common" + ethparams "github.com/ethereum/go-ethereum/params" "github.com/holiman/uint256" "github.com/cosmos/evm/utils" @@ -89,7 +90,7 @@ func (s *KeeperTestSuite) TestGetAccountStorage() { storage := s.Network.App.GetEVMKeeper().GetAccountStorage(ctx, address) - if address == contractAddr { + if address == contractAddr || address == ethparams.HistoryStorageAddress { s.Require().NotEqual(0, len(storage), "expected account %d to have non-zero amount of storage slots, got %d", i, len(storage), diff --git a/tests/integration/x/vm/test_state_transition.go b/tests/integration/x/vm/test_state_transition.go index 633ec4ae5..84d34a146 100644 --- a/tests/integration/x/vm/test_state_transition.go +++ b/tests/integration/x/vm/test_state_transition.go @@ -12,7 +12,6 @@ import ( "github.com/cometbft/cometbft/crypto/tmhash" tmproto "github.com/cometbft/cometbft/proto/tendermint/types" - cmttypes "github.com/cometbft/cometbft/types" "github.com/cosmos/evm/testutil/config" "github.com/cosmos/evm/testutil/integration/evm/factory" @@ -33,7 +32,6 @@ import ( banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" consensustypes "github.com/cosmos/cosmos-sdk/x/consensus/types" govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" - stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" ) func (s *KeeperTestSuite) TestContextSetConsensusParams() { @@ -81,9 +79,11 @@ func (s *KeeperTestSuite) TestContextSetConsensusParams() { func (s *KeeperTestSuite) TestGetHashFn() { s.SetupTest() - header := s.Network.GetContext().BlockHeader() - h, _ := cmttypes.HeaderFromProto(&header) - hash := h.Hash() + s.Require().NoError(s.Network.NextBlock()) + ctx := s.Network.GetContext() + height := uint64(ctx.BlockHeight()) //nolint:gosec // G115 + headerHash := common.BytesToHash(ctx.HeaderHash()) + fmt.Println("get headerHash", height, headerHash) testCases := []struct { msg string @@ -93,7 +93,7 @@ func (s *KeeperTestSuite) TestGetHashFn() { }{ { "case 1.1: context hash cached", - uint64(s.Network.GetContext().BlockHeight()), //nolint:gosec // G115 + height, func() sdk.Context { return s.Network.GetContext().WithHeaderHash( tmhash.Sum([]byte("header")), @@ -102,51 +102,22 @@ func (s *KeeperTestSuite) TestGetHashFn() { common.BytesToHash(tmhash.Sum([]byte("header"))), }, { - "case 1.2: failed to cast CometBFT header", - uint64(s.Network.GetContext().BlockHeight()), //nolint:gosec // G115 + "case 1.2: works for invalid CometBFT header", + height, func() sdk.Context { header := tmproto.Header{} header.Height = s.Network.GetContext().BlockHeight() return s.Network.GetContext().WithBlockHeader(header) }, - common.Hash{}, - }, - { - "case 1.3: hash calculated from CometBFT header", - uint64(s.Network.GetContext().BlockHeight()), //nolint:gosec // G115 - func() sdk.Context { - return s.Network.GetContext().WithBlockHeader(header) - }, - common.BytesToHash(hash), + headerHash, }, { - "case 2.1: height lower than current one, hist info not found", - 1, + "case 2.1: height lower than current one works", + height, func() sdk.Context { return s.Network.GetContext().WithBlockHeight(10) }, - common.Hash{}, - }, - { - "case 2.2: height lower than current one, invalid hist info header", - 1, - func() sdk.Context { - s.Require().NoError(s.Network.App.GetStakingKeeper().SetHistoricalInfo(s.Network.GetContext(), 1, &stakingtypes.HistoricalInfo{})) - return s.Network.GetContext().WithBlockHeight(10) - }, - common.Hash{}, - }, - { - "case 2.3: height lower than current one, calculated from hist info header", - 1, - func() sdk.Context { - histInfo := &stakingtypes.HistoricalInfo{ - Header: header, - } - s.Require().NoError(s.Network.App.GetStakingKeeper().SetHistoricalInfo(s.Network.GetContext(), 1, histInfo)) - return s.Network.GetContext().WithBlockHeight(10) - }, - common.BytesToHash(hash), + headerHash, }, { "case 3: height greater than current one", diff --git a/testutil/integration/evm/network/abci.go b/testutil/integration/evm/network/abci.go index 2050bc253..fc5bf9c54 100644 --- a/testutil/integration/evm/network/abci.go +++ b/testutil/integration/evm/network/abci.go @@ -60,6 +60,7 @@ func (n *IntegrationNetwork) finalizeBlockAndCommit(duration time.Duration, txBy // This might have to be changed with time if we want to test gas limits newCtx = newCtx.WithBlockGasMeter(storetypes.NewInfiniteGasMeter()) newCtx = newCtx.WithVoteInfos(req.DecidedLastCommit.GetVotes()) + newCtx = newCtx.WithHeaderHash(header.AppHash) n.ctx = newCtx // commit changes diff --git a/x/vm/keeper/abci.go b/x/vm/keeper/abci.go index 6833c963d..b10026070 100644 --- a/x/vm/keeper/abci.go +++ b/x/vm/keeper/abci.go @@ -31,6 +31,8 @@ func (k *Keeper) BeginBlock(ctx sdk.Context) error { ), }) } + + k.SetHeaderHash(ctx) return nil } diff --git a/x/vm/keeper/keeper.go b/x/vm/keeper/keeper.go index dbed35ee6..15f8b1968 100644 --- a/x/vm/keeper/keeper.go +++ b/x/vm/keeper/keeper.go @@ -1,6 +1,7 @@ package keeper import ( + "encoding/binary" "math/big" "github.com/ethereum/go-ethereum/common" @@ -8,7 +9,7 @@ import ( "github.com/ethereum/go-ethereum/core/tracing" ethtypes "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/core/vm" - "github.com/ethereum/go-ethereum/params" + ethparams "github.com/ethereum/go-ethereum/params" "github.com/holiman/uint256" evmmempool "github.com/cosmos/evm/mempool" @@ -254,7 +255,7 @@ func (k Keeper) GetAccountStorage(ctx sdk.Context, address common.Address) types // ---------------------------------------------------------------------------- // Tracer return a default vm.Tracer based on current keeper state -func (k Keeper) Tracer(ctx sdk.Context, msg core.Message, ethCfg *params.ChainConfig) *tracing.Hooks { +func (k Keeper) Tracer(ctx sdk.Context, msg core.Message, ethCfg *ethparams.ChainConfig) *tracing.Hooks { return types.NewTracer(k.tracer, msg, ethCfg, ctx.BlockHeight(), uint64(ctx.BlockTime().Unix())) //#nosec G115 -- int overflow is not a concern here } @@ -401,3 +402,35 @@ func (k *Keeper) SetEvmMempool(evmMempool *evmmempool.ExperimentalEVMMempool) { func (k Keeper) GetEvmMempool() *evmmempool.ExperimentalEVMMempool { return k.evmMempool } + +// SetHeaderHash sets current block hash into EIP-2935 compatible storage contract. +func (k Keeper) SetHeaderHash(ctx sdk.Context) { + window := uint64(types.DefaultHistoryServeWindow) + params := k.GetParams(ctx) + if params.HistoryServeWindow > 0 { + window = params.HistoryServeWindow + } + + acct := k.GetAccount(ctx, ethparams.HistoryStorageAddress) + if acct != nil && acct.IsContract() { + // set current block hash in the contract storage, compatible with EIP-2935 + ringIndex := uint64(ctx.BlockHeight()) % window //nolint:gosec // G115 // won't exceed uint64 + var key common.Hash + binary.BigEndian.PutUint64(key[24:], ringIndex) + k.SetState(ctx, ethparams.HistoryStorageAddress, key, ctx.HeaderHash()) + } +} + +// GetHeaderHash sets block hash into EIP-2935 compatible storage contract. +func (k Keeper) GetHeaderHash(ctx sdk.Context, height uint64) common.Hash { + window := uint64(types.DefaultHistoryServeWindow) + params := k.GetParams(ctx) + if params.HistoryServeWindow > 0 { + window = params.HistoryServeWindow + } + + ringIndex := height % window + var key common.Hash + binary.BigEndian.PutUint64(key[24:], ringIndex) + return k.GetState(ctx, ethparams.HistoryStorageAddress, key) +} diff --git a/x/vm/keeper/state_transition.go b/x/vm/keeper/state_transition.go index e03e922e7..4c54727ce 100644 --- a/x/vm/keeper/state_transition.go +++ b/x/vm/keeper/state_transition.go @@ -112,23 +112,11 @@ func (k Keeper) GetHashFn(ctx sdk.Context) vm.GetHashFunc { return common.BytesToHash(headerHash) case ctx.BlockHeight() > h: - // Case 2: if the chain is not the current height we need to retrieve the hash from the store for the - // current chain epoch. This only applies if the current height is greater than the requested height. - histInfo, err := k.stakingKeeper.GetHistoricalInfo(ctx, h) - if err != nil { - k.Logger(ctx).Debug("error while getting historical info", "height", h, "error", err.Error()) - return common.Hash{} - } - - header, err := cmttypes.HeaderFromProto(&histInfo.Header) - if err != nil { - k.Logger(ctx).Error("failed to cast CometBFT header from proto", "error", err) - return common.Hash{} - } - - return common.BytesToHash(header.Hash()) + // Case 2: The requested height is historical, query EIP-2935 contract storage for that + // see: https://github.com/cosmos/evm/issues/406 + return k.GetHeaderHash(ctx, height) default: - // Case 3: heights greater than the current one returns an empty hash. + // Case 3: The requested height is greater than the latest one, return empty hash return common.Hash{} } } diff --git a/x/vm/types/evm.pb.go b/x/vm/types/evm.pb.go index 5580012e2..3d8430bf4 100644 --- a/x/vm/types/evm.pb.go +++ b/x/vm/types/evm.pb.go @@ -71,6 +71,7 @@ type Params struct { // active_static_precompiles defines the slice of hex addresses of the // precompiled contracts that are active ActiveStaticPrecompiles []string `protobuf:"bytes,9,rep,name=active_static_precompiles,json=activeStaticPrecompiles,proto3" json:"active_static_precompiles,omitempty"` + HistoryServeWindow uint64 `protobuf:"varint,10,opt,name=history_serve_window,json=historyServeWindow,proto3" json:"history_serve_window,omitempty"` } func (m *Params) Reset() { *m = Params{} } @@ -141,6 +142,13 @@ func (m *Params) GetActiveStaticPrecompiles() []string { return nil } +func (m *Params) GetHistoryServeWindow() uint64 { + if m != nil { + return m.HistoryServeWindow + } + return 0 +} + // AccessControl defines the permission policy of the EVM // for creating and calling contracts type AccessControl struct { @@ -932,130 +940,132 @@ func init() { func init() { proto.RegisterFile("cosmos/evm/vm/v1/evm.proto", fileDescriptor_d1129b8db63d55c7) } var fileDescriptor_d1129b8db63d55c7 = []byte{ - // 1958 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x58, 0x4f, 0x6f, 0xe3, 0xc6, - 0x15, 0xb7, 0x2c, 0xda, 0xa6, 0x46, 0xb2, 0xcc, 0x1d, 0x6b, 0xbd, 0x5a, 0x6d, 0x62, 0xaa, 0x6c, - 0x0f, 0xee, 0x22, 0xb5, 0xd7, 0xde, 0xb8, 0x35, 0x9c, 0xfe, 0x81, 0x65, 0x2b, 0xad, 0x5d, 0xef, - 0x46, 0x18, 0xb9, 0x09, 0x52, 0xb4, 0x20, 0x46, 0xe4, 0x2c, 0xc5, 0x88, 0xe4, 0x08, 0x1c, 0x4a, - 0xb5, 0x7b, 0xec, 0x29, 0xd8, 0x53, 0xfa, 0x01, 0x16, 0x08, 0xd0, 0x4b, 0x8e, 0xf9, 0x08, 0x3d, - 0x06, 0x3d, 0xe5, 0x58, 0x14, 0x28, 0x51, 0x68, 0x0f, 0x01, 0x7c, 0xf4, 0x27, 0x28, 0xe6, 0x8f, - 0xfe, 0xda, 0x51, 0x5d, 0xc0, 0xd8, 0x9d, 0xdf, 0x9b, 0xf7, 0x7e, 0xbf, 0x99, 0x37, 0x8f, 0xc3, - 0x47, 0x81, 0x8a, 0x43, 0x59, 0x48, 0xd9, 0x0e, 0xe9, 0x87, 0x3b, 0xfc, 0x6f, 0x97, 0x8f, 0xb6, - 0xbb, 0x31, 0x4d, 0x28, 0x34, 0xe4, 0xdc, 0x36, 0xb7, 0xf0, 0xbf, 0xdd, 0xca, 0x03, 0x1c, 0xfa, - 0x11, 0xdd, 0x11, 0xff, 0x4a, 0xa7, 0x4a, 0xc9, 0xa3, 0x1e, 0x15, 0xc3, 0x1d, 0x3e, 0x92, 0x56, - 0xeb, 0x2f, 0x59, 0xb0, 0xdc, 0xc0, 0x31, 0x0e, 0x19, 0xdc, 0x05, 0x39, 0xd2, 0x0f, 0x6d, 0x97, - 0x44, 0x34, 0x2c, 0x67, 0xaa, 0x99, 0xad, 0x5c, 0xad, 0x74, 0x93, 0x9a, 0xc6, 0x15, 0x0e, 0x83, - 0x43, 0x6b, 0x34, 0x65, 0x21, 0x9d, 0xf4, 0xc3, 0x13, 0x3e, 0x84, 0x47, 0x00, 0x90, 0xcb, 0x24, - 0xc6, 0x36, 0xf1, 0xbb, 0xac, 0xac, 0x55, 0xb3, 0x5b, 0xd9, 0x9a, 0x35, 0x48, 0xcd, 0x5c, 0x9d, - 0x5b, 0xeb, 0xa7, 0x0d, 0x76, 0x93, 0x9a, 0x0f, 0x14, 0xc1, 0xc8, 0xd1, 0x42, 0x39, 0x01, 0xea, - 0x7e, 0x97, 0xc1, 0x3d, 0x50, 0xe0, 0xd4, 0x4e, 0x1b, 0x47, 0x11, 0x09, 0x58, 0x79, 0xa5, 0x9a, - 0xdd, 0xca, 0xd5, 0xd6, 0x06, 0xa9, 0x99, 0xaf, 0x7f, 0xfc, 0xe2, 0x58, 0x99, 0x51, 0x9e, 0xf4, - 0xc3, 0x21, 0x80, 0x7f, 0x04, 0x45, 0xec, 0x38, 0x84, 0x31, 0xdb, 0xa1, 0x51, 0x12, 0xd3, 0xa0, - 0xac, 0x57, 0x33, 0x5b, 0xf9, 0x3d, 0x73, 0x7b, 0x36, 0x11, 0xdb, 0x47, 0xc2, 0xef, 0x58, 0xba, - 0xd5, 0x1e, 0x7e, 0x93, 0x9a, 0x0b, 0x83, 0xd4, 0x5c, 0x9d, 0x32, 0xa3, 0x55, 0x3c, 0x09, 0xe1, - 0x21, 0x78, 0x8c, 0x9d, 0xc4, 0xef, 0x13, 0x9b, 0x25, 0x38, 0xf1, 0x1d, 0xbb, 0x1b, 0x13, 0x87, - 0x86, 0x5d, 0x3f, 0x20, 0xac, 0x9c, 0xe3, 0xeb, 0x43, 0x8f, 0xa4, 0x43, 0x53, 0xcc, 0x37, 0xc6, - 0xd3, 0x87, 0x4f, 0x5e, 0x7f, 0xf7, 0xf5, 0xd3, 0x8d, 0x89, 0xb3, 0xba, 0xe4, 0xa7, 0x25, 0x33, - 0x7c, 0xa6, 0xe9, 0x8b, 0x46, 0xf6, 0x4c, 0xd3, 0xb3, 0x86, 0x76, 0xa6, 0xe9, 0x4b, 0xc6, 0xf2, - 0x99, 0xa6, 0x2f, 0x1b, 0x2b, 0xd6, 0x5f, 0x33, 0x60, 0x7a, 0x45, 0xf0, 0x08, 0x2c, 0x3b, 0x31, - 0xc1, 0x09, 0x11, 0x07, 0x91, 0xdf, 0xfb, 0xe1, 0xff, 0xd8, 0xd9, 0xc5, 0x55, 0x97, 0xd4, 0x34, - 0xbe, 0x3b, 0xa4, 0x02, 0xe1, 0x2f, 0x80, 0xe6, 0xe0, 0x20, 0x28, 0x2f, 0xfe, 0xbf, 0x04, 0x22, - 0xcc, 0xfa, 0x77, 0x06, 0x3c, 0xb8, 0xe5, 0x01, 0x1d, 0x90, 0x57, 0x99, 0x4f, 0xae, 0xba, 0x72, - 0x71, 0xc5, 0xbd, 0x77, 0xbe, 0x8f, 0x5b, 0x90, 0xfe, 0x68, 0x90, 0x9a, 0x60, 0x8c, 0x6f, 0x52, - 0x13, 0xca, 0x82, 0x98, 0x20, 0xb2, 0x10, 0xc0, 0x23, 0x0f, 0xe8, 0x80, 0xf5, 0xe9, 0xe3, 0xb5, - 0x03, 0x9f, 0x25, 0xe5, 0x45, 0x51, 0x19, 0xcf, 0x07, 0xa9, 0x39, 0xbd, 0xb0, 0x73, 0x9f, 0x25, - 0x37, 0xa9, 0x59, 0x99, 0x62, 0x9d, 0x8c, 0xb4, 0xd0, 0x03, 0x3c, 0x1b, 0x60, 0x7d, 0x65, 0x80, - 0xfc, 0x71, 0x1b, 0xfb, 0xd1, 0x31, 0x8d, 0x5e, 0xf9, 0x1e, 0xfc, 0x03, 0x58, 0x6b, 0xd3, 0x90, - 0xb0, 0x84, 0x60, 0xd7, 0x6e, 0x05, 0xd4, 0xe9, 0xa8, 0x67, 0xe0, 0xf9, 0xbf, 0x52, 0xf3, 0xa1, - 0xdc, 0x20, 0x73, 0x3b, 0xdb, 0x3e, 0xdd, 0x09, 0x71, 0xd2, 0xde, 0x3e, 0x8d, 0xb8, 0xe8, 0x86, - 0x14, 0x9d, 0x89, 0xb4, 0x50, 0x71, 0x64, 0xa9, 0x71, 0x03, 0x6c, 0x83, 0xa2, 0x8b, 0xa9, 0xfd, - 0x8a, 0xc6, 0x1d, 0x45, 0xbe, 0x28, 0xc8, 0x6b, 0xdf, 0x4b, 0x3e, 0x48, 0xcd, 0xc2, 0xc9, 0xd1, - 0x47, 0x1f, 0xd2, 0xb8, 0x23, 0x28, 0x6e, 0x52, 0xf3, 0xa1, 0x14, 0x9b, 0x26, 0xb2, 0x50, 0xc1, - 0xc5, 0x74, 0xe4, 0x06, 0x3f, 0x01, 0xc6, 0xc8, 0x81, 0xf5, 0xba, 0x5d, 0x1a, 0x27, 0xe5, 0x6c, - 0x35, 0xb3, 0xa5, 0xd7, 0x7e, 0x32, 0x48, 0xcd, 0xa2, 0xa2, 0x6c, 0xca, 0x99, 0x9b, 0xd4, 0x7c, - 0x34, 0x43, 0xaa, 0x62, 0x2c, 0x54, 0x54, 0xb4, 0xca, 0x15, 0xb6, 0x40, 0x81, 0xf8, 0xdd, 0xdd, - 0xfd, 0x67, 0x6a, 0x03, 0x9a, 0xd8, 0xc0, 0xaf, 0xe6, 0x6d, 0x20, 0x5f, 0x3f, 0x6d, 0xec, 0xee, - 0x3f, 0x1b, 0xae, 0x7f, 0x5d, 0x5d, 0x04, 0x13, 0x2c, 0x16, 0xca, 0x4b, 0x28, 0x17, 0x3f, 0xd4, - 0xd8, 0x57, 0x1a, 0xcb, 0xf7, 0xd5, 0xd8, 0xbf, 0x4b, 0x63, 0x7f, 0x5a, 0x63, 0x7f, 0x5a, 0xe3, - 0x40, 0x69, 0xac, 0xdc, 0x57, 0xe3, 0xe0, 0x2e, 0x8d, 0x83, 0x69, 0x0d, 0xe9, 0xc3, 0x8b, 0xa9, - 0x75, 0xf5, 0x67, 0x1c, 0x25, 0x7e, 0x2f, 0x54, 0x32, 0xfa, 0xbd, 0x8b, 0x69, 0x26, 0xd2, 0x42, - 0xc5, 0x91, 0x45, 0xb2, 0x77, 0x40, 0xc9, 0xa1, 0x11, 0x4b, 0xb8, 0x2d, 0xa2, 0xdd, 0x80, 0x28, - 0x89, 0x9c, 0x90, 0x38, 0x98, 0x27, 0xf1, 0x44, 0x4a, 0xdc, 0x15, 0x6e, 0xa1, 0xf5, 0x69, 0xb3, - 0x14, 0xb3, 0x81, 0xd1, 0x25, 0x09, 0x89, 0x59, 0xab, 0x17, 0x7b, 0x4a, 0x08, 0x08, 0xa1, 0xf7, - 0xe7, 0x09, 0xa9, 0xb2, 0x9a, 0x0d, 0xb5, 0xd0, 0xda, 0xd8, 0x24, 0x05, 0x3e, 0x05, 0x45, 0x9f, - 0xab, 0xb6, 0x7a, 0x81, 0xa2, 0xcf, 0x0b, 0xfa, 0xbd, 0x79, 0xf4, 0xea, 0x51, 0x98, 0x0e, 0xb4, - 0xd0, 0xea, 0xd0, 0x20, 0xa9, 0x5d, 0x00, 0xc3, 0x9e, 0x1f, 0xdb, 0x5e, 0x80, 0x1d, 0x9f, 0xc4, - 0x8a, 0xbe, 0x20, 0xe8, 0x7f, 0x3a, 0x8f, 0xfe, 0xb1, 0xa4, 0xbf, 0x1d, 0x6c, 0x21, 0x83, 0x1b, - 0x7f, 0x2d, 0x6d, 0x52, 0xa5, 0x09, 0x0a, 0x2d, 0x12, 0x07, 0x7e, 0xa4, 0xf8, 0x57, 0x05, 0xff, - 0xb3, 0x79, 0xfc, 0xaa, 0x82, 0x26, 0xc3, 0x2c, 0x94, 0x97, 0x70, 0x44, 0x1a, 0xd0, 0xc8, 0xa5, - 0x43, 0xd2, 0x07, 0xf7, 0x26, 0x9d, 0x0c, 0xb3, 0x50, 0x5e, 0x42, 0x49, 0xea, 0x81, 0x75, 0x1c, - 0xc7, 0xf4, 0x4f, 0x33, 0x09, 0x81, 0x82, 0xfb, 0x67, 0xf3, 0xb8, 0x87, 0x97, 0xeb, 0xed, 0x68, - 0x7e, 0xb9, 0x72, 0xeb, 0x54, 0x4a, 0x5c, 0x00, 0xbd, 0x18, 0x5f, 0xcd, 0xe8, 0x94, 0xee, 0x9d, - 0xf8, 0xdb, 0xc1, 0x16, 0x32, 0xb8, 0x71, 0x4a, 0xe5, 0x33, 0x50, 0x0a, 0x49, 0xec, 0x11, 0x3b, - 0x22, 0x09, 0xeb, 0x06, 0x7e, 0xa2, 0x74, 0x1e, 0xde, 0xfb, 0x39, 0xb8, 0x2b, 0xdc, 0x42, 0x50, - 0x98, 0x5f, 0x2a, 0xab, 0xd4, 0x7a, 0x0c, 0x74, 0x87, 0xbf, 0x2d, 0x6c, 0xdf, 0x2d, 0x97, 0xab, - 0x99, 0x2d, 0x0d, 0xad, 0x08, 0x7c, 0xea, 0xc2, 0x12, 0x58, 0x92, 0x3d, 0xd3, 0x63, 0xae, 0x8b, - 0x24, 0x80, 0x15, 0xa0, 0xbb, 0xc4, 0xf1, 0x43, 0x1c, 0xb0, 0x72, 0x45, 0x04, 0x8c, 0x30, 0xfc, - 0x18, 0xac, 0xb2, 0x36, 0x8e, 0xbc, 0x36, 0xf6, 0xed, 0xc4, 0x0f, 0x49, 0xf9, 0x89, 0x58, 0xf1, - 0xee, 0xbc, 0x15, 0x97, 0xe4, 0x8a, 0xa7, 0xe2, 0x2c, 0x54, 0x18, 0xe2, 0x0b, 0x3f, 0x24, 0xb0, - 0x01, 0xf2, 0x0e, 0x8e, 0x9c, 0x5e, 0x24, 0x59, 0xdf, 0x11, 0xac, 0x3b, 0xf3, 0x58, 0xd5, 0xab, - 0x78, 0x22, 0xca, 0x42, 0x40, 0xa2, 0x21, 0x63, 0x37, 0xc6, 0x5e, 0x8f, 0x48, 0xc6, 0x77, 0xef, - 0xcd, 0x38, 0x11, 0x65, 0x21, 0x20, 0xd1, 0x90, 0xb1, 0x4f, 0xe2, 0x4e, 0xa0, 0x18, 0x37, 0xef, - 0xcd, 0x38, 0x11, 0x65, 0x21, 0x20, 0x91, 0x60, 0x7c, 0x01, 0x00, 0x65, 0xb8, 0x83, 0x25, 0xa1, - 0x29, 0x08, 0xb7, 0xe7, 0x11, 0xaa, 0x86, 0x74, 0x1c, 0x64, 0xa1, 0x9c, 0x00, 0x9c, 0x6e, 0xd4, - 0x98, 0x6d, 0x18, 0x8f, 0xce, 0x34, 0xfd, 0x91, 0x51, 0xb6, 0x76, 0xc0, 0x12, 0x6f, 0xf4, 0x08, - 0x34, 0x40, 0xb6, 0x43, 0xae, 0x64, 0x5f, 0x80, 0xf8, 0x90, 0x9f, 0x7d, 0x1f, 0x07, 0x3d, 0x22, - 0x5f, 0xe7, 0x48, 0x02, 0xab, 0x01, 0xd6, 0x2e, 0x62, 0x1c, 0x31, 0xde, 0x24, 0xd2, 0xe8, 0x9c, - 0x7a, 0x0c, 0x42, 0xa0, 0xb5, 0x31, 0x6b, 0xab, 0x58, 0x31, 0x86, 0x3f, 0x06, 0x5a, 0x40, 0x3d, - 0x26, 0x1a, 0x9b, 0xfc, 0xde, 0xc3, 0xdb, 0x5d, 0xd4, 0x39, 0xf5, 0x90, 0x70, 0xb1, 0xfe, 0xb1, - 0x08, 0xb2, 0xe7, 0xd4, 0x83, 0x65, 0xb0, 0x82, 0x5d, 0x37, 0x26, 0x8c, 0x29, 0xa6, 0x21, 0x84, - 0x1b, 0x60, 0x39, 0xa1, 0x5d, 0xdf, 0x91, 0x74, 0x39, 0xa4, 0x10, 0x17, 0x76, 0x71, 0x82, 0x45, - 0x0f, 0x50, 0x40, 0x62, 0xcc, 0x7b, 0x6e, 0x51, 0xea, 0x76, 0xd4, 0x0b, 0x5b, 0x24, 0x16, 0xaf, - 0x72, 0xad, 0xb6, 0x76, 0x9d, 0x9a, 0x79, 0x61, 0x7f, 0x29, 0xcc, 0x68, 0x12, 0xc0, 0xf7, 0xc0, - 0x4a, 0x72, 0x69, 0x8b, 0x3d, 0x2c, 0x89, 0x14, 0xaf, 0x5f, 0xa7, 0xe6, 0x5a, 0x32, 0xde, 0xe6, - 0x6f, 0x30, 0x6b, 0xa3, 0xe5, 0xe4, 0x92, 0xff, 0x0f, 0x77, 0x80, 0x9e, 0x5c, 0xda, 0x7e, 0xe4, - 0x92, 0x4b, 0xf1, 0x12, 0xd7, 0x6a, 0xa5, 0xeb, 0xd4, 0x34, 0x26, 0xdc, 0x4f, 0xf9, 0x1c, 0x5a, - 0x49, 0x2e, 0xc5, 0x00, 0xbe, 0x07, 0x80, 0x5c, 0x92, 0x50, 0x90, 0xef, 0xe4, 0xd5, 0xeb, 0xd4, - 0xcc, 0x09, 0xab, 0xe0, 0x1e, 0x0f, 0xa1, 0x05, 0x96, 0x24, 0xb7, 0x2e, 0xb8, 0x0b, 0xd7, 0xa9, - 0xa9, 0x07, 0xd4, 0x93, 0x9c, 0x72, 0x8a, 0xa7, 0x2a, 0x26, 0x21, 0xed, 0x13, 0x57, 0xbc, 0x18, - 0x75, 0x34, 0x84, 0xd6, 0x17, 0x8b, 0x40, 0xbf, 0xb8, 0x44, 0x84, 0xf5, 0x82, 0x04, 0x7e, 0x08, - 0x0c, 0xd1, 0x2b, 0x62, 0x27, 0xb1, 0xa7, 0x52, 0x5b, 0x7b, 0x32, 0x7e, 0x8d, 0xcd, 0x7a, 0x58, - 0x68, 0x6d, 0x68, 0x3a, 0x52, 0xf9, 0x2f, 0x81, 0xa5, 0x56, 0x40, 0x69, 0x28, 0x2a, 0xa1, 0x80, - 0x24, 0x80, 0x9f, 0x88, 0xac, 0x89, 0x53, 0xce, 0x8a, 0x3e, 0xfc, 0x07, 0xb7, 0x4f, 0x79, 0xa6, - 0x54, 0x6a, 0x4f, 0x78, 0x17, 0x7e, 0x93, 0x9a, 0x45, 0xa9, 0xad, 0xe2, 0xad, 0xaf, 0xbe, 0xfb, - 0xfa, 0x69, 0x86, 0x27, 0x58, 0xd4, 0x93, 0x01, 0xb2, 0x31, 0x49, 0xc4, 0xc9, 0x15, 0x10, 0x1f, - 0xf2, 0x0b, 0x27, 0x26, 0x7d, 0x12, 0x27, 0xc4, 0x15, 0x27, 0xa4, 0xa3, 0x11, 0xe6, 0xb7, 0x97, - 0x87, 0x99, 0xdd, 0x63, 0xc4, 0x95, 0xc7, 0x81, 0x56, 0x3c, 0xcc, 0x7e, 0xc7, 0x88, 0x7b, 0xa8, - 0x7d, 0xfe, 0xa5, 0xb9, 0x60, 0x61, 0x90, 0x57, 0x2d, 0x7a, 0xaf, 0x1b, 0x90, 0x39, 0x65, 0xb6, - 0x07, 0x0a, 0x2c, 0xa1, 0x31, 0xf6, 0x88, 0xdd, 0x21, 0x57, 0xaa, 0xd8, 0x64, 0xe9, 0x28, 0xfb, - 0x6f, 0xc9, 0x15, 0x43, 0x93, 0x40, 0x49, 0x7c, 0xa9, 0x81, 0xfc, 0x45, 0x8c, 0x1d, 0xa2, 0x1a, - 0x6e, 0x5e, 0xb0, 0x1c, 0xc6, 0x4a, 0x42, 0x21, 0xae, 0xcd, 0x9f, 0x49, 0xda, 0x4b, 0xd4, 0x43, - 0x35, 0x84, 0x3c, 0x22, 0x26, 0xe4, 0x92, 0x38, 0x22, 0x97, 0x1a, 0x52, 0x08, 0xee, 0x83, 0x55, - 0xd7, 0x67, 0xb8, 0x15, 0x88, 0x0f, 0x36, 0xa7, 0x23, 0xb7, 0x5f, 0x33, 0xae, 0x53, 0xb3, 0xa0, - 0x26, 0x9a, 0xdc, 0x8e, 0xa6, 0x10, 0xfc, 0x00, 0xac, 0x8d, 0xc3, 0xc4, 0x6a, 0x45, 0x6e, 0xf4, - 0x1a, 0xbc, 0x4e, 0xcd, 0xe2, 0xc8, 0x55, 0xcc, 0xa0, 0x19, 0x2c, 0x2f, 0xfd, 0x56, 0xcf, 0x13, - 0x15, 0xa8, 0x23, 0x09, 0xb8, 0x35, 0xf0, 0x43, 0x3f, 0x11, 0x15, 0xb7, 0x84, 0x24, 0x80, 0x1f, - 0x80, 0x1c, 0xed, 0x93, 0x38, 0xf6, 0x5d, 0xc2, 0x44, 0xef, 0x94, 0xdf, 0x7b, 0xf7, 0x76, 0x19, - 0x4c, 0x7c, 0x8c, 0xa0, 0xb1, 0x3f, 0xdf, 0x1c, 0x89, 0xc4, 0x22, 0x43, 0x12, 0xd2, 0xf8, 0x4a, - 0x74, 0x47, 0x6a, 0x73, 0x72, 0xe2, 0x85, 0xb0, 0xa3, 0x29, 0x04, 0x6b, 0x00, 0xaa, 0xb0, 0x98, - 0x24, 0xbd, 0x38, 0xb2, 0xc5, 0x25, 0x50, 0x10, 0xb1, 0xe2, 0x51, 0x94, 0xb3, 0x48, 0x4c, 0x9e, - 0xe0, 0x04, 0xa3, 0x5b, 0x16, 0xf8, 0x4b, 0x00, 0xe5, 0x99, 0xd8, 0x9f, 0x31, 0x1a, 0xf1, 0x4f, - 0xaa, 0x57, 0xbe, 0xa7, 0xda, 0x1b, 0xa1, 0x2f, 0x67, 0xd5, 0x9a, 0x0d, 0x89, 0xce, 0x18, 0x55, - 0xbb, 0x38, 0xd3, 0x74, 0xcd, 0x58, 0x3a, 0xd3, 0xf4, 0x15, 0x43, 0x1f, 0xe5, 0x4f, 0xed, 0x02, - 0xad, 0x0f, 0xf1, 0xc4, 0xf2, 0xac, 0x97, 0x00, 0x34, 0x62, 0xe2, 0xf3, 0x26, 0x34, 0x08, 0xf8, - 0xcd, 0x15, 0xe1, 0x90, 0x0c, 0xaf, 0x4c, 0x3e, 0x9e, 0x2c, 0xcc, 0xc5, 0xe9, 0xc2, 0x84, 0x40, - 0x73, 0xa8, 0x4b, 0x44, 0x69, 0xe4, 0x90, 0x18, 0x3f, 0xfd, 0x7b, 0x06, 0x4c, 0x7c, 0x79, 0xc2, - 0x9f, 0x83, 0xca, 0xd1, 0xf1, 0x71, 0xbd, 0xd9, 0xb4, 0x2f, 0x3e, 0x6d, 0xd4, 0xed, 0x46, 0x1d, - 0xbd, 0x38, 0x6d, 0x36, 0x4f, 0x3f, 0x7a, 0x79, 0x5e, 0x6f, 0x36, 0x8d, 0x85, 0xca, 0x3b, 0xaf, - 0xdf, 0x54, 0xcb, 0x63, 0xff, 0x06, 0x89, 0x43, 0x9f, 0x31, 0x9f, 0x46, 0x01, 0x17, 0x78, 0x1f, - 0x6c, 0x4c, 0x46, 0xa3, 0x7a, 0xf3, 0x02, 0x9d, 0x1e, 0x5f, 0xd4, 0x4f, 0x8c, 0x4c, 0xa5, 0xfc, - 0xfa, 0x4d, 0xb5, 0x34, 0x8e, 0x44, 0x84, 0x25, 0xb1, 0xef, 0xf0, 0x27, 0xef, 0x00, 0x94, 0xef, - 0xd6, 0xac, 0x9f, 0x18, 0x8b, 0x95, 0xca, 0xeb, 0x37, 0xd5, 0x8d, 0xbb, 0x14, 0x89, 0x5b, 0xd1, - 0x3e, 0xff, 0xdb, 0xe6, 0x42, 0xed, 0xf0, 0x9b, 0xc1, 0x66, 0xe6, 0xdb, 0xc1, 0x66, 0xe6, 0x3f, - 0x83, 0xcd, 0xcc, 0x17, 0x6f, 0x37, 0x17, 0xbe, 0x7d, 0xbb, 0xb9, 0xf0, 0xcf, 0xb7, 0x9b, 0x0b, - 0xbf, 0xaf, 0x7a, 0x7e, 0xd2, 0xee, 0xb5, 0xb6, 0x1d, 0x1a, 0xee, 0xcc, 0xfe, 0xde, 0xc0, 0xbf, - 0xa9, 0x59, 0x6b, 0x59, 0xfc, 0xc4, 0xf3, 0xfc, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x0b, 0x36, - 0x25, 0x41, 0x3b, 0x12, 0x00, 0x00, + // 1988 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x58, 0x4d, 0x6f, 0x1b, 0xc7, + 0x19, 0x16, 0xc5, 0x95, 0xb4, 0x1c, 0x52, 0xd2, 0x7a, 0x44, 0xcb, 0x34, 0xed, 0x68, 0xd5, 0x6d, + 0x0f, 0xaa, 0x91, 0x4a, 0x96, 0x1c, 0xb5, 0x86, 0xd3, 0x0f, 0x88, 0x32, 0xd3, 0x4a, 0xb5, 0x1d, + 0x61, 0xa8, 0xc6, 0x48, 0xd1, 0x62, 0x31, 0xdc, 0x1d, 0x2f, 0x37, 0xda, 0xdd, 0x21, 0x66, 0x96, + 0xb4, 0xd8, 0x5f, 0x10, 0xf8, 0x94, 0xfe, 0x00, 0x03, 0x01, 0x7a, 0xc9, 0x31, 0x87, 0xfe, 0x80, + 0x1e, 0x83, 0x9e, 0x72, 0x2c, 0x0a, 0x74, 0x51, 0xd0, 0x87, 0x00, 0x3a, 0xea, 0x17, 0x14, 0xf3, + 0xc1, 0x4f, 0x29, 0xac, 0x02, 0x08, 0xf6, 0x3c, 0xef, 0xc7, 0xf3, 0xcc, 0xc7, 0xbb, 0x3b, 0xef, + 0x12, 0x54, 0x3d, 0xca, 0x63, 0xca, 0x77, 0x48, 0x37, 0xde, 0x11, 0x7f, 0xbb, 0x62, 0xb4, 0xdd, + 0x66, 0x34, 0xa5, 0xd0, 0x52, 0xbe, 0x6d, 0x61, 0x11, 0x7f, 0xbb, 0xd5, 0x5b, 0x38, 0x0e, 0x13, + 0xba, 0x23, 0xff, 0x55, 0x41, 0xd5, 0x72, 0x40, 0x03, 0x2a, 0x87, 0x3b, 0x62, 0xa4, 0xac, 0xce, + 0xdf, 0xf3, 0x60, 0xf1, 0x04, 0x33, 0x1c, 0x73, 0xb8, 0x0b, 0x0a, 0xa4, 0x1b, 0xbb, 0x3e, 0x49, + 0x68, 0x5c, 0xc9, 0x6d, 0xe6, 0xb6, 0x0a, 0xb5, 0xf2, 0x65, 0x66, 0x5b, 0x3d, 0x1c, 0x47, 0x4f, + 0x9c, 0xa1, 0xcb, 0x41, 0x26, 0xe9, 0xc6, 0x4f, 0xc5, 0x10, 0x1e, 0x00, 0x40, 0xce, 0x53, 0x86, + 0x5d, 0x12, 0xb6, 0x79, 0xc5, 0xd8, 0xcc, 0x6f, 0xe5, 0x6b, 0x4e, 0x3f, 0xb3, 0x0b, 0x75, 0x61, + 0xad, 0x1f, 0x9d, 0xf0, 0xcb, 0xcc, 0xbe, 0xa5, 0x09, 0x86, 0x81, 0x0e, 0x2a, 0x48, 0x50, 0x0f, + 0xdb, 0x1c, 0xee, 0x81, 0x92, 0xa0, 0xf6, 0x5a, 0x38, 0x49, 0x48, 0xc4, 0x2b, 0x4b, 0x9b, 0xf9, + 0xad, 0x42, 0x6d, 0xb5, 0x9f, 0xd9, 0xc5, 0xfa, 0x27, 0xcf, 0x0f, 0xb5, 0x19, 0x15, 0x49, 0x37, + 0x1e, 0x00, 0xf8, 0x67, 0xb0, 0x82, 0x3d, 0x8f, 0x70, 0xee, 0x7a, 0x34, 0x49, 0x19, 0x8d, 0x2a, + 0xe6, 0x66, 0x6e, 0xab, 0xb8, 0x67, 0x6f, 0x4f, 0x6f, 0xc4, 0xf6, 0x81, 0x8c, 0x3b, 0x54, 0x61, + 0xb5, 0xdb, 0xdf, 0x64, 0xf6, 0x5c, 0x3f, 0xb3, 0x97, 0x27, 0xcc, 0x68, 0x19, 0x8f, 0x43, 0xf8, + 0x04, 0xdc, 0xc5, 0x5e, 0x1a, 0x76, 0x89, 0xcb, 0x53, 0x9c, 0x86, 0x9e, 0xdb, 0x66, 0xc4, 0xa3, + 0x71, 0x3b, 0x8c, 0x08, 0xaf, 0x14, 0xc4, 0xfc, 0xd0, 0x1d, 0x15, 0xd0, 0x90, 0xfe, 0x93, 0x91, + 0x1b, 0x3e, 0x04, 0xe5, 0x56, 0xc8, 0x53, 0xca, 0x7a, 0x2e, 0x27, 0xac, 0x4b, 0xdc, 0xd7, 0x61, + 0xe2, 0xd3, 0xd7, 0x15, 0xb0, 0x99, 0xdb, 0x32, 0x10, 0xd4, 0xbe, 0x86, 0x70, 0xbd, 0x94, 0x9e, + 0x27, 0xf7, 0xde, 0x7c, 0xf7, 0xf5, 0x83, 0xf5, 0xb1, 0xd3, 0x3d, 0x17, 0xe7, 0xab, 0xce, 0xe4, + 0xd8, 0x30, 0xe7, 0xad, 0xfc, 0xb1, 0x61, 0xe6, 0x2d, 0xe3, 0xd8, 0x30, 0x17, 0xac, 0xc5, 0x63, + 0xc3, 0x5c, 0xb4, 0x96, 0x9c, 0xbf, 0xe6, 0xc0, 0xe4, 0x1a, 0xe0, 0x01, 0x58, 0xf4, 0x18, 0xc1, + 0x29, 0x91, 0x47, 0x57, 0xdc, 0xfb, 0xf1, 0xff, 0xd9, 0x8b, 0xd3, 0x5e, 0x9b, 0xd4, 0x0c, 0xb1, + 0x1f, 0x48, 0x27, 0xc2, 0x5f, 0x01, 0xc3, 0xc3, 0x51, 0x54, 0x99, 0xff, 0xa1, 0x04, 0x32, 0xcd, + 0xf9, 0x4f, 0x0e, 0xdc, 0xba, 0x12, 0x01, 0x3d, 0x50, 0xd4, 0x67, 0x95, 0xf6, 0xda, 0x6a, 0x72, + 0x2b, 0x7b, 0xf7, 0xbf, 0x8f, 0x5b, 0x92, 0xfe, 0xa4, 0x9f, 0xd9, 0x60, 0x84, 0x2f, 0x33, 0x1b, + 0xaa, 0x12, 0x1a, 0x23, 0x72, 0x10, 0xc0, 0xc3, 0x08, 0xe8, 0x81, 0xb5, 0xc9, 0x82, 0x70, 0xa3, + 0x90, 0xa7, 0x95, 0x79, 0x59, 0x4b, 0x8f, 0xfa, 0x99, 0x3d, 0x39, 0xb1, 0x67, 0x21, 0x4f, 0x2f, + 0x33, 0xbb, 0x3a, 0xc1, 0x3a, 0x9e, 0xe9, 0xa0, 0x5b, 0x78, 0x3a, 0xc1, 0xf9, 0xca, 0x02, 0xc5, + 0xc3, 0x16, 0x0e, 0x93, 0x43, 0x9a, 0xbc, 0x0a, 0x03, 0xf8, 0x27, 0xb0, 0xda, 0xa2, 0x31, 0xe1, + 0x29, 0xc1, 0xbe, 0xdb, 0x8c, 0xa8, 0x77, 0xa6, 0x9f, 0x9a, 0x47, 0xff, 0xce, 0xec, 0xdb, 0x6a, + 0x81, 0xdc, 0x3f, 0xdb, 0x0e, 0xe9, 0x4e, 0x8c, 0xd3, 0xd6, 0xf6, 0x51, 0x22, 0x44, 0xd7, 0x95, + 0xe8, 0x54, 0xa6, 0x83, 0x56, 0x86, 0x96, 0x9a, 0x30, 0xc0, 0x16, 0x58, 0xf1, 0x31, 0x75, 0x5f, + 0x51, 0x76, 0xa6, 0xc9, 0xe7, 0x25, 0x79, 0xed, 0x7b, 0xc9, 0xfb, 0x99, 0x5d, 0x7a, 0x7a, 0xf0, + 0xf1, 0x47, 0x94, 0x9d, 0x49, 0x8a, 0xcb, 0xcc, 0xbe, 0xad, 0xc4, 0x26, 0x89, 0x1c, 0x54, 0xf2, + 0x31, 0x1d, 0x86, 0xc1, 0x97, 0xc0, 0x1a, 0x06, 0xf0, 0x4e, 0xbb, 0x4d, 0x59, 0x5a, 0xc9, 0x6f, + 0xe6, 0xb6, 0xcc, 0xda, 0xcf, 0xfa, 0x99, 0xbd, 0xa2, 0x29, 0x1b, 0xca, 0x73, 0x99, 0xd9, 0x77, + 0xa6, 0x48, 0x75, 0x8e, 0x83, 0x56, 0x34, 0xad, 0x0e, 0x85, 0x4d, 0x50, 0x22, 0x61, 0x7b, 0x77, + 0xff, 0xa1, 0x5e, 0x80, 0x21, 0x17, 0xf0, 0x9b, 0x59, 0x0b, 0x28, 0xd6, 0x8f, 0x4e, 0x76, 0xf7, + 0x1f, 0x0e, 0xe6, 0xbf, 0xa6, 0x5f, 0x1d, 0x63, 0x2c, 0x0e, 0x2a, 0x2a, 0xa8, 0x26, 0x3f, 0xd0, + 0xd8, 0xd7, 0x1a, 0x8b, 0x37, 0xd5, 0xd8, 0xbf, 0x4e, 0x63, 0x7f, 0x52, 0x63, 0x7f, 0x52, 0xe3, + 0xb1, 0xd6, 0x58, 0xba, 0xa9, 0xc6, 0xe3, 0xeb, 0x34, 0x1e, 0x4f, 0x6a, 0xa8, 0x18, 0x51, 0x4c, + 0xcd, 0xde, 0x5f, 0x70, 0x92, 0x86, 0x9d, 0x58, 0xcb, 0x98, 0x37, 0x2e, 0xa6, 0xa9, 0x4c, 0x07, + 0xad, 0x0c, 0x2d, 0x8a, 0xfd, 0x0c, 0x94, 0x3d, 0x9a, 0xf0, 0x54, 0xd8, 0x12, 0xda, 0x8e, 0x88, + 0x96, 0x28, 0x48, 0x89, 0xc7, 0xb3, 0x24, 0xee, 0x29, 0x89, 0xeb, 0xd2, 0x1d, 0xb4, 0x36, 0x69, + 0x56, 0x62, 0x2e, 0xb0, 0xda, 0x24, 0x25, 0x8c, 0x37, 0x3b, 0x2c, 0xd0, 0x42, 0x40, 0x0a, 0x7d, + 0x30, 0x4b, 0x48, 0x97, 0xd5, 0x74, 0xaa, 0x83, 0x56, 0x47, 0x26, 0x25, 0xf0, 0x29, 0x58, 0x09, + 0x85, 0x6a, 0xb3, 0x13, 0x69, 0xfa, 0xa2, 0xa4, 0xdf, 0x9b, 0x45, 0xaf, 0x1f, 0x85, 0xc9, 0x44, + 0x07, 0x2d, 0x0f, 0x0c, 0x8a, 0xda, 0x07, 0x30, 0xee, 0x84, 0xcc, 0x0d, 0x22, 0xec, 0x85, 0x84, + 0x69, 0xfa, 0x92, 0xa4, 0xff, 0xf9, 0x2c, 0xfa, 0xbb, 0x8a, 0xfe, 0x6a, 0xb2, 0x83, 0x2c, 0x61, + 0xfc, 0xad, 0xb2, 0x29, 0x95, 0x06, 0x28, 0x35, 0x09, 0x8b, 0xc2, 0x44, 0xf3, 0x2f, 0x4b, 0xfe, + 0x87, 0xb3, 0xf8, 0x75, 0x05, 0x8d, 0xa7, 0x39, 0xa8, 0xa8, 0xe0, 0x90, 0x34, 0xa2, 0x89, 0x4f, + 0x07, 0xa4, 0xb7, 0x6e, 0x4c, 0x3a, 0x9e, 0xe6, 0xa0, 0xa2, 0x82, 0x8a, 0x34, 0x00, 0x6b, 0x98, + 0x31, 0xfa, 0x7a, 0x6a, 0x43, 0xa0, 0xe4, 0xfe, 0xc5, 0x2c, 0xee, 0xc1, 0xcb, 0xf5, 0x6a, 0xb6, + 0x78, 0xb9, 0x0a, 0xeb, 0xc4, 0x96, 0xf8, 0x00, 0x06, 0x0c, 0xf7, 0xa6, 0x74, 0xca, 0x37, 0xde, + 0xf8, 0xab, 0xc9, 0x0e, 0xb2, 0x84, 0x71, 0x42, 0xe5, 0x33, 0x50, 0x8e, 0x09, 0x0b, 0x88, 0x9b, + 0x90, 0x94, 0xb7, 0xa3, 0x30, 0xd5, 0x3a, 0xb7, 0x6f, 0xfc, 0x1c, 0x5c, 0x97, 0xee, 0x20, 0x28, + 0xcd, 0x2f, 0xb4, 0x55, 0x69, 0xdd, 0x05, 0xa6, 0x27, 0x6e, 0x0b, 0x37, 0xf4, 0x2b, 0x15, 0x79, + 0xfb, 0x2f, 0x49, 0x7c, 0xe4, 0xc3, 0x32, 0x58, 0x50, 0x5d, 0xd6, 0x5d, 0xa1, 0x8b, 0x14, 0x80, + 0x55, 0x60, 0xfa, 0xc4, 0x0b, 0x63, 0x1c, 0xf1, 0x4a, 0x55, 0x26, 0x0c, 0x31, 0xfc, 0x04, 0x2c, + 0xf3, 0x16, 0x4e, 0x82, 0x16, 0x0e, 0xdd, 0x34, 0x8c, 0x49, 0xe5, 0x9e, 0x9c, 0xf1, 0xee, 0xac, + 0x19, 0x97, 0xd5, 0x8c, 0x27, 0xf2, 0x1c, 0x54, 0x1a, 0xe0, 0xd3, 0x30, 0x26, 0xf0, 0x04, 0x14, + 0x3d, 0x9c, 0x78, 0x9d, 0x44, 0xb1, 0xde, 0x97, 0xac, 0x3b, 0xb3, 0x58, 0xf5, 0x55, 0x3c, 0x96, + 0xe5, 0x20, 0xa0, 0xd0, 0x80, 0xb1, 0xcd, 0x70, 0xd0, 0x21, 0x8a, 0xf1, 0xbd, 0x1b, 0x33, 0x8e, + 0x65, 0x39, 0x08, 0x28, 0x34, 0x60, 0xec, 0x12, 0x76, 0x16, 0x69, 0xc6, 0x8d, 0x1b, 0x33, 0x8e, + 0x65, 0x39, 0x08, 0x28, 0x24, 0x19, 0x9f, 0x03, 0x40, 0x39, 0x3e, 0xc3, 0x8a, 0xd0, 0x96, 0x84, + 0xdb, 0xb3, 0x08, 0x75, 0x0b, 0x3b, 0x4a, 0x72, 0x50, 0x41, 0x02, 0x41, 0x37, 0x6c, 0xcc, 0xd6, + 0xad, 0x3b, 0xc7, 0x86, 0x79, 0xc7, 0xaa, 0x38, 0x3b, 0x60, 0x41, 0xb4, 0x86, 0x04, 0x5a, 0x20, + 0x7f, 0x46, 0x7a, 0xaa, 0x2f, 0x40, 0x62, 0x28, 0xce, 0xbe, 0x8b, 0xa3, 0x0e, 0x51, 0xd7, 0x39, + 0x52, 0xc0, 0x39, 0x01, 0xab, 0xa7, 0x0c, 0x27, 0x5c, 0xb4, 0x95, 0x34, 0x79, 0x46, 0x03, 0x0e, + 0x21, 0x30, 0x5a, 0x98, 0xb7, 0x74, 0xae, 0x1c, 0xc3, 0x9f, 0x02, 0x23, 0xa2, 0x01, 0x97, 0x8d, + 0x4d, 0x71, 0xef, 0xf6, 0xd5, 0x2e, 0xea, 0x19, 0x0d, 0x90, 0x0c, 0x71, 0xfe, 0x39, 0x0f, 0xf2, + 0xcf, 0x68, 0x00, 0x2b, 0x60, 0x09, 0xfb, 0x3e, 0x23, 0x9c, 0x6b, 0xa6, 0x01, 0x84, 0xeb, 0x60, + 0x31, 0xa5, 0xed, 0xd0, 0x53, 0x74, 0x05, 0xa4, 0x91, 0x10, 0xf6, 0x71, 0x8a, 0x65, 0x0f, 0x50, + 0x42, 0x72, 0x2c, 0xba, 0x74, 0x59, 0xea, 0x6e, 0xd2, 0x89, 0x9b, 0x84, 0xc9, 0xab, 0xdc, 0xa8, + 0xad, 0x5e, 0x64, 0x76, 0x51, 0xda, 0x5f, 0x48, 0x33, 0x1a, 0x07, 0xf0, 0x7d, 0xb0, 0x94, 0x9e, + 0xbb, 0x72, 0x0d, 0x0b, 0x72, 0x8b, 0xd7, 0x2e, 0x32, 0x7b, 0x35, 0x1d, 0x2d, 0xf3, 0x77, 0x98, + 0xb7, 0xd0, 0x62, 0x7a, 0x2e, 0xfe, 0x87, 0x3b, 0xc0, 0x4c, 0xcf, 0xdd, 0x30, 0xf1, 0xc9, 0xb9, + 0xbc, 0xc4, 0x8d, 0x5a, 0xf9, 0x22, 0xb3, 0xad, 0xb1, 0xf0, 0x23, 0xe1, 0x43, 0x4b, 0xe9, 0xb9, + 0x1c, 0xc0, 0xf7, 0x01, 0x50, 0x53, 0x92, 0x0a, 0xea, 0x4e, 0x5e, 0xbe, 0xc8, 0xec, 0x82, 0xb4, + 0x4a, 0xee, 0xd1, 0x10, 0x3a, 0x60, 0x41, 0x71, 0x9b, 0x92, 0xbb, 0x74, 0x91, 0xd9, 0x66, 0x44, + 0x03, 0xc5, 0xa9, 0x5c, 0x62, 0xab, 0x18, 0x89, 0x69, 0x97, 0xf8, 0xf2, 0x62, 0x34, 0xd1, 0x00, + 0x3a, 0x5f, 0xcc, 0x03, 0xf3, 0xf4, 0x1c, 0x11, 0xde, 0x89, 0x52, 0xf8, 0x11, 0xb0, 0x64, 0xaf, + 0x88, 0xbd, 0xd4, 0x9d, 0xd8, 0xda, 0xda, 0xbd, 0xd1, 0x35, 0x36, 0x1d, 0xe1, 0xa0, 0xd5, 0x81, + 0xe9, 0x40, 0xef, 0x7f, 0x19, 0x2c, 0x34, 0x23, 0x4a, 0x63, 0x59, 0x09, 0x25, 0xa4, 0x00, 0x7c, + 0x29, 0x77, 0x4d, 0x9e, 0x72, 0x5e, 0xf6, 0xe1, 0x3f, 0xba, 0x7a, 0xca, 0x53, 0xa5, 0x52, 0xbb, + 0x27, 0xba, 0xf0, 0xcb, 0xcc, 0x5e, 0x51, 0xda, 0x3a, 0xdf, 0xf9, 0xea, 0xbb, 0xaf, 0x1f, 0xe4, + 0xc4, 0x06, 0xcb, 0x7a, 0xb2, 0x40, 0x9e, 0x91, 0x54, 0x9e, 0x5c, 0x09, 0x89, 0xa1, 0x78, 0xe1, + 0x30, 0xd2, 0x25, 0x2c, 0x25, 0xbe, 0x3c, 0x21, 0x13, 0x0d, 0xb1, 0x78, 0x7b, 0x05, 0x98, 0xbb, + 0x1d, 0x4e, 0x7c, 0x75, 0x1c, 0x68, 0x29, 0xc0, 0xfc, 0x0f, 0x9c, 0xf8, 0x4f, 0x8c, 0xcf, 0xbf, + 0xb4, 0xe7, 0x1c, 0x0c, 0x8a, 0xba, 0x45, 0xef, 0xb4, 0x23, 0x32, 0xa3, 0xcc, 0xf6, 0x40, 0x49, + 0x7c, 0xf3, 0xe0, 0x80, 0xb8, 0x67, 0xa4, 0xa7, 0x8b, 0x4d, 0x95, 0x8e, 0xb6, 0xff, 0x9e, 0xf4, + 0x38, 0x1a, 0x07, 0x5a, 0xe2, 0x4b, 0x03, 0x14, 0x4f, 0x19, 0xf6, 0x88, 0x6e, 0xb8, 0x45, 0xc1, + 0x0a, 0xc8, 0xb4, 0x84, 0x46, 0x42, 0x5b, 0x3c, 0x93, 0xb4, 0x93, 0xea, 0x87, 0x6a, 0x00, 0x45, + 0x06, 0x23, 0xe4, 0x9c, 0x78, 0x72, 0x2f, 0x0d, 0xa4, 0x11, 0xdc, 0x07, 0xcb, 0x7e, 0xc8, 0x71, + 0x33, 0x92, 0x9f, 0x78, 0xde, 0x99, 0x5a, 0x7e, 0xcd, 0xba, 0xc8, 0xec, 0x92, 0x76, 0x34, 0x84, + 0x1d, 0x4d, 0x20, 0xf8, 0x21, 0x58, 0x1d, 0xa5, 0xc9, 0xd9, 0xca, 0xbd, 0x31, 0x6b, 0xf0, 0x22, + 0xb3, 0x57, 0x86, 0xa1, 0xd2, 0x83, 0xa6, 0xb0, 0x7a, 0xe9, 0x37, 0x3b, 0x81, 0xac, 0x40, 0x13, + 0x29, 0x20, 0xac, 0x51, 0x18, 0x87, 0xa9, 0xac, 0xb8, 0x05, 0xa4, 0x00, 0xfc, 0x10, 0x14, 0x68, + 0x97, 0x30, 0x16, 0xfa, 0x84, 0xcb, 0xde, 0xa9, 0xb8, 0xf7, 0xde, 0xd5, 0x32, 0x18, 0xfb, 0x18, + 0x41, 0xa3, 0x78, 0xb1, 0x38, 0x92, 0xc8, 0x49, 0xc6, 0x24, 0xa6, 0xac, 0x27, 0xbb, 0x23, 0xbd, + 0x38, 0xe5, 0x78, 0x2e, 0xed, 0x68, 0x02, 0xc1, 0x1a, 0x80, 0x3a, 0x8d, 0x91, 0xb4, 0xc3, 0x12, + 0x57, 0xbe, 0x04, 0x4a, 0x32, 0x57, 0x3e, 0x8a, 0xca, 0x8b, 0xa4, 0xf3, 0x29, 0x4e, 0x31, 0xba, + 0x62, 0x81, 0xbf, 0x06, 0x50, 0x9d, 0x89, 0xfb, 0x19, 0xa7, 0x89, 0xf8, 0xa4, 0x7a, 0x15, 0x06, + 0xba, 0xbd, 0x91, 0xfa, 0xca, 0xab, 0xe7, 0x6c, 0x29, 0x74, 0xcc, 0xa9, 0x5e, 0xc5, 0xb1, 0x61, + 0x1a, 0xd6, 0xc2, 0xb1, 0x61, 0x2e, 0x59, 0xe6, 0x70, 0xff, 0xf4, 0x2a, 0xd0, 0xda, 0x00, 0x8f, + 0x4d, 0xcf, 0x79, 0x01, 0xc0, 0x09, 0x23, 0xa1, 0x68, 0x42, 0xa3, 0x48, 0xbc, 0xb9, 0x12, 0x1c, + 0x93, 0xc1, 0x2b, 0x53, 0x8c, 0xc7, 0x0b, 0x73, 0x7e, 0xb2, 0x30, 0x21, 0x30, 0x3c, 0xea, 0x13, + 0x59, 0x1a, 0x05, 0x24, 0xc7, 0x0f, 0xfe, 0x91, 0x03, 0x63, 0x5f, 0x9e, 0xf0, 0x97, 0xa0, 0x7a, + 0x70, 0x78, 0x58, 0x6f, 0x34, 0xdc, 0xd3, 0x4f, 0x4f, 0xea, 0xee, 0x49, 0x1d, 0x3d, 0x3f, 0x6a, + 0x34, 0x8e, 0x3e, 0x7e, 0xf1, 0xac, 0xde, 0x68, 0x58, 0x73, 0xd5, 0xfb, 0x6f, 0xde, 0x6e, 0x56, + 0x46, 0xf1, 0x27, 0x84, 0xc5, 0x21, 0xe7, 0x21, 0x4d, 0x22, 0x21, 0xf0, 0x01, 0x58, 0x1f, 0xcf, + 0x46, 0xf5, 0xc6, 0x29, 0x3a, 0x3a, 0x3c, 0xad, 0x3f, 0xb5, 0x72, 0xd5, 0xca, 0x9b, 0xb7, 0x9b, + 0xe5, 0x51, 0x26, 0x22, 0x3c, 0x65, 0xa1, 0x27, 0x9e, 0xbc, 0xc7, 0xa0, 0x72, 0xbd, 0x66, 0xfd, + 0xa9, 0x35, 0x5f, 0xad, 0xbe, 0x79, 0xbb, 0xb9, 0x7e, 0x9d, 0x22, 0xf1, 0xab, 0xc6, 0xe7, 0x7f, + 0xdb, 0x98, 0xab, 0x3d, 0xf9, 0xa6, 0xbf, 0x91, 0xfb, 0xb6, 0xbf, 0x91, 0xfb, 0x6f, 0x7f, 0x23, + 0xf7, 0xc5, 0xbb, 0x8d, 0xb9, 0x6f, 0xdf, 0x6d, 0xcc, 0xfd, 0xeb, 0xdd, 0xc6, 0xdc, 0x1f, 0x37, + 0x83, 0x30, 0x6d, 0x75, 0x9a, 0xdb, 0x1e, 0x8d, 0x77, 0xa6, 0x7f, 0x6f, 0x10, 0xdf, 0xd4, 0xbc, + 0xb9, 0x28, 0x7f, 0x14, 0x7a, 0xf4, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe4, 0x51, 0x6f, 0x71, + 0x6d, 0x12, 0x00, 0x00, } func (m *Params) Marshal() (dAtA []byte, err error) { @@ -1078,6 +1088,11 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.HistoryServeWindow != 0 { + i = encodeVarintEvm(dAtA, i, uint64(m.HistoryServeWindow)) + i-- + dAtA[i] = 0x50 + } if len(m.ActiveStaticPrecompiles) > 0 { for iNdEx := len(m.ActiveStaticPrecompiles) - 1; iNdEx >= 0; iNdEx-- { i -= len(m.ActiveStaticPrecompiles[iNdEx]) @@ -2005,6 +2020,9 @@ func (m *Params) Size() (n int) { n += 1 + l + sovEvm(uint64(l)) } } + if m.HistoryServeWindow != 0 { + n += 1 + sovEvm(uint64(m.HistoryServeWindow)) + } return n } @@ -2575,6 +2593,25 @@ func (m *Params) Unmarshal(dAtA []byte) error { } m.ActiveStaticPrecompiles = append(m.ActiveStaticPrecompiles, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field HistoryServeWindow", wireType) + } + m.HistoryServeWindow = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvm + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.HistoryServeWindow |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipEvm(dAtA[iNdEx:]) diff --git a/x/vm/types/params.go b/x/vm/types/params.go index fb805193c..5b3e8d400 100644 --- a/x/vm/types/params.go +++ b/x/vm/types/params.go @@ -43,6 +43,8 @@ var ( } ) +const DefaultHistoryServeWindow = 8192 // same as EIP-2935 + // NewParams creates a new Params instance func NewParams( extraEIPs []int64, @@ -66,6 +68,7 @@ func DefaultParams() Params { ActiveStaticPrecompiles: DefaultStaticPrecompiles, EVMChannels: DefaultEVMChannels, AccessControl: DefaultAccessControl, + HistoryServeWindow: DefaultHistoryServeWindow, } } diff --git a/x/vm/types/preinstall.go b/x/vm/types/preinstall.go index d11ac31f2..76dd298a0 100644 --- a/x/vm/types/preinstall.go +++ b/x/vm/types/preinstall.go @@ -7,6 +7,7 @@ import ( "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/crypto" + "github.com/ethereum/go-ethereum/params" ) var DefaultPreinstalls = []Preinstall{ @@ -30,6 +31,11 @@ var DefaultPreinstalls = []Preinstall{ Address: "0x914d7Fec6aaC8cd542e72Bca78B30650d45643d7", Code: "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe03601600081602082378035828234f58015156039578182fd5b8082525050506014600cf3", }, + { + Name: "EIP-2935 - Serve historical block hashes from state", + Address: params.HistoryStorageAddress.String(), + Code: common.Bytes2Hex(params.HistoryStorageCode), + }, } // Validate performs basic validation checks on the Preinstall