From e6754708155179a1005359aa4180ea4a27aa182d Mon Sep 17 00:00:00 2001 From: Junlin Gao Date: Tue, 26 Jan 2021 17:02:18 -0800 Subject: [PATCH] add de-central challenge message --- js/protos/guard/guard_pb.js | 595 ++++++++++++++++ protos/guard/guard.pb.go | 1325 ++++++++++++++++++++++++++++------- protos/guard/guard.proto | 16 + 3 files changed, 1682 insertions(+), 254 deletions(-) diff --git a/js/protos/guard/guard_pb.js b/js/protos/guard/guard_pb.js index 1b03d789..b170439f 100644 --- a/js/protos/guard/guard_pb.js +++ b/js/protos/guard/guard_pb.js @@ -30,6 +30,8 @@ goog.exportSymbol('proto.guard.ContractMeta', null, global); goog.exportSymbol('proto.guard.ContractMeta.Schedule', null, global); goog.exportSymbol('proto.guard.ContractsList', null, global); goog.exportSymbol('proto.guard.DailySummary', null, global); +goog.exportSymbol('proto.guard.DeCentralQuestions', null, global); +goog.exportSymbol('proto.guard.DeQuestion', null, global); goog.exportSymbol('proto.guard.FileChallengeQuestions', null, global); goog.exportSymbol('proto.guard.FileStoreListResponse', null, global); goog.exportSymbol('proto.guard.FileStoreMeta', null, global); @@ -729,6 +731,48 @@ if (goog.DEBUG && !COMPILED) { */ proto.guard.ShardChallengeResult.displayName = 'proto.guard.ShardChallengeResult'; } +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.guard.DeCentralQuestions = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, proto.guard.DeCentralQuestions.repeatedFields_, null); +}; +goog.inherits(proto.guard.DeCentralQuestions, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.guard.DeCentralQuestions.displayName = 'proto.guard.DeCentralQuestions'; +} +/** + * Generated by JsPbCodeGenerator. + * @param {Array=} opt_data Optional initial data array, typically from a + * server response, or constructed directly in Javascript. The array is used + * in place and becomes part of the constructed object. It is not cloned. + * If no data is provided, the constructed object will be empty, but still + * valid. + * @extends {jspb.Message} + * @constructor + */ +proto.guard.DeQuestion = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); +}; +goog.inherits(proto.guard.DeQuestion, jspb.Message); +if (goog.DEBUG && !COMPILED) { + /** + * @public + * @override + */ + proto.guard.DeQuestion.displayName = 'proto.guard.DeQuestion'; +} @@ -12784,6 +12828,557 @@ proto.guard.ShardChallengeResult.prototype.setIsTimeout = function(value) { }; + +/** + * List of repeated fields within this message type. + * @private {!Array} + * @const + */ +proto.guard.DeCentralQuestions.repeatedFields_ = [1]; + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.guard.DeCentralQuestions.prototype.toObject = function(opt_includeInstance) { + return proto.guard.DeCentralQuestions.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.guard.DeCentralQuestions} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.guard.DeCentralQuestions.toObject = function(includeInstance, msg) { + var f, obj = { + qsList: jspb.Message.toObjectList(msg.getQsList(), + proto.guard.DeQuestion.toObject, includeInstance), + count: jspb.Message.getFieldWithDefault(msg, 2, 0), + uuid: jspb.Message.getFieldWithDefault(msg, 3, ""), + url: jspb.Message.getFieldWithDefault(msg, 4, ""), + endTime: (f = msg.getEndTime()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f) + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.guard.DeCentralQuestions} + */ +proto.guard.DeCentralQuestions.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.guard.DeCentralQuestions; + return proto.guard.DeCentralQuestions.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.guard.DeCentralQuestions} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.guard.DeCentralQuestions} + */ +proto.guard.DeCentralQuestions.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = new proto.guard.DeQuestion; + reader.readMessage(value,proto.guard.DeQuestion.deserializeBinaryFromReader); + msg.addQs(value); + break; + case 2: + var value = /** @type {number} */ (reader.readInt32()); + msg.setCount(value); + break; + case 3: + var value = /** @type {string} */ (reader.readString()); + msg.setUuid(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setUrl(value); + break; + case 5: + var value = new google_protobuf_timestamp_pb.Timestamp; + reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader); + msg.setEndTime(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.guard.DeCentralQuestions.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.guard.DeCentralQuestions.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.guard.DeCentralQuestions} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.guard.DeCentralQuestions.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getQsList(); + if (f.length > 0) { + writer.writeRepeatedMessage( + 1, + f, + proto.guard.DeQuestion.serializeBinaryToWriter + ); + } + f = message.getCount(); + if (f !== 0) { + writer.writeInt32( + 2, + f + ); + } + f = message.getUuid(); + if (f.length > 0) { + writer.writeString( + 3, + f + ); + } + f = message.getUrl(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } + f = message.getEndTime(); + if (f != null) { + writer.writeMessage( + 5, + f, + google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter + ); + } +}; + + +/** + * repeated DeQuestion qs = 1; + * @return {!Array} + */ +proto.guard.DeCentralQuestions.prototype.getQsList = function() { + return /** @type{!Array} */ ( + jspb.Message.getRepeatedWrapperField(this, proto.guard.DeQuestion, 1)); +}; + + +/** + * @param {!Array} value + * @return {!proto.guard.DeCentralQuestions} returns this +*/ +proto.guard.DeCentralQuestions.prototype.setQsList = function(value) { + return jspb.Message.setRepeatedWrapperField(this, 1, value); +}; + + +/** + * @param {!proto.guard.DeQuestion=} opt_value + * @param {number=} opt_index + * @return {!proto.guard.DeQuestion} + */ +proto.guard.DeCentralQuestions.prototype.addQs = function(opt_value, opt_index) { + return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.guard.DeQuestion, opt_index); +}; + + +/** + * Clears the list making it empty but non-null. + * @return {!proto.guard.DeCentralQuestions} returns this + */ +proto.guard.DeCentralQuestions.prototype.clearQsList = function() { + return this.setQsList([]); +}; + + +/** + * optional int32 count = 2; + * @return {number} + */ +proto.guard.DeCentralQuestions.prototype.getCount = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.guard.DeCentralQuestions} returns this + */ +proto.guard.DeCentralQuestions.prototype.setCount = function(value) { + return jspb.Message.setProto3IntField(this, 2, value); +}; + + +/** + * optional string uuid = 3; + * @return {string} + */ +proto.guard.DeCentralQuestions.prototype.getUuid = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, "")); +}; + + +/** + * @param {string} value + * @return {!proto.guard.DeCentralQuestions} returns this + */ +proto.guard.DeCentralQuestions.prototype.setUuid = function(value) { + return jspb.Message.setProto3StringField(this, 3, value); +}; + + +/** + * optional string url = 4; + * @return {string} + */ +proto.guard.DeCentralQuestions.prototype.getUrl = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** + * @param {string} value + * @return {!proto.guard.DeCentralQuestions} returns this + */ +proto.guard.DeCentralQuestions.prototype.setUrl = function(value) { + return jspb.Message.setProto3StringField(this, 4, value); +}; + + +/** + * optional google.protobuf.Timestamp end_time = 5; + * @return {?proto.google.protobuf.Timestamp} + */ +proto.guard.DeCentralQuestions.prototype.getEndTime = function() { + return /** @type{?proto.google.protobuf.Timestamp} */ ( + jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 5)); +}; + + +/** + * @param {?proto.google.protobuf.Timestamp|undefined} value + * @return {!proto.guard.DeCentralQuestions} returns this +*/ +proto.guard.DeCentralQuestions.prototype.setEndTime = function(value) { + return jspb.Message.setWrapperField(this, 5, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.guard.DeCentralQuestions} returns this + */ +proto.guard.DeCentralQuestions.prototype.clearEndTime = function() { + return this.setEndTime(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.guard.DeCentralQuestions.prototype.hasEndTime = function() { + return jspb.Message.getField(this, 5) != null; +}; + + + + + +if (jspb.Message.GENERATE_TO_OBJECT) { +/** + * Creates an object representation of this proto. + * Field names that are reserved in JavaScript and will be renamed to pb_name. + * Optional fields that are not set will be set to undefined. + * To access a reserved field use, foo.pb_, eg, foo.pb_default. + * For the list of reserved names please see: + * net/proto2/compiler/js/internal/generator.cc#kKeyword. + * @param {boolean=} opt_includeInstance Deprecated. whether to include the + * JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @return {!Object} + */ +proto.guard.DeQuestion.prototype.toObject = function(opt_includeInstance) { + return proto.guard.DeQuestion.toObject(opt_includeInstance, this); +}; + + +/** + * Static version of the {@see toObject} method. + * @param {boolean|undefined} includeInstance Deprecated. Whether to include + * the JSPB instance for transitional soy proto support: + * http://goto/soy-param-migration + * @param {!proto.guard.DeQuestion} msg The msg instance to transform. + * @return {!Object} + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.guard.DeQuestion.toObject = function(includeInstance, msg) { + var f, obj = { + shardHash: jspb.Message.getFieldWithDefault(msg, 1, ""), + hostPid: jspb.Message.getFieldWithDefault(msg, 2, ""), + chunkIndex: jspb.Message.getFieldWithDefault(msg, 3, 0), + nonce: jspb.Message.getFieldWithDefault(msg, 4, ""), + fileHash: jspb.Message.getFieldWithDefault(msg, 5, "") + }; + + if (includeInstance) { + obj.$jspbMessageInstance = msg; + } + return obj; +}; +} + + +/** + * Deserializes binary data (in protobuf wire format). + * @param {jspb.ByteSource} bytes The bytes to deserialize. + * @return {!proto.guard.DeQuestion} + */ +proto.guard.DeQuestion.deserializeBinary = function(bytes) { + var reader = new jspb.BinaryReader(bytes); + var msg = new proto.guard.DeQuestion; + return proto.guard.DeQuestion.deserializeBinaryFromReader(msg, reader); +}; + + +/** + * Deserializes binary data (in protobuf wire format) from the + * given reader into the given message object. + * @param {!proto.guard.DeQuestion} msg The message object to deserialize into. + * @param {!jspb.BinaryReader} reader The BinaryReader to use. + * @return {!proto.guard.DeQuestion} + */ +proto.guard.DeQuestion.deserializeBinaryFromReader = function(msg, reader) { + while (reader.nextField()) { + if (reader.isEndGroup()) { + break; + } + var field = reader.getFieldNumber(); + switch (field) { + case 1: + var value = /** @type {string} */ (reader.readString()); + msg.setShardHash(value); + break; + case 2: + var value = /** @type {string} */ (reader.readString()); + msg.setHostPid(value); + break; + case 3: + var value = /** @type {number} */ (reader.readInt32()); + msg.setChunkIndex(value); + break; + case 4: + var value = /** @type {string} */ (reader.readString()); + msg.setNonce(value); + break; + case 5: + var value = /** @type {string} */ (reader.readString()); + msg.setFileHash(value); + break; + default: + reader.skipField(); + break; + } + } + return msg; +}; + + +/** + * Serializes the message to binary data (in protobuf wire format). + * @return {!Uint8Array} + */ +proto.guard.DeQuestion.prototype.serializeBinary = function() { + var writer = new jspb.BinaryWriter(); + proto.guard.DeQuestion.serializeBinaryToWriter(this, writer); + return writer.getResultBuffer(); +}; + + +/** + * Serializes the given message to binary data (in protobuf wire + * format), writing to the given BinaryWriter. + * @param {!proto.guard.DeQuestion} message + * @param {!jspb.BinaryWriter} writer + * @suppress {unusedLocalVariables} f is only used for nested messages + */ +proto.guard.DeQuestion.serializeBinaryToWriter = function(message, writer) { + var f = undefined; + f = message.getShardHash(); + if (f.length > 0) { + writer.writeString( + 1, + f + ); + } + f = message.getHostPid(); + if (f.length > 0) { + writer.writeString( + 2, + f + ); + } + f = message.getChunkIndex(); + if (f !== 0) { + writer.writeInt32( + 3, + f + ); + } + f = message.getNonce(); + if (f.length > 0) { + writer.writeString( + 4, + f + ); + } + f = message.getFileHash(); + if (f.length > 0) { + writer.writeString( + 5, + f + ); + } +}; + + +/** + * optional string shard_hash = 1; + * @return {string} + */ +proto.guard.DeQuestion.prototype.getShardHash = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, "")); +}; + + +/** + * @param {string} value + * @return {!proto.guard.DeQuestion} returns this + */ +proto.guard.DeQuestion.prototype.setShardHash = function(value) { + return jspb.Message.setProto3StringField(this, 1, value); +}; + + +/** + * optional string host_pid = 2; + * @return {string} + */ +proto.guard.DeQuestion.prototype.getHostPid = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, "")); +}; + + +/** + * @param {string} value + * @return {!proto.guard.DeQuestion} returns this + */ +proto.guard.DeQuestion.prototype.setHostPid = function(value) { + return jspb.Message.setProto3StringField(this, 2, value); +}; + + +/** + * optional int32 chunk_index = 3; + * @return {number} + */ +proto.guard.DeQuestion.prototype.getChunkIndex = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +}; + + +/** + * @param {number} value + * @return {!proto.guard.DeQuestion} returns this + */ +proto.guard.DeQuestion.prototype.setChunkIndex = function(value) { + return jspb.Message.setProto3IntField(this, 3, value); +}; + + +/** + * optional string nonce = 4; + * @return {string} + */ +proto.guard.DeQuestion.prototype.getNonce = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, "")); +}; + + +/** + * @param {string} value + * @return {!proto.guard.DeQuestion} returns this + */ +proto.guard.DeQuestion.prototype.setNonce = function(value) { + return jspb.Message.setProto3StringField(this, 4, value); +}; + + +/** + * optional string file_hash = 5; + * @return {string} + */ +proto.guard.DeQuestion.prototype.getFileHash = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); +}; + + +/** + * @param {string} value + * @return {!proto.guard.DeQuestion} returns this + */ +proto.guard.DeQuestion.prototype.setFileHash = function(value) { + return jspb.Message.setProto3StringField(this, 5, value); +}; + + /** * @enum {number} */ diff --git a/protos/guard/guard.pb.go b/protos/guard/guard.pb.go index a2fd2eef..69d7fff7 100644 --- a/protos/guard/guard.pb.go +++ b/protos/guard/guard.pb.go @@ -3484,6 +3484,172 @@ func (m *ShardChallengeResult) GetIsTimeout() bool { func (*ShardChallengeResult) XXX_MessageName() string { return "guard.ShardChallengeResult" } + +type DeCentralQuestions struct { + Qs []*DeQuestion `protobuf:"bytes,1,rep,name=qs,proto3" json:"qs,omitempty" pg:"qs"` + Count int32 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty" pg:"count"` + Uuid string `protobuf:"bytes,3,opt,name=uuid,proto3" json:"uuid,omitempty" pg:"uuid"` + Url string `protobuf:"bytes,4,opt,name=url,proto3" json:"url,omitempty" pg:"url"` + EndTime *time.Time `protobuf:"bytes,5,opt,name=end_time,json=endTime,proto3,stdtime" json:"end_time,omitempty" pg:"end_time"` + XXX_NoUnkeyedLiteral struct{} `json:"-" pg:"-"` + XXX_unrecognized []byte `json:"-" pg:"-"` + XXX_sizecache int32 `json:"-" pg:"-"` +} + +func (m *DeCentralQuestions) Reset() { *m = DeCentralQuestions{} } +func (m *DeCentralQuestions) String() string { return proto.CompactTextString(m) } +func (*DeCentralQuestions) ProtoMessage() {} +func (*DeCentralQuestions) Descriptor() ([]byte, []int) { + return fileDescriptor_ad5b6eccdc9ebee8, []int{32} +} +func (m *DeCentralQuestions) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DeCentralQuestions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_DeCentralQuestions.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *DeCentralQuestions) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeCentralQuestions.Merge(m, src) +} +func (m *DeCentralQuestions) XXX_Size() int { + return m.Size() +} +func (m *DeCentralQuestions) XXX_DiscardUnknown() { + xxx_messageInfo_DeCentralQuestions.DiscardUnknown(m) +} + +var xxx_messageInfo_DeCentralQuestions proto.InternalMessageInfo + +func (m *DeCentralQuestions) GetQs() []*DeQuestion { + if m != nil { + return m.Qs + } + return nil +} + +func (m *DeCentralQuestions) GetCount() int32 { + if m != nil { + return m.Count + } + return 0 +} + +func (m *DeCentralQuestions) GetUuid() string { + if m != nil { + return m.Uuid + } + return "" +} + +func (m *DeCentralQuestions) GetUrl() string { + if m != nil { + return m.Url + } + return "" +} + +func (m *DeCentralQuestions) GetEndTime() *time.Time { + if m != nil { + return m.EndTime + } + return nil +} + +func (*DeCentralQuestions) XXX_MessageName() string { + return "guard.DeCentralQuestions" +} + +type DeQuestion struct { + ShardHash string `protobuf:"bytes,1,opt,name=shard_hash,json=shardHash,proto3" json:"shard_hash,omitempty" pg:"shard_hash"` + HostPid string `protobuf:"bytes,2,opt,name=host_pid,json=hostPid,proto3" json:"host_pid,omitempty" pg:"host_pid"` + ChunkIndex int32 `protobuf:"varint,3,opt,name=chunk_index,json=chunkIndex,proto3" json:"chunk_index,omitempty" pg:"chunk_index"` + Nonce string `protobuf:"bytes,4,opt,name=nonce,proto3" json:"nonce,omitempty" pg:"nonce"` + FileHash string `protobuf:"bytes,5,opt,name=file_hash,json=fileHash,proto3" json:"file_hash,omitempty" pg:"file_hash"` + XXX_NoUnkeyedLiteral struct{} `json:"-" pg:"-"` + XXX_unrecognized []byte `json:"-" pg:"-"` + XXX_sizecache int32 `json:"-" pg:"-"` +} + +func (m *DeQuestion) Reset() { *m = DeQuestion{} } +func (m *DeQuestion) String() string { return proto.CompactTextString(m) } +func (*DeQuestion) ProtoMessage() {} +func (*DeQuestion) Descriptor() ([]byte, []int) { + return fileDescriptor_ad5b6eccdc9ebee8, []int{33} +} +func (m *DeQuestion) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DeQuestion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_DeQuestion.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *DeQuestion) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeQuestion.Merge(m, src) +} +func (m *DeQuestion) XXX_Size() int { + return m.Size() +} +func (m *DeQuestion) XXX_DiscardUnknown() { + xxx_messageInfo_DeQuestion.DiscardUnknown(m) +} + +var xxx_messageInfo_DeQuestion proto.InternalMessageInfo + +func (m *DeQuestion) GetShardHash() string { + if m != nil { + return m.ShardHash + } + return "" +} + +func (m *DeQuestion) GetHostPid() string { + if m != nil { + return m.HostPid + } + return "" +} + +func (m *DeQuestion) GetChunkIndex() int32 { + if m != nil { + return m.ChunkIndex + } + return 0 +} + +func (m *DeQuestion) GetNonce() string { + if m != nil { + return m.Nonce + } + return "" +} + +func (m *DeQuestion) GetFileHash() string { + if m != nil { + return m.FileHash + } + return "" +} + +func (*DeQuestion) XXX_MessageName() string { + return "guard.DeQuestion" +} func init() { proto.RegisterEnum("guard.ResponseCode", ResponseCode_name, ResponseCode_value) golang_proto.RegisterEnum("guard.ResponseCode", ResponseCode_name, ResponseCode_value) @@ -3567,251 +3733,260 @@ func init() { golang_proto.RegisterType((*ChallengeJobResult)(nil), "guard.ChallengeJobResult") proto.RegisterType((*ShardChallengeResult)(nil), "guard.ShardChallengeResult") golang_proto.RegisterType((*ShardChallengeResult)(nil), "guard.ShardChallengeResult") + proto.RegisterType((*DeCentralQuestions)(nil), "guard.DeCentralQuestions") + golang_proto.RegisterType((*DeCentralQuestions)(nil), "guard.DeCentralQuestions") + proto.RegisterType((*DeQuestion)(nil), "guard.DeQuestion") + golang_proto.RegisterType((*DeQuestion)(nil), "guard.DeQuestion") } func init() { proto.RegisterFile("protos/guard/guard.proto", fileDescriptor_ad5b6eccdc9ebee8) } func init() { golang_proto.RegisterFile("protos/guard/guard.proto", fileDescriptor_ad5b6eccdc9ebee8) } var fileDescriptor_ad5b6eccdc9ebee8 = []byte{ - // 3796 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x5b, 0x4b, 0x8f, 0x1b, 0xd9, - 0x57, 0x4f, 0xf9, 0xed, 0xe3, 0x57, 0xf5, 0x4d, 0x77, 0xc7, 0xdd, 0x49, 0x3f, 0xfe, 0x46, 0x99, - 0x49, 0xe6, 0xd1, 0x09, 0x99, 0x28, 0x68, 0x60, 0x1e, 0xb8, 0xed, 0xea, 0x47, 0x70, 0xec, 0xce, - 0xb5, 0x9b, 0x90, 0x11, 0x52, 0xa9, 0xda, 0xbe, 0xed, 0xae, 0x89, 0x5d, 0xd5, 0x53, 0x55, 0x4e, - 0x4f, 0x66, 0xc1, 0x82, 0x1d, 0x42, 0x42, 0xac, 0x80, 0x4f, 0x80, 0x04, 0x62, 0x85, 0x04, 0x0b, - 0x16, 0xc0, 0x32, 0x88, 0x05, 0xc3, 0x02, 0x96, 0xf3, 0xca, 0x82, 0x2d, 0xac, 0x98, 0x15, 0x42, - 0xf7, 0x51, 0x4f, 0x57, 0xbb, 0xdb, 0x4d, 0x04, 0x12, 0x9b, 0x28, 0x75, 0xee, 0x39, 0xf7, 0xde, - 0xf3, 0xb8, 0xe7, 0xfe, 0xce, 0xb9, 0x6e, 0xa8, 0x9e, 0x5a, 0xa6, 0x63, 0xda, 0xf7, 0x86, 0x13, - 0xcd, 0x1a, 0xf0, 0x7f, 0xb7, 0x18, 0x09, 0xa5, 0xd9, 0xc7, 0xea, 0xfd, 0xa1, 0xee, 0x9c, 0x4c, - 0x8e, 0xb6, 0xfa, 0xe6, 0xf8, 0x9e, 0x63, 0x99, 0xc6, 0x87, 0x13, 0xfb, 0x1e, 0x63, 0x38, 0x9a, - 0x1c, 0xdf, 0x1b, 0x9a, 0x43, 0x93, 0x7d, 0xb0, 0xff, 0x71, 0xc1, 0xd5, 0x8d, 0xa1, 0x69, 0x0e, - 0x47, 0xc4, 0xe7, 0x72, 0xf4, 0x31, 0xb1, 0x1d, 0x6d, 0x7c, 0xca, 0x19, 0x6a, 0xff, 0x25, 0x01, - 0xd4, 0x07, 0x63, 0xdd, 0x78, 0x3a, 0x21, 0xd6, 0x2b, 0xf4, 0x4b, 0x50, 0xb2, 0xc8, 0x57, 0x13, - 0x62, 0x3b, 0xc4, 0x52, 0x4f, 0xf5, 0x41, 0x55, 0xda, 0x94, 0xee, 0xe4, 0x71, 0xd1, 0x23, 0x1e, - 0xe8, 0x03, 0xd4, 0x00, 0xf8, 0x8a, 0x72, 0xab, 0x03, 0xcd, 0x21, 0xd5, 0xc4, 0xa6, 0x74, 0xa7, - 0xf0, 0x60, 0x75, 0x8b, 0xaf, 0xb4, 0xe5, 0xae, 0xb4, 0xd5, 0x73, 0x57, 0xda, 0xce, 0xbd, 0xfe, - 0x6e, 0xe3, 0xda, 0x1f, 0x7e, 0xbf, 0x21, 0xe1, 0x3c, 0x93, 0x6b, 0x6a, 0x0e, 0x41, 0x1b, 0x50, - 0xe0, 0x93, 0xf4, 0xcd, 0x89, 0xe1, 0x54, 0x93, 0x9b, 0xd2, 0x9d, 0x34, 0xe6, 0xf3, 0x36, 0x28, - 0x05, 0xed, 0x82, 0xbb, 0xaa, 0x4a, 0x37, 0x5d, 0x4d, 0xcd, 0xb1, 0x4e, 0x41, 0x48, 0xd2, 0x31, - 0x74, 0x0b, 0xf2, 0xb6, 0x3e, 0x34, 0x34, 0x67, 0x62, 0x91, 0x6a, 0x7a, 0x53, 0xba, 0x53, 0xc4, - 0x3e, 0xa1, 0xf6, 0x2f, 0x49, 0x28, 0x36, 0x35, 0x7d, 0xf4, 0xaa, 0x3b, 0x19, 0x8f, 0x35, 0xeb, - 0x55, 0x44, 0x3b, 0xe9, 0x6a, 0xda, 0xed, 0x53, 0x3b, 0xda, 0xa7, 0xa6, 0x61, 0x13, 0xbe, 0xfb, - 0x79, 0xac, 0x54, 0x74, 0x45, 0xd9, 0xf6, 0x7f, 0x01, 0xc5, 0x53, 0x8b, 0x9c, 0x6a, 0x96, 0xf0, - 0x48, 0x92, 0x79, 0xa4, 0xe0, 0xd2, 0xa8, 0x43, 0x42, 0x1a, 0xa6, 0x22, 0x1a, 0xa2, 0xfb, 0xb0, - 0x78, 0x66, 0x5a, 0x2f, 0x74, 0x63, 0xa8, 0xda, 0x8e, 0x69, 0x69, 0x43, 0xa2, 0xda, 0xfa, 0x37, - 0xdc, 0x14, 0x49, 0x8c, 0xc4, 0x58, 0x97, 0x0f, 0x75, 0xf5, 0x6f, 0x08, 0x8d, 0x02, 0x83, 0x9c, - 0xa9, 0x7d, 0xd3, 0x70, 0x2c, 0xad, 0xef, 0xd8, 0xd5, 0x0c, 0x63, 0x2d, 0x1a, 0xe4, 0xac, 0xe1, - 0xd2, 0xd0, 0x07, 0x80, 0x42, 0x4c, 0xea, 0x89, 0x69, 0x3b, 0xd5, 0x2c, 0xe3, 0x94, 0x83, 0x9c, - 0x7b, 0xa6, 0xed, 0xd0, 0x4d, 0x84, 0xb9, 0x2d, 0x62, 0x38, 0xc4, 0xaa, 0xe6, 0xf8, 0x26, 0x82, - 0xfc, 0x98, 0x8d, 0xa0, 0x4f, 0xe1, 0x66, 0x58, 0x42, 0x7b, 0x49, 0xd8, 0xe6, 0x4f, 0x2d, 0xbd, - 0x4f, 0xaa, 0x79, 0x26, 0x58, 0x0d, 0x0a, 0xd6, 0x39, 0xc3, 0x01, 0x1d, 0xaf, 0xfd, 0x45, 0x02, - 0x0a, 0x74, 0xe5, 0xff, 0xb7, 0x6e, 0xfd, 0x05, 0x3d, 0x1f, 0x7d, 0xd3, 0x1a, 0x88, 0x13, 0x94, - 0x66, 0x27, 0xa8, 0xc0, 0x69, 0xfc, 0x08, 0xdd, 0x85, 0x8c, 0xed, 0x68, 0xce, 0x84, 0x3a, 0x30, - 0x79, 0xa7, 0xf0, 0x60, 0x61, 0x8b, 0x27, 0x15, 0x66, 0x17, 0x36, 0x80, 0x05, 0x43, 0xed, 0xcf, - 0x24, 0x00, 0x9f, 0x8c, 0x56, 0x20, 0x47, 0xdd, 0x19, 0x48, 0x01, 0x59, 0xfa, 0x4d, 0x77, 0x75, - 0x13, 0xf2, 0xc7, 0xfa, 0x48, 0xc4, 0x50, 0x82, 0x79, 0x21, 0x47, 0x09, 0x2c, 0x72, 0x36, 0xa0, - 0x40, 0xe3, 0x49, 0xd5, 0xc6, 0xde, 0xa9, 0x4e, 0x62, 0xa0, 0xa4, 0x3a, 0xa3, 0xa0, 0x35, 0x00, - 0x8b, 0x9c, 0x69, 0xd6, 0x40, 0x3d, 0x72, 0x1c, 0xa6, 0x54, 0x12, 0xe7, 0x39, 0x65, 0xdb, 0x71, - 0x68, 0xe4, 0xd9, 0x13, 0xfb, 0x94, 0xf4, 0x1d, 0xb5, 0x7f, 0x42, 0x34, 0xae, 0x55, 0x0e, 0x17, - 0x05, 0xb1, 0x41, 0x69, 0xb5, 0xdf, 0x97, 0x20, 0xd9, 0x32, 0x87, 0x48, 0x81, 0x42, 0xff, 0x44, - 0x33, 0x86, 0xc2, 0x17, 0xf3, 0xf8, 0x14, 0xb8, 0x20, 0xf3, 0xc4, 0x6d, 0x28, 0x9b, 0x96, 0x3e, - 0xd4, 0x0d, 0xcd, 0x31, 0xb9, 0x2f, 0x12, 0x4c, 0xe3, 0x92, 0x4f, 0xa5, 0x7a, 0x2f, 0x43, 0x86, - 0x0b, 0x09, 0x57, 0x89, 0xaf, 0xda, 0xbf, 0xa6, 0xa1, 0xe8, 0x86, 0xe0, 0x13, 0xe2, 0x68, 0xd4, - 0x06, 0x6e, 0xd0, 0xaa, 0x9e, 0xf9, 0xc0, 0x25, 0xed, 0x0f, 0xb8, 0x0d, 0x0c, 0x37, 0xc3, 0xf2, - 0xc5, 0xf2, 0x9c, 0x42, 0x17, 0x0a, 0xda, 0x3e, 0x19, 0xb6, 0xfd, 0x1a, 0x80, 0x7d, 0x42, 0x8d, - 0x77, 0xa2, 0xd9, 0x27, 0xcc, 0x7a, 0x79, 0x9c, 0x67, 0x94, 0x3d, 0xcd, 0x3e, 0xa1, 0x2b, 0xf3, - 0x61, 0xdd, 0x18, 0x90, 0xaf, 0x45, 0x44, 0x70, 0x89, 0x7d, 0x4a, 0x41, 0xef, 0x40, 0x85, 0x33, - 0xf8, 0x1e, 0xe4, 0x47, 0xbb, 0xc4, 0xc8, 0x3b, 0xae, 0x1b, 0x5d, 0x1f, 0xb3, 0x65, 0xb2, 0x6c, - 0x19, 0xe6, 0x63, 0xb6, 0x4a, 0x83, 0x6f, 0x5f, 0xb5, 0x1d, 0xcd, 0x72, 0xd8, 0x01, 0xbe, 0xf4, - 0x49, 0xa2, 0x72, 0x5d, 0x2a, 0x86, 0x3e, 0x87, 0x1c, 0x9b, 0x84, 0x18, 0x03, 0x76, 0x94, 0x2f, - 0x3b, 0x45, 0x96, 0x4a, 0x29, 0x06, 0x0b, 0x43, 0x16, 0xcc, 0xcc, 0x4c, 0xc0, 0xb7, 0xc8, 0x08, - 0xc2, 0x4e, 0xc4, 0xee, 0x5b, 0xe6, 0x19, 0x1b, 0x2d, 0x70, 0x3b, 0x71, 0x0a, 0x1d, 0x5e, 0x84, - 0x34, 0x4f, 0x22, 0x45, 0xa6, 0x3c, 0xff, 0xa0, 0x0e, 0x16, 0x61, 0x5b, 0x62, 0x64, 0xf1, 0x85, - 0xde, 0x87, 0x85, 0xbe, 0x39, 0x1a, 0x69, 0x0e, 0xb1, 0xb4, 0x91, 0x1b, 0xd9, 0x65, 0x9e, 0xe7, - 0xfc, 0x01, 0x11, 0xdf, 0x0a, 0x54, 0x4e, 0xb5, 0x57, 0xe6, 0xc4, 0x51, 0xed, 0xfe, 0x09, 0x19, - 0x4c, 0x46, 0xa4, 0x5a, 0xd9, 0x94, 0xee, 0x94, 0x1f, 0xdc, 0x12, 0x67, 0x2f, 0x18, 0x2a, 0x5b, - 0x5d, 0xc1, 0x83, 0xcb, 0x5c, 0xc8, 0xfd, 0xa6, 0x9e, 0x34, 0x26, 0x63, 0x95, 0x53, 0xed, 0xaa, - 0xcc, 0x3d, 0x69, 0x4c, 0xc6, 0x07, 0x9c, 0xc2, 0x37, 0x65, 0x38, 0xba, 0x31, 0xa4, 0x56, 0x14, - 0x9b, 0x5a, 0x70, 0x37, 0xe5, 0x0e, 0xf0, 0x4d, 0xd5, 0x1e, 0x42, 0xce, 0x9b, 0xb9, 0x00, 0xd9, - 0x27, 0x9d, 0x76, 0x6f, 0xaf, 0xf5, 0x5c, 0xbe, 0x86, 0x4a, 0x90, 0x7f, 0x7a, 0x58, 0xc7, 0x3d, - 0x05, 0xb7, 0x9e, 0xcb, 0x12, 0x2a, 0x42, 0xae, 0xde, 0x6e, 0x1f, 0xd6, 0x5b, 0xad, 0xe7, 0x72, - 0xa2, 0xf6, 0x77, 0x79, 0xc8, 0xb9, 0xbb, 0x45, 0x1f, 0x43, 0xce, 0x8d, 0x60, 0x71, 0xd0, 0xae, - 0xc7, 0x28, 0xc4, 0x1d, 0xf5, 0xed, 0x77, 0x1b, 0x12, 0xf6, 0xd8, 0xd1, 0x47, 0x90, 0xa6, 0x49, - 0x86, 0x27, 0x8b, 0xf2, 0x83, 0xb5, 0x88, 0x9c, 0xf7, 0x1f, 0x9a, 0x7a, 0x08, 0xe6, 0xbc, 0xe8, - 0x2e, 0xc8, 0xe2, 0x8c, 0xf8, 0x29, 0x30, 0xc9, 0x52, 0x60, 0x85, 0xd3, 0xbb, 0x5e, 0x22, 0xbc, - 0x0d, 0x65, 0x76, 0x5e, 0xa2, 0xb9, 0xb2, 0x44, 0xa9, 0x3e, 0x1b, 0x06, 0x24, 0x62, 0x82, 0x32, - 0x92, 0x01, 0x4f, 0x1a, 0xe9, 0x39, 0x62, 0x4f, 0xe6, 0xf2, 0x5d, 0x26, 0xce, 0x52, 0xc7, 0x5d, - 0x90, 0x03, 0x73, 0xf2, 0xc5, 0x33, 0x7c, 0x97, 0x3e, 0xaf, 0x7b, 0x0b, 0x8b, 0x9c, 0xa3, 0x8e, - 0xcc, 0x61, 0x35, 0xcb, 0xf2, 0x31, 0x08, 0x53, 0xb4, 0xcc, 0xe1, 0x76, 0xfa, 0xcf, 0xbf, 0xdf, - 0x90, 0x3e, 0xc4, 0x79, 0xce, 0x44, 0xd3, 0x5b, 0x1b, 0xe4, 0x91, 0x66, 0x3b, 0xea, 0xd8, 0x1c, - 0xe8, 0xc7, 0xaf, 0xf8, 0x76, 0xe7, 0x39, 0x6d, 0x65, 0x2a, 0xfd, 0x84, 0x09, 0xb3, 0xcd, 0xbe, - 0x0b, 0x15, 0x7e, 0x62, 0xfc, 0xbd, 0xe6, 0xd9, 0x5e, 0xcb, 0x8c, 0xdc, 0x0d, 0xde, 0x2c, 0xa1, - 0xab, 0x09, 0xa6, 0xaf, 0xa6, 0x0f, 0x01, 0x79, 0x2c, 0xfe, 0x74, 0x05, 0x36, 0xdd, 0x82, 0x3b, - 0xe2, 0xcf, 0xd8, 0x87, 0x9b, 0x4c, 0x15, 0x7b, 0xd2, 0xef, 0x13, 0xdb, 0x56, 0xfb, 0x27, 0xda, - 0x68, 0x44, 0xbc, 0xcc, 0x5d, 0x9c, 0x43, 0xab, 0x2a, 0x9d, 0xa8, 0xcb, 0xe7, 0x69, 0xb8, 0xd3, - 0x30, 0xfd, 0x7a, 0x70, 0x9d, 0x2d, 0x12, 0x99, 0xbc, 0x34, 0xc7, 0xe4, 0x0b, 0x74, 0x82, 0xf0, - 0xac, 0xef, 0x42, 0x25, 0x3c, 0xa1, 0xcd, 0xce, 0x7e, 0x1a, 0x97, 0xfb, 0x41, 0x3e, 0x9b, 0x22, - 0x1c, 0x9f, 0xf1, 0x4c, 0xb3, 0x0c, 0xc1, 0x5d, 0x61, 0xdc, 0xc8, 0x1b, 0x7b, 0xa6, 0x59, 0x06, - 0x97, 0x78, 0x04, 0x37, 0x7c, 0x09, 0xd7, 0x34, 0x5c, 0x88, 0x1f, 0xf8, 0x25, 0x6f, 0x58, 0x28, - 0xcc, 0xe5, 0x7e, 0x1b, 0x6e, 0x1c, 0xeb, 0x56, 0x48, 0x53, 0x21, 0xcd, 0x32, 0xc0, 0x65, 0x95, - 0x5d, 0x62, 0x93, 0x34, 0x22, 0x4b, 0xd4, 0x5e, 0x4b, 0x50, 0x0a, 0x1d, 0x49, 0x94, 0x87, 0x74, - 0x13, 0xd7, 0x77, 0x7a, 0xf2, 0x35, 0x04, 0x90, 0xe9, 0xee, 0xef, 0xb6, 0x95, 0x26, 0xcf, 0x16, - 0x87, 0x07, 0xad, 0x4e, 0xbd, 0xa9, 0x34, 0xe5, 0x04, 0xca, 0x41, 0xaa, 0xd5, 0xe9, 0xf6, 0xe4, - 0x24, 0xa5, 0x37, 0xea, 0xed, 0x86, 0xd2, 0x52, 0x9a, 0x72, 0x8a, 0x4a, 0x34, 0x5a, 0x9d, 0xae, - 0xd2, 0x94, 0xd3, 0x34, 0xf7, 0x60, 0xa5, 0xad, 0x3c, 0x53, 0x9a, 0x72, 0x86, 0xb2, 0x75, 0xb6, - 0xbb, 0x9d, 0x96, 0xd2, 0x53, 0xe4, 0x2c, 0x15, 0x7f, 0x56, 0xc7, 0x6d, 0x39, 0x87, 0xca, 0x00, - 0x6c, 0x35, 0x95, 0x7d, 0xe7, 0xd1, 0x75, 0xa8, 0x60, 0xa5, 0xde, 0x7c, 0xae, 0x36, 0xf6, 0xea, - 0xad, 0x96, 0xd2, 0xde, 0x55, 0x64, 0xa0, 0x89, 0x0b, 0x2b, 0x0d, 0xac, 0xd4, 0x7b, 0x4a, 0x53, - 0x2e, 0xa0, 0x25, 0x58, 0xc0, 0xca, 0xd3, 0x43, 0xa5, 0xdb, 0x0b, 0x70, 0x15, 0x6b, 0x7f, 0x90, - 0x80, 0x25, 0x76, 0xa7, 0x39, 0xa6, 0x45, 0x5a, 0xba, 0xed, 0x60, 0x81, 0xc0, 0xd0, 0xaf, 0x42, - 0x56, 0x94, 0x08, 0x22, 0x9b, 0x6d, 0xba, 0x47, 0x91, 0x71, 0xd1, 0x04, 0x43, 0x05, 0xf7, 0x8d, - 0x63, 0x13, 0x73, 0x3e, 0xec, 0x0a, 0xd0, 0xc2, 0xa4, 0x3f, 0xb1, 0xd8, 0xed, 0x35, 0x37, 0x06, - 0x2c, 0x08, 0x49, 0x16, 0x5a, 0x9f, 0x40, 0x85, 0xdf, 0xc3, 0x74, 0x7b, 0xea, 0x98, 0x38, 0x5a, - 0x35, 0xc9, 0xf2, 0xc2, 0xa2, 0xd8, 0x8c, 0xb7, 0x77, 0x9a, 0x5b, 0x71, 0xe9, 0x38, 0xf8, 0x49, - 0x2f, 0x31, 0x0e, 0xfc, 0x52, 0x2c, 0x56, 0xf8, 0xc7, 0x05, 0xc5, 0xce, 0x5f, 0xa7, 0xa1, 0x14, - 0x9a, 0x34, 0x82, 0x45, 0xa4, 0x28, 0x16, 0x09, 0x01, 0x81, 0x44, 0x04, 0x08, 0x84, 0x90, 0x60, - 0x32, 0x82, 0x04, 0xc3, 0x28, 0x21, 0xf5, 0x3f, 0x47, 0x09, 0xe9, 0xab, 0xa0, 0x04, 0x76, 0x7a, - 0x49, 0xff, 0x85, 0x7a, 0xcc, 0xbc, 0x67, 0xf4, 0x5f, 0xb1, 0xfc, 0xcc, 0x4e, 0x2f, 0xe9, 0xbf, - 0xd8, 0x71, 0xa9, 0x3e, 0x9c, 0x38, 0x26, 0x44, 0x14, 0x31, 0x1c, 0x4e, 0xec, 0x10, 0x12, 0x80, - 0x13, 0x74, 0x94, 0x97, 0x2c, 0x02, 0x4e, 0xd0, 0x61, 0x0f, 0x76, 0x71, 0x7f, 0xe4, 0x03, 0xb0, - 0x8b, 0xe3, 0xf0, 0xdb, 0x50, 0x1e, 0xeb, 0x86, 0x3e, 0x9e, 0x8c, 0x55, 0x46, 0xb5, 0x59, 0x4a, - 0x4d, 0xe3, 0x92, 0xa0, 0x76, 0x19, 0x91, 0xde, 0xe9, 0x14, 0xbd, 0xbf, 0x24, 0x96, 0xea, 0x9c, - 0x58, 0xc4, 0x3e, 0x31, 0x47, 0x1c, 0xbc, 0xa4, 0xb1, 0x2c, 0x06, 0x7a, 0x2e, 0x3d, 0x02, 0x71, - 0x8a, 0x51, 0x88, 0x13, 0x82, 0x47, 0xa5, 0x08, 0x3c, 0xfa, 0x35, 0x58, 0x65, 0x09, 0x2a, 0x92, - 0xd8, 0xd4, 0x91, 0x3e, 0xd6, 0x1d, 0x91, 0xde, 0x6e, 0x50, 0x8e, 0x50, 0x2a, 0xb4, 0x5b, 0x74, - 0x18, 0xd5, 0x61, 0x2d, 0x3e, 0x8d, 0xbb, 0xf2, 0x3c, 0xe1, 0xad, 0xda, 0x31, 0x39, 0x5a, 0x4c, - 0xc1, 0x52, 0x65, 0xc8, 0x2b, 0x2c, 0x61, 0x8a, 0xac, 0x87, 0xc2, 0xae, 0xa1, 0xf9, 0xb2, 0xf6, - 0x0f, 0x19, 0xa8, 0x78, 0x81, 0x2b, 0x6a, 0x94, 0x9d, 0xe9, 0xe3, 0xc3, 0xcf, 0x72, 0xec, 0xf1, - 0x09, 0x40, 0x93, 0xc8, 0x41, 0x7a, 0x14, 0xc6, 0x27, 0x9b, 0x51, 0x69, 0xbe, 0xdc, 0x16, 0xe5, - 0x0d, 0x41, 0x94, 0x87, 0x90, 0xf7, 0x2b, 0x64, 0x7e, 0x70, 0x2b, 0x11, 0x6c, 0xe3, 0xdf, 0xea, - 0x5e, 0xd9, 0x1c, 0x07, 0x6c, 0x52, 0xf1, 0xc0, 0x06, 0x03, 0xe2, 0x3e, 0xb4, 0x48, 0x9f, 0xe8, - 0x2f, 0xc9, 0x15, 0x10, 0x0b, 0x93, 0xc7, 0x5c, 0x9c, 0xe5, 0x9c, 0x30, 0x0c, 0xc9, 0x5c, 0x02, - 0x86, 0x44, 0xd3, 0x5d, 0xf6, 0xaa, 0xe9, 0x2e, 0x06, 0x7f, 0xe4, 0x62, 0xf1, 0x87, 0x42, 0x2b, - 0x5b, 0xc3, 0xd1, 0x46, 0x2a, 0xf7, 0x4b, 0x9e, 0xf9, 0xa5, 0x76, 0x8e, 0x5f, 0x30, 0x63, 0xe5, - 0x9e, 0x29, 0x58, 0xfe, 0xc7, 0xdb, 0x87, 0x31, 0xb5, 0x09, 0xe4, 0xbd, 0x28, 0x08, 0xde, 0x8a, - 0x25, 0xc8, 0xf3, 0x9b, 0x70, 0xbf, 0xbd, 0x2b, 0x4b, 0xec, 0x9a, 0x3b, 0x6c, 0xb7, 0xe9, 0x47, - 0x02, 0xc9, 0x50, 0x3c, 0xa8, 0xe3, 0xde, 0x7e, 0xbd, 0xa5, 0x8a, 0xfb, 0xd1, 0xbd, 0x29, 0x53, - 0xf4, 0x7f, 0xcd, 0x4e, 0x5b, 0x91, 0xd3, 0xa1, 0x3b, 0x33, 0x13, 0xbe, 0xdd, 0xb2, 0xb5, 0x27, - 0x50, 0x08, 0x28, 0x89, 0xb2, 0x90, 0x6c, 0x2b, 0xcf, 0xe4, 0x6b, 0xa8, 0x02, 0x05, 0x77, 0x6a, - 0x4a, 0x60, 0x0b, 0x2b, 0xbf, 0x75, 0xb0, 0x8f, 0xd9, 0x85, 0x9c, 0x87, 0x34, 0xbb, 0x6c, 0xf9, - 0x8d, 0xec, 0xce, 0x27, 0xa7, 0x68, 0xa9, 0xbf, 0xe0, 0x9d, 0xca, 0xa7, 0xf4, 0x4a, 0xd3, 0x4d, - 0x23, 0x52, 0x5a, 0x4a, 0xd1, 0xd2, 0x32, 0x58, 0x94, 0x26, 0xc2, 0x45, 0x29, 0xad, 0x77, 0x4f, - 0x26, 0xc6, 0x0b, 0x51, 0x75, 0x8a, 0x4e, 0x1e, 0x23, 0xf1, 0xaa, 0x73, 0x11, 0xd2, 0x86, 0x69, - 0xf4, 0x89, 0x28, 0x58, 0xf9, 0x07, 0x2d, 0xf5, 0xc9, 0xd7, 0xac, 0xd2, 0xd7, 0x0c, 0xfb, 0x8c, - 0x58, 0x2c, 0xb0, 0xf3, 0xb8, 0xc8, 0x89, 0x75, 0x46, 0xab, 0xfd, 0x6e, 0x12, 0x56, 0x0e, 0x2c, - 0xd3, 0x3c, 0xee, 0x1c, 0x63, 0x72, 0x3a, 0xd2, 0xfb, 0x9a, 0x43, 0xbc, 0xbd, 0xa3, 0xcf, 0x20, - 0xf7, 0x95, 0xd8, 0xbf, 0x38, 0xfa, 0x55, 0xf7, 0x00, 0x46, 0xf5, 0x0b, 0x56, 0x26, 0xae, 0x0c, - 0xfa, 0x0d, 0x28, 0x47, 0xc0, 0xe2, 0x3c, 0x77, 0x79, 0x29, 0x04, 0x00, 0xc3, 0x19, 0x37, 0x19, - 0xc9, 0xb8, 0x31, 0xb1, 0x9f, 0x8a, 0x8d, 0xfd, 0x0d, 0x28, 0x30, 0x3b, 0x87, 0x6c, 0x02, 0x94, - 0xc4, 0x2d, 0x82, 0x1e, 0x07, 0xaa, 0x1d, 0xbe, 0xe7, 0xcc, 0x3c, 0x3d, 0x28, 0xb7, 0x26, 0x72, - 0x3b, 0x1f, 0x91, 0xca, 0x29, 0x1b, 0x53, 0x39, 0xd5, 0x7e, 0x07, 0x96, 0xe9, 0xa1, 0x9b, 0xb2, - 0xa9, 0x1d, 0x86, 0x07, 0x52, 0x04, 0x1e, 0xec, 0xba, 0xcd, 0x06, 0xd7, 0xde, 0x76, 0x35, 0xc1, - 0xf2, 0xcd, 0xba, 0x70, 0x12, 0xbb, 0xf6, 0xa6, 0x67, 0xc5, 0x65, 0x26, 0xe6, 0x7d, 0xd7, 0xfe, - 0x29, 0x01, 0x37, 0xce, 0xe1, 0x9d, 0xbd, 0x83, 0x70, 0x4c, 0x27, 0xa2, 0x31, 0x7d, 0x89, 0x16, - 0xdc, 0x6d, 0x28, 0xbb, 0xbb, 0x57, 0x83, 0x68, 0xab, 0xe4, 0x52, 0xf9, 0x05, 0xff, 0x08, 0xf2, - 0xbe, 0x92, 0x69, 0xa6, 0xe4, 0xb9, 0x91, 0x88, 0x7d, 0x56, 0x9a, 0x5b, 0xc5, 0x6a, 0xf3, 0xbb, - 0xd2, 0xdd, 0x27, 0xf3, 0x64, 0x7c, 0x22, 0xcb, 0x9e, 0x97, 0xc8, 0xde, 0x48, 0xb0, 0xd2, 0x60, - 0xb7, 0x6c, 0x08, 0x61, 0x0a, 0x80, 0x7b, 0x91, 0x4d, 0x67, 0x35, 0xaf, 0xa6, 0x1e, 0x10, 0x92, - 0x31, 0x0f, 0x08, 0xff, 0x4b, 0xad, 0xfd, 0x7f, 0x4f, 0xc0, 0xca, 0xb9, 0x78, 0xfe, 0x22, 0xe4, - 0x3b, 0xa5, 0x48, 0x22, 0x46, 0x91, 0xf7, 0x28, 0x62, 0xe3, 0x8a, 0x9c, 0x7a, 0x7d, 0x75, 0x9e, - 0x00, 0x2b, 0x62, 0xe0, 0xc0, 0x6d, 0xaa, 0x7f, 0x00, 0x28, 0xc4, 0xcb, 0xb3, 0x65, 0xca, 0x85, - 0x77, 0x1e, 0x33, 0xcf, 0x99, 0x51, 0x13, 0x5d, 0xee, 0xd6, 0x97, 0xa6, 0x4d, 0x14, 0xd7, 0x45, - 0xc8, 0xcc, 0x31, 0x59, 0xb4, 0x8b, 0x10, 0x32, 0x79, 0x36, 0x6a, 0xf2, 0xbf, 0x4d, 0x41, 0x95, - 0x9a, 0x7c, 0xcf, 0xb4, 0x9d, 0x40, 0x43, 0x9f, 0x5b, 0x7c, 0x46, 0x53, 0xf9, 0xff, 0xd8, 0xda, - 0xcf, 0x61, 0x39, 0x6a, 0x24, 0xd5, 0xd6, 0xe9, 0x95, 0x35, 0x8f, 0xdd, 0xaf, 0x87, 0x4d, 0xd5, - 0xa5, 0x13, 0xa0, 0xae, 0xe8, 0x4a, 0x04, 0xa7, 0x76, 0xcc, 0xb9, 0x5c, 0x20, 0x87, 0xe7, 0xed, - 0x99, 0xa8, 0xee, 0x42, 0xd6, 0x2c, 0x83, 0x46, 0xef, 0x07, 0x8a, 0xd7, 0x38, 0xcb, 0x6f, 0x75, - 0xc9, 0x88, 0x44, 0x1a, 0x6c, 0xd1, 0x00, 0xcb, 0x5d, 0x35, 0xc0, 0x42, 0x01, 0x91, 0x8f, 0x06, - 0xc4, 0x16, 0x14, 0x02, 0x8b, 0x53, 0xec, 0x52, 0x6f, 0xb5, 0x78, 0x23, 0xa1, 0xde, 0xe8, 0xed, - 0xff, 0xa6, 0x22, 0x4b, 0x81, 0x16, 0x41, 0xa2, 0xf6, 0x73, 0xa0, 0xfb, 0x60, 0x53, 0x7d, 0xd0, - 0xc7, 0xd1, 0x52, 0x7d, 0xe3, 0x02, 0x6d, 0xfd, 0x4a, 0x7d, 0x1f, 0x4a, 0x43, 0x62, 0x10, 0x4b, - 0x73, 0xae, 0xf2, 0x5c, 0xe3, 0x8a, 0x8a, 0x04, 0x7b, 0x21, 0xd8, 0x0f, 0xa2, 0xfc, 0xab, 0x14, - 0xe7, 0x7f, 0x95, 0x80, 0x2a, 0x26, 0xda, 0xe0, 0xd5, 0x8e, 0x69, 0x79, 0xb7, 0xc6, 0x25, 0xb3, - 0xd5, 0xcc, 0x3a, 0x3d, 0x7c, 0x0d, 0x26, 0x63, 0x5e, 0x0d, 0x82, 0xef, 0x15, 0xa9, 0xa9, 0xf7, - 0x8a, 0xe0, 0xb9, 0x4d, 0x87, 0xcf, 0xed, 0x5b, 0xbb, 0xc0, 0x66, 0xa6, 0x15, 0xaa, 0x9e, 0x6e, - 0xab, 0x94, 0x5d, 0xe7, 0x4f, 0x86, 0x39, 0x9c, 0xd3, 0x6d, 0xcc, 0xbe, 0x6b, 0xff, 0x21, 0x51, - 0xbb, 0x31, 0x33, 0x4d, 0xc3, 0xda, 0x87, 0x97, 0x87, 0x88, 0x01, 0x60, 0x18, 0x55, 0x2b, 0xf1, - 0x56, 0xd4, 0x4a, 0xce, 0x54, 0x2b, 0x15, 0x56, 0x2b, 0xec, 0xd2, 0x74, 0xd8, 0xa5, 0xb5, 0xdf, - 0x4b, 0xc0, 0x8a, 0xdb, 0xcc, 0x9a, 0x56, 0xfa, 0x3e, 0x64, 0x04, 0x7e, 0xbc, 0x48, 0x65, 0xc1, - 0x37, 0x0b, 0xde, 0xb3, 0x44, 0x61, 0x9b, 0x23, 0xb7, 0xfe, 0x4c, 0xce, 0x77, 0x59, 0x33, 0xc9, - 0x69, 0x5b, 0xa4, 0x66, 0xda, 0x22, 0x3d, 0xcb, 0x16, 0x99, 0xa8, 0x2d, 0x24, 0x40, 0x3b, 0xa6, - 0xd5, 0x27, 0x9c, 0xf9, 0x6d, 0x9c, 0x98, 0x15, 0xc8, 0x69, 0x13, 0xe7, 0x24, 0xf8, 0x04, 0x47, - 0xbf, 0x2f, 0x7c, 0x94, 0xad, 0xfd, 0x91, 0x04, 0x19, 0x4c, 0xec, 0xc9, 0xc8, 0x41, 0xef, 0x42, - 0xaa, 0x6f, 0x0e, 0xf8, 0xb3, 0x64, 0xd9, 0x7b, 0x2d, 0xf1, 0x9c, 0x66, 0x0e, 0x08, 0x66, 0x0c, - 0xa8, 0x0a, 0xd9, 0x31, 0xb1, 0x6d, 0x6d, 0x48, 0x5c, 0xd3, 0x8b, 0xcf, 0xe9, 0xe7, 0xe6, 0xe4, - 0x55, 0x9f, 0x9b, 0x6b, 0xff, 0x98, 0x82, 0x32, 0xb7, 0x8f, 0xf7, 0xa4, 0x33, 0x13, 0xe6, 0xbd, - 0x03, 0x95, 0x11, 0x2b, 0x0d, 0x82, 0xf8, 0x39, 0x79, 0x27, 0x8f, 0x4b, 0x94, 0xdc, 0xf5, 0x92, - 0xc7, 0xcc, 0x1e, 0xe0, 0x43, 0x58, 0x1e, 0x98, 0x67, 0xc6, 0xc8, 0xd4, 0x06, 0xaa, 0x78, 0xf5, - 0x15, 0x2f, 0x55, 0xfc, 0xe1, 0x77, 0xd1, 0x1d, 0xc5, 0x6c, 0x50, 0x3c, 0xa1, 0xdd, 0x87, 0x45, - 0x1e, 0x06, 0x11, 0x19, 0xf1, 0x7b, 0x05, 0x4b, 0x78, 0x39, 0x20, 0xc1, 0x5c, 0xcd, 0x24, 0xa8, - 0xc3, 0x32, 0xae, 0xab, 0x29, 0x85, 0xba, 0xac, 0x0d, 0xb2, 0x18, 0xf6, 0x8b, 0xa6, 0x79, 0xba, - 0x18, 0x65, 0x2e, 0xed, 0x95, 0x4d, 0x77, 0x43, 0xf3, 0x05, 0x3b, 0x19, 0x15, 0x9f, 0xd3, 0xfb, - 0xed, 0x85, 0x67, 0x81, 0x60, 0x92, 0xcd, 0xb3, 0x3d, 0x22, 0x77, 0xac, 0xe1, 0x27, 0x5b, 0x06, - 0x5c, 0xd8, 0xe4, 0x41, 0x7e, 0xde, 0xbb, 0x10, 0xcb, 0x06, 0xb8, 0x5b, 0xc1, 0xba, 0x92, 0x6b, - 0x56, 0x98, 0xa7, 0x84, 0xf5, 0xaa, 0xcf, 0xf3, 0x3a, 0x34, 0xc5, 0xb8, 0x2a, 0xb5, 0xf6, 0xa3, - 0x04, 0xcb, 0xe1, 0x68, 0xf2, 0x3a, 0xeb, 0xbf, 0x3c, 0xf5, 0x50, 0xb8, 0xe4, 0x85, 0x7e, 0x48, - 0xc0, 0x7f, 0x20, 0x6c, 0x79, 0x3f, 0x53, 0xe0, 0x1d, 0xb8, 0x87, 0xf1, 0x02, 0x62, 0x85, 0xad, - 0x28, 0x21, 0xf2, 0x4b, 0x86, 0x1d, 0x58, 0x8e, 0xe7, 0x40, 0x15, 0x28, 0x6c, 0x77, 0x7a, 0x7b, - 0xaa, 0x78, 0xc1, 0x60, 0x7d, 0x9b, 0x67, 0xf5, 0xfd, 0x9e, 0xda, 0xda, 0xef, 0xf6, 0xf8, 0x83, - 0x06, 0x56, 0x1e, 0x2b, 0x8d, 0x1e, 0x43, 0x22, 0xff, 0xcc, 0x74, 0xe4, 0x88, 0x22, 0xb4, 0x91, - 0x0b, 0x8a, 0xce, 0x0d, 0x28, 0x08, 0x07, 0x1a, 0xf4, 0xf8, 0xf3, 0x23, 0x2d, 0xe2, 0xb3, 0x4d, - 0xcf, 0x7b, 0x5c, 0x38, 0x26, 0xdf, 0x72, 0x38, 0xa6, 0x62, 0xc3, 0xb1, 0xf6, 0x97, 0x49, 0xb8, - 0xe1, 0x1a, 0xe5, 0xed, 0x2a, 0xf5, 0xb9, 0x8b, 0x48, 0x93, 0xcc, 0x85, 0x77, 0x23, 0xe9, 0x2e, - 0xb2, 0x98, 0x70, 0x2d, 0xf5, 0x8b, 0x8b, 0x47, 0xb7, 0xbc, 0x20, 0xe0, 0xd5, 0xe0, 0x72, 0x7c, - 0xbb, 0xcf, 0x75, 0x73, 0xb8, 0xdd, 0x92, 0x8e, 0xb4, 0x5b, 0xea, 0x3c, 0x49, 0xcf, 0x8f, 0x49, - 0x72, 0xf6, 0x8c, 0xb3, 0x90, 0x8d, 0x3d, 0x0b, 0x2a, 0x80, 0xaf, 0x0d, 0x42, 0x50, 0x6e, 0x74, - 0xda, 0x3d, 0x5c, 0x6f, 0xf4, 0x54, 0xf6, 0x6c, 0x25, 0x5f, 0x43, 0x4b, 0xb0, 0xd0, 0xec, 0x3c, - 0x6b, 0xb7, 0x3a, 0xf5, 0xa6, 0xda, 0xee, 0xf4, 0x54, 0xd6, 0xf3, 0x93, 0xd0, 0x02, 0x94, 0xdc, - 0x47, 0xab, 0xfa, 0x6e, 0x7d, 0xbf, 0x2d, 0x27, 0xd0, 0x75, 0xa8, 0x78, 0xd2, 0x02, 0x12, 0x27, - 0x6b, 0x7f, 0x9a, 0x84, 0xa5, 0x86, 0x66, 0xf4, 0xc9, 0xc8, 0x8f, 0xeb, 0xcb, 0x15, 0xea, 0xb3, - 0x9a, 0x1f, 0x11, 0xd4, 0x97, 0xbc, 0xe0, 0x57, 0x2a, 0xa9, 0x59, 0xbf, 0x52, 0x89, 0x80, 0xc2, - 0x3a, 0x64, 0x2c, 0xa2, 0xd9, 0xa6, 0xc1, 0x4c, 0xef, 0x07, 0x43, 0xac, 0x12, 0x82, 0x8a, 0x99, - 0x00, 0x16, 0x82, 0x61, 0x07, 0x66, 0xaf, 0xe4, 0xc0, 0xd0, 0x45, 0x9d, 0x8b, 0x5e, 0xd4, 0x18, - 0x8a, 0xc1, 0x85, 0x91, 0x0c, 0xc5, 0xbd, 0x4e, 0x97, 0xfa, 0x8c, 0x79, 0x44, 0xbe, 0x46, 0xdd, - 0xe3, 0x79, 0x6d, 0xa7, 0xbe, 0xdf, 0x92, 0x25, 0xea, 0x5c, 0xac, 0xb4, 0x7b, 0x0a, 0xf6, 0xd8, - 0x58, 0x9b, 0xb5, 0xd3, 0xdb, 0x53, 0xb0, 0x9c, 0xac, 0xfd, 0xb1, 0x04, 0xd7, 0x3d, 0x88, 0xf5, - 0xd8, 0x3c, 0x0a, 0xd4, 0xbd, 0xf4, 0xd4, 0x04, 0xeb, 0x5e, 0xfa, 0x1d, 0xd7, 0x09, 0x49, 0xbc, - 0x95, 0x4e, 0x48, 0x14, 0x68, 0xd6, 0xfe, 0x33, 0x01, 0x8b, 0xe1, 0x9d, 0x89, 0x6c, 0x3d, 0x63, - 0x6b, 0x6b, 0x00, 0xba, 0x6d, 0x4f, 0xc2, 0x8d, 0x1e, 0x4e, 0xa1, 0xc3, 0x4b, 0x90, 0xf9, 0xd2, - 0x3c, 0xf2, 0x43, 0x27, 0xfd, 0xa5, 0x79, 0xb4, 0xcf, 0x9a, 0xc1, 0xa7, 0x5a, 0xff, 0x05, 0x2d, - 0xb9, 0x27, 0xd6, 0xc8, 0x2d, 0x26, 0x04, 0xe9, 0xd0, 0x1a, 0xa1, 0x47, 0x70, 0xc3, 0x65, 0xf0, - 0xfa, 0x60, 0xa1, 0x5f, 0xb0, 0x2d, 0x89, 0x61, 0xaf, 0xc7, 0xc7, 0x5b, 0x6c, 0x34, 0x22, 0x88, - 0x31, 0xb8, 0xca, 0x91, 0x26, 0xc6, 0xc0, 0xfd, 0x81, 0x00, 0xdd, 0xf2, 0xb1, 0x6e, 0xe8, 0xf6, - 0x89, 0x3a, 0x20, 0xda, 0x60, 0xa4, 0x1b, 0xf3, 0x85, 0xd7, 0xc2, 0x97, 0xe6, 0xd1, 0x0e, 0x93, - 0x6f, 0x0a, 0xf1, 0x0b, 0xe2, 0xec, 0x07, 0x09, 0x50, 0xc4, 0xf2, 0x14, 0x1c, 0xce, 0xb0, 0xbb, - 0x6f, 0xd8, 0x44, 0xd0, 0xb0, 0x1f, 0xd1, 0x43, 0x45, 0x65, 0x45, 0xf5, 0x79, 0x33, 0xb6, 0x89, - 0xca, 0xa7, 0xc7, 0x82, 0x15, 0x29, 0x50, 0xb0, 0x27, 0x47, 0x63, 0xfd, 0x0a, 0x7d, 0x36, 0xe0, - 0x82, 0x97, 0x68, 0xb3, 0xfd, 0x8d, 0x04, 0x8b, 0x71, 0xbb, 0xb8, 0xcc, 0x8f, 0x08, 0xaf, 0x52, - 0xaf, 0xc6, 0x3f, 0x27, 0x2c, 0x7b, 0xf6, 0xe1, 0xd9, 0xc8, 0x35, 0x01, 0x0b, 0x63, 0xa6, 0xbe, - 0x39, 0x71, 0x58, 0xe0, 0xe4, 0x68, 0x18, 0xf7, 0x38, 0xe1, 0xbd, 0x3e, 0x14, 0x83, 0x90, 0x1c, - 0x15, 0x20, 0xdb, 0x3d, 0x6c, 0x34, 0x94, 0x6e, 0x57, 0xbe, 0x86, 0x56, 0x61, 0x99, 0x62, 0x85, - 0x7a, 0xef, 0x10, 0x2b, 0xea, 0x4e, 0x07, 0x3f, 0xa9, 0xf7, 0x54, 0x05, 0xe3, 0x0e, 0x96, 0x25, - 0xb4, 0x02, 0x4b, 0x8d, 0xce, 0x93, 0x83, 0xc3, 0x9e, 0xa2, 0xd6, 0x9b, 0x4d, 0xac, 0x74, 0xbb, - 0x62, 0x28, 0x41, 0x71, 0x06, 0x4b, 0x09, 0x82, 0xb0, 0xf8, 0xe0, 0xdf, 0xf2, 0x50, 0xdc, 0x65, - 0xb7, 0x06, 0xb1, 0x5e, 0xea, 0x7d, 0x82, 0x3e, 0x81, 0xeb, 0x5d, 0x66, 0xde, 0xf0, 0x63, 0xfc, - 0x39, 0x77, 0xde, 0x6a, 0xc9, 0xbf, 0x4d, 0xa9, 0x4a, 0x9f, 0x42, 0xa9, 0x4b, 0x0c, 0xbf, 0x41, - 0x8e, 0xd6, 0x02, 0x72, 0xd3, 0x3d, 0xf2, 0xa8, 0x78, 0x9b, 0x46, 0x64, 0xb4, 0xf7, 0x8b, 0x36, - 0xbd, 0x1a, 0xf1, 0x9c, 0xb6, 0xf0, 0xea, 0x39, 0xbb, 0x43, 0x0d, 0x58, 0x98, 0x6a, 0x5b, 0xa0, - 0x0d, 0x6f, 0xcd, 0xf8, 0x86, 0x46, 0x74, 0x53, 0xbf, 0x02, 0x85, 0x40, 0x0d, 0x87, 0x56, 0xdc, - 0xb5, 0xa6, 0xea, 0xba, 0xa8, 0xe0, 0x63, 0x58, 0x98, 0x6a, 0x04, 0xa1, 0x8b, 0x5a, 0x44, 0xab, - 0x8b, 0x91, 0xde, 0x0d, 0x6f, 0x35, 0x61, 0x90, 0x31, 0x71, 0x2c, 0x9d, 0xbc, 0x24, 0x6e, 0xb7, - 0x18, 0x5d, 0xf8, 0xc3, 0x90, 0xd5, 0x5b, 0x51, 0xbb, 0x84, 0x7e, 0x69, 0xd2, 0xa3, 0x73, 0x86, - 0x9b, 0x13, 0x17, 0x1b, 0xc7, 0x67, 0x38, 0xa7, 0xad, 0xd1, 0xa4, 0x36, 0x8f, 0x94, 0xff, 0xde, - 0x56, 0xcf, 0x6d, 0x0c, 0x44, 0x6d, 0xd7, 0x82, 0x45, 0x1e, 0x86, 0x91, 0xca, 0x30, 0x1e, 0xb1, - 0xaf, 0xae, 0xcd, 0xc4, 0xe5, 0xe8, 0x0b, 0x58, 0x11, 0xfb, 0xdd, 0x31, 0xad, 0x28, 0xba, 0x5c, - 0x0b, 0x6b, 0x14, 0x19, 0x5e, 0x5d, 0x9f, 0x8d, 0x17, 0x51, 0x03, 0x16, 0x31, 0x39, 0x35, 0x2d, - 0x67, 0x47, 0xd3, 0x47, 0x3d, 0xb3, 0x29, 0xea, 0x26, 0x74, 0x6b, 0x16, 0xb4, 0x88, 0xaa, 0xfb, - 0xd4, 0x03, 0xf4, 0x41, 0x9b, 0x3f, 0x36, 0x8f, 0xd0, 0x6a, 0xb4, 0x41, 0xe2, 0xdf, 0xde, 0xab, - 0x37, 0x63, 0xc7, 0x84, 0xce, 0x4d, 0xa8, 0x72, 0x0b, 0xc6, 0xe5, 0xf8, 0x78, 0xc1, 0xc9, 0x68, - 0x6a, 0x63, 0x9f, 0xc1, 0x22, 0xfb, 0x1b, 0x8c, 0x5d, 0xe2, 0x84, 0xfe, 0x14, 0xc1, 0xfd, 0xbd, - 0xb6, 0xff, 0x07, 0x1a, 0xab, 0x6e, 0x1f, 0x21, 0xc4, 0xb7, 0x0d, 0x2b, 0x21, 0x79, 0x1a, 0xf2, - 0x36, 0xd6, 0x8c, 0x17, 0x6d, 0x72, 0x16, 0x37, 0x09, 0x0a, 0xfe, 0x0e, 0x5c, 0xcc, 0xd1, 0x84, - 0x9b, 0xf1, 0x73, 0xf4, 0x4c, 0x47, 0x1b, 0x5d, 0x72, 0x96, 0xed, 0x5f, 0xff, 0xf9, 0xc7, 0x75, - 0xe9, 0xf5, 0x4f, 0xeb, 0xd2, 0xb7, 0x3f, 0xad, 0x4b, 0x3f, 0xfc, 0xb4, 0x2e, 0xfd, 0xc9, 0x9b, - 0x75, 0xe9, 0xef, 0xdf, 0xac, 0x4b, 0xaf, 0xdf, 0xac, 0x4b, 0x50, 0xd2, 0xcd, 0xad, 0x23, 0xe7, - 0xd8, 0xe6, 0x82, 0xdb, 0xc0, 0x72, 0xe2, 0x01, 0xbd, 0x85, 0x0e, 0xa4, 0x2f, 0xf8, 0xdf, 0xb8, - 0x1c, 0x65, 0xd8, 0xad, 0xf4, 0xd1, 0x7f, 0x07, 0x00, 0x00, 0xff, 0xff, 0x22, 0x13, 0x04, 0x66, - 0x0d, 0x33, 0x00, 0x00, + // 3874 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x3b, 0x4b, 0x6f, 0x1c, 0x59, + 0x57, 0xa9, 0x7e, 0xf7, 0xe9, 0x57, 0xf9, 0xc6, 0x76, 0xda, 0x4e, 0xfc, 0x98, 0x46, 0xf9, 0x26, + 0xf9, 0xbe, 0x6f, 0x9c, 0x90, 0x89, 0x82, 0x3e, 0xbe, 0x6f, 0x66, 0x68, 0x77, 0x97, 0x1f, 0xa1, + 0xd3, 0xed, 0xdc, 0x6e, 0x13, 0x32, 0x42, 0x2a, 0x95, 0xbb, 0xaf, 0xdb, 0x35, 0xe9, 0xae, 0x72, + 0xaa, 0xaa, 0xe3, 0xc9, 0x2c, 0x58, 0xb0, 0x43, 0x48, 0x88, 0x15, 0x20, 0x7e, 0x00, 0x12, 0x88, + 0x05, 0x42, 0x82, 0x05, 0x0b, 0x60, 0x19, 0xc4, 0x82, 0x61, 0x01, 0xcb, 0x79, 0x65, 0xc1, 0x16, + 0x56, 0xcc, 0x0a, 0xa1, 0xfb, 0xa8, 0x67, 0x97, 0xdb, 0x6e, 0x13, 0x31, 0x12, 0x1b, 0xab, 0xef, + 0xb9, 0xe7, 0xdc, 0x7b, 0xcf, 0xf3, 0x9e, 0x73, 0x6e, 0x19, 0xaa, 0xa7, 0x96, 0xe9, 0x98, 0xf6, + 0xbd, 0xe1, 0x44, 0xb3, 0x06, 0xfc, 0xef, 0x16, 0x03, 0xa1, 0x34, 0x1b, 0xac, 0xde, 0x1f, 0xea, + 0xce, 0xc9, 0xe4, 0x68, 0xab, 0x6f, 0x8e, 0xef, 0x39, 0x96, 0x69, 0x7c, 0x30, 0xb1, 0xef, 0x31, + 0x84, 0xa3, 0xc9, 0xf1, 0xbd, 0xa1, 0x39, 0x34, 0xd9, 0x80, 0xfd, 0xe2, 0x84, 0xab, 0x1b, 0x43, + 0xd3, 0x1c, 0x8e, 0x88, 0x8f, 0xe5, 0xe8, 0x63, 0x62, 0x3b, 0xda, 0xf8, 0x94, 0x23, 0xd4, 0xfe, + 0x5b, 0x02, 0xa8, 0x0f, 0xc6, 0xba, 0xf1, 0x74, 0x42, 0xac, 0xd7, 0xe8, 0x97, 0xa0, 0x64, 0x91, + 0x97, 0x13, 0x62, 0x3b, 0xc4, 0x52, 0x4f, 0xf5, 0x41, 0x55, 0xda, 0x94, 0xee, 0xe4, 0x71, 0xd1, + 0x03, 0x1e, 0xe8, 0x03, 0xd4, 0x00, 0x78, 0x49, 0xb1, 0xd5, 0x81, 0xe6, 0x90, 0x6a, 0x62, 0x53, + 0xba, 0x53, 0x78, 0xb0, 0xba, 0xc5, 0x77, 0xda, 0x72, 0x77, 0xda, 0xea, 0xb9, 0x3b, 0x6d, 0xe7, + 0xde, 0x7c, 0xb5, 0x71, 0xed, 0x0f, 0xbe, 0xde, 0x90, 0x70, 0x9e, 0xd1, 0x35, 0x35, 0x87, 0xa0, + 0x0d, 0x28, 0xf0, 0x45, 0xfa, 0xe6, 0xc4, 0x70, 0xaa, 0xc9, 0x4d, 0xe9, 0x4e, 0x1a, 0xf3, 0x75, + 0x1b, 0x14, 0x82, 0x76, 0xc1, 0xdd, 0x55, 0xa5, 0x87, 0xae, 0xa6, 0xe6, 0xd8, 0xa7, 0x20, 0x28, + 0xe9, 0x1c, 0xba, 0x05, 0x79, 0x5b, 0x1f, 0x1a, 0x9a, 0x33, 0xb1, 0x48, 0x35, 0xbd, 0x29, 0xdd, + 0x29, 0x62, 0x1f, 0x50, 0xfb, 0xd7, 0x24, 0x14, 0x9b, 0x9a, 0x3e, 0x7a, 0xdd, 0x9d, 0x8c, 0xc7, + 0x9a, 0xf5, 0x3a, 0xc2, 0x9d, 0x74, 0x35, 0xee, 0xf6, 0xa9, 0x1c, 0xed, 0x53, 0xd3, 0xb0, 0x09, + 0x3f, 0xfd, 0x3c, 0x52, 0x2a, 0xba, 0xa4, 0xec, 0xf8, 0xef, 0x41, 0xf1, 0xd4, 0x22, 0xa7, 0x9a, + 0x25, 0x34, 0x92, 0x64, 0x1a, 0x29, 0xb8, 0x30, 0xaa, 0x90, 0x10, 0x87, 0xa9, 0x08, 0x87, 0xe8, + 0x3e, 0x2c, 0x9e, 0x99, 0xd6, 0x0b, 0xdd, 0x18, 0xaa, 0xb6, 0x63, 0x5a, 0xda, 0x90, 0xa8, 0xb6, + 0xfe, 0x05, 0x17, 0x45, 0x12, 0x23, 0x31, 0xd7, 0xe5, 0x53, 0x5d, 0xfd, 0x0b, 0x42, 0xad, 0xc0, + 0x20, 0x67, 0x6a, 0xdf, 0x34, 0x1c, 0x4b, 0xeb, 0x3b, 0x76, 0x35, 0xc3, 0x50, 0x8b, 0x06, 0x39, + 0x6b, 0xb8, 0x30, 0xf4, 0x53, 0x40, 0x21, 0x24, 0xf5, 0xc4, 0xb4, 0x9d, 0x6a, 0x96, 0x61, 0xca, + 0x41, 0xcc, 0x3d, 0xd3, 0x76, 0xe8, 0x21, 0xc2, 0xd8, 0x16, 0x31, 0x1c, 0x62, 0x55, 0x73, 0xfc, + 0x10, 0x41, 0x7c, 0xcc, 0x66, 0xd0, 0x47, 0x70, 0x33, 0x4c, 0xa1, 0xbd, 0x22, 0xec, 0xf0, 0xa7, + 0x96, 0xde, 0x27, 0xd5, 0x3c, 0x23, 0xac, 0x06, 0x09, 0xeb, 0x1c, 0xe1, 0x80, 0xce, 0xd7, 0xfe, + 0x22, 0x01, 0x05, 0xba, 0xf3, 0xff, 0x5b, 0xb5, 0xbe, 0x47, 0xfd, 0xa3, 0x6f, 0x5a, 0x03, 0xe1, + 0x41, 0x69, 0xe6, 0x41, 0x05, 0x0e, 0xe3, 0x2e, 0x74, 0x17, 0x32, 0xb6, 0xa3, 0x39, 0x13, 0xaa, + 0xc0, 0xe4, 0x9d, 0xc2, 0x83, 0x85, 0x2d, 0x1e, 0x54, 0x98, 0x5c, 0xd8, 0x04, 0x16, 0x08, 0xb5, + 0x3f, 0x93, 0x00, 0x7c, 0x30, 0x5a, 0x81, 0x1c, 0x55, 0x67, 0x20, 0x04, 0x64, 0xe9, 0x98, 0x9e, + 0xea, 0x26, 0xe4, 0x8f, 0xf5, 0x91, 0xb0, 0xa1, 0x04, 0xd3, 0x42, 0x8e, 0x02, 0x98, 0xe5, 0x6c, + 0x40, 0x81, 0xda, 0x93, 0xaa, 0x8d, 0x3d, 0xaf, 0x4e, 0x62, 0xa0, 0xa0, 0x3a, 0x83, 0xa0, 0x35, + 0x00, 0x8b, 0x9c, 0x69, 0xd6, 0x40, 0x3d, 0x72, 0x1c, 0xc6, 0x54, 0x12, 0xe7, 0x39, 0x64, 0xdb, + 0x71, 0xa8, 0xe5, 0xd9, 0x13, 0xfb, 0x94, 0xf4, 0x1d, 0xb5, 0x7f, 0x42, 0x34, 0xce, 0x55, 0x0e, + 0x17, 0x05, 0xb0, 0x41, 0x61, 0xb5, 0xdf, 0x93, 0x20, 0xd9, 0x32, 0x87, 0x48, 0x81, 0x42, 0xff, + 0x44, 0x33, 0x86, 0x42, 0x17, 0xf3, 0xe8, 0x14, 0x38, 0x21, 0xd3, 0xc4, 0x6d, 0x28, 0x9b, 0x96, + 0x3e, 0xd4, 0x0d, 0xcd, 0x31, 0xb9, 0x2e, 0x12, 0x8c, 0xe3, 0x92, 0x0f, 0xa5, 0x7c, 0x2f, 0x43, + 0x86, 0x13, 0x09, 0x55, 0x89, 0x51, 0xed, 0xdf, 0xd2, 0x50, 0x74, 0x4d, 0xf0, 0x09, 0x71, 0x34, + 0x2a, 0x03, 0xd7, 0x68, 0x55, 0x4f, 0x7c, 0xe0, 0x82, 0xf6, 0x07, 0x5c, 0x06, 0x86, 0x1b, 0x61, + 0xf9, 0x66, 0x79, 0x0e, 0xa1, 0x1b, 0x05, 0x65, 0x9f, 0x0c, 0xcb, 0x7e, 0x0d, 0xc0, 0x3e, 0xa1, + 0xc2, 0x3b, 0xd1, 0xec, 0x13, 0x26, 0xbd, 0x3c, 0xce, 0x33, 0xc8, 0x9e, 0x66, 0x9f, 0xd0, 0x9d, + 0xf9, 0xb4, 0x6e, 0x0c, 0xc8, 0xe7, 0xc2, 0x22, 0x38, 0xc5, 0x3e, 0x85, 0xa0, 0x1f, 0x41, 0x85, + 0x23, 0xf8, 0x1a, 0xe4, 0xae, 0x5d, 0x62, 0xe0, 0x1d, 0x57, 0x8d, 0xae, 0x8e, 0xd9, 0x36, 0x59, + 0xb6, 0x0d, 0xd3, 0x31, 0xdb, 0xa5, 0xc1, 0x8f, 0xaf, 0xda, 0x8e, 0x66, 0x39, 0xcc, 0x81, 0x2f, + 0xed, 0x49, 0x94, 0xae, 0x4b, 0xc9, 0xd0, 0x27, 0x90, 0x63, 0x8b, 0x10, 0x63, 0xc0, 0x5c, 0xf9, + 0xb2, 0x4b, 0x64, 0x29, 0x95, 0x62, 0x30, 0x33, 0x64, 0xc6, 0xcc, 0xc4, 0x04, 0xfc, 0x88, 0x0c, + 0x20, 0xe4, 0x44, 0xec, 0xbe, 0x65, 0x9e, 0xb1, 0xd9, 0x02, 0x97, 0x13, 0x87, 0xd0, 0xe9, 0x45, + 0x48, 0xf3, 0x20, 0x52, 0x64, 0xcc, 0xf3, 0x01, 0x55, 0xb0, 0x30, 0xdb, 0x12, 0x03, 0x8b, 0x11, + 0xfa, 0x09, 0x2c, 0xf4, 0xcd, 0xd1, 0x48, 0x73, 0x88, 0xa5, 0x8d, 0x5c, 0xcb, 0x2e, 0xf3, 0x38, + 0xe7, 0x4f, 0x08, 0xfb, 0x56, 0xa0, 0x72, 0xaa, 0xbd, 0x36, 0x27, 0x8e, 0x6a, 0xf7, 0x4f, 0xc8, + 0x60, 0x32, 0x22, 0xd5, 0xca, 0xa6, 0x74, 0xa7, 0xfc, 0xe0, 0x96, 0xf0, 0xbd, 0xa0, 0xa9, 0x6c, + 0x75, 0x05, 0x0e, 0x2e, 0x73, 0x22, 0x77, 0x4c, 0x35, 0x69, 0x4c, 0xc6, 0x2a, 0x87, 0xda, 0x55, + 0x99, 0x6b, 0xd2, 0x98, 0x8c, 0x0f, 0x38, 0x84, 0x1f, 0xca, 0x70, 0x74, 0x63, 0x48, 0xa5, 0x28, + 0x0e, 0xb5, 0xe0, 0x1e, 0xca, 0x9d, 0xe0, 0x87, 0xaa, 0x3d, 0x84, 0x9c, 0xb7, 0x72, 0x01, 0xb2, + 0x4f, 0x3a, 0xed, 0xde, 0x5e, 0xeb, 0xb9, 0x7c, 0x0d, 0x95, 0x20, 0xff, 0xf4, 0xb0, 0x8e, 0x7b, + 0x0a, 0x6e, 0x3d, 0x97, 0x25, 0x54, 0x84, 0x5c, 0xbd, 0xdd, 0x3e, 0xac, 0xb7, 0x5a, 0xcf, 0xe5, + 0x44, 0xed, 0xef, 0xf3, 0x90, 0x73, 0x4f, 0x8b, 0x7e, 0x06, 0x39, 0xd7, 0x82, 0x85, 0xa3, 0x5d, + 0x8f, 0x61, 0x88, 0x2b, 0xea, 0xcb, 0xaf, 0x36, 0x24, 0xec, 0xa1, 0xa3, 0x0f, 0x21, 0x4d, 0x83, + 0x0c, 0x0f, 0x16, 0xe5, 0x07, 0x6b, 0x11, 0x3a, 0xef, 0x07, 0x0d, 0x3d, 0x04, 0x73, 0x5c, 0x74, + 0x17, 0x64, 0xe1, 0x23, 0x7e, 0x08, 0x4c, 0xb2, 0x10, 0x58, 0xe1, 0xf0, 0xae, 0x17, 0x08, 0x6f, + 0x43, 0x99, 0xf9, 0x4b, 0x34, 0x56, 0x96, 0x28, 0xd4, 0x47, 0xc3, 0x80, 0x84, 0x4d, 0x50, 0x44, + 0x32, 0xe0, 0x41, 0x23, 0x3d, 0x87, 0xed, 0xc9, 0x9c, 0xbe, 0xcb, 0xc8, 0x59, 0xe8, 0xb8, 0x0b, + 0x72, 0x60, 0x4d, 0xbe, 0x79, 0x86, 0x9f, 0xd2, 0xc7, 0x75, 0x6f, 0x61, 0x11, 0x73, 0xd4, 0x91, + 0x39, 0xac, 0x66, 0x59, 0x3c, 0x06, 0x21, 0x8a, 0x96, 0x39, 0xdc, 0x4e, 0xff, 0xf9, 0xd7, 0x1b, + 0xd2, 0x07, 0x38, 0xcf, 0x91, 0x68, 0x78, 0x6b, 0x83, 0x3c, 0xd2, 0x6c, 0x47, 0x1d, 0x9b, 0x03, + 0xfd, 0xf8, 0x35, 0x3f, 0xee, 0x3c, 0xde, 0x56, 0xa6, 0xd4, 0x4f, 0x18, 0x31, 0x3b, 0xec, 0xfb, + 0x50, 0xe1, 0x1e, 0xe3, 0x9f, 0x35, 0xcf, 0xce, 0x5a, 0x66, 0xe0, 0x6e, 0xf0, 0x66, 0x09, 0x5d, + 0x4d, 0x30, 0x7d, 0x35, 0x7d, 0x00, 0xc8, 0x43, 0xf1, 0x97, 0x2b, 0xb0, 0xe5, 0x16, 0xdc, 0x19, + 0x7f, 0xc5, 0x3e, 0xdc, 0x64, 0xac, 0xd8, 0x93, 0x7e, 0x9f, 0xd8, 0xb6, 0xda, 0x3f, 0xd1, 0x46, + 0x23, 0xe2, 0x45, 0xee, 0xe2, 0x1c, 0x5c, 0x55, 0xe9, 0x42, 0x5d, 0xbe, 0x4e, 0xc3, 0x5d, 0x86, + 0xf1, 0xd7, 0x83, 0xeb, 0x6c, 0x93, 0xc8, 0xe2, 0xa5, 0x39, 0x16, 0x5f, 0xa0, 0x0b, 0x84, 0x57, + 0x7d, 0x1f, 0x2a, 0xe1, 0x05, 0x6d, 0xe6, 0xfb, 0x69, 0x5c, 0xee, 0x07, 0xf1, 0x6c, 0x9a, 0xe1, + 0xf8, 0x88, 0x67, 0x9a, 0x65, 0x08, 0xec, 0x0a, 0xc3, 0x46, 0xde, 0xdc, 0x33, 0xcd, 0x32, 0x38, + 0xc5, 0x23, 0xb8, 0xe1, 0x53, 0xb8, 0xa2, 0xe1, 0x44, 0xdc, 0xe1, 0x97, 0xbc, 0x69, 0xc1, 0x30, + 0xa7, 0xfb, 0x2d, 0xb8, 0x71, 0xac, 0x5b, 0x21, 0x4e, 0x05, 0x35, 0x8b, 0x00, 0x97, 0x65, 0x76, + 0x89, 0x2d, 0xd2, 0x88, 0x6c, 0x51, 0x7b, 0x23, 0x41, 0x29, 0xe4, 0x92, 0x28, 0x0f, 0xe9, 0x26, + 0xae, 0xef, 0xf4, 0xe4, 0x6b, 0x08, 0x20, 0xd3, 0xdd, 0xdf, 0x6d, 0x2b, 0x4d, 0x1e, 0x2d, 0x0e, + 0x0f, 0x5a, 0x9d, 0x7a, 0x53, 0x69, 0xca, 0x09, 0x94, 0x83, 0x54, 0xab, 0xd3, 0xed, 0xc9, 0x49, + 0x0a, 0x6f, 0xd4, 0xdb, 0x0d, 0xa5, 0xa5, 0x34, 0xe5, 0x14, 0xa5, 0x68, 0xb4, 0x3a, 0x5d, 0xa5, + 0x29, 0xa7, 0x69, 0xec, 0xc1, 0x4a, 0x5b, 0x79, 0xa6, 0x34, 0xe5, 0x0c, 0x45, 0xeb, 0x6c, 0x77, + 0x3b, 0x2d, 0xa5, 0xa7, 0xc8, 0x59, 0x4a, 0xfe, 0xac, 0x8e, 0xdb, 0x72, 0x0e, 0x95, 0x01, 0xd8, + 0x6e, 0x2a, 0x1b, 0xe7, 0xd1, 0x75, 0xa8, 0x60, 0xa5, 0xde, 0x7c, 0xae, 0x36, 0xf6, 0xea, 0xad, + 0x96, 0xd2, 0xde, 0x55, 0x64, 0xa0, 0x81, 0x0b, 0x2b, 0x0d, 0xac, 0xd4, 0x7b, 0x4a, 0x53, 0x2e, + 0xa0, 0x25, 0x58, 0xc0, 0xca, 0xd3, 0x43, 0xa5, 0xdb, 0x0b, 0x60, 0x15, 0x6b, 0xbf, 0x9f, 0x80, + 0x25, 0x76, 0xa7, 0x39, 0xa6, 0x45, 0x5a, 0xba, 0xed, 0x60, 0x91, 0x81, 0xa1, 0x5f, 0x85, 0xac, + 0x28, 0x11, 0x44, 0x34, 0xdb, 0x74, 0x5d, 0x91, 0x61, 0xd1, 0x00, 0x43, 0x09, 0xf7, 0x8d, 0x63, + 0x13, 0x73, 0x3c, 0xec, 0x12, 0xd0, 0xc2, 0xa4, 0x3f, 0xb1, 0xd8, 0xed, 0x35, 0x77, 0x0e, 0x58, + 0x10, 0x94, 0xcc, 0xb4, 0x7e, 0x01, 0x15, 0x7e, 0x0f, 0xd3, 0xe3, 0xa9, 0x63, 0xe2, 0x68, 0xd5, + 0x24, 0x8b, 0x0b, 0x8b, 0xe2, 0x30, 0xde, 0xd9, 0x69, 0x6c, 0xc5, 0xa5, 0xe3, 0xe0, 0x90, 0x5e, + 0x62, 0x3c, 0xf1, 0x4b, 0x31, 0x5b, 0xe1, 0x83, 0x0b, 0x8a, 0x9d, 0xbf, 0x49, 0x43, 0x29, 0xb4, + 0x68, 0x24, 0x17, 0x91, 0xa2, 0xb9, 0x48, 0x28, 0x11, 0x48, 0x44, 0x12, 0x81, 0x50, 0x26, 0x98, + 0x8c, 0x64, 0x82, 0xe1, 0x2c, 0x21, 0xf5, 0xbf, 0xcf, 0x12, 0xd2, 0x57, 0xc9, 0x12, 0x98, 0xf7, + 0x92, 0xfe, 0x0b, 0xf5, 0x98, 0x69, 0xcf, 0xe8, 0xbf, 0x66, 0xf1, 0x99, 0x79, 0x2f, 0xe9, 0xbf, + 0xd8, 0x71, 0xa1, 0x7e, 0x3a, 0x71, 0x4c, 0x88, 0x28, 0x62, 0x78, 0x3a, 0xb1, 0x43, 0x48, 0x20, + 0x9d, 0xa0, 0xb3, 0xbc, 0x64, 0x11, 0xe9, 0x04, 0x9d, 0xf6, 0xd2, 0x2e, 0xae, 0x8f, 0x7c, 0x20, + 0xed, 0xe2, 0x79, 0xf8, 0x6d, 0x28, 0x8f, 0x75, 0x43, 0x1f, 0x4f, 0xc6, 0x2a, 0x83, 0xda, 0x2c, + 0xa4, 0xa6, 0x71, 0x49, 0x40, 0xbb, 0x0c, 0x48, 0xef, 0x74, 0x9a, 0xbd, 0xbf, 0x22, 0x96, 0xea, + 0x9c, 0x58, 0xc4, 0x3e, 0x31, 0x47, 0x3c, 0x79, 0x49, 0x63, 0x59, 0x4c, 0xf4, 0x5c, 0x78, 0x24, + 0xc5, 0x29, 0x46, 0x53, 0x9c, 0x50, 0x7a, 0x54, 0x8a, 0xa4, 0x47, 0x3f, 0x87, 0x55, 0x16, 0xa0, + 0x22, 0x81, 0x4d, 0x1d, 0xe9, 0x63, 0xdd, 0x11, 0xe1, 0xed, 0x06, 0xc5, 0x08, 0x85, 0x42, 0xbb, + 0x45, 0xa7, 0x51, 0x1d, 0xd6, 0xe2, 0xc3, 0xb8, 0x4b, 0xcf, 0x03, 0xde, 0xaa, 0x1d, 0x13, 0xa3, + 0xc5, 0x12, 0x2c, 0x54, 0x86, 0xb4, 0xc2, 0x02, 0xa6, 0x88, 0x7a, 0x28, 0xac, 0x1a, 0x1a, 0x2f, + 0x6b, 0xff, 0x98, 0x81, 0x8a, 0x67, 0xb8, 0xa2, 0x46, 0xd9, 0x99, 0x76, 0x1f, 0xee, 0xcb, 0xb1, + 0xee, 0x13, 0x48, 0x4d, 0x22, 0x8e, 0xf4, 0x28, 0x9c, 0x9f, 0x6c, 0x46, 0xa9, 0xf9, 0x76, 0x5b, + 0x14, 0x37, 0x94, 0xa2, 0x3c, 0x84, 0xbc, 0x5f, 0x21, 0x73, 0xc7, 0xad, 0x44, 0x72, 0x1b, 0xff, + 0x56, 0xf7, 0xca, 0xe6, 0xb8, 0xc4, 0x26, 0x15, 0x9f, 0xd8, 0x60, 0x40, 0x5c, 0x87, 0x16, 0xe9, + 0x13, 0xfd, 0x15, 0xb9, 0x42, 0xc6, 0xc2, 0xe8, 0x31, 0x27, 0x67, 0x31, 0x27, 0x9c, 0x86, 0x64, + 0x2e, 0x91, 0x86, 0x44, 0xc3, 0x5d, 0xf6, 0xaa, 0xe1, 0x2e, 0x26, 0xff, 0xc8, 0xc5, 0xe6, 0x1f, + 0x0a, 0xad, 0x6c, 0x0d, 0x47, 0x1b, 0xa9, 0x5c, 0x2f, 0x79, 0xa6, 0x97, 0xda, 0x39, 0x7a, 0xc1, + 0x0c, 0x95, 0x6b, 0xa6, 0x60, 0xf9, 0x83, 0x77, 0x9f, 0xc6, 0xd4, 0x26, 0x90, 0xf7, 0xac, 0x20, + 0x78, 0x2b, 0x96, 0x20, 0xcf, 0x6f, 0xc2, 0xfd, 0xf6, 0xae, 0x2c, 0xb1, 0x6b, 0xee, 0xb0, 0xdd, + 0xa6, 0x83, 0x04, 0x92, 0xa1, 0x78, 0x50, 0xc7, 0xbd, 0xfd, 0x7a, 0x4b, 0x15, 0xf7, 0xa3, 0x7b, + 0x53, 0xa6, 0xe8, 0xaf, 0x66, 0xa7, 0xad, 0xc8, 0xe9, 0xd0, 0x9d, 0x99, 0x09, 0xdf, 0x6e, 0xd9, + 0xda, 0x13, 0x28, 0x04, 0x98, 0x44, 0x59, 0x48, 0xb6, 0x95, 0x67, 0xf2, 0x35, 0x54, 0x81, 0x82, + 0xbb, 0x34, 0x05, 0xb0, 0x8d, 0x95, 0xdf, 0x3c, 0xd8, 0xc7, 0xec, 0x42, 0xce, 0x43, 0x9a, 0x5d, + 0xb6, 0xfc, 0x46, 0x76, 0xd7, 0x93, 0x53, 0xb4, 0xd4, 0x5f, 0xf0, 0xbc, 0xf2, 0x29, 0xbd, 0xd2, + 0x74, 0xd3, 0x88, 0x94, 0x96, 0x52, 0xb4, 0xb4, 0x0c, 0x16, 0xa5, 0x89, 0x70, 0x51, 0x4a, 0xeb, + 0xdd, 0x93, 0x89, 0xf1, 0x42, 0x54, 0x9d, 0xa2, 0x93, 0xc7, 0x40, 0xbc, 0xea, 0x5c, 0x84, 0xb4, + 0x61, 0x1a, 0x7d, 0x22, 0x0a, 0x56, 0x3e, 0xa0, 0xa5, 0x3e, 0xf9, 0x9c, 0x55, 0xfa, 0x9a, 0x61, + 0x9f, 0x11, 0x8b, 0x19, 0x76, 0x1e, 0x17, 0x39, 0xb0, 0xce, 0x60, 0xb5, 0xdf, 0x49, 0xc2, 0xca, + 0x81, 0x65, 0x9a, 0xc7, 0x9d, 0x63, 0x4c, 0x4e, 0x47, 0x7a, 0x5f, 0x73, 0x88, 0x77, 0x76, 0xf4, + 0x31, 0xe4, 0x5e, 0x8a, 0xf3, 0x0b, 0xd7, 0xaf, 0xba, 0x0e, 0x18, 0xe5, 0x2f, 0x58, 0x99, 0xb8, + 0x34, 0xe8, 0xd7, 0xa1, 0x1c, 0x49, 0x16, 0xe7, 0xb9, 0xcb, 0x4b, 0xa1, 0x04, 0x30, 0x1c, 0x71, + 0x93, 0x91, 0x88, 0x1b, 0x63, 0xfb, 0xa9, 0x58, 0xdb, 0xdf, 0x80, 0x02, 0x93, 0x73, 0x48, 0x26, + 0x40, 0x41, 0x5c, 0x22, 0xe8, 0x71, 0xa0, 0xda, 0xe1, 0x67, 0xce, 0xcc, 0xd3, 0x83, 0x72, 0x6b, + 0x22, 0xb7, 0xf3, 0x11, 0xa9, 0x9c, 0xb2, 0x31, 0x95, 0x53, 0xed, 0xb7, 0x61, 0x99, 0x3a, 0xdd, + 0x94, 0x4c, 0xed, 0x70, 0x7a, 0x20, 0x45, 0xd2, 0x83, 0x5d, 0xb7, 0xd9, 0xe0, 0xca, 0xdb, 0xae, + 0x26, 0x58, 0xbc, 0x59, 0x17, 0x4a, 0x62, 0xd7, 0xde, 0xf4, 0xaa, 0xb8, 0xcc, 0xc8, 0xbc, 0x71, + 0xed, 0x9f, 0x13, 0x70, 0xe3, 0x1c, 0xdc, 0xd9, 0x27, 0x08, 0xdb, 0x74, 0x22, 0x6a, 0xd3, 0x97, + 0x68, 0xc1, 0xdd, 0x86, 0xb2, 0x7b, 0x7a, 0x35, 0x98, 0x6d, 0x95, 0x5c, 0x28, 0xbf, 0xe0, 0x1f, + 0x41, 0xde, 0x67, 0x32, 0xcd, 0x98, 0x3c, 0xd7, 0x12, 0xb1, 0x8f, 0x4a, 0x63, 0xab, 0xd8, 0x6d, + 0x7e, 0x55, 0xba, 0xe7, 0x64, 0x9a, 0x8c, 0x0f, 0x64, 0xd9, 0xf3, 0x02, 0xd9, 0x5b, 0x09, 0x56, + 0x1a, 0xec, 0x96, 0x0d, 0x65, 0x98, 0x22, 0xc1, 0xbd, 0x48, 0xa6, 0xb3, 0x9a, 0x57, 0x53, 0x0f, + 0x08, 0xc9, 0x98, 0x07, 0x84, 0xff, 0xa3, 0xd6, 0xfe, 0x7f, 0x24, 0x60, 0xe5, 0xdc, 0x7c, 0xfe, + 0xa2, 0xcc, 0x77, 0x8a, 0x91, 0x44, 0x0c, 0x23, 0x3f, 0xa6, 0x19, 0x1b, 0x67, 0xe4, 0xd4, 0xeb, + 0xab, 0xf3, 0x00, 0x58, 0x11, 0x13, 0x07, 0x6e, 0x53, 0xfd, 0xa7, 0x80, 0x42, 0xb8, 0x3c, 0x5a, + 0xa6, 0xdc, 0xf4, 0xce, 0x43, 0xe6, 0x31, 0x33, 0x2a, 0xa2, 0xcb, 0xdd, 0xfa, 0xd2, 0xb4, 0x88, + 0xe2, 0xba, 0x08, 0x99, 0x39, 0x16, 0x8b, 0x76, 0x11, 0x42, 0x22, 0xcf, 0x46, 0x45, 0xfe, 0x77, + 0x29, 0xa8, 0x52, 0x91, 0xef, 0x99, 0xb6, 0x13, 0x68, 0xe8, 0x73, 0x89, 0xcf, 0x68, 0x2a, 0xff, + 0xc0, 0xd2, 0x7e, 0x0e, 0xcb, 0x51, 0x21, 0xa9, 0xb6, 0x4e, 0xaf, 0xac, 0x79, 0xe4, 0x7e, 0x3d, + 0x2c, 0xaa, 0x2e, 0x5d, 0x00, 0x75, 0x45, 0x57, 0x22, 0xb8, 0xb4, 0x63, 0xce, 0xa5, 0x02, 0x39, + 0xbc, 0x6e, 0xcf, 0x44, 0x75, 0x37, 0x65, 0xcd, 0xb2, 0xd4, 0xe8, 0x27, 0x81, 0xe2, 0x35, 0x4e, + 0xf2, 0x5b, 0x5d, 0x32, 0x22, 0x91, 0x06, 0x5b, 0xd4, 0xc0, 0x72, 0x57, 0x35, 0xb0, 0x90, 0x41, + 0xe4, 0xa3, 0x06, 0xb1, 0x05, 0x85, 0xc0, 0xe6, 0x34, 0x77, 0xa9, 0xb7, 0x5a, 0xbc, 0x91, 0x50, + 0x6f, 0xf4, 0xf6, 0x7f, 0x43, 0x91, 0xa5, 0x40, 0x8b, 0x20, 0x51, 0xfb, 0x3e, 0xd0, 0x7d, 0xb0, + 0x29, 0x3f, 0xe8, 0x67, 0xd1, 0x52, 0x7d, 0xe3, 0x02, 0x6e, 0xfd, 0x4a, 0x7d, 0x1f, 0x4a, 0x43, + 0x62, 0x10, 0x4b, 0x73, 0xae, 0xf2, 0x5c, 0xe3, 0x92, 0x8a, 0x00, 0x7b, 0x61, 0xb2, 0x1f, 0xcc, + 0xf2, 0xaf, 0x52, 0x9c, 0xff, 0x75, 0x02, 0xaa, 0x98, 0x68, 0x83, 0xd7, 0x3b, 0xa6, 0xe5, 0xdd, + 0x1a, 0x97, 0x8c, 0x56, 0x33, 0xeb, 0xf4, 0xf0, 0x35, 0x98, 0x8c, 0x79, 0x35, 0x08, 0xbe, 0x57, + 0xa4, 0xa6, 0xde, 0x2b, 0x82, 0x7e, 0x9b, 0x0e, 0xfb, 0xed, 0x3b, 0xbb, 0xc0, 0x66, 0x86, 0x15, + 0xca, 0x9e, 0x6e, 0xab, 0x14, 0x5d, 0xe7, 0x4f, 0x86, 0x39, 0x9c, 0xd3, 0x6d, 0xcc, 0xc6, 0xb5, + 0xff, 0x94, 0xa8, 0xdc, 0x98, 0x98, 0xa6, 0xd3, 0xda, 0x87, 0x97, 0x4f, 0x11, 0x03, 0x89, 0x61, + 0x94, 0xad, 0xc4, 0x3b, 0x61, 0x2b, 0x39, 0x93, 0xad, 0x54, 0x98, 0xad, 0xb0, 0x4a, 0xd3, 0x61, + 0x95, 0xd6, 0x7e, 0x37, 0x01, 0x2b, 0x6e, 0x33, 0x6b, 0x9a, 0xe9, 0xfb, 0x90, 0x11, 0xf9, 0xe3, + 0x45, 0x2c, 0x0b, 0xbc, 0x59, 0xe9, 0x3d, 0x0b, 0x14, 0xb6, 0x39, 0x72, 0xeb, 0xcf, 0xe4, 0x7c, + 0x97, 0x35, 0xa3, 0x9c, 0x96, 0x45, 0x6a, 0xa6, 0x2c, 0xd2, 0xb3, 0x64, 0x91, 0x89, 0xca, 0x42, + 0x02, 0xb4, 0x63, 0x5a, 0x7d, 0xc2, 0x91, 0xdf, 0x85, 0xc7, 0xac, 0x40, 0x4e, 0x9b, 0x38, 0x27, + 0xc1, 0x27, 0x38, 0x3a, 0xbe, 0xf0, 0x51, 0xb6, 0xf6, 0x87, 0x12, 0x64, 0x30, 0xb1, 0x27, 0x23, + 0x07, 0xbd, 0x0f, 0xa9, 0xbe, 0x39, 0xe0, 0xcf, 0x92, 0x65, 0xef, 0xb5, 0xc4, 0x53, 0x9a, 0x39, + 0x20, 0x98, 0x21, 0xa0, 0x2a, 0x64, 0xc7, 0xc4, 0xb6, 0xb5, 0x21, 0x71, 0x45, 0x2f, 0x86, 0xd3, + 0xcf, 0xcd, 0xc9, 0xab, 0x3e, 0x37, 0xd7, 0xfe, 0x29, 0x05, 0x65, 0x2e, 0x1f, 0xef, 0x49, 0x67, + 0x66, 0x9a, 0xf7, 0x23, 0xa8, 0x8c, 0x58, 0x69, 0x10, 0xcc, 0x9f, 0x93, 0x77, 0xf2, 0xb8, 0x44, + 0xc1, 0x5d, 0x2f, 0x78, 0xcc, 0xec, 0x01, 0x3e, 0x84, 0xe5, 0x81, 0x79, 0x66, 0x8c, 0x4c, 0x6d, + 0xa0, 0x8a, 0x57, 0x5f, 0xf1, 0x52, 0xc5, 0x1f, 0x7e, 0x17, 0xdd, 0x59, 0xcc, 0x26, 0xc5, 0x13, + 0xda, 0x7d, 0x58, 0xe4, 0x66, 0x10, 0xa1, 0x11, 0xdf, 0x2b, 0x58, 0x42, 0xcb, 0x01, 0x0a, 0xa6, + 0x6a, 0x46, 0x41, 0x15, 0x96, 0x71, 0x55, 0x4d, 0x21, 0x54, 0x65, 0x6d, 0x90, 0xc5, 0xb4, 0x5f, + 0x34, 0xcd, 0xd3, 0xc5, 0x28, 0x73, 0x6a, 0xaf, 0x6c, 0xba, 0x1b, 0x5a, 0x2f, 0xd8, 0xc9, 0xa8, + 0xf8, 0x98, 0xde, 0xb7, 0x17, 0x9e, 0x04, 0x82, 0x41, 0x36, 0xcf, 0xce, 0x88, 0xdc, 0xb9, 0x86, + 0x1f, 0x6c, 0x59, 0xe2, 0xc2, 0x16, 0x0f, 0xe2, 0xf3, 0xde, 0x85, 0xd8, 0x36, 0x80, 0xdd, 0x0a, + 0xd6, 0x95, 0x9c, 0xb3, 0xc2, 0x3c, 0x25, 0xac, 0x57, 0x7d, 0x9e, 0xd7, 0xa1, 0x29, 0xc6, 0x55, + 0xa9, 0xb5, 0x6f, 0x25, 0x58, 0x0e, 0x5b, 0x93, 0xd7, 0x59, 0xff, 0xe5, 0xa9, 0x87, 0xc2, 0x25, + 0xcf, 0xf4, 0x43, 0x04, 0xfe, 0x03, 0x61, 0xcb, 0xfb, 0x4c, 0x81, 0x77, 0xe0, 0x1e, 0xc6, 0x13, + 0x88, 0x1d, 0xb6, 0xa2, 0x80, 0xc8, 0x97, 0x0c, 0x3b, 0xb0, 0x1c, 0x8f, 0x81, 0x2a, 0x50, 0xd8, + 0xee, 0xf4, 0xf6, 0x54, 0xf1, 0x82, 0xc1, 0xfa, 0x36, 0xcf, 0xea, 0xfb, 0x3d, 0xb5, 0xb5, 0xdf, + 0xed, 0xf1, 0x07, 0x0d, 0xac, 0x3c, 0x56, 0x1a, 0x3d, 0x96, 0x89, 0xfc, 0x0b, 0xe3, 0x91, 0x67, + 0x14, 0xa1, 0x83, 0x5c, 0x50, 0x74, 0x6e, 0x40, 0x41, 0x28, 0xd0, 0xa0, 0xee, 0xcf, 0x5d, 0x5a, + 0xd8, 0x67, 0x9b, 0xfa, 0x7b, 0x9c, 0x39, 0x26, 0xdf, 0xb1, 0x39, 0xa6, 0x62, 0xcd, 0xb1, 0xf6, + 0x57, 0x49, 0xb8, 0xe1, 0x0a, 0xe5, 0xdd, 0x32, 0xf5, 0x89, 0x9b, 0x91, 0x26, 0x99, 0x0a, 0xef, + 0x46, 0xc2, 0x5d, 0x64, 0x33, 0xa1, 0x5a, 0xaa, 0x17, 0x37, 0x1f, 0xdd, 0xf2, 0x8c, 0x80, 0x57, + 0x83, 0xcb, 0xf1, 0xed, 0x3e, 0x57, 0xcd, 0xe1, 0x76, 0x4b, 0x3a, 0xd2, 0x6e, 0xa9, 0xf3, 0x20, + 0x3d, 0x7f, 0x4e, 0x92, 0xb3, 0x67, 0xf8, 0x42, 0x36, 0xd6, 0x17, 0x54, 0x00, 0x9f, 0x1b, 0x84, + 0xa0, 0xdc, 0xe8, 0xb4, 0x7b, 0xb8, 0xde, 0xe8, 0xa9, 0xec, 0xd9, 0x4a, 0xbe, 0x86, 0x96, 0x60, + 0xa1, 0xd9, 0x79, 0xd6, 0x6e, 0x75, 0xea, 0x4d, 0xb5, 0xdd, 0xe9, 0xa9, 0xac, 0xe7, 0x27, 0xa1, + 0x05, 0x28, 0xb9, 0x8f, 0x56, 0xf5, 0xdd, 0xfa, 0x7e, 0x5b, 0x4e, 0xa0, 0xeb, 0x50, 0xf1, 0xa8, + 0x45, 0x4a, 0x9c, 0xac, 0xfd, 0x69, 0x12, 0x96, 0x1a, 0x9a, 0xd1, 0x27, 0x23, 0xdf, 0xae, 0x2f, + 0x57, 0xa8, 0xcf, 0x6a, 0x7e, 0x44, 0xb2, 0xbe, 0xe4, 0x05, 0x5f, 0xa9, 0xa4, 0x66, 0x7d, 0xa5, + 0x12, 0x49, 0x0a, 0xeb, 0x90, 0xb1, 0x88, 0x66, 0x9b, 0x06, 0x13, 0xbd, 0x6f, 0x0c, 0xb1, 0x4c, + 0x08, 0x28, 0x66, 0x04, 0x58, 0x10, 0x86, 0x15, 0x98, 0xbd, 0x92, 0x02, 0x43, 0x17, 0x75, 0x2e, + 0x7a, 0x51, 0x63, 0x28, 0x06, 0x37, 0x46, 0x32, 0x14, 0xf7, 0x3a, 0x5d, 0xaa, 0x33, 0xa6, 0x11, + 0xf9, 0x1a, 0x55, 0x8f, 0xa7, 0xb5, 0x9d, 0xfa, 0x7e, 0x4b, 0x96, 0xa8, 0x72, 0xb1, 0xd2, 0xee, + 0x29, 0xd8, 0x43, 0x63, 0x6d, 0xd6, 0x4e, 0x6f, 0x4f, 0xc1, 0x72, 0xb2, 0xf6, 0x47, 0x12, 0x5c, + 0xf7, 0x52, 0xac, 0xc7, 0xe6, 0x51, 0xa0, 0xee, 0xa5, 0x5e, 0x13, 0xac, 0x7b, 0xe9, 0x38, 0xae, + 0x13, 0x92, 0x78, 0x27, 0x9d, 0x90, 0x68, 0xa2, 0x59, 0xfb, 0xaf, 0x04, 0x2c, 0x86, 0x4f, 0x26, + 0xa2, 0xf5, 0x8c, 0xa3, 0xad, 0x01, 0xe8, 0xb6, 0x3d, 0x09, 0x37, 0x7a, 0x38, 0x84, 0x4e, 0x2f, + 0x41, 0xe6, 0x33, 0xf3, 0xc8, 0x37, 0x9d, 0xf4, 0x67, 0xe6, 0xd1, 0x3e, 0x6b, 0x06, 0x9f, 0x6a, + 0xfd, 0x17, 0xb4, 0xe4, 0x9e, 0x58, 0x23, 0xb7, 0x98, 0x10, 0xa0, 0x43, 0x6b, 0x84, 0x1e, 0xc1, + 0x0d, 0x17, 0xc1, 0xeb, 0x83, 0x85, 0xbe, 0x60, 0x5b, 0x12, 0xd3, 0x5e, 0x8f, 0x8f, 0xb7, 0xd8, + 0xa8, 0x45, 0x10, 0x63, 0x70, 0x15, 0x97, 0x26, 0xc6, 0xc0, 0xfd, 0x40, 0x80, 0x1e, 0xf9, 0x58, + 0x37, 0x74, 0xfb, 0x44, 0x1d, 0x10, 0x6d, 0x30, 0xd2, 0x8d, 0xf9, 0xcc, 0x6b, 0xe1, 0x33, 0xf3, + 0x68, 0x87, 0xd1, 0x37, 0x05, 0xf9, 0x05, 0x76, 0xf6, 0x8d, 0x04, 0x28, 0x22, 0x79, 0x9a, 0x1c, + 0xce, 0x90, 0xbb, 0x2f, 0xd8, 0x44, 0x50, 0xb0, 0x1f, 0x52, 0xa7, 0xa2, 0xb4, 0xa2, 0xfa, 0xbc, + 0x19, 0xdb, 0x44, 0xe5, 0xcb, 0x63, 0x81, 0x8a, 0x14, 0x28, 0xd8, 0x93, 0xa3, 0xb1, 0x7e, 0x85, + 0x3e, 0x1b, 0x70, 0xc2, 0x4b, 0xb4, 0xd9, 0xfe, 0x56, 0x82, 0xc5, 0xb8, 0x53, 0x5c, 0xe6, 0x23, + 0xc2, 0xab, 0xd4, 0xab, 0xf1, 0xcf, 0x09, 0xcb, 0x9e, 0x7c, 0x78, 0x34, 0x72, 0x45, 0xc0, 0xcc, + 0x98, 0xb1, 0x6f, 0x4e, 0x1c, 0x66, 0x38, 0x39, 0x6a, 0xc6, 0x3d, 0x0e, 0xa8, 0xfd, 0xa5, 0x04, + 0xa8, 0x49, 0x1a, 0x84, 0xc6, 0xa4, 0x91, 0xdf, 0x56, 0x7e, 0x0f, 0x12, 0x2f, 0xed, 0xaa, 0x14, + 0xfa, 0x6a, 0xb2, 0xe9, 0x97, 0x4d, 0x89, 0x97, 0x81, 0x12, 0x3f, 0x11, 0x2c, 0xf1, 0x11, 0xa4, + 0x26, 0x13, 0xcf, 0x29, 0xd8, 0x6f, 0x24, 0x43, 0xd2, 0xf7, 0x05, 0xfa, 0x13, 0xfd, 0x1c, 0x72, + 0x9e, 0x2d, 0x5f, 0xdc, 0x61, 0x4a, 0xf1, 0x37, 0x6d, 0x61, 0xc6, 0xb5, 0x3f, 0x91, 0x00, 0x9a, + 0x3f, 0xe0, 0xc3, 0xcd, 0xac, 0xc2, 0xf4, 0xc7, 0x7d, 0x28, 0x06, 0x4b, 0x1c, 0x54, 0x80, 0x6c, + 0xf7, 0xb0, 0xd1, 0x50, 0xba, 0x5d, 0xf9, 0x1a, 0x5a, 0x85, 0x65, 0x9a, 0x7b, 0xd5, 0x7b, 0x87, + 0x58, 0x51, 0x77, 0x3a, 0xf8, 0x49, 0xbd, 0xa7, 0x2a, 0x18, 0x77, 0xb0, 0x2c, 0xa1, 0x15, 0x58, + 0x6a, 0x74, 0x9e, 0x1c, 0x1c, 0xf6, 0x14, 0xb5, 0xde, 0x6c, 0x62, 0xa5, 0xdb, 0x15, 0x53, 0x09, + 0x9a, 0xb7, 0xb1, 0x10, 0x2b, 0x00, 0x8b, 0x0f, 0xfe, 0x3d, 0x0f, 0xc5, 0x5d, 0x76, 0x0b, 0x13, + 0xeb, 0x95, 0xde, 0x27, 0xe8, 0x17, 0x70, 0xbd, 0xcb, 0xcc, 0x35, 0xfc, 0x71, 0xc3, 0x39, 0x39, + 0xc4, 0x6a, 0xc9, 0xcf, 0x4e, 0xa8, 0x89, 0x7c, 0x04, 0xa5, 0x2e, 0x31, 0xfc, 0x07, 0x07, 0xb4, + 0x16, 0xa0, 0x9b, 0x7e, 0x73, 0x88, 0x92, 0xb7, 0xa9, 0x87, 0x47, 0x7b, 0xe9, 0x68, 0xd3, 0xab, + 0xb9, 0xcf, 0x69, 0xb3, 0xaf, 0x9e, 0x73, 0x3a, 0xd4, 0x80, 0x85, 0xa9, 0x36, 0x10, 0xda, 0xf0, + 0xf6, 0x8c, 0x6f, 0x10, 0x45, 0x0f, 0xf5, 0x2b, 0x50, 0x08, 0xd4, 0xc4, 0x68, 0xc5, 0xdd, 0x6b, + 0xaa, 0x4e, 0x8e, 0x12, 0x3e, 0x86, 0x85, 0xa9, 0xc6, 0x1a, 0xba, 0xa8, 0xe5, 0xb6, 0xba, 0x18, + 0xe9, 0x85, 0xf1, 0xd6, 0x1d, 0x06, 0x19, 0x13, 0xc7, 0xd2, 0xc9, 0x2b, 0xe2, 0x76, 0xdf, 0xd1, + 0x85, 0x1f, 0xda, 0xac, 0xde, 0x8a, 0xca, 0x25, 0xf4, 0xe5, 0x4e, 0x8f, 0xae, 0x19, 0x6e, 0xf6, + 0x5c, 0x2c, 0x1c, 0x1f, 0xe1, 0x9c, 0x36, 0x51, 0x93, 0xca, 0x3c, 0xd2, 0x4e, 0xf1, 0x8e, 0x7a, + 0x6e, 0xa3, 0x25, 0x2a, 0xbb, 0x16, 0x2c, 0x72, 0x33, 0x8c, 0x54, 0xda, 0xf1, 0x15, 0xd0, 0xea, + 0xda, 0xcc, 0x3a, 0x07, 0x7d, 0x0a, 0x2b, 0xe2, 0xbc, 0x3b, 0xa6, 0x15, 0xcd, 0xd6, 0xd7, 0xc2, + 0x1c, 0x45, 0xa6, 0x57, 0xd7, 0x67, 0xe7, 0xdf, 0xa8, 0x01, 0x8b, 0x98, 0x9c, 0x9a, 0x96, 0xb3, + 0xa3, 0xe9, 0xa3, 0x9e, 0xd9, 0x14, 0x75, 0x28, 0xba, 0x35, 0x2b, 0x55, 0x8b, 0xb2, 0xfb, 0xd4, + 0x2b, 0x90, 0x82, 0x32, 0x7f, 0x6c, 0x1e, 0xa1, 0xd5, 0x68, 0xc3, 0xc9, 0xcf, 0x86, 0x56, 0x6f, + 0xc6, 0xce, 0x09, 0x9e, 0x9b, 0x50, 0xe5, 0x12, 0x8c, 0xbb, 0x33, 0xe3, 0x09, 0x27, 0xa3, 0xa9, + 0x83, 0x7d, 0x0c, 0x8b, 0xec, 0x7f, 0x5a, 0x76, 0x89, 0x13, 0xfa, 0xd7, 0x0e, 0x37, 0x92, 0xfb, + 0xff, 0xf0, 0xb2, 0xea, 0xf6, 0x65, 0x42, 0x78, 0xdb, 0xb0, 0x12, 0xa2, 0xa7, 0x26, 0x6f, 0x63, + 0xcd, 0x78, 0xd1, 0x26, 0x67, 0x71, 0x8b, 0xa0, 0xe0, 0x77, 0xf5, 0x62, 0x8d, 0x26, 0xdc, 0x8c, + 0x5f, 0xa3, 0x67, 0x3a, 0xda, 0xe8, 0x92, 0xab, 0x6c, 0xff, 0xda, 0xf7, 0xdf, 0xae, 0x4b, 0x6f, + 0xbe, 0x5b, 0x97, 0xbe, 0xfc, 0x6e, 0x5d, 0xfa, 0xe6, 0xbb, 0x75, 0xe9, 0x8f, 0xdf, 0xae, 0x4b, + 0xff, 0xf0, 0x76, 0x5d, 0x7a, 0xf3, 0x76, 0x5d, 0x82, 0x92, 0x6e, 0x6e, 0x1d, 0x39, 0xc7, 0x36, + 0x27, 0xdc, 0x06, 0x16, 0x13, 0x0f, 0xe8, 0x05, 0x72, 0x20, 0x7d, 0xca, 0xff, 0x67, 0xe8, 0x28, + 0xc3, 0x2e, 0x94, 0x0f, 0xff, 0x27, 0x00, 0x00, 0xff, 0xff, 0xc6, 0x09, 0xcd, 0xd2, 0x5d, 0x34, + 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -6971,6 +7146,136 @@ func (m *ShardChallengeResult) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *DeCentralQuestions) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DeCentralQuestions) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DeCentralQuestions) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.EndTime != nil { + n52, err52 := github_com_tron_us_protobuf_types.StdTimeMarshalTo(*m.EndTime, dAtA[i-github_com_tron_us_protobuf_types.SizeOfStdTime(*m.EndTime):]) + if err52 != nil { + return 0, err52 + } + i -= n52 + i = encodeVarintGuard(dAtA, i, uint64(n52)) + i-- + dAtA[i] = 0x2a + } + if len(m.Url) > 0 { + i -= len(m.Url) + copy(dAtA[i:], m.Url) + i = encodeVarintGuard(dAtA, i, uint64(len(m.Url))) + i-- + dAtA[i] = 0x22 + } + if len(m.Uuid) > 0 { + i -= len(m.Uuid) + copy(dAtA[i:], m.Uuid) + i = encodeVarintGuard(dAtA, i, uint64(len(m.Uuid))) + i-- + dAtA[i] = 0x1a + } + if m.Count != 0 { + i = encodeVarintGuard(dAtA, i, uint64(m.Count)) + i-- + dAtA[i] = 0x10 + } + if len(m.Qs) > 0 { + for iNdEx := len(m.Qs) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Qs[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGuard(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *DeQuestion) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DeQuestion) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DeQuestion) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.FileHash) > 0 { + i -= len(m.FileHash) + copy(dAtA[i:], m.FileHash) + i = encodeVarintGuard(dAtA, i, uint64(len(m.FileHash))) + i-- + dAtA[i] = 0x2a + } + if len(m.Nonce) > 0 { + i -= len(m.Nonce) + copy(dAtA[i:], m.Nonce) + i = encodeVarintGuard(dAtA, i, uint64(len(m.Nonce))) + i-- + dAtA[i] = 0x22 + } + if m.ChunkIndex != 0 { + i = encodeVarintGuard(dAtA, i, uint64(m.ChunkIndex)) + i-- + dAtA[i] = 0x18 + } + if len(m.HostPid) > 0 { + i -= len(m.HostPid) + copy(dAtA[i:], m.HostPid) + i = encodeVarintGuard(dAtA, i, uint64(len(m.HostPid))) + i-- + dAtA[i] = 0x12 + } + if len(m.ShardHash) > 0 { + i -= len(m.ShardHash) + copy(dAtA[i:], m.ShardHash) + i = encodeVarintGuard(dAtA, i, uint64(len(m.ShardHash))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func encodeVarintGuard(dAtA []byte, offset int, v uint64) int { offset -= sovGuard(v) base := offset @@ -7830,6 +8135,46 @@ func NewPopulatedShardChallengeResult(r randyGuard, easy bool) *ShardChallengeRe return this } +func NewPopulatedDeCentralQuestions(r randyGuard, easy bool) *DeCentralQuestions { + this := &DeCentralQuestions{} + if r.Intn(5) != 0 { + v82 := r.Intn(5) + this.Qs = make([]*DeQuestion, v82) + for i := 0; i < v82; i++ { + this.Qs[i] = NewPopulatedDeQuestion(r, easy) + } + } + this.Count = int32(r.Int31()) + if r.Intn(2) == 0 { + this.Count *= -1 + } + this.Uuid = string(randStringGuard(r)) + this.Url = string(randStringGuard(r)) + if r.Intn(5) != 0 { + this.EndTime = github_com_tron_us_protobuf_types.NewPopulatedStdTime(r, easy) + } + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedGuard(r, 6) + } + return this +} + +func NewPopulatedDeQuestion(r randyGuard, easy bool) *DeQuestion { + this := &DeQuestion{} + this.ShardHash = string(randStringGuard(r)) + this.HostPid = string(randStringGuard(r)) + this.ChunkIndex = int32(r.Int31()) + if r.Intn(2) == 0 { + this.ChunkIndex *= -1 + } + this.Nonce = string(randStringGuard(r)) + this.FileHash = string(randStringGuard(r)) + if !easy && r.Intn(10) != 0 { + this.XXX_unrecognized = randUnrecognizedGuard(r, 6) + } + return this +} + type randyGuard interface { Float32() float32 Float64() float64 @@ -7849,9 +8194,9 @@ func randUTF8RuneGuard(r randyGuard) rune { return rune(ru + 61) } func randStringGuard(r randyGuard) string { - v82 := r.Intn(100) - tmps := make([]rune, v82) - for i := 0; i < v82; i++ { + v83 := r.Intn(100) + tmps := make([]rune, v83) + for i := 0; i < v83; i++ { tmps[i] = randUTF8RuneGuard(r) } return string(tmps) @@ -7873,11 +8218,11 @@ func randFieldGuard(dAtA []byte, r randyGuard, fieldNumber int, wire int) []byte switch wire { case 0: dAtA = encodeVarintPopulateGuard(dAtA, uint64(key)) - v83 := r.Int63() + v84 := r.Int63() if r.Intn(2) == 0 { - v83 *= -1 + v84 *= -1 } - dAtA = encodeVarintPopulateGuard(dAtA, uint64(v83)) + dAtA = encodeVarintPopulateGuard(dAtA, uint64(v84)) case 1: dAtA = encodeVarintPopulateGuard(dAtA, uint64(key)) dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256))) @@ -9058,15 +9403,79 @@ func (m *ShardChallengeResult) Size() (n int) { return n } -func sovGuard(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozGuard(x uint64) (n int) { - return sovGuard(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (m *AdminQuery) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 +func (m *DeCentralQuestions) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Qs) > 0 { + for _, e := range m.Qs { + l = e.Size() + n += 1 + l + sovGuard(uint64(l)) + } + } + if m.Count != 0 { + n += 1 + sovGuard(uint64(m.Count)) + } + l = len(m.Uuid) + if l > 0 { + n += 1 + l + sovGuard(uint64(l)) + } + l = len(m.Url) + if l > 0 { + n += 1 + l + sovGuard(uint64(l)) + } + if m.EndTime != nil { + l = github_com_tron_us_protobuf_types.SizeOfStdTime(*m.EndTime) + n += 1 + l + sovGuard(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *DeQuestion) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ShardHash) + if l > 0 { + n += 1 + l + sovGuard(uint64(l)) + } + l = len(m.HostPid) + if l > 0 { + n += 1 + l + sovGuard(uint64(l)) + } + if m.ChunkIndex != 0 { + n += 1 + sovGuard(uint64(m.ChunkIndex)) + } + l = len(m.Nonce) + if l > 0 { + n += 1 + l + sovGuard(uint64(l)) + } + l = len(m.FileHash) + if l > 0 { + n += 1 + l + sovGuard(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func sovGuard(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozGuard(x uint64) (n int) { + return sovGuard(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *AdminQuery) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 for iNdEx < l { preIndex := iNdEx var wire uint64 @@ -17337,6 +17746,414 @@ func (m *ShardChallengeResult) Unmarshal(dAtA []byte) error { } return nil } +func (m *DeCentralQuestions) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGuard + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DeCentralQuestions: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DeCentralQuestions: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Qs", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGuard + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGuard + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGuard + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Qs = append(m.Qs, &DeQuestion{}) + if err := m.Qs[len(m.Qs)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Count", wireType) + } + m.Count = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGuard + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Count |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Uuid", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGuard + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGuard + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGuard + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Uuid = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Url", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGuard + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGuard + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGuard + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Url = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EndTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGuard + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGuard + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGuard + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.EndTime == nil { + m.EndTime = new(time.Time) + } + if err := github_com_tron_us_protobuf_types.StdTimeUnmarshal(m.EndTime, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGuard(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGuard + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGuard + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DeQuestion) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGuard + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DeQuestion: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DeQuestion: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ShardHash", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGuard + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGuard + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGuard + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ShardHash = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field HostPid", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGuard + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGuard + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGuard + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.HostPid = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ChunkIndex", wireType) + } + m.ChunkIndex = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGuard + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ChunkIndex |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Nonce", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGuard + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGuard + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGuard + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Nonce = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FileHash", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGuard + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGuard + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGuard + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FileHash = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGuard(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGuard + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGuard + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipGuard(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/protos/guard/guard.proto b/protos/guard/guard.proto index f19a9615..9f280a56 100644 --- a/protos/guard/guard.proto +++ b/protos/guard/guard.proto @@ -569,3 +569,19 @@ message ShardChallengeResult { string result = 5; bool is_timeout = 6; } + +message DeCentralQuestions { + repeated DeQuestion qs = 1; + int32 count = 2; + string uuid = 3; + string url = 4; + google.protobuf.Timestamp end_time = 5 [(gogoproto.stdtime) = true]; +} + +message DeQuestion { + string shard_hash = 1; //shard hash + string host_pid = 2; //host's peerId + int32 chunk_index = 3; //the chunk's index for calculation + string nonce = 4; //the challenge questions's random nonce + string file_hash = 5; +}