github.com/cockroachdb/cockroach@v20.2.0-alpha.1+incompatible/pkg/config/zonepb/zone.pb.go (about)

     1  // Code generated by protoc-gen-gogo. DO NOT EDIT.
     2  // source: config/zonepb/zone.proto
     3  
     4  package zonepb
     5  
     6  import proto "github.com/gogo/protobuf/proto"
     7  import fmt "fmt"
     8  import math "math"
     9  
    10  import github_com_cockroachdb_cockroach_pkg_roachpb "github.com/cockroachdb/cockroach/pkg/roachpb"
    11  
    12  import bytes "bytes"
    13  
    14  import io "io"
    15  
    16  // Reference imports to suppress errors if they are not otherwise used.
    17  var _ = proto.Marshal
    18  var _ = fmt.Errorf
    19  var _ = math.Inf
    20  
    21  // This is a compile-time assertion to ensure that this generated file
    22  // is compatible with the proto package it is being compiled against.
    23  // A compilation error at this line likely means your copy of the
    24  // proto package needs to be updated.
    25  const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package
    26  
    27  type Constraint_Type int32
    28  
    29  const (
    30  	// DEPRECATED_POSITIVE has no effect on a replica's placement.
    31  	Constraint_DEPRECATED_POSITIVE Constraint_Type = 0
    32  	// REQUIRED ensures all replicas are placed on stores that match the
    33  	// constraint. Replication will fail if there aren't any such stores.
    34  	Constraint_REQUIRED Constraint_Type = 1
    35  	// PROHIBITED will prevent replicas from having this key, value.
    36  	Constraint_PROHIBITED Constraint_Type = 2
    37  )
    38  
    39  var Constraint_Type_name = map[int32]string{
    40  	0: "DEPRECATED_POSITIVE",
    41  	1: "REQUIRED",
    42  	2: "PROHIBITED",
    43  }
    44  var Constraint_Type_value = map[string]int32{
    45  	"DEPRECATED_POSITIVE": 0,
    46  	"REQUIRED":            1,
    47  	"PROHIBITED":          2,
    48  }
    49  
    50  func (x Constraint_Type) Enum() *Constraint_Type {
    51  	p := new(Constraint_Type)
    52  	*p = x
    53  	return p
    54  }
    55  func (x Constraint_Type) String() string {
    56  	return proto.EnumName(Constraint_Type_name, int32(x))
    57  }
    58  func (x *Constraint_Type) UnmarshalJSON(data []byte) error {
    59  	value, err := proto.UnmarshalJSONEnum(Constraint_Type_value, data, "Constraint_Type")
    60  	if err != nil {
    61  		return err
    62  	}
    63  	*x = Constraint_Type(value)
    64  	return nil
    65  }
    66  func (Constraint_Type) EnumDescriptor() ([]byte, []int) {
    67  	return fileDescriptor_zone_84b39e9c66d84dc0, []int{1, 0}
    68  }
    69  
    70  // GCPolicy defines garbage collection policies which apply to MVCC
    71  // values within a zone.
    72  //
    73  // TODO(spencer): flesh this out to include maximum number of values
    74  //   as well as whether there's an intersection between max values
    75  //   and TTL or a union.
    76  type GCPolicy struct {
    77  	// TTLSeconds specifies the maximum age of a value before it's
    78  	// garbage collected. Only older versions of values are garbage
    79  	// collected. Specifying <=0 mean older versions are never GC'd.
    80  	TTLSeconds int32 `protobuf:"varint,1,opt,name=ttl_seconds,json=ttlSeconds" json:"ttl_seconds"`
    81  }
    82  
    83  func (m *GCPolicy) Reset()         { *m = GCPolicy{} }
    84  func (m *GCPolicy) String() string { return proto.CompactTextString(m) }
    85  func (*GCPolicy) ProtoMessage()    {}
    86  func (*GCPolicy) Descriptor() ([]byte, []int) {
    87  	return fileDescriptor_zone_84b39e9c66d84dc0, []int{0}
    88  }
    89  func (m *GCPolicy) XXX_Unmarshal(b []byte) error {
    90  	return m.Unmarshal(b)
    91  }
    92  func (m *GCPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
    93  	b = b[:cap(b)]
    94  	n, err := m.MarshalTo(b)
    95  	if err != nil {
    96  		return nil, err
    97  	}
    98  	return b[:n], nil
    99  }
   100  func (dst *GCPolicy) XXX_Merge(src proto.Message) {
   101  	xxx_messageInfo_GCPolicy.Merge(dst, src)
   102  }
   103  func (m *GCPolicy) XXX_Size() int {
   104  	return m.Size()
   105  }
   106  func (m *GCPolicy) XXX_DiscardUnknown() {
   107  	xxx_messageInfo_GCPolicy.DiscardUnknown(m)
   108  }
   109  
   110  var xxx_messageInfo_GCPolicy proto.InternalMessageInfo
   111  
   112  // Constraint constrains the stores a replica can be stored on.
   113  type Constraint struct {
   114  	Type Constraint_Type `protobuf:"varint,1,opt,name=type,enum=cockroach.config.zonepb.Constraint_Type" json:"type"`
   115  	// Key is only set if this is a constraint on locality.
   116  	Key string `protobuf:"bytes,2,opt,name=key" json:"key"`
   117  	// Value to constrain to.
   118  	Value string `protobuf:"bytes,3,opt,name=value" json:"value"`
   119  }
   120  
   121  func (m *Constraint) Reset()      { *m = Constraint{} }
   122  func (*Constraint) ProtoMessage() {}
   123  func (*Constraint) Descriptor() ([]byte, []int) {
   124  	return fileDescriptor_zone_84b39e9c66d84dc0, []int{1}
   125  }
   126  func (m *Constraint) XXX_Unmarshal(b []byte) error {
   127  	return m.Unmarshal(b)
   128  }
   129  func (m *Constraint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   130  	b = b[:cap(b)]
   131  	n, err := m.MarshalTo(b)
   132  	if err != nil {
   133  		return nil, err
   134  	}
   135  	return b[:n], nil
   136  }
   137  func (dst *Constraint) XXX_Merge(src proto.Message) {
   138  	xxx_messageInfo_Constraint.Merge(dst, src)
   139  }
   140  func (m *Constraint) XXX_Size() int {
   141  	return m.Size()
   142  }
   143  func (m *Constraint) XXX_DiscardUnknown() {
   144  	xxx_messageInfo_Constraint.DiscardUnknown(m)
   145  }
   146  
   147  var xxx_messageInfo_Constraint proto.InternalMessageInfo
   148  
   149  // ConstraintsConjunction is a set of constraints that need to be satisfied
   150  // together by a replica (i.e. by the replica's store).
   151  type ConstraintsConjunction struct {
   152  	// The number of replicas that should abide by the constraints below. If left
   153  	// unspecified (i.e. set to 0), the constraints will apply to all replicas of
   154  	// the range.
   155  	// As of v2.0, only REQUIRED constraints are allowed when num_replicas is
   156  	// set to a non-zero value.
   157  	NumReplicas int32 `protobuf:"varint,7,opt,name=num_replicas,json=numReplicas" json:"num_replicas"`
   158  	// The set of attributes and/or localities that need to be satisfied by the
   159  	// store.
   160  	Constraints []Constraint `protobuf:"bytes,6,rep,name=constraints" json:"constraints"`
   161  }
   162  
   163  func (m *ConstraintsConjunction) Reset()      { *m = ConstraintsConjunction{} }
   164  func (*ConstraintsConjunction) ProtoMessage() {}
   165  func (*ConstraintsConjunction) Descriptor() ([]byte, []int) {
   166  	return fileDescriptor_zone_84b39e9c66d84dc0, []int{2}
   167  }
   168  func (m *ConstraintsConjunction) XXX_Unmarshal(b []byte) error {
   169  	return m.Unmarshal(b)
   170  }
   171  func (m *ConstraintsConjunction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   172  	b = b[:cap(b)]
   173  	n, err := m.MarshalTo(b)
   174  	if err != nil {
   175  		return nil, err
   176  	}
   177  	return b[:n], nil
   178  }
   179  func (dst *ConstraintsConjunction) XXX_Merge(src proto.Message) {
   180  	xxx_messageInfo_ConstraintsConjunction.Merge(dst, src)
   181  }
   182  func (m *ConstraintsConjunction) XXX_Size() int {
   183  	return m.Size()
   184  }
   185  func (m *ConstraintsConjunction) XXX_DiscardUnknown() {
   186  	xxx_messageInfo_ConstraintsConjunction.DiscardUnknown(m)
   187  }
   188  
   189  var xxx_messageInfo_ConstraintsConjunction proto.InternalMessageInfo
   190  
   191  // LeasePreference specifies a preference about where range leases should be
   192  // located.
   193  type LeasePreference struct {
   194  	Constraints []Constraint `protobuf:"bytes,1,rep,name=constraints" json:"constraints" yaml:"constraints,flow"`
   195  }
   196  
   197  func (m *LeasePreference) Reset()         { *m = LeasePreference{} }
   198  func (m *LeasePreference) String() string { return proto.CompactTextString(m) }
   199  func (*LeasePreference) ProtoMessage()    {}
   200  func (*LeasePreference) Descriptor() ([]byte, []int) {
   201  	return fileDescriptor_zone_84b39e9c66d84dc0, []int{3}
   202  }
   203  func (m *LeasePreference) XXX_Unmarshal(b []byte) error {
   204  	return m.Unmarshal(b)
   205  }
   206  func (m *LeasePreference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   207  	b = b[:cap(b)]
   208  	n, err := m.MarshalTo(b)
   209  	if err != nil {
   210  		return nil, err
   211  	}
   212  	return b[:n], nil
   213  }
   214  func (dst *LeasePreference) XXX_Merge(src proto.Message) {
   215  	xxx_messageInfo_LeasePreference.Merge(dst, src)
   216  }
   217  func (m *LeasePreference) XXX_Size() int {
   218  	return m.Size()
   219  }
   220  func (m *LeasePreference) XXX_DiscardUnknown() {
   221  	xxx_messageInfo_LeasePreference.DiscardUnknown(m)
   222  }
   223  
   224  var xxx_messageInfo_LeasePreference proto.InternalMessageInfo
   225  
   226  // ZoneConfig holds configuration that applies to one or more ranges.
   227  //
   228  // Note: when adding.removing fields here, be sure to update
   229  // supportedZoneConfigOptions in the sql package, to synchronize
   230  // with the code for ALTER ... CONFIGURE ZONE.
   231  type ZoneConfig struct {
   232  	RangeMinBytes *int64 `protobuf:"varint,2,opt,name=range_min_bytes,json=rangeMinBytes" json:"range_min_bytes,omitempty" yaml:"range_min_bytes"`
   233  	RangeMaxBytes *int64 `protobuf:"varint,3,opt,name=range_max_bytes,json=rangeMaxBytes" json:"range_max_bytes,omitempty" yaml:"range_max_bytes"`
   234  	// If GC policy is not set, uses the next highest, non-null policy
   235  	// in the zone config hierarchy, up to the default policy if necessary.
   236  	GC *GCPolicy `protobuf:"bytes,4,opt,name=gc" json:"gc,omitempty"`
   237  	// NumReplicas specifies the desired number of replicas
   238  	NumReplicas *int32 `protobuf:"varint,5,opt,name=num_replicas,json=numReplicas" json:"num_replicas,omitempty" yaml:"num_replicas"`
   239  	// Constraints constrains which stores the replicas can be stored on. The
   240  	// order in which the constraints are stored is arbitrary and may change.
   241  	// https://github.com/cockroachdb/cockroach/blob/master/docs/RFCS/20160706_expressive_zone_config.md#constraint-system
   242  	//
   243  	// NOTE: The sum of the num_replicas fields of the Constraints must add up to
   244  	// ZoneConfig.num_replicas, or there must be no more than a single Constraints
   245  	// field with num_replicas set to 0.
   246  	Constraints []ConstraintsConjunction `protobuf:"bytes,6,rep,name=constraints" json:"constraints" yaml:"constraints,flow"`
   247  	// InheritedContraints specifies if the value in the Constraints field was
   248  	// inherited from the zone's parent or specified explicitly by the user.
   249  	InheritedConstraints bool `protobuf:"varint,10,opt,name=inherited_constraints,json=inheritedConstraints" json:"inherited_constraints"`
   250  	// LeasePreference stores information about where the user would prefer for
   251  	// range leases to be placed. Leases are allowed to be placed elsewhere if
   252  	// needed, but will follow the provided preference when possible.
   253  	//
   254  	// More than one lease preference is allowed, but they should be ordered from
   255  	// most preferred to lease preferred. The first preference that an existing
   256  	// replica of a range matches will take priority.
   257  	LeasePreferences []LeasePreference `protobuf:"bytes,9,rep,name=lease_preferences,json=leasePreferences" json:"lease_preferences" yaml:"lease_preferences,flow"`
   258  	// InheritedLeasePreferences specifies if the value in the LeasePreferences field
   259  	// was inherited from the zone's parent or specified explicitly by the user.
   260  	InheritedLeasePreferences bool `protobuf:"varint,11,opt,name=inherited_lease_preferences,json=inheritedLeasePreferences" json:"inherited_lease_preferences"`
   261  	// Subzones stores config overrides for "subzones", each of which represents
   262  	// either a SQL table index or a partition of a SQL table index. Subzones are
   263  	// not applicable when the zone does not represent a SQL table (i.e., when the
   264  	// zone represents a database, a special system range, or is itself a
   265  	// subzone.)
   266  	Subzones []Subzone `protobuf:"bytes,8,rep,name=subzones" json:"subzones" yaml:"-"`
   267  	// SubzoneSpans maps each key span in a subzone to the slice index of an entry
   268  	// in SubzoneConfig. Spans are non-overlapping and sorted by start key to
   269  	// allow binary searching. SubzoneSpans can be easily derived from a
   270  	// TableDescriptor, but are denormalized here to make GetZoneConfigForKey
   271  	// lookups efficient.
   272  	SubzoneSpans []SubzoneSpan `protobuf:"bytes,7,rep,name=subzone_spans,json=subzoneSpans" json:"subzone_spans" yaml:"-"`
   273  }
   274  
   275  func (m *ZoneConfig) Reset()         { *m = ZoneConfig{} }
   276  func (m *ZoneConfig) String() string { return proto.CompactTextString(m) }
   277  func (*ZoneConfig) ProtoMessage()    {}
   278  func (*ZoneConfig) Descriptor() ([]byte, []int) {
   279  	return fileDescriptor_zone_84b39e9c66d84dc0, []int{4}
   280  }
   281  func (m *ZoneConfig) XXX_Unmarshal(b []byte) error {
   282  	return m.Unmarshal(b)
   283  }
   284  func (m *ZoneConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   285  	b = b[:cap(b)]
   286  	n, err := m.MarshalTo(b)
   287  	if err != nil {
   288  		return nil, err
   289  	}
   290  	return b[:n], nil
   291  }
   292  func (dst *ZoneConfig) XXX_Merge(src proto.Message) {
   293  	xxx_messageInfo_ZoneConfig.Merge(dst, src)
   294  }
   295  func (m *ZoneConfig) XXX_Size() int {
   296  	return m.Size()
   297  }
   298  func (m *ZoneConfig) XXX_DiscardUnknown() {
   299  	xxx_messageInfo_ZoneConfig.DiscardUnknown(m)
   300  }
   301  
   302  var xxx_messageInfo_ZoneConfig proto.InternalMessageInfo
   303  
   304  type Subzone struct {
   305  	// IndexID is the ID of the SQL table index that the subzone represents.
   306  	// Always set.
   307  	IndexID uint32 `protobuf:"varint,1,opt,name=index_id,json=indexId" json:"index_id"`
   308  	// PartitionName is the partition of the SQL table index that the subzone
   309  	// represents. It is empty when the subzone represents the entire index.
   310  	PartitionName string `protobuf:"bytes,2,opt,name=partition_name,json=partitionName" json:"partition_name"`
   311  	// Config stores the ZoneConfig that applies to this Subzone. It never
   312  	// contains nested subzones.
   313  	Config ZoneConfig `protobuf:"bytes,3,opt,name=config" json:"config"`
   314  }
   315  
   316  func (m *Subzone) Reset()         { *m = Subzone{} }
   317  func (m *Subzone) String() string { return proto.CompactTextString(m) }
   318  func (*Subzone) ProtoMessage()    {}
   319  func (*Subzone) Descriptor() ([]byte, []int) {
   320  	return fileDescriptor_zone_84b39e9c66d84dc0, []int{5}
   321  }
   322  func (m *Subzone) XXX_Unmarshal(b []byte) error {
   323  	return m.Unmarshal(b)
   324  }
   325  func (m *Subzone) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   326  	b = b[:cap(b)]
   327  	n, err := m.MarshalTo(b)
   328  	if err != nil {
   329  		return nil, err
   330  	}
   331  	return b[:n], nil
   332  }
   333  func (dst *Subzone) XXX_Merge(src proto.Message) {
   334  	xxx_messageInfo_Subzone.Merge(dst, src)
   335  }
   336  func (m *Subzone) XXX_Size() int {
   337  	return m.Size()
   338  }
   339  func (m *Subzone) XXX_DiscardUnknown() {
   340  	xxx_messageInfo_Subzone.DiscardUnknown(m)
   341  }
   342  
   343  var xxx_messageInfo_Subzone proto.InternalMessageInfo
   344  
   345  type SubzoneSpan struct {
   346  	// Key stores a key suffix that represents the inclusive lower bound for this
   347  	// span. The SQL table prefix, like /Table/51/, is omitted.
   348  	//
   349  	// Both Key and EndKey, below, are cast to roachpb.Key for convenience, but
   350  	// there's no technical restriction that prevents switching them to []byte or
   351  	// another type that communicates their missing prefix.
   352  	Key github_com_cockroachdb_cockroach_pkg_roachpb.Key `protobuf:"bytes,1,opt,name=key,casttype=github.com/cockroachdb/cockroach/pkg/roachpb.Key" json:"key,omitempty"`
   353  	// EndKey stores a key suffix that represents the exclusive upper bound for
   354  	// this span. Like with Key, the SQL table prefix is omitted. If EndKey is
   355  	// empty, it is assumed to be Key.PrefixEnd().
   356  	EndKey github_com_cockroachdb_cockroach_pkg_roachpb.Key `protobuf:"bytes,2,opt,name=end_key,json=endKey,casttype=github.com/cockroachdb/cockroach/pkg/roachpb.Key" json:"end_key,omitempty"`
   357  	// SubzoneIndex is the slice index of the Subzone this span belongs to in the
   358  	// parent ZoneConfig's Subzones field.
   359  	SubzoneIndex int32 `protobuf:"varint,3,opt,name=subzone_index,json=subzoneIndex" json:"subzone_index"`
   360  }
   361  
   362  func (m *SubzoneSpan) Reset()         { *m = SubzoneSpan{} }
   363  func (m *SubzoneSpan) String() string { return proto.CompactTextString(m) }
   364  func (*SubzoneSpan) ProtoMessage()    {}
   365  func (*SubzoneSpan) Descriptor() ([]byte, []int) {
   366  	return fileDescriptor_zone_84b39e9c66d84dc0, []int{6}
   367  }
   368  func (m *SubzoneSpan) XXX_Unmarshal(b []byte) error {
   369  	return m.Unmarshal(b)
   370  }
   371  func (m *SubzoneSpan) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   372  	b = b[:cap(b)]
   373  	n, err := m.MarshalTo(b)
   374  	if err != nil {
   375  		return nil, err
   376  	}
   377  	return b[:n], nil
   378  }
   379  func (dst *SubzoneSpan) XXX_Merge(src proto.Message) {
   380  	xxx_messageInfo_SubzoneSpan.Merge(dst, src)
   381  }
   382  func (m *SubzoneSpan) XXX_Size() int {
   383  	return m.Size()
   384  }
   385  func (m *SubzoneSpan) XXX_DiscardUnknown() {
   386  	xxx_messageInfo_SubzoneSpan.DiscardUnknown(m)
   387  }
   388  
   389  var xxx_messageInfo_SubzoneSpan proto.InternalMessageInfo
   390  
   391  func init() {
   392  	proto.RegisterType((*GCPolicy)(nil), "cockroach.config.zonepb.GCPolicy")
   393  	proto.RegisterType((*Constraint)(nil), "cockroach.config.zonepb.Constraint")
   394  	proto.RegisterType((*ConstraintsConjunction)(nil), "cockroach.config.zonepb.ConstraintsConjunction")
   395  	proto.RegisterType((*LeasePreference)(nil), "cockroach.config.zonepb.LeasePreference")
   396  	proto.RegisterType((*ZoneConfig)(nil), "cockroach.config.zonepb.ZoneConfig")
   397  	proto.RegisterType((*Subzone)(nil), "cockroach.config.zonepb.Subzone")
   398  	proto.RegisterType((*SubzoneSpan)(nil), "cockroach.config.zonepb.SubzoneSpan")
   399  	proto.RegisterEnum("cockroach.config.zonepb.Constraint_Type", Constraint_Type_name, Constraint_Type_value)
   400  }
   401  func (this *GCPolicy) Equal(that interface{}) bool {
   402  	if that == nil {
   403  		return this == nil
   404  	}
   405  
   406  	that1, ok := that.(*GCPolicy)
   407  	if !ok {
   408  		that2, ok := that.(GCPolicy)
   409  		if ok {
   410  			that1 = &that2
   411  		} else {
   412  			return false
   413  		}
   414  	}
   415  	if that1 == nil {
   416  		return this == nil
   417  	} else if this == nil {
   418  		return false
   419  	}
   420  	if this.TTLSeconds != that1.TTLSeconds {
   421  		return false
   422  	}
   423  	return true
   424  }
   425  func (this *Constraint) Equal(that interface{}) bool {
   426  	if that == nil {
   427  		return this == nil
   428  	}
   429  
   430  	that1, ok := that.(*Constraint)
   431  	if !ok {
   432  		that2, ok := that.(Constraint)
   433  		if ok {
   434  			that1 = &that2
   435  		} else {
   436  			return false
   437  		}
   438  	}
   439  	if that1 == nil {
   440  		return this == nil
   441  	} else if this == nil {
   442  		return false
   443  	}
   444  	if this.Type != that1.Type {
   445  		return false
   446  	}
   447  	if this.Key != that1.Key {
   448  		return false
   449  	}
   450  	if this.Value != that1.Value {
   451  		return false
   452  	}
   453  	return true
   454  }
   455  func (this *ConstraintsConjunction) Equal(that interface{}) bool {
   456  	if that == nil {
   457  		return this == nil
   458  	}
   459  
   460  	that1, ok := that.(*ConstraintsConjunction)
   461  	if !ok {
   462  		that2, ok := that.(ConstraintsConjunction)
   463  		if ok {
   464  			that1 = &that2
   465  		} else {
   466  			return false
   467  		}
   468  	}
   469  	if that1 == nil {
   470  		return this == nil
   471  	} else if this == nil {
   472  		return false
   473  	}
   474  	if this.NumReplicas != that1.NumReplicas {
   475  		return false
   476  	}
   477  	if len(this.Constraints) != len(that1.Constraints) {
   478  		return false
   479  	}
   480  	for i := range this.Constraints {
   481  		if !this.Constraints[i].Equal(&that1.Constraints[i]) {
   482  			return false
   483  		}
   484  	}
   485  	return true
   486  }
   487  func (this *LeasePreference) Equal(that interface{}) bool {
   488  	if that == nil {
   489  		return this == nil
   490  	}
   491  
   492  	that1, ok := that.(*LeasePreference)
   493  	if !ok {
   494  		that2, ok := that.(LeasePreference)
   495  		if ok {
   496  			that1 = &that2
   497  		} else {
   498  			return false
   499  		}
   500  	}
   501  	if that1 == nil {
   502  		return this == nil
   503  	} else if this == nil {
   504  		return false
   505  	}
   506  	if len(this.Constraints) != len(that1.Constraints) {
   507  		return false
   508  	}
   509  	for i := range this.Constraints {
   510  		if !this.Constraints[i].Equal(&that1.Constraints[i]) {
   511  			return false
   512  		}
   513  	}
   514  	return true
   515  }
   516  func (this *ZoneConfig) Equal(that interface{}) bool {
   517  	if that == nil {
   518  		return this == nil
   519  	}
   520  
   521  	that1, ok := that.(*ZoneConfig)
   522  	if !ok {
   523  		that2, ok := that.(ZoneConfig)
   524  		if ok {
   525  			that1 = &that2
   526  		} else {
   527  			return false
   528  		}
   529  	}
   530  	if that1 == nil {
   531  		return this == nil
   532  	} else if this == nil {
   533  		return false
   534  	}
   535  	if this.RangeMinBytes != nil && that1.RangeMinBytes != nil {
   536  		if *this.RangeMinBytes != *that1.RangeMinBytes {
   537  			return false
   538  		}
   539  	} else if this.RangeMinBytes != nil {
   540  		return false
   541  	} else if that1.RangeMinBytes != nil {
   542  		return false
   543  	}
   544  	if this.RangeMaxBytes != nil && that1.RangeMaxBytes != nil {
   545  		if *this.RangeMaxBytes != *that1.RangeMaxBytes {
   546  			return false
   547  		}
   548  	} else if this.RangeMaxBytes != nil {
   549  		return false
   550  	} else if that1.RangeMaxBytes != nil {
   551  		return false
   552  	}
   553  	if !this.GC.Equal(that1.GC) {
   554  		return false
   555  	}
   556  	if this.NumReplicas != nil && that1.NumReplicas != nil {
   557  		if *this.NumReplicas != *that1.NumReplicas {
   558  			return false
   559  		}
   560  	} else if this.NumReplicas != nil {
   561  		return false
   562  	} else if that1.NumReplicas != nil {
   563  		return false
   564  	}
   565  	if len(this.Constraints) != len(that1.Constraints) {
   566  		return false
   567  	}
   568  	for i := range this.Constraints {
   569  		if !this.Constraints[i].Equal(&that1.Constraints[i]) {
   570  			return false
   571  		}
   572  	}
   573  	if this.InheritedConstraints != that1.InheritedConstraints {
   574  		return false
   575  	}
   576  	if len(this.LeasePreferences) != len(that1.LeasePreferences) {
   577  		return false
   578  	}
   579  	for i := range this.LeasePreferences {
   580  		if !this.LeasePreferences[i].Equal(&that1.LeasePreferences[i]) {
   581  			return false
   582  		}
   583  	}
   584  	if this.InheritedLeasePreferences != that1.InheritedLeasePreferences {
   585  		return false
   586  	}
   587  	if len(this.Subzones) != len(that1.Subzones) {
   588  		return false
   589  	}
   590  	for i := range this.Subzones {
   591  		if !this.Subzones[i].Equal(&that1.Subzones[i]) {
   592  			return false
   593  		}
   594  	}
   595  	if len(this.SubzoneSpans) != len(that1.SubzoneSpans) {
   596  		return false
   597  	}
   598  	for i := range this.SubzoneSpans {
   599  		if !this.SubzoneSpans[i].Equal(&that1.SubzoneSpans[i]) {
   600  			return false
   601  		}
   602  	}
   603  	return true
   604  }
   605  func (this *Subzone) Equal(that interface{}) bool {
   606  	if that == nil {
   607  		return this == nil
   608  	}
   609  
   610  	that1, ok := that.(*Subzone)
   611  	if !ok {
   612  		that2, ok := that.(Subzone)
   613  		if ok {
   614  			that1 = &that2
   615  		} else {
   616  			return false
   617  		}
   618  	}
   619  	if that1 == nil {
   620  		return this == nil
   621  	} else if this == nil {
   622  		return false
   623  	}
   624  	if this.IndexID != that1.IndexID {
   625  		return false
   626  	}
   627  	if this.PartitionName != that1.PartitionName {
   628  		return false
   629  	}
   630  	if !this.Config.Equal(&that1.Config) {
   631  		return false
   632  	}
   633  	return true
   634  }
   635  func (this *SubzoneSpan) Equal(that interface{}) bool {
   636  	if that == nil {
   637  		return this == nil
   638  	}
   639  
   640  	that1, ok := that.(*SubzoneSpan)
   641  	if !ok {
   642  		that2, ok := that.(SubzoneSpan)
   643  		if ok {
   644  			that1 = &that2
   645  		} else {
   646  			return false
   647  		}
   648  	}
   649  	if that1 == nil {
   650  		return this == nil
   651  	} else if this == nil {
   652  		return false
   653  	}
   654  	if !bytes.Equal(this.Key, that1.Key) {
   655  		return false
   656  	}
   657  	if !bytes.Equal(this.EndKey, that1.EndKey) {
   658  		return false
   659  	}
   660  	if this.SubzoneIndex != that1.SubzoneIndex {
   661  		return false
   662  	}
   663  	return true
   664  }
   665  func (m *GCPolicy) Marshal() (dAtA []byte, err error) {
   666  	size := m.Size()
   667  	dAtA = make([]byte, size)
   668  	n, err := m.MarshalTo(dAtA)
   669  	if err != nil {
   670  		return nil, err
   671  	}
   672  	return dAtA[:n], nil
   673  }
   674  
   675  func (m *GCPolicy) MarshalTo(dAtA []byte) (int, error) {
   676  	var i int
   677  	_ = i
   678  	var l int
   679  	_ = l
   680  	dAtA[i] = 0x8
   681  	i++
   682  	i = encodeVarintZone(dAtA, i, uint64(m.TTLSeconds))
   683  	return i, nil
   684  }
   685  
   686  func (m *Constraint) Marshal() (dAtA []byte, err error) {
   687  	size := m.Size()
   688  	dAtA = make([]byte, size)
   689  	n, err := m.MarshalTo(dAtA)
   690  	if err != nil {
   691  		return nil, err
   692  	}
   693  	return dAtA[:n], nil
   694  }
   695  
   696  func (m *Constraint) MarshalTo(dAtA []byte) (int, error) {
   697  	var i int
   698  	_ = i
   699  	var l int
   700  	_ = l
   701  	dAtA[i] = 0x8
   702  	i++
   703  	i = encodeVarintZone(dAtA, i, uint64(m.Type))
   704  	dAtA[i] = 0x12
   705  	i++
   706  	i = encodeVarintZone(dAtA, i, uint64(len(m.Key)))
   707  	i += copy(dAtA[i:], m.Key)
   708  	dAtA[i] = 0x1a
   709  	i++
   710  	i = encodeVarintZone(dAtA, i, uint64(len(m.Value)))
   711  	i += copy(dAtA[i:], m.Value)
   712  	return i, nil
   713  }
   714  
   715  func (m *ConstraintsConjunction) Marshal() (dAtA []byte, err error) {
   716  	size := m.Size()
   717  	dAtA = make([]byte, size)
   718  	n, err := m.MarshalTo(dAtA)
   719  	if err != nil {
   720  		return nil, err
   721  	}
   722  	return dAtA[:n], nil
   723  }
   724  
   725  func (m *ConstraintsConjunction) MarshalTo(dAtA []byte) (int, error) {
   726  	var i int
   727  	_ = i
   728  	var l int
   729  	_ = l
   730  	if len(m.Constraints) > 0 {
   731  		for _, msg := range m.Constraints {
   732  			dAtA[i] = 0x32
   733  			i++
   734  			i = encodeVarintZone(dAtA, i, uint64(msg.Size()))
   735  			n, err := msg.MarshalTo(dAtA[i:])
   736  			if err != nil {
   737  				return 0, err
   738  			}
   739  			i += n
   740  		}
   741  	}
   742  	dAtA[i] = 0x38
   743  	i++
   744  	i = encodeVarintZone(dAtA, i, uint64(m.NumReplicas))
   745  	return i, nil
   746  }
   747  
   748  func (m *LeasePreference) Marshal() (dAtA []byte, err error) {
   749  	size := m.Size()
   750  	dAtA = make([]byte, size)
   751  	n, err := m.MarshalTo(dAtA)
   752  	if err != nil {
   753  		return nil, err
   754  	}
   755  	return dAtA[:n], nil
   756  }
   757  
   758  func (m *LeasePreference) MarshalTo(dAtA []byte) (int, error) {
   759  	var i int
   760  	_ = i
   761  	var l int
   762  	_ = l
   763  	if len(m.Constraints) > 0 {
   764  		for _, msg := range m.Constraints {
   765  			dAtA[i] = 0xa
   766  			i++
   767  			i = encodeVarintZone(dAtA, i, uint64(msg.Size()))
   768  			n, err := msg.MarshalTo(dAtA[i:])
   769  			if err != nil {
   770  				return 0, err
   771  			}
   772  			i += n
   773  		}
   774  	}
   775  	return i, nil
   776  }
   777  
   778  func (m *ZoneConfig) Marshal() (dAtA []byte, err error) {
   779  	size := m.Size()
   780  	dAtA = make([]byte, size)
   781  	n, err := m.MarshalTo(dAtA)
   782  	if err != nil {
   783  		return nil, err
   784  	}
   785  	return dAtA[:n], nil
   786  }
   787  
   788  func (m *ZoneConfig) MarshalTo(dAtA []byte) (int, error) {
   789  	var i int
   790  	_ = i
   791  	var l int
   792  	_ = l
   793  	if m.RangeMinBytes != nil {
   794  		dAtA[i] = 0x10
   795  		i++
   796  		i = encodeVarintZone(dAtA, i, uint64(*m.RangeMinBytes))
   797  	}
   798  	if m.RangeMaxBytes != nil {
   799  		dAtA[i] = 0x18
   800  		i++
   801  		i = encodeVarintZone(dAtA, i, uint64(*m.RangeMaxBytes))
   802  	}
   803  	if m.GC != nil {
   804  		dAtA[i] = 0x22
   805  		i++
   806  		i = encodeVarintZone(dAtA, i, uint64(m.GC.Size()))
   807  		n1, err := m.GC.MarshalTo(dAtA[i:])
   808  		if err != nil {
   809  			return 0, err
   810  		}
   811  		i += n1
   812  	}
   813  	if m.NumReplicas != nil {
   814  		dAtA[i] = 0x28
   815  		i++
   816  		i = encodeVarintZone(dAtA, i, uint64(*m.NumReplicas))
   817  	}
   818  	if len(m.Constraints) > 0 {
   819  		for _, msg := range m.Constraints {
   820  			dAtA[i] = 0x32
   821  			i++
   822  			i = encodeVarintZone(dAtA, i, uint64(msg.Size()))
   823  			n, err := msg.MarshalTo(dAtA[i:])
   824  			if err != nil {
   825  				return 0, err
   826  			}
   827  			i += n
   828  		}
   829  	}
   830  	if len(m.SubzoneSpans) > 0 {
   831  		for _, msg := range m.SubzoneSpans {
   832  			dAtA[i] = 0x3a
   833  			i++
   834  			i = encodeVarintZone(dAtA, i, uint64(msg.Size()))
   835  			n, err := msg.MarshalTo(dAtA[i:])
   836  			if err != nil {
   837  				return 0, err
   838  			}
   839  			i += n
   840  		}
   841  	}
   842  	if len(m.Subzones) > 0 {
   843  		for _, msg := range m.Subzones {
   844  			dAtA[i] = 0x42
   845  			i++
   846  			i = encodeVarintZone(dAtA, i, uint64(msg.Size()))
   847  			n, err := msg.MarshalTo(dAtA[i:])
   848  			if err != nil {
   849  				return 0, err
   850  			}
   851  			i += n
   852  		}
   853  	}
   854  	if len(m.LeasePreferences) > 0 {
   855  		for _, msg := range m.LeasePreferences {
   856  			dAtA[i] = 0x4a
   857  			i++
   858  			i = encodeVarintZone(dAtA, i, uint64(msg.Size()))
   859  			n, err := msg.MarshalTo(dAtA[i:])
   860  			if err != nil {
   861  				return 0, err
   862  			}
   863  			i += n
   864  		}
   865  	}
   866  	dAtA[i] = 0x50
   867  	i++
   868  	if m.InheritedConstraints {
   869  		dAtA[i] = 1
   870  	} else {
   871  		dAtA[i] = 0
   872  	}
   873  	i++
   874  	dAtA[i] = 0x58
   875  	i++
   876  	if m.InheritedLeasePreferences {
   877  		dAtA[i] = 1
   878  	} else {
   879  		dAtA[i] = 0
   880  	}
   881  	i++
   882  	return i, nil
   883  }
   884  
   885  func (m *Subzone) Marshal() (dAtA []byte, err error) {
   886  	size := m.Size()
   887  	dAtA = make([]byte, size)
   888  	n, err := m.MarshalTo(dAtA)
   889  	if err != nil {
   890  		return nil, err
   891  	}
   892  	return dAtA[:n], nil
   893  }
   894  
   895  func (m *Subzone) MarshalTo(dAtA []byte) (int, error) {
   896  	var i int
   897  	_ = i
   898  	var l int
   899  	_ = l
   900  	dAtA[i] = 0x8
   901  	i++
   902  	i = encodeVarintZone(dAtA, i, uint64(m.IndexID))
   903  	dAtA[i] = 0x12
   904  	i++
   905  	i = encodeVarintZone(dAtA, i, uint64(len(m.PartitionName)))
   906  	i += copy(dAtA[i:], m.PartitionName)
   907  	dAtA[i] = 0x1a
   908  	i++
   909  	i = encodeVarintZone(dAtA, i, uint64(m.Config.Size()))
   910  	n2, err := m.Config.MarshalTo(dAtA[i:])
   911  	if err != nil {
   912  		return 0, err
   913  	}
   914  	i += n2
   915  	return i, nil
   916  }
   917  
   918  func (m *SubzoneSpan) Marshal() (dAtA []byte, err error) {
   919  	size := m.Size()
   920  	dAtA = make([]byte, size)
   921  	n, err := m.MarshalTo(dAtA)
   922  	if err != nil {
   923  		return nil, err
   924  	}
   925  	return dAtA[:n], nil
   926  }
   927  
   928  func (m *SubzoneSpan) MarshalTo(dAtA []byte) (int, error) {
   929  	var i int
   930  	_ = i
   931  	var l int
   932  	_ = l
   933  	if m.Key != nil {
   934  		dAtA[i] = 0xa
   935  		i++
   936  		i = encodeVarintZone(dAtA, i, uint64(len(m.Key)))
   937  		i += copy(dAtA[i:], m.Key)
   938  	}
   939  	if m.EndKey != nil {
   940  		dAtA[i] = 0x12
   941  		i++
   942  		i = encodeVarintZone(dAtA, i, uint64(len(m.EndKey)))
   943  		i += copy(dAtA[i:], m.EndKey)
   944  	}
   945  	dAtA[i] = 0x18
   946  	i++
   947  	i = encodeVarintZone(dAtA, i, uint64(m.SubzoneIndex))
   948  	return i, nil
   949  }
   950  
   951  func encodeVarintZone(dAtA []byte, offset int, v uint64) int {
   952  	for v >= 1<<7 {
   953  		dAtA[offset] = uint8(v&0x7f | 0x80)
   954  		v >>= 7
   955  		offset++
   956  	}
   957  	dAtA[offset] = uint8(v)
   958  	return offset + 1
   959  }
   960  func NewPopulatedGCPolicy(r randyZone, easy bool) *GCPolicy {
   961  	this := &GCPolicy{}
   962  	this.TTLSeconds = int32(r.Int31())
   963  	if r.Intn(2) == 0 {
   964  		this.TTLSeconds *= -1
   965  	}
   966  	if !easy && r.Intn(10) != 0 {
   967  	}
   968  	return this
   969  }
   970  
   971  func NewPopulatedConstraint(r randyZone, easy bool) *Constraint {
   972  	this := &Constraint{}
   973  	this.Type = Constraint_Type([]int32{0, 1, 2}[r.Intn(3)])
   974  	this.Key = string(randStringZone(r))
   975  	this.Value = string(randStringZone(r))
   976  	if !easy && r.Intn(10) != 0 {
   977  	}
   978  	return this
   979  }
   980  
   981  func NewPopulatedConstraintsConjunction(r randyZone, easy bool) *ConstraintsConjunction {
   982  	this := &ConstraintsConjunction{}
   983  	if r.Intn(10) != 0 {
   984  		v1 := r.Intn(5)
   985  		this.Constraints = make([]Constraint, v1)
   986  		for i := 0; i < v1; i++ {
   987  			v2 := NewPopulatedConstraint(r, easy)
   988  			this.Constraints[i] = *v2
   989  		}
   990  	}
   991  	this.NumReplicas = int32(r.Int31())
   992  	if r.Intn(2) == 0 {
   993  		this.NumReplicas *= -1
   994  	}
   995  	if !easy && r.Intn(10) != 0 {
   996  	}
   997  	return this
   998  }
   999  
  1000  func NewPopulatedLeasePreference(r randyZone, easy bool) *LeasePreference {
  1001  	this := &LeasePreference{}
  1002  	if r.Intn(10) != 0 {
  1003  		v3 := r.Intn(5)
  1004  		this.Constraints = make([]Constraint, v3)
  1005  		for i := 0; i < v3; i++ {
  1006  			v4 := NewPopulatedConstraint(r, easy)
  1007  			this.Constraints[i] = *v4
  1008  		}
  1009  	}
  1010  	if !easy && r.Intn(10) != 0 {
  1011  	}
  1012  	return this
  1013  }
  1014  
  1015  func NewPopulatedZoneConfig(r randyZone, easy bool) *ZoneConfig {
  1016  	this := &ZoneConfig{}
  1017  	if r.Intn(10) != 0 {
  1018  		v5 := int64(r.Int63())
  1019  		if r.Intn(2) == 0 {
  1020  			v5 *= -1
  1021  		}
  1022  		this.RangeMinBytes = &v5
  1023  	}
  1024  	if r.Intn(10) != 0 {
  1025  		v6 := int64(r.Int63())
  1026  		if r.Intn(2) == 0 {
  1027  			v6 *= -1
  1028  		}
  1029  		this.RangeMaxBytes = &v6
  1030  	}
  1031  	if r.Intn(10) != 0 {
  1032  		this.GC = NewPopulatedGCPolicy(r, easy)
  1033  	}
  1034  	if r.Intn(10) != 0 {
  1035  		v7 := int32(r.Int31())
  1036  		if r.Intn(2) == 0 {
  1037  			v7 *= -1
  1038  		}
  1039  		this.NumReplicas = &v7
  1040  	}
  1041  	if r.Intn(10) != 0 {
  1042  		v8 := r.Intn(5)
  1043  		this.Constraints = make([]ConstraintsConjunction, v8)
  1044  		for i := 0; i < v8; i++ {
  1045  			v9 := NewPopulatedConstraintsConjunction(r, easy)
  1046  			this.Constraints[i] = *v9
  1047  		}
  1048  	}
  1049  	if r.Intn(10) != 0 {
  1050  		v10 := r.Intn(5)
  1051  		this.SubzoneSpans = make([]SubzoneSpan, v10)
  1052  		for i := 0; i < v10; i++ {
  1053  			v11 := NewPopulatedSubzoneSpan(r, easy)
  1054  			this.SubzoneSpans[i] = *v11
  1055  		}
  1056  	}
  1057  	if r.Intn(10) == 0 {
  1058  		v12 := r.Intn(5)
  1059  		this.Subzones = make([]Subzone, v12)
  1060  		for i := 0; i < v12; i++ {
  1061  			v13 := NewPopulatedSubzone(r, easy)
  1062  			this.Subzones[i] = *v13
  1063  		}
  1064  	}
  1065  	if r.Intn(10) != 0 {
  1066  		v14 := r.Intn(5)
  1067  		this.LeasePreferences = make([]LeasePreference, v14)
  1068  		for i := 0; i < v14; i++ {
  1069  			v15 := NewPopulatedLeasePreference(r, easy)
  1070  			this.LeasePreferences[i] = *v15
  1071  		}
  1072  	}
  1073  	this.InheritedConstraints = bool(bool(r.Intn(2) == 0))
  1074  	this.InheritedLeasePreferences = bool(bool(r.Intn(2) == 0))
  1075  	if !easy && r.Intn(10) != 0 {
  1076  	}
  1077  	return this
  1078  }
  1079  
  1080  func NewPopulatedSubzone(r randyZone, easy bool) *Subzone {
  1081  	this := &Subzone{}
  1082  	this.IndexID = uint32(r.Uint32())
  1083  	this.PartitionName = string(randStringZone(r))
  1084  	v16 := NewPopulatedZoneConfig(r, easy)
  1085  	this.Config = *v16
  1086  	if !easy && r.Intn(10) != 0 {
  1087  	}
  1088  	return this
  1089  }
  1090  
  1091  func NewPopulatedSubzoneSpan(r randyZone, easy bool) *SubzoneSpan {
  1092  	this := &SubzoneSpan{}
  1093  	if r.Intn(10) != 0 {
  1094  		v17 := r.Intn(100)
  1095  		this.Key = make(github_com_cockroachdb_cockroach_pkg_roachpb.Key, v17)
  1096  		for i := 0; i < v17; i++ {
  1097  			this.Key[i] = byte(r.Intn(256))
  1098  		}
  1099  	}
  1100  	if r.Intn(10) != 0 {
  1101  		v18 := r.Intn(100)
  1102  		this.EndKey = make(github_com_cockroachdb_cockroach_pkg_roachpb.Key, v18)
  1103  		for i := 0; i < v18; i++ {
  1104  			this.EndKey[i] = byte(r.Intn(256))
  1105  		}
  1106  	}
  1107  	this.SubzoneIndex = int32(r.Int31())
  1108  	if r.Intn(2) == 0 {
  1109  		this.SubzoneIndex *= -1
  1110  	}
  1111  	if !easy && r.Intn(10) != 0 {
  1112  	}
  1113  	return this
  1114  }
  1115  
  1116  type randyZone interface {
  1117  	Float32() float32
  1118  	Float64() float64
  1119  	Int63() int64
  1120  	Int31() int32
  1121  	Uint32() uint32
  1122  	Intn(n int) int
  1123  }
  1124  
  1125  func randUTF8RuneZone(r randyZone) rune {
  1126  	ru := r.Intn(62)
  1127  	if ru < 10 {
  1128  		return rune(ru + 48)
  1129  	} else if ru < 36 {
  1130  		return rune(ru + 55)
  1131  	}
  1132  	return rune(ru + 61)
  1133  }
  1134  func randStringZone(r randyZone) string {
  1135  	v19 := r.Intn(100)
  1136  	tmps := make([]rune, v19)
  1137  	for i := 0; i < v19; i++ {
  1138  		tmps[i] = randUTF8RuneZone(r)
  1139  	}
  1140  	return string(tmps)
  1141  }
  1142  func randUnrecognizedZone(r randyZone, maxFieldNumber int) (dAtA []byte) {
  1143  	l := r.Intn(5)
  1144  	for i := 0; i < l; i++ {
  1145  		wire := r.Intn(4)
  1146  		if wire == 3 {
  1147  			wire = 5
  1148  		}
  1149  		fieldNumber := maxFieldNumber + r.Intn(100)
  1150  		dAtA = randFieldZone(dAtA, r, fieldNumber, wire)
  1151  	}
  1152  	return dAtA
  1153  }
  1154  func randFieldZone(dAtA []byte, r randyZone, fieldNumber int, wire int) []byte {
  1155  	key := uint32(fieldNumber)<<3 | uint32(wire)
  1156  	switch wire {
  1157  	case 0:
  1158  		dAtA = encodeVarintPopulateZone(dAtA, uint64(key))
  1159  		v20 := r.Int63()
  1160  		if r.Intn(2) == 0 {
  1161  			v20 *= -1
  1162  		}
  1163  		dAtA = encodeVarintPopulateZone(dAtA, uint64(v20))
  1164  	case 1:
  1165  		dAtA = encodeVarintPopulateZone(dAtA, uint64(key))
  1166  		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)))
  1167  	case 2:
  1168  		dAtA = encodeVarintPopulateZone(dAtA, uint64(key))
  1169  		ll := r.Intn(100)
  1170  		dAtA = encodeVarintPopulateZone(dAtA, uint64(ll))
  1171  		for j := 0; j < ll; j++ {
  1172  			dAtA = append(dAtA, byte(r.Intn(256)))
  1173  		}
  1174  	default:
  1175  		dAtA = encodeVarintPopulateZone(dAtA, uint64(key))
  1176  		dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)))
  1177  	}
  1178  	return dAtA
  1179  }
  1180  func encodeVarintPopulateZone(dAtA []byte, v uint64) []byte {
  1181  	for v >= 1<<7 {
  1182  		dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80))
  1183  		v >>= 7
  1184  	}
  1185  	dAtA = append(dAtA, uint8(v))
  1186  	return dAtA
  1187  }
  1188  func (m *GCPolicy) Size() (n int) {
  1189  	if m == nil {
  1190  		return 0
  1191  	}
  1192  	var l int
  1193  	_ = l
  1194  	n += 1 + sovZone(uint64(m.TTLSeconds))
  1195  	return n
  1196  }
  1197  
  1198  func (m *Constraint) Size() (n int) {
  1199  	if m == nil {
  1200  		return 0
  1201  	}
  1202  	var l int
  1203  	_ = l
  1204  	n += 1 + sovZone(uint64(m.Type))
  1205  	l = len(m.Key)
  1206  	n += 1 + l + sovZone(uint64(l))
  1207  	l = len(m.Value)
  1208  	n += 1 + l + sovZone(uint64(l))
  1209  	return n
  1210  }
  1211  
  1212  func (m *ConstraintsConjunction) Size() (n int) {
  1213  	if m == nil {
  1214  		return 0
  1215  	}
  1216  	var l int
  1217  	_ = l
  1218  	if len(m.Constraints) > 0 {
  1219  		for _, e := range m.Constraints {
  1220  			l = e.Size()
  1221  			n += 1 + l + sovZone(uint64(l))
  1222  		}
  1223  	}
  1224  	n += 1 + sovZone(uint64(m.NumReplicas))
  1225  	return n
  1226  }
  1227  
  1228  func (m *LeasePreference) Size() (n int) {
  1229  	if m == nil {
  1230  		return 0
  1231  	}
  1232  	var l int
  1233  	_ = l
  1234  	if len(m.Constraints) > 0 {
  1235  		for _, e := range m.Constraints {
  1236  			l = e.Size()
  1237  			n += 1 + l + sovZone(uint64(l))
  1238  		}
  1239  	}
  1240  	return n
  1241  }
  1242  
  1243  func (m *ZoneConfig) Size() (n int) {
  1244  	if m == nil {
  1245  		return 0
  1246  	}
  1247  	var l int
  1248  	_ = l
  1249  	if m.RangeMinBytes != nil {
  1250  		n += 1 + sovZone(uint64(*m.RangeMinBytes))
  1251  	}
  1252  	if m.RangeMaxBytes != nil {
  1253  		n += 1 + sovZone(uint64(*m.RangeMaxBytes))
  1254  	}
  1255  	if m.GC != nil {
  1256  		l = m.GC.Size()
  1257  		n += 1 + l + sovZone(uint64(l))
  1258  	}
  1259  	if m.NumReplicas != nil {
  1260  		n += 1 + sovZone(uint64(*m.NumReplicas))
  1261  	}
  1262  	if len(m.Constraints) > 0 {
  1263  		for _, e := range m.Constraints {
  1264  			l = e.Size()
  1265  			n += 1 + l + sovZone(uint64(l))
  1266  		}
  1267  	}
  1268  	if len(m.SubzoneSpans) > 0 {
  1269  		for _, e := range m.SubzoneSpans {
  1270  			l = e.Size()
  1271  			n += 1 + l + sovZone(uint64(l))
  1272  		}
  1273  	}
  1274  	if len(m.Subzones) > 0 {
  1275  		for _, e := range m.Subzones {
  1276  			l = e.Size()
  1277  			n += 1 + l + sovZone(uint64(l))
  1278  		}
  1279  	}
  1280  	if len(m.LeasePreferences) > 0 {
  1281  		for _, e := range m.LeasePreferences {
  1282  			l = e.Size()
  1283  			n += 1 + l + sovZone(uint64(l))
  1284  		}
  1285  	}
  1286  	n += 2
  1287  	n += 2
  1288  	return n
  1289  }
  1290  
  1291  func (m *Subzone) Size() (n int) {
  1292  	if m == nil {
  1293  		return 0
  1294  	}
  1295  	var l int
  1296  	_ = l
  1297  	n += 1 + sovZone(uint64(m.IndexID))
  1298  	l = len(m.PartitionName)
  1299  	n += 1 + l + sovZone(uint64(l))
  1300  	l = m.Config.Size()
  1301  	n += 1 + l + sovZone(uint64(l))
  1302  	return n
  1303  }
  1304  
  1305  func (m *SubzoneSpan) Size() (n int) {
  1306  	if m == nil {
  1307  		return 0
  1308  	}
  1309  	var l int
  1310  	_ = l
  1311  	if m.Key != nil {
  1312  		l = len(m.Key)
  1313  		n += 1 + l + sovZone(uint64(l))
  1314  	}
  1315  	if m.EndKey != nil {
  1316  		l = len(m.EndKey)
  1317  		n += 1 + l + sovZone(uint64(l))
  1318  	}
  1319  	n += 1 + sovZone(uint64(m.SubzoneIndex))
  1320  	return n
  1321  }
  1322  
  1323  func sovZone(x uint64) (n int) {
  1324  	for {
  1325  		n++
  1326  		x >>= 7
  1327  		if x == 0 {
  1328  			break
  1329  		}
  1330  	}
  1331  	return n
  1332  }
  1333  func sozZone(x uint64) (n int) {
  1334  	return sovZone(uint64((x << 1) ^ uint64((int64(x) >> 63))))
  1335  }
  1336  func (m *GCPolicy) Unmarshal(dAtA []byte) error {
  1337  	l := len(dAtA)
  1338  	iNdEx := 0
  1339  	for iNdEx < l {
  1340  		preIndex := iNdEx
  1341  		var wire uint64
  1342  		for shift := uint(0); ; shift += 7 {
  1343  			if shift >= 64 {
  1344  				return ErrIntOverflowZone
  1345  			}
  1346  			if iNdEx >= l {
  1347  				return io.ErrUnexpectedEOF
  1348  			}
  1349  			b := dAtA[iNdEx]
  1350  			iNdEx++
  1351  			wire |= (uint64(b) & 0x7F) << shift
  1352  			if b < 0x80 {
  1353  				break
  1354  			}
  1355  		}
  1356  		fieldNum := int32(wire >> 3)
  1357  		wireType := int(wire & 0x7)
  1358  		if wireType == 4 {
  1359  			return fmt.Errorf("proto: GCPolicy: wiretype end group for non-group")
  1360  		}
  1361  		if fieldNum <= 0 {
  1362  			return fmt.Errorf("proto: GCPolicy: illegal tag %d (wire type %d)", fieldNum, wire)
  1363  		}
  1364  		switch fieldNum {
  1365  		case 1:
  1366  			if wireType != 0 {
  1367  				return fmt.Errorf("proto: wrong wireType = %d for field TTLSeconds", wireType)
  1368  			}
  1369  			m.TTLSeconds = 0
  1370  			for shift := uint(0); ; shift += 7 {
  1371  				if shift >= 64 {
  1372  					return ErrIntOverflowZone
  1373  				}
  1374  				if iNdEx >= l {
  1375  					return io.ErrUnexpectedEOF
  1376  				}
  1377  				b := dAtA[iNdEx]
  1378  				iNdEx++
  1379  				m.TTLSeconds |= (int32(b) & 0x7F) << shift
  1380  				if b < 0x80 {
  1381  					break
  1382  				}
  1383  			}
  1384  		default:
  1385  			iNdEx = preIndex
  1386  			skippy, err := skipZone(dAtA[iNdEx:])
  1387  			if err != nil {
  1388  				return err
  1389  			}
  1390  			if skippy < 0 {
  1391  				return ErrInvalidLengthZone
  1392  			}
  1393  			if (iNdEx + skippy) > l {
  1394  				return io.ErrUnexpectedEOF
  1395  			}
  1396  			iNdEx += skippy
  1397  		}
  1398  	}
  1399  
  1400  	if iNdEx > l {
  1401  		return io.ErrUnexpectedEOF
  1402  	}
  1403  	return nil
  1404  }
  1405  func (m *Constraint) Unmarshal(dAtA []byte) error {
  1406  	l := len(dAtA)
  1407  	iNdEx := 0
  1408  	for iNdEx < l {
  1409  		preIndex := iNdEx
  1410  		var wire uint64
  1411  		for shift := uint(0); ; shift += 7 {
  1412  			if shift >= 64 {
  1413  				return ErrIntOverflowZone
  1414  			}
  1415  			if iNdEx >= l {
  1416  				return io.ErrUnexpectedEOF
  1417  			}
  1418  			b := dAtA[iNdEx]
  1419  			iNdEx++
  1420  			wire |= (uint64(b) & 0x7F) << shift
  1421  			if b < 0x80 {
  1422  				break
  1423  			}
  1424  		}
  1425  		fieldNum := int32(wire >> 3)
  1426  		wireType := int(wire & 0x7)
  1427  		if wireType == 4 {
  1428  			return fmt.Errorf("proto: Constraint: wiretype end group for non-group")
  1429  		}
  1430  		if fieldNum <= 0 {
  1431  			return fmt.Errorf("proto: Constraint: illegal tag %d (wire type %d)", fieldNum, wire)
  1432  		}
  1433  		switch fieldNum {
  1434  		case 1:
  1435  			if wireType != 0 {
  1436  				return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
  1437  			}
  1438  			m.Type = 0
  1439  			for shift := uint(0); ; shift += 7 {
  1440  				if shift >= 64 {
  1441  					return ErrIntOverflowZone
  1442  				}
  1443  				if iNdEx >= l {
  1444  					return io.ErrUnexpectedEOF
  1445  				}
  1446  				b := dAtA[iNdEx]
  1447  				iNdEx++
  1448  				m.Type |= (Constraint_Type(b) & 0x7F) << shift
  1449  				if b < 0x80 {
  1450  					break
  1451  				}
  1452  			}
  1453  		case 2:
  1454  			if wireType != 2 {
  1455  				return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType)
  1456  			}
  1457  			var stringLen uint64
  1458  			for shift := uint(0); ; shift += 7 {
  1459  				if shift >= 64 {
  1460  					return ErrIntOverflowZone
  1461  				}
  1462  				if iNdEx >= l {
  1463  					return io.ErrUnexpectedEOF
  1464  				}
  1465  				b := dAtA[iNdEx]
  1466  				iNdEx++
  1467  				stringLen |= (uint64(b) & 0x7F) << shift
  1468  				if b < 0x80 {
  1469  					break
  1470  				}
  1471  			}
  1472  			intStringLen := int(stringLen)
  1473  			if intStringLen < 0 {
  1474  				return ErrInvalidLengthZone
  1475  			}
  1476  			postIndex := iNdEx + intStringLen
  1477  			if postIndex > l {
  1478  				return io.ErrUnexpectedEOF
  1479  			}
  1480  			m.Key = string(dAtA[iNdEx:postIndex])
  1481  			iNdEx = postIndex
  1482  		case 3:
  1483  			if wireType != 2 {
  1484  				return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
  1485  			}
  1486  			var stringLen uint64
  1487  			for shift := uint(0); ; shift += 7 {
  1488  				if shift >= 64 {
  1489  					return ErrIntOverflowZone
  1490  				}
  1491  				if iNdEx >= l {
  1492  					return io.ErrUnexpectedEOF
  1493  				}
  1494  				b := dAtA[iNdEx]
  1495  				iNdEx++
  1496  				stringLen |= (uint64(b) & 0x7F) << shift
  1497  				if b < 0x80 {
  1498  					break
  1499  				}
  1500  			}
  1501  			intStringLen := int(stringLen)
  1502  			if intStringLen < 0 {
  1503  				return ErrInvalidLengthZone
  1504  			}
  1505  			postIndex := iNdEx + intStringLen
  1506  			if postIndex > l {
  1507  				return io.ErrUnexpectedEOF
  1508  			}
  1509  			m.Value = string(dAtA[iNdEx:postIndex])
  1510  			iNdEx = postIndex
  1511  		default:
  1512  			iNdEx = preIndex
  1513  			skippy, err := skipZone(dAtA[iNdEx:])
  1514  			if err != nil {
  1515  				return err
  1516  			}
  1517  			if skippy < 0 {
  1518  				return ErrInvalidLengthZone
  1519  			}
  1520  			if (iNdEx + skippy) > l {
  1521  				return io.ErrUnexpectedEOF
  1522  			}
  1523  			iNdEx += skippy
  1524  		}
  1525  	}
  1526  
  1527  	if iNdEx > l {
  1528  		return io.ErrUnexpectedEOF
  1529  	}
  1530  	return nil
  1531  }
  1532  func (m *ConstraintsConjunction) Unmarshal(dAtA []byte) error {
  1533  	l := len(dAtA)
  1534  	iNdEx := 0
  1535  	for iNdEx < l {
  1536  		preIndex := iNdEx
  1537  		var wire uint64
  1538  		for shift := uint(0); ; shift += 7 {
  1539  			if shift >= 64 {
  1540  				return ErrIntOverflowZone
  1541  			}
  1542  			if iNdEx >= l {
  1543  				return io.ErrUnexpectedEOF
  1544  			}
  1545  			b := dAtA[iNdEx]
  1546  			iNdEx++
  1547  			wire |= (uint64(b) & 0x7F) << shift
  1548  			if b < 0x80 {
  1549  				break
  1550  			}
  1551  		}
  1552  		fieldNum := int32(wire >> 3)
  1553  		wireType := int(wire & 0x7)
  1554  		if wireType == 4 {
  1555  			return fmt.Errorf("proto: ConstraintsConjunction: wiretype end group for non-group")
  1556  		}
  1557  		if fieldNum <= 0 {
  1558  			return fmt.Errorf("proto: ConstraintsConjunction: illegal tag %d (wire type %d)", fieldNum, wire)
  1559  		}
  1560  		switch fieldNum {
  1561  		case 6:
  1562  			if wireType != 2 {
  1563  				return fmt.Errorf("proto: wrong wireType = %d for field Constraints", wireType)
  1564  			}
  1565  			var msglen int
  1566  			for shift := uint(0); ; shift += 7 {
  1567  				if shift >= 64 {
  1568  					return ErrIntOverflowZone
  1569  				}
  1570  				if iNdEx >= l {
  1571  					return io.ErrUnexpectedEOF
  1572  				}
  1573  				b := dAtA[iNdEx]
  1574  				iNdEx++
  1575  				msglen |= (int(b) & 0x7F) << shift
  1576  				if b < 0x80 {
  1577  					break
  1578  				}
  1579  			}
  1580  			if msglen < 0 {
  1581  				return ErrInvalidLengthZone
  1582  			}
  1583  			postIndex := iNdEx + msglen
  1584  			if postIndex > l {
  1585  				return io.ErrUnexpectedEOF
  1586  			}
  1587  			m.Constraints = append(m.Constraints, Constraint{})
  1588  			if err := m.Constraints[len(m.Constraints)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  1589  				return err
  1590  			}
  1591  			iNdEx = postIndex
  1592  		case 7:
  1593  			if wireType != 0 {
  1594  				return fmt.Errorf("proto: wrong wireType = %d for field NumReplicas", wireType)
  1595  			}
  1596  			m.NumReplicas = 0
  1597  			for shift := uint(0); ; shift += 7 {
  1598  				if shift >= 64 {
  1599  					return ErrIntOverflowZone
  1600  				}
  1601  				if iNdEx >= l {
  1602  					return io.ErrUnexpectedEOF
  1603  				}
  1604  				b := dAtA[iNdEx]
  1605  				iNdEx++
  1606  				m.NumReplicas |= (int32(b) & 0x7F) << shift
  1607  				if b < 0x80 {
  1608  					break
  1609  				}
  1610  			}
  1611  		default:
  1612  			iNdEx = preIndex
  1613  			skippy, err := skipZone(dAtA[iNdEx:])
  1614  			if err != nil {
  1615  				return err
  1616  			}
  1617  			if skippy < 0 {
  1618  				return ErrInvalidLengthZone
  1619  			}
  1620  			if (iNdEx + skippy) > l {
  1621  				return io.ErrUnexpectedEOF
  1622  			}
  1623  			iNdEx += skippy
  1624  		}
  1625  	}
  1626  
  1627  	if iNdEx > l {
  1628  		return io.ErrUnexpectedEOF
  1629  	}
  1630  	return nil
  1631  }
  1632  func (m *LeasePreference) Unmarshal(dAtA []byte) error {
  1633  	l := len(dAtA)
  1634  	iNdEx := 0
  1635  	for iNdEx < l {
  1636  		preIndex := iNdEx
  1637  		var wire uint64
  1638  		for shift := uint(0); ; shift += 7 {
  1639  			if shift >= 64 {
  1640  				return ErrIntOverflowZone
  1641  			}
  1642  			if iNdEx >= l {
  1643  				return io.ErrUnexpectedEOF
  1644  			}
  1645  			b := dAtA[iNdEx]
  1646  			iNdEx++
  1647  			wire |= (uint64(b) & 0x7F) << shift
  1648  			if b < 0x80 {
  1649  				break
  1650  			}
  1651  		}
  1652  		fieldNum := int32(wire >> 3)
  1653  		wireType := int(wire & 0x7)
  1654  		if wireType == 4 {
  1655  			return fmt.Errorf("proto: LeasePreference: wiretype end group for non-group")
  1656  		}
  1657  		if fieldNum <= 0 {
  1658  			return fmt.Errorf("proto: LeasePreference: illegal tag %d (wire type %d)", fieldNum, wire)
  1659  		}
  1660  		switch fieldNum {
  1661  		case 1:
  1662  			if wireType != 2 {
  1663  				return fmt.Errorf("proto: wrong wireType = %d for field Constraints", wireType)
  1664  			}
  1665  			var msglen int
  1666  			for shift := uint(0); ; shift += 7 {
  1667  				if shift >= 64 {
  1668  					return ErrIntOverflowZone
  1669  				}
  1670  				if iNdEx >= l {
  1671  					return io.ErrUnexpectedEOF
  1672  				}
  1673  				b := dAtA[iNdEx]
  1674  				iNdEx++
  1675  				msglen |= (int(b) & 0x7F) << shift
  1676  				if b < 0x80 {
  1677  					break
  1678  				}
  1679  			}
  1680  			if msglen < 0 {
  1681  				return ErrInvalidLengthZone
  1682  			}
  1683  			postIndex := iNdEx + msglen
  1684  			if postIndex > l {
  1685  				return io.ErrUnexpectedEOF
  1686  			}
  1687  			m.Constraints = append(m.Constraints, Constraint{})
  1688  			if err := m.Constraints[len(m.Constraints)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  1689  				return err
  1690  			}
  1691  			iNdEx = postIndex
  1692  		default:
  1693  			iNdEx = preIndex
  1694  			skippy, err := skipZone(dAtA[iNdEx:])
  1695  			if err != nil {
  1696  				return err
  1697  			}
  1698  			if skippy < 0 {
  1699  				return ErrInvalidLengthZone
  1700  			}
  1701  			if (iNdEx + skippy) > l {
  1702  				return io.ErrUnexpectedEOF
  1703  			}
  1704  			iNdEx += skippy
  1705  		}
  1706  	}
  1707  
  1708  	if iNdEx > l {
  1709  		return io.ErrUnexpectedEOF
  1710  	}
  1711  	return nil
  1712  }
  1713  func (m *ZoneConfig) Unmarshal(dAtA []byte) error {
  1714  	l := len(dAtA)
  1715  	iNdEx := 0
  1716  	for iNdEx < l {
  1717  		preIndex := iNdEx
  1718  		var wire uint64
  1719  		for shift := uint(0); ; shift += 7 {
  1720  			if shift >= 64 {
  1721  				return ErrIntOverflowZone
  1722  			}
  1723  			if iNdEx >= l {
  1724  				return io.ErrUnexpectedEOF
  1725  			}
  1726  			b := dAtA[iNdEx]
  1727  			iNdEx++
  1728  			wire |= (uint64(b) & 0x7F) << shift
  1729  			if b < 0x80 {
  1730  				break
  1731  			}
  1732  		}
  1733  		fieldNum := int32(wire >> 3)
  1734  		wireType := int(wire & 0x7)
  1735  		if wireType == 4 {
  1736  			return fmt.Errorf("proto: ZoneConfig: wiretype end group for non-group")
  1737  		}
  1738  		if fieldNum <= 0 {
  1739  			return fmt.Errorf("proto: ZoneConfig: illegal tag %d (wire type %d)", fieldNum, wire)
  1740  		}
  1741  		switch fieldNum {
  1742  		case 2:
  1743  			if wireType != 0 {
  1744  				return fmt.Errorf("proto: wrong wireType = %d for field RangeMinBytes", wireType)
  1745  			}
  1746  			var v int64
  1747  			for shift := uint(0); ; shift += 7 {
  1748  				if shift >= 64 {
  1749  					return ErrIntOverflowZone
  1750  				}
  1751  				if iNdEx >= l {
  1752  					return io.ErrUnexpectedEOF
  1753  				}
  1754  				b := dAtA[iNdEx]
  1755  				iNdEx++
  1756  				v |= (int64(b) & 0x7F) << shift
  1757  				if b < 0x80 {
  1758  					break
  1759  				}
  1760  			}
  1761  			m.RangeMinBytes = &v
  1762  		case 3:
  1763  			if wireType != 0 {
  1764  				return fmt.Errorf("proto: wrong wireType = %d for field RangeMaxBytes", wireType)
  1765  			}
  1766  			var v int64
  1767  			for shift := uint(0); ; shift += 7 {
  1768  				if shift >= 64 {
  1769  					return ErrIntOverflowZone
  1770  				}
  1771  				if iNdEx >= l {
  1772  					return io.ErrUnexpectedEOF
  1773  				}
  1774  				b := dAtA[iNdEx]
  1775  				iNdEx++
  1776  				v |= (int64(b) & 0x7F) << shift
  1777  				if b < 0x80 {
  1778  					break
  1779  				}
  1780  			}
  1781  			m.RangeMaxBytes = &v
  1782  		case 4:
  1783  			if wireType != 2 {
  1784  				return fmt.Errorf("proto: wrong wireType = %d for field GC", wireType)
  1785  			}
  1786  			var msglen int
  1787  			for shift := uint(0); ; shift += 7 {
  1788  				if shift >= 64 {
  1789  					return ErrIntOverflowZone
  1790  				}
  1791  				if iNdEx >= l {
  1792  					return io.ErrUnexpectedEOF
  1793  				}
  1794  				b := dAtA[iNdEx]
  1795  				iNdEx++
  1796  				msglen |= (int(b) & 0x7F) << shift
  1797  				if b < 0x80 {
  1798  					break
  1799  				}
  1800  			}
  1801  			if msglen < 0 {
  1802  				return ErrInvalidLengthZone
  1803  			}
  1804  			postIndex := iNdEx + msglen
  1805  			if postIndex > l {
  1806  				return io.ErrUnexpectedEOF
  1807  			}
  1808  			if m.GC == nil {
  1809  				m.GC = &GCPolicy{}
  1810  			}
  1811  			if err := m.GC.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  1812  				return err
  1813  			}
  1814  			iNdEx = postIndex
  1815  		case 5:
  1816  			if wireType != 0 {
  1817  				return fmt.Errorf("proto: wrong wireType = %d for field NumReplicas", wireType)
  1818  			}
  1819  			var v int32
  1820  			for shift := uint(0); ; shift += 7 {
  1821  				if shift >= 64 {
  1822  					return ErrIntOverflowZone
  1823  				}
  1824  				if iNdEx >= l {
  1825  					return io.ErrUnexpectedEOF
  1826  				}
  1827  				b := dAtA[iNdEx]
  1828  				iNdEx++
  1829  				v |= (int32(b) & 0x7F) << shift
  1830  				if b < 0x80 {
  1831  					break
  1832  				}
  1833  			}
  1834  			m.NumReplicas = &v
  1835  		case 6:
  1836  			if wireType != 2 {
  1837  				return fmt.Errorf("proto: wrong wireType = %d for field Constraints", wireType)
  1838  			}
  1839  			var msglen int
  1840  			for shift := uint(0); ; shift += 7 {
  1841  				if shift >= 64 {
  1842  					return ErrIntOverflowZone
  1843  				}
  1844  				if iNdEx >= l {
  1845  					return io.ErrUnexpectedEOF
  1846  				}
  1847  				b := dAtA[iNdEx]
  1848  				iNdEx++
  1849  				msglen |= (int(b) & 0x7F) << shift
  1850  				if b < 0x80 {
  1851  					break
  1852  				}
  1853  			}
  1854  			if msglen < 0 {
  1855  				return ErrInvalidLengthZone
  1856  			}
  1857  			postIndex := iNdEx + msglen
  1858  			if postIndex > l {
  1859  				return io.ErrUnexpectedEOF
  1860  			}
  1861  			m.Constraints = append(m.Constraints, ConstraintsConjunction{})
  1862  			if err := m.Constraints[len(m.Constraints)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  1863  				return err
  1864  			}
  1865  			iNdEx = postIndex
  1866  		case 7:
  1867  			if wireType != 2 {
  1868  				return fmt.Errorf("proto: wrong wireType = %d for field SubzoneSpans", wireType)
  1869  			}
  1870  			var msglen int
  1871  			for shift := uint(0); ; shift += 7 {
  1872  				if shift >= 64 {
  1873  					return ErrIntOverflowZone
  1874  				}
  1875  				if iNdEx >= l {
  1876  					return io.ErrUnexpectedEOF
  1877  				}
  1878  				b := dAtA[iNdEx]
  1879  				iNdEx++
  1880  				msglen |= (int(b) & 0x7F) << shift
  1881  				if b < 0x80 {
  1882  					break
  1883  				}
  1884  			}
  1885  			if msglen < 0 {
  1886  				return ErrInvalidLengthZone
  1887  			}
  1888  			postIndex := iNdEx + msglen
  1889  			if postIndex > l {
  1890  				return io.ErrUnexpectedEOF
  1891  			}
  1892  			m.SubzoneSpans = append(m.SubzoneSpans, SubzoneSpan{})
  1893  			if err := m.SubzoneSpans[len(m.SubzoneSpans)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  1894  				return err
  1895  			}
  1896  			iNdEx = postIndex
  1897  		case 8:
  1898  			if wireType != 2 {
  1899  				return fmt.Errorf("proto: wrong wireType = %d for field Subzones", wireType)
  1900  			}
  1901  			var msglen int
  1902  			for shift := uint(0); ; shift += 7 {
  1903  				if shift >= 64 {
  1904  					return ErrIntOverflowZone
  1905  				}
  1906  				if iNdEx >= l {
  1907  					return io.ErrUnexpectedEOF
  1908  				}
  1909  				b := dAtA[iNdEx]
  1910  				iNdEx++
  1911  				msglen |= (int(b) & 0x7F) << shift
  1912  				if b < 0x80 {
  1913  					break
  1914  				}
  1915  			}
  1916  			if msglen < 0 {
  1917  				return ErrInvalidLengthZone
  1918  			}
  1919  			postIndex := iNdEx + msglen
  1920  			if postIndex > l {
  1921  				return io.ErrUnexpectedEOF
  1922  			}
  1923  			m.Subzones = append(m.Subzones, Subzone{})
  1924  			if err := m.Subzones[len(m.Subzones)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  1925  				return err
  1926  			}
  1927  			iNdEx = postIndex
  1928  		case 9:
  1929  			if wireType != 2 {
  1930  				return fmt.Errorf("proto: wrong wireType = %d for field LeasePreferences", wireType)
  1931  			}
  1932  			var msglen int
  1933  			for shift := uint(0); ; shift += 7 {
  1934  				if shift >= 64 {
  1935  					return ErrIntOverflowZone
  1936  				}
  1937  				if iNdEx >= l {
  1938  					return io.ErrUnexpectedEOF
  1939  				}
  1940  				b := dAtA[iNdEx]
  1941  				iNdEx++
  1942  				msglen |= (int(b) & 0x7F) << shift
  1943  				if b < 0x80 {
  1944  					break
  1945  				}
  1946  			}
  1947  			if msglen < 0 {
  1948  				return ErrInvalidLengthZone
  1949  			}
  1950  			postIndex := iNdEx + msglen
  1951  			if postIndex > l {
  1952  				return io.ErrUnexpectedEOF
  1953  			}
  1954  			m.LeasePreferences = append(m.LeasePreferences, LeasePreference{})
  1955  			if err := m.LeasePreferences[len(m.LeasePreferences)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  1956  				return err
  1957  			}
  1958  			iNdEx = postIndex
  1959  		case 10:
  1960  			if wireType != 0 {
  1961  				return fmt.Errorf("proto: wrong wireType = %d for field InheritedConstraints", wireType)
  1962  			}
  1963  			var v int
  1964  			for shift := uint(0); ; shift += 7 {
  1965  				if shift >= 64 {
  1966  					return ErrIntOverflowZone
  1967  				}
  1968  				if iNdEx >= l {
  1969  					return io.ErrUnexpectedEOF
  1970  				}
  1971  				b := dAtA[iNdEx]
  1972  				iNdEx++
  1973  				v |= (int(b) & 0x7F) << shift
  1974  				if b < 0x80 {
  1975  					break
  1976  				}
  1977  			}
  1978  			m.InheritedConstraints = bool(v != 0)
  1979  		case 11:
  1980  			if wireType != 0 {
  1981  				return fmt.Errorf("proto: wrong wireType = %d for field InheritedLeasePreferences", wireType)
  1982  			}
  1983  			var v int
  1984  			for shift := uint(0); ; shift += 7 {
  1985  				if shift >= 64 {
  1986  					return ErrIntOverflowZone
  1987  				}
  1988  				if iNdEx >= l {
  1989  					return io.ErrUnexpectedEOF
  1990  				}
  1991  				b := dAtA[iNdEx]
  1992  				iNdEx++
  1993  				v |= (int(b) & 0x7F) << shift
  1994  				if b < 0x80 {
  1995  					break
  1996  				}
  1997  			}
  1998  			m.InheritedLeasePreferences = bool(v != 0)
  1999  		default:
  2000  			iNdEx = preIndex
  2001  			skippy, err := skipZone(dAtA[iNdEx:])
  2002  			if err != nil {
  2003  				return err
  2004  			}
  2005  			if skippy < 0 {
  2006  				return ErrInvalidLengthZone
  2007  			}
  2008  			if (iNdEx + skippy) > l {
  2009  				return io.ErrUnexpectedEOF
  2010  			}
  2011  			iNdEx += skippy
  2012  		}
  2013  	}
  2014  
  2015  	if iNdEx > l {
  2016  		return io.ErrUnexpectedEOF
  2017  	}
  2018  	return nil
  2019  }
  2020  func (m *Subzone) Unmarshal(dAtA []byte) error {
  2021  	l := len(dAtA)
  2022  	iNdEx := 0
  2023  	for iNdEx < l {
  2024  		preIndex := iNdEx
  2025  		var wire uint64
  2026  		for shift := uint(0); ; shift += 7 {
  2027  			if shift >= 64 {
  2028  				return ErrIntOverflowZone
  2029  			}
  2030  			if iNdEx >= l {
  2031  				return io.ErrUnexpectedEOF
  2032  			}
  2033  			b := dAtA[iNdEx]
  2034  			iNdEx++
  2035  			wire |= (uint64(b) & 0x7F) << shift
  2036  			if b < 0x80 {
  2037  				break
  2038  			}
  2039  		}
  2040  		fieldNum := int32(wire >> 3)
  2041  		wireType := int(wire & 0x7)
  2042  		if wireType == 4 {
  2043  			return fmt.Errorf("proto: Subzone: wiretype end group for non-group")
  2044  		}
  2045  		if fieldNum <= 0 {
  2046  			return fmt.Errorf("proto: Subzone: illegal tag %d (wire type %d)", fieldNum, wire)
  2047  		}
  2048  		switch fieldNum {
  2049  		case 1:
  2050  			if wireType != 0 {
  2051  				return fmt.Errorf("proto: wrong wireType = %d for field IndexID", wireType)
  2052  			}
  2053  			m.IndexID = 0
  2054  			for shift := uint(0); ; shift += 7 {
  2055  				if shift >= 64 {
  2056  					return ErrIntOverflowZone
  2057  				}
  2058  				if iNdEx >= l {
  2059  					return io.ErrUnexpectedEOF
  2060  				}
  2061  				b := dAtA[iNdEx]
  2062  				iNdEx++
  2063  				m.IndexID |= (uint32(b) & 0x7F) << shift
  2064  				if b < 0x80 {
  2065  					break
  2066  				}
  2067  			}
  2068  		case 2:
  2069  			if wireType != 2 {
  2070  				return fmt.Errorf("proto: wrong wireType = %d for field PartitionName", wireType)
  2071  			}
  2072  			var stringLen uint64
  2073  			for shift := uint(0); ; shift += 7 {
  2074  				if shift >= 64 {
  2075  					return ErrIntOverflowZone
  2076  				}
  2077  				if iNdEx >= l {
  2078  					return io.ErrUnexpectedEOF
  2079  				}
  2080  				b := dAtA[iNdEx]
  2081  				iNdEx++
  2082  				stringLen |= (uint64(b) & 0x7F) << shift
  2083  				if b < 0x80 {
  2084  					break
  2085  				}
  2086  			}
  2087  			intStringLen := int(stringLen)
  2088  			if intStringLen < 0 {
  2089  				return ErrInvalidLengthZone
  2090  			}
  2091  			postIndex := iNdEx + intStringLen
  2092  			if postIndex > l {
  2093  				return io.ErrUnexpectedEOF
  2094  			}
  2095  			m.PartitionName = string(dAtA[iNdEx:postIndex])
  2096  			iNdEx = postIndex
  2097  		case 3:
  2098  			if wireType != 2 {
  2099  				return fmt.Errorf("proto: wrong wireType = %d for field Config", wireType)
  2100  			}
  2101  			var msglen int
  2102  			for shift := uint(0); ; shift += 7 {
  2103  				if shift >= 64 {
  2104  					return ErrIntOverflowZone
  2105  				}
  2106  				if iNdEx >= l {
  2107  					return io.ErrUnexpectedEOF
  2108  				}
  2109  				b := dAtA[iNdEx]
  2110  				iNdEx++
  2111  				msglen |= (int(b) & 0x7F) << shift
  2112  				if b < 0x80 {
  2113  					break
  2114  				}
  2115  			}
  2116  			if msglen < 0 {
  2117  				return ErrInvalidLengthZone
  2118  			}
  2119  			postIndex := iNdEx + msglen
  2120  			if postIndex > l {
  2121  				return io.ErrUnexpectedEOF
  2122  			}
  2123  			if err := m.Config.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2124  				return err
  2125  			}
  2126  			iNdEx = postIndex
  2127  		default:
  2128  			iNdEx = preIndex
  2129  			skippy, err := skipZone(dAtA[iNdEx:])
  2130  			if err != nil {
  2131  				return err
  2132  			}
  2133  			if skippy < 0 {
  2134  				return ErrInvalidLengthZone
  2135  			}
  2136  			if (iNdEx + skippy) > l {
  2137  				return io.ErrUnexpectedEOF
  2138  			}
  2139  			iNdEx += skippy
  2140  		}
  2141  	}
  2142  
  2143  	if iNdEx > l {
  2144  		return io.ErrUnexpectedEOF
  2145  	}
  2146  	return nil
  2147  }
  2148  func (m *SubzoneSpan) Unmarshal(dAtA []byte) error {
  2149  	l := len(dAtA)
  2150  	iNdEx := 0
  2151  	for iNdEx < l {
  2152  		preIndex := iNdEx
  2153  		var wire uint64
  2154  		for shift := uint(0); ; shift += 7 {
  2155  			if shift >= 64 {
  2156  				return ErrIntOverflowZone
  2157  			}
  2158  			if iNdEx >= l {
  2159  				return io.ErrUnexpectedEOF
  2160  			}
  2161  			b := dAtA[iNdEx]
  2162  			iNdEx++
  2163  			wire |= (uint64(b) & 0x7F) << shift
  2164  			if b < 0x80 {
  2165  				break
  2166  			}
  2167  		}
  2168  		fieldNum := int32(wire >> 3)
  2169  		wireType := int(wire & 0x7)
  2170  		if wireType == 4 {
  2171  			return fmt.Errorf("proto: SubzoneSpan: wiretype end group for non-group")
  2172  		}
  2173  		if fieldNum <= 0 {
  2174  			return fmt.Errorf("proto: SubzoneSpan: illegal tag %d (wire type %d)", fieldNum, wire)
  2175  		}
  2176  		switch fieldNum {
  2177  		case 1:
  2178  			if wireType != 2 {
  2179  				return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType)
  2180  			}
  2181  			var byteLen int
  2182  			for shift := uint(0); ; shift += 7 {
  2183  				if shift >= 64 {
  2184  					return ErrIntOverflowZone
  2185  				}
  2186  				if iNdEx >= l {
  2187  					return io.ErrUnexpectedEOF
  2188  				}
  2189  				b := dAtA[iNdEx]
  2190  				iNdEx++
  2191  				byteLen |= (int(b) & 0x7F) << shift
  2192  				if b < 0x80 {
  2193  					break
  2194  				}
  2195  			}
  2196  			if byteLen < 0 {
  2197  				return ErrInvalidLengthZone
  2198  			}
  2199  			postIndex := iNdEx + byteLen
  2200  			if postIndex > l {
  2201  				return io.ErrUnexpectedEOF
  2202  			}
  2203  			m.Key = append(m.Key[:0], dAtA[iNdEx:postIndex]...)
  2204  			if m.Key == nil {
  2205  				m.Key = []byte{}
  2206  			}
  2207  			iNdEx = postIndex
  2208  		case 2:
  2209  			if wireType != 2 {
  2210  				return fmt.Errorf("proto: wrong wireType = %d for field EndKey", wireType)
  2211  			}
  2212  			var byteLen int
  2213  			for shift := uint(0); ; shift += 7 {
  2214  				if shift >= 64 {
  2215  					return ErrIntOverflowZone
  2216  				}
  2217  				if iNdEx >= l {
  2218  					return io.ErrUnexpectedEOF
  2219  				}
  2220  				b := dAtA[iNdEx]
  2221  				iNdEx++
  2222  				byteLen |= (int(b) & 0x7F) << shift
  2223  				if b < 0x80 {
  2224  					break
  2225  				}
  2226  			}
  2227  			if byteLen < 0 {
  2228  				return ErrInvalidLengthZone
  2229  			}
  2230  			postIndex := iNdEx + byteLen
  2231  			if postIndex > l {
  2232  				return io.ErrUnexpectedEOF
  2233  			}
  2234  			m.EndKey = append(m.EndKey[:0], dAtA[iNdEx:postIndex]...)
  2235  			if m.EndKey == nil {
  2236  				m.EndKey = []byte{}
  2237  			}
  2238  			iNdEx = postIndex
  2239  		case 3:
  2240  			if wireType != 0 {
  2241  				return fmt.Errorf("proto: wrong wireType = %d for field SubzoneIndex", wireType)
  2242  			}
  2243  			m.SubzoneIndex = 0
  2244  			for shift := uint(0); ; shift += 7 {
  2245  				if shift >= 64 {
  2246  					return ErrIntOverflowZone
  2247  				}
  2248  				if iNdEx >= l {
  2249  					return io.ErrUnexpectedEOF
  2250  				}
  2251  				b := dAtA[iNdEx]
  2252  				iNdEx++
  2253  				m.SubzoneIndex |= (int32(b) & 0x7F) << shift
  2254  				if b < 0x80 {
  2255  					break
  2256  				}
  2257  			}
  2258  		default:
  2259  			iNdEx = preIndex
  2260  			skippy, err := skipZone(dAtA[iNdEx:])
  2261  			if err != nil {
  2262  				return err
  2263  			}
  2264  			if skippy < 0 {
  2265  				return ErrInvalidLengthZone
  2266  			}
  2267  			if (iNdEx + skippy) > l {
  2268  				return io.ErrUnexpectedEOF
  2269  			}
  2270  			iNdEx += skippy
  2271  		}
  2272  	}
  2273  
  2274  	if iNdEx > l {
  2275  		return io.ErrUnexpectedEOF
  2276  	}
  2277  	return nil
  2278  }
  2279  func skipZone(dAtA []byte) (n int, err error) {
  2280  	l := len(dAtA)
  2281  	iNdEx := 0
  2282  	for iNdEx < l {
  2283  		var wire uint64
  2284  		for shift := uint(0); ; shift += 7 {
  2285  			if shift >= 64 {
  2286  				return 0, ErrIntOverflowZone
  2287  			}
  2288  			if iNdEx >= l {
  2289  				return 0, io.ErrUnexpectedEOF
  2290  			}
  2291  			b := dAtA[iNdEx]
  2292  			iNdEx++
  2293  			wire |= (uint64(b) & 0x7F) << shift
  2294  			if b < 0x80 {
  2295  				break
  2296  			}
  2297  		}
  2298  		wireType := int(wire & 0x7)
  2299  		switch wireType {
  2300  		case 0:
  2301  			for shift := uint(0); ; shift += 7 {
  2302  				if shift >= 64 {
  2303  					return 0, ErrIntOverflowZone
  2304  				}
  2305  				if iNdEx >= l {
  2306  					return 0, io.ErrUnexpectedEOF
  2307  				}
  2308  				iNdEx++
  2309  				if dAtA[iNdEx-1] < 0x80 {
  2310  					break
  2311  				}
  2312  			}
  2313  			return iNdEx, nil
  2314  		case 1:
  2315  			iNdEx += 8
  2316  			return iNdEx, nil
  2317  		case 2:
  2318  			var length int
  2319  			for shift := uint(0); ; shift += 7 {
  2320  				if shift >= 64 {
  2321  					return 0, ErrIntOverflowZone
  2322  				}
  2323  				if iNdEx >= l {
  2324  					return 0, io.ErrUnexpectedEOF
  2325  				}
  2326  				b := dAtA[iNdEx]
  2327  				iNdEx++
  2328  				length |= (int(b) & 0x7F) << shift
  2329  				if b < 0x80 {
  2330  					break
  2331  				}
  2332  			}
  2333  			iNdEx += length
  2334  			if length < 0 {
  2335  				return 0, ErrInvalidLengthZone
  2336  			}
  2337  			return iNdEx, nil
  2338  		case 3:
  2339  			for {
  2340  				var innerWire uint64
  2341  				var start int = iNdEx
  2342  				for shift := uint(0); ; shift += 7 {
  2343  					if shift >= 64 {
  2344  						return 0, ErrIntOverflowZone
  2345  					}
  2346  					if iNdEx >= l {
  2347  						return 0, io.ErrUnexpectedEOF
  2348  					}
  2349  					b := dAtA[iNdEx]
  2350  					iNdEx++
  2351  					innerWire |= (uint64(b) & 0x7F) << shift
  2352  					if b < 0x80 {
  2353  						break
  2354  					}
  2355  				}
  2356  				innerWireType := int(innerWire & 0x7)
  2357  				if innerWireType == 4 {
  2358  					break
  2359  				}
  2360  				next, err := skipZone(dAtA[start:])
  2361  				if err != nil {
  2362  					return 0, err
  2363  				}
  2364  				iNdEx = start + next
  2365  			}
  2366  			return iNdEx, nil
  2367  		case 4:
  2368  			return iNdEx, nil
  2369  		case 5:
  2370  			iNdEx += 4
  2371  			return iNdEx, nil
  2372  		default:
  2373  			return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
  2374  		}
  2375  	}
  2376  	panic("unreachable")
  2377  }
  2378  
  2379  var (
  2380  	ErrInvalidLengthZone = fmt.Errorf("proto: negative length found during unmarshaling")
  2381  	ErrIntOverflowZone   = fmt.Errorf("proto: integer overflow")
  2382  )
  2383  
  2384  func init() { proto.RegisterFile("config/zonepb/zone.proto", fileDescriptor_zone_84b39e9c66d84dc0) }
  2385  
  2386  var fileDescriptor_zone_84b39e9c66d84dc0 = []byte{
  2387  	// 873 bytes of a gzipped FileDescriptorProto
  2388  	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x54, 0x3d, 0x73, 0xe3, 0x44,
  2389  	0x18, 0xf6, 0xda, 0x8e, 0xad, 0x7b, 0xed, 0x24, 0x66, 0xef, 0x48, 0x44, 0x18, 0x2c, 0x23, 0x60,
  2390  	0x30, 0x5f, 0x36, 0x13, 0x68, 0xc8, 0x0c, 0xc5, 0xc9, 0x36, 0x87, 0xc8, 0x7d, 0x18, 0xc5, 0x50,
  2391  	0x1c, 0x85, 0x46, 0x96, 0x37, 0x8e, 0x88, 0xbc, 0xab, 0x91, 0x64, 0x88, 0x18, 0x3a, 0xfe, 0x00,
  2392  	0x25, 0x05, 0x45, 0xfe, 0x01, 0x2d, 0x33, 0xfc, 0x81, 0x94, 0x47, 0x77, 0x34, 0x1e, 0x70, 0x1a,
  2393  	0xea, 0x94, 0x54, 0x8c, 0x56, 0xb2, 0x24, 0xfb, 0x62, 0x08, 0x54, 0x5a, 0xed, 0xfb, 0xec, 0xf3,
  2394  	0x7e, 0x3d, 0xef, 0x0b, 0xa2, 0xc9, 0xe8, 0xb1, 0x35, 0x6e, 0x7f, 0xc3, 0x28, 0x71, 0x86, 0xfc,
  2395  	0xd3, 0x72, 0x5c, 0xe6, 0x33, 0xbc, 0x6b, 0x32, 0xf3, 0xd4, 0x65, 0x86, 0x79, 0xd2, 0x8a, 0x30,
  2396  	0xad, 0x08, 0xb3, 0x77, 0x67, 0xcc, 0xc6, 0x8c, 0x63, 0xda, 0xe1, 0x29, 0x82, 0xcb, 0x2a, 0x08,
  2397  	0xf7, 0x3a, 0x7d, 0x66, 0x5b, 0x66, 0x80, 0xdf, 0x83, 0x8a, 0xef, 0xdb, 0xba, 0x47, 0x4c, 0x46,
  2398  	0x47, 0x9e, 0x88, 0x1a, 0xa8, 0xb9, 0xa1, 0xe0, 0x8b, 0x99, 0x94, 0x9b, 0xcf, 0x24, 0x18, 0x0c,
  2399  	0xee, 0x1f, 0x45, 0x16, 0x0d, 0x7c, 0xdf, 0x8e, 0xcf, 0x07, 0xc2, 0xcf, 0xe7, 0x12, 0xfa, 0xf3,
  2400  	0x5c, 0x42, 0xf2, 0xaf, 0x08, 0xa0, 0xc3, 0xa8, 0xe7, 0xbb, 0x86, 0x45, 0x7d, 0xac, 0x40, 0xd1,
  2401  	0x0f, 0x1c, 0xc2, 0x69, 0xb6, 0xf6, 0x9b, 0xad, 0x35, 0x71, 0xb5, 0xd2, 0x27, 0xad, 0x41, 0xe0,
  2402  	0x10, 0xa5, 0x18, 0x3a, 0xd4, 0xf8, 0x5b, 0xbc, 0x03, 0x85, 0x53, 0x12, 0x88, 0xf9, 0x06, 0x6a,
  2403  	0xde, 0x8a, 0x0d, 0xe1, 0x05, 0xde, 0x83, 0x8d, 0xaf, 0x0c, 0x7b, 0x4a, 0xc4, 0x42, 0xc6, 0x12,
  2404  	0x5d, 0xc9, 0x1f, 0x42, 0x31, 0xe4, 0xc1, 0xbb, 0x70, 0xbb, 0xdb, 0xeb, 0x6b, 0xbd, 0xce, 0xdd,
  2405  	0x41, 0xaf, 0xab, 0xf7, 0x1f, 0x1d, 0xa9, 0x03, 0xf5, 0xf3, 0x5e, 0x2d, 0x87, 0xab, 0x20, 0x68,
  2406  	0xbd, 0x4f, 0x3f, 0x53, 0xb5, 0x5e, 0xb7, 0x86, 0xf0, 0x16, 0x40, 0x5f, 0x7b, 0xf4, 0xb1, 0xaa,
  2407  	0xa8, 0x83, 0x5e, 0xb7, 0x96, 0x3f, 0xa8, 0xfe, 0x70, 0x2e, 0xe5, 0x92, 0x9c, 0x7e, 0x44, 0xb0,
  2408  	0x93, 0x06, 0xe8, 0x75, 0x18, 0xfd, 0x72, 0x4a, 0x4d, 0xdf, 0x62, 0x14, 0x1f, 0x42, 0xc5, 0x4c,
  2409  	0x2d, 0x62, 0xa9, 0x51, 0x68, 0x56, 0xf6, 0x5f, 0xb9, 0x41, 0x9a, 0x71, 0xb8, 0xd9, 0xd7, 0xf8,
  2410  	0x75, 0xa8, 0xd2, 0xe9, 0x44, 0x77, 0x89, 0x63, 0x5b, 0xa6, 0xe1, 0x89, 0x65, 0x5e, 0xfb, 0x18,
  2411  	0x48, 0xa7, 0x13, 0x2d, 0x36, 0xac, 0x84, 0xf7, 0x1d, 0x82, 0xed, 0xfb, 0xc4, 0xf0, 0x48, 0xdf,
  2412  	0x25, 0xc7, 0xc4, 0x25, 0xd4, 0x24, 0xf8, 0x78, 0x39, 0x2e, 0x74, 0xf3, 0xb8, 0xa4, 0xd0, 0xdd,
  2413  	0xd5, 0x4c, 0xda, 0x0d, 0x8c, 0x89, 0x7d, 0x20, 0x67, 0x58, 0xde, 0x3e, 0xb6, 0xd9, 0xd7, 0xf2,
  2414  	0x52, 0xc8, 0x99, 0xc6, 0xff, 0x52, 0x02, 0x78, 0xcc, 0x28, 0xe9, 0x70, 0x62, 0xac, 0xc0, 0xb6,
  2415  	0x6b, 0xd0, 0x31, 0xd1, 0x27, 0x16, 0xd5, 0x87, 0x81, 0x4f, 0x3c, 0xde, 0xc0, 0x82, 0xb2, 0x77,
  2416  	0x35, 0x93, 0x76, 0x22, 0xee, 0x15, 0x80, 0xac, 0x6d, 0xf2, 0x9b, 0x07, 0x16, 0x55, 0xc2, 0xff,
  2417  	0x0c, 0x87, 0x71, 0x16, 0x73, 0x14, 0xd6, 0x70, 0x2c, 0x00, 0x09, 0x87, 0x71, 0x16, 0x71, 0x7c,
  2418  	0x00, 0xf9, 0xb1, 0x29, 0x16, 0x1b, 0xa8, 0x59, 0xd9, 0x7f, 0x79, 0x6d, 0xfe, 0x0b, 0xf5, 0x2b,
  2419  	0xa5, 0xf9, 0x4c, 0xca, 0xdf, 0xeb, 0x68, 0xf9, 0xb1, 0x89, 0x0f, 0x56, 0xda, 0xb1, 0xc1, 0xdb,
  2420  	0xb1, 0x7b, 0x35, 0x93, 0x6e, 0x47, 0xbe, 0xb3, 0x56, 0x79, 0xa9, 0x43, 0xd8, 0xbd, 0x4e, 0x17,
  2421  	0xed, 0x1b, 0xd4, 0x3f, 0xab, 0xae, 0xff, 0xd6, 0x0b, 0xfc, 0x05, 0x6c, 0x7a, 0xd3, 0x61, 0xc8,
  2422  	0xa8, 0x7b, 0x8e, 0x41, 0x43, 0xfd, 0x84, 0x5e, 0x5f, 0x5d, 0xeb, 0xf5, 0x28, 0x42, 0x1f, 0x39,
  2423  	0x06, 0x55, 0x6a, 0xb1, 0x2b, 0x21, 0x72, 0xf5, 0x8e, 0xac, 0x55, 0xbd, 0xd4, 0xec, 0xe1, 0x87,
  2424  	0x20, 0xc4, 0xff, 0x9e, 0x28, 0x70, 0xde, 0xc6, 0xbf, 0xf1, 0x5e, 0xc3, 0x99, 0x70, 0xe0, 0x6f,
  2425  	0xe1, 0x39, 0x3b, 0xd4, 0xac, 0xee, 0x24, 0xa2, 0xf5, 0xc4, 0x5b, 0x9c, 0x78, 0xfd, 0x96, 0x58,
  2426  	0x51, 0xb9, 0xf2, 0x5a, 0xec, 0xe0, 0xa5, 0xc8, 0xc1, 0x33, 0x84, 0x71, 0x95, 0x6a, 0xf6, 0xf2,
  2427  	0xbb, 0x50, 0x15, 0xcf, 0x5b, 0xf4, 0x84, 0xb8, 0x96, 0x4f, 0x46, 0x7a, 0xb6, 0x51, 0xd0, 0x40,
  2428  	0x4d, 0x21, 0x1e, 0xb9, 0x3b, 0x09, 0x24, 0xd3, 0x1e, 0xdc, 0x85, 0x17, 0xd3, 0xa7, 0xcf, 0xa6,
  2429  	0x50, 0xc9, 0x10, 0xbc, 0x90, 0x00, 0x57, 0x02, 0xcf, 0xcc, 0xcd, 0x27, 0x45, 0x01, 0xd5, 0xf2,
  2430  	0xf2, 0x4f, 0x08, 0xca, 0x71, 0xd9, 0xf0, 0x9b, 0x20, 0x58, 0x74, 0x44, 0xce, 0x74, 0x6b, 0xc4,
  2431  	0xf7, 0xe6, 0xa6, 0xb2, 0x1d, 0xaf, 0xdf, 0xb2, 0x1a, 0xde, 0xab, 0x5d, 0xad, 0xcc, 0x01, 0xea,
  2432  	0x08, 0xbf, 0x05, 0x5b, 0x8e, 0xe1, 0xfa, 0x56, 0x28, 0x17, 0x9d, 0x1a, 0x13, 0xb2, 0xb4, 0x26,
  2433  	0x37, 0x13, 0xdb, 0x43, 0x63, 0x42, 0xf0, 0x5d, 0x28, 0x45, 0xf5, 0xe4, 0x63, 0xf4, 0x4f, 0xfb,
  2434  	0x20, 0x1d, 0xe4, 0x98, 0x29, 0x7e, 0x98, 0x99, 0xf7, 0xdf, 0x10, 0x54, 0x32, 0x02, 0xc2, 0x1f,
  2435  	0x45, 0x5b, 0x3a, 0x0c, 0xb8, 0xaa, 0xbc, 0xff, 0xd7, 0x4c, 0x7a, 0x77, 0x6c, 0xf9, 0x27, 0xd3,
  2436  	0x61, 0xcb, 0x64, 0x93, 0x76, 0xe2, 0x67, 0x34, 0x4c, 0xcf, 0x6d, 0xe7, 0x74, 0xdc, 0xe6, 0x27,
  2437  	0x67, 0xd8, 0x3a, 0x24, 0x41, 0xb4, 0xd5, 0x1f, 0x40, 0x99, 0xd0, 0x91, 0xbe, 0xd8, 0xf8, 0xff,
  2438  	0x97, 0xab, 0x44, 0xe8, 0xe8, 0x90, 0x04, 0xf8, 0x8d, 0x74, 0x28, 0x78, 0xcd, 0x78, 0xea, 0x8b,
  2439  	0xa5, 0xba, 0x90, 0x38, 0x2f, 0x6b, 0x9a, 0x9b, 0xd2, 0xbc, 0xf8, 0xa3, 0x9e, 0xbb, 0x98, 0xd7,
  2440  	0xd1, 0x93, 0x79, 0x1d, 0x3d, 0x9d, 0xd7, 0xd1, 0xef, 0xf3, 0x3a, 0xfa, 0xfe, 0xb2, 0x9e, 0x7b,
  2441  	0x72, 0x59, 0xcf, 0x3d, 0xbd, 0xac, 0xe7, 0x1e, 0x97, 0xa2, 0x42, 0xfd, 0x1d, 0x00, 0x00, 0xff,
  2442  	0xff, 0x1b, 0xf7, 0x5e, 0xb9, 0x83, 0x07, 0x00, 0x00,
  2443  }