// Code generated by protoc-gen-go. DO NOT EDIT.
// source: google/bigtable/admin/v2/table.proto

package admin

import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"
import _ "google.golang.org/genproto/googleapis/api/annotations"
import google_protobuf5 "github.com/golang/protobuf/ptypes/duration"
import google_protobuf1 "github.com/golang/protobuf/ptypes/timestamp"

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

// Possible timestamp granularities to use when keeping multiple versions
// of data in a table.
type Table_TimestampGranularity int32

const (
	// The user did not specify a granularity. Should not be returned.
	// When specified during table creation, MILLIS will be used.
	Table_TIMESTAMP_GRANULARITY_UNSPECIFIED Table_TimestampGranularity = 0
	// The table keeps data versioned at a granularity of 1ms.
	Table_MILLIS Table_TimestampGranularity = 1
)

var Table_TimestampGranularity_name = map[int32]string{
	0: "TIMESTAMP_GRANULARITY_UNSPECIFIED",
	1: "MILLIS",
}
var Table_TimestampGranularity_value = map[string]int32{
	"TIMESTAMP_GRANULARITY_UNSPECIFIED": 0,
	"MILLIS": 1,
}

func (x Table_TimestampGranularity) String() string {
	return proto.EnumName(Table_TimestampGranularity_name, int32(x))
}
func (Table_TimestampGranularity) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor4, []int{0, 0}
}

// Defines a view over a table's fields.
type Table_View int32

const (
	// Uses the default view for each method as documented in its request.
	Table_VIEW_UNSPECIFIED Table_View = 0
	// Only populates `name`.
	Table_NAME_ONLY Table_View = 1
	// Only populates `name` and fields related to the table's schema.
	Table_SCHEMA_VIEW Table_View = 2
	// This is a private alpha release of Cloud Bigtable replication. This
	// feature is not currently available to most Cloud Bigtable customers. This
	// feature might be changed in backward-incompatible ways and is not
	// recommended for production use. It is not subject to any SLA or
	// deprecation policy.
	//
	// Only populates `name` and fields related to the table's
	// replication state.
	Table_REPLICATION_VIEW Table_View = 3
	// Populates all fields.
	Table_FULL Table_View = 4
)

var Table_View_name = map[int32]string{
	0: "VIEW_UNSPECIFIED",
	1: "NAME_ONLY",
	2: "SCHEMA_VIEW",
	3: "REPLICATION_VIEW",
	4: "FULL",
}
var Table_View_value = map[string]int32{
	"VIEW_UNSPECIFIED": 0,
	"NAME_ONLY":        1,
	"SCHEMA_VIEW":      2,
	"REPLICATION_VIEW": 3,
	"FULL":             4,
}

func (x Table_View) String() string {
	return proto.EnumName(Table_View_name, int32(x))
}
func (Table_View) EnumDescriptor() ([]byte, []int) { return fileDescriptor4, []int{0, 1} }

// Table replication states.
type Table_ClusterState_ReplicationState int32

const (
	// The replication state of the table is unknown in this cluster.
	Table_ClusterState_STATE_NOT_KNOWN Table_ClusterState_ReplicationState = 0
	// The cluster was recently created, and the table must finish copying
	// over pre-existing data from other clusters before it can begin
	// receiving live replication updates and serving
	// [Data API][google.bigtable.v2.Bigtable] requests.
	Table_ClusterState_INITIALIZING Table_ClusterState_ReplicationState = 1
	// The table is temporarily unable to serve
	// [Data API][google.bigtable.v2.Bigtable] requests from this
	// cluster due to planned internal maintenance.
	Table_ClusterState_PLANNED_MAINTENANCE Table_ClusterState_ReplicationState = 2
	// The table is temporarily unable to serve
	// [Data API][google.bigtable.v2.Bigtable] requests from this
	// cluster due to unplanned or emergency maintenance.
	Table_ClusterState_UNPLANNED_MAINTENANCE Table_ClusterState_ReplicationState = 3
	// The table can serve
	// [Data API][google.bigtable.v2.Bigtable] requests from this
	// cluster. Depending on replication delay, reads may not immediately
	// reflect the state of the table in other clusters.
	Table_ClusterState_READY Table_ClusterState_ReplicationState = 4
)

var Table_ClusterState_ReplicationState_name = map[int32]string{
	0: "STATE_NOT_KNOWN",
	1: "INITIALIZING",
	2: "PLANNED_MAINTENANCE",
	3: "UNPLANNED_MAINTENANCE",
	4: "READY",
}
var Table_ClusterState_ReplicationState_value = map[string]int32{
	"STATE_NOT_KNOWN":       0,
	"INITIALIZING":          1,
	"PLANNED_MAINTENANCE":   2,
	"UNPLANNED_MAINTENANCE": 3,
	"READY":                 4,
}

func (x Table_ClusterState_ReplicationState) String() string {
	return proto.EnumName(Table_ClusterState_ReplicationState_name, int32(x))
}
func (Table_ClusterState_ReplicationState) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor4, []int{0, 0, 0}
}

// Possible states of a snapshot.
type Snapshot_State int32

const (
	// The state of the snapshot could not be determined.
	Snapshot_STATE_NOT_KNOWN Snapshot_State = 0
	// The snapshot has been successfully created and can serve all requests.
	Snapshot_READY Snapshot_State = 1
	// The snapshot is currently being created, and may be destroyed if the
	// creation process encounters an error. A snapshot may not be restored to a
	// table while it is being created.
	Snapshot_CREATING Snapshot_State = 2
)

var Snapshot_State_name = map[int32]string{
	0: "STATE_NOT_KNOWN",
	1: "READY",
	2: "CREATING",
}
var Snapshot_State_value = map[string]int32{
	"STATE_NOT_KNOWN": 0,
	"READY":           1,
	"CREATING":        2,
}

func (x Snapshot_State) String() string {
	return proto.EnumName(Snapshot_State_name, int32(x))
}
func (Snapshot_State) EnumDescriptor() ([]byte, []int) { return fileDescriptor4, []int{3, 0} }

// A collection of user data indexed by row, column, and timestamp.
// Each table is served using the resources of its parent cluster.
type Table struct {
	// (`OutputOnly`)
	// The unique name of the table. Values are of the form
	// `projects/<project>/instances/<instance>/tables/[_a-zA-Z0-9][-_.a-zA-Z0-9]*`.
	// Views: `NAME_ONLY`, `SCHEMA_VIEW`, `FULL`
	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	// This is a private alpha release of Cloud Bigtable replication. This feature
	// is not currently available to most Cloud Bigtable customers. This feature
	// might be changed in backward-incompatible ways and is not recommended for
	// production use. It is not subject to any SLA or deprecation policy.
	//
	// (`OutputOnly`)
	// Map from cluster ID to per-cluster table state.
	// If it could not be determined whether or not the table has data in a
	// particular cluster (for example, if its zone is unavailable), then
	// there will be an entry for the cluster with UNKNOWN `replication_status`.
	// Views: `FULL`
	ClusterStates map[string]*Table_ClusterState `protobuf:"bytes,2,rep,name=cluster_states,json=clusterStates" json:"cluster_states,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	// (`CreationOnly`)
	// The column families configured for this table, mapped by column family ID.
	// Views: `SCHEMA_VIEW`, `FULL`
	ColumnFamilies map[string]*ColumnFamily `protobuf:"bytes,3,rep,name=column_families,json=columnFamilies" json:"column_families,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	// (`CreationOnly`)
	// The granularity (e.g. `MILLIS`, `MICROS`) at which timestamps are stored in
	// this table. Timestamps not matching the granularity will be rejected.
	// If unspecified at creation time, the value will be set to `MILLIS`.
	// Views: `SCHEMA_VIEW`, `FULL`
	Granularity Table_TimestampGranularity `protobuf:"varint,4,opt,name=granularity,enum=google.bigtable.admin.v2.Table_TimestampGranularity" json:"granularity,omitempty"`
}

func (m *Table) Reset()                    { *m = Table{} }
func (m *Table) String() string            { return proto.CompactTextString(m) }
func (*Table) ProtoMessage()               {}
func (*Table) Descriptor() ([]byte, []int) { return fileDescriptor4, []int{0} }

func (m *Table) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *Table) GetClusterStates() map[string]*Table_ClusterState {
	if m != nil {
		return m.ClusterStates
	}
	return nil
}

func (m *Table) GetColumnFamilies() map[string]*ColumnFamily {
	if m != nil {
		return m.ColumnFamilies
	}
	return nil
}

func (m *Table) GetGranularity() Table_TimestampGranularity {
	if m != nil {
		return m.Granularity
	}
	return Table_TIMESTAMP_GRANULARITY_UNSPECIFIED
}

// This is a private alpha release of Cloud Bigtable replication. This feature
// is not currently available to most Cloud Bigtable customers. This feature
// might be changed in backward-incompatible ways and is not recommended for
// production use. It is not subject to any SLA or deprecation policy.
//
// The state of a table's data in a particular cluster.
type Table_ClusterState struct {
	// (`OutputOnly`)
	// The state of replication for the table in this cluster.
	ReplicationState Table_ClusterState_ReplicationState `protobuf:"varint,1,opt,name=replication_state,json=replicationState,enum=google.bigtable.admin.v2.Table_ClusterState_ReplicationState" json:"replication_state,omitempty"`
}

func (m *Table_ClusterState) Reset()                    { *m = Table_ClusterState{} }
func (m *Table_ClusterState) String() string            { return proto.CompactTextString(m) }
func (*Table_ClusterState) ProtoMessage()               {}
func (*Table_ClusterState) Descriptor() ([]byte, []int) { return fileDescriptor4, []int{0, 0} }

func (m *Table_ClusterState) GetReplicationState() Table_ClusterState_ReplicationState {
	if m != nil {
		return m.ReplicationState
	}
	return Table_ClusterState_STATE_NOT_KNOWN
}

// A set of columns within a table which share a common configuration.
type ColumnFamily struct {
	// Garbage collection rule specified as a protobuf.
	// Must serialize to at most 500 bytes.
	//
	// NOTE: Garbage collection executes opportunistically in the background, and
	// so it's possible for reads to return a cell even if it matches the active
	// GC expression for its family.
	GcRule *GcRule `protobuf:"bytes,1,opt,name=gc_rule,json=gcRule" json:"gc_rule,omitempty"`
}

func (m *ColumnFamily) Reset()                    { *m = ColumnFamily{} }
func (m *ColumnFamily) String() string            { return proto.CompactTextString(m) }
func (*ColumnFamily) ProtoMessage()               {}
func (*ColumnFamily) Descriptor() ([]byte, []int) { return fileDescriptor4, []int{1} }

func (m *ColumnFamily) GetGcRule() *GcRule {
	if m != nil {
		return m.GcRule
	}
	return nil
}

// Rule for determining which cells to delete during garbage collection.
type GcRule struct {
	// Garbage collection rules.
	//
	// Types that are valid to be assigned to Rule:
	//	*GcRule_MaxNumVersions
	//	*GcRule_MaxAge
	//	*GcRule_Intersection_
	//	*GcRule_Union_
	Rule isGcRule_Rule `protobuf_oneof:"rule"`
}

func (m *GcRule) Reset()                    { *m = GcRule{} }
func (m *GcRule) String() string            { return proto.CompactTextString(m) }
func (*GcRule) ProtoMessage()               {}
func (*GcRule) Descriptor() ([]byte, []int) { return fileDescriptor4, []int{2} }

type isGcRule_Rule interface {
	isGcRule_Rule()
}

type GcRule_MaxNumVersions struct {
	MaxNumVersions int32 `protobuf:"varint,1,opt,name=max_num_versions,json=maxNumVersions,oneof"`
}
type GcRule_MaxAge struct {
	MaxAge *google_protobuf5.Duration `protobuf:"bytes,2,opt,name=max_age,json=maxAge,oneof"`
}
type GcRule_Intersection_ struct {
	Intersection *GcRule_Intersection `protobuf:"bytes,3,opt,name=intersection,oneof"`
}
type GcRule_Union_ struct {
	Union *GcRule_Union `protobuf:"bytes,4,opt,name=union,oneof"`
}

func (*GcRule_MaxNumVersions) isGcRule_Rule() {}
func (*GcRule_MaxAge) isGcRule_Rule()         {}
func (*GcRule_Intersection_) isGcRule_Rule()  {}
func (*GcRule_Union_) isGcRule_Rule()         {}

func (m *GcRule) GetRule() isGcRule_Rule {
	if m != nil {
		return m.Rule
	}
	return nil
}

func (m *GcRule) GetMaxNumVersions() int32 {
	if x, ok := m.GetRule().(*GcRule_MaxNumVersions); ok {
		return x.MaxNumVersions
	}
	return 0
}

func (m *GcRule) GetMaxAge() *google_protobuf5.Duration {
	if x, ok := m.GetRule().(*GcRule_MaxAge); ok {
		return x.MaxAge
	}
	return nil
}

func (m *GcRule) GetIntersection() *GcRule_Intersection {
	if x, ok := m.GetRule().(*GcRule_Intersection_); ok {
		return x.Intersection
	}
	return nil
}

func (m *GcRule) GetUnion() *GcRule_Union {
	if x, ok := m.GetRule().(*GcRule_Union_); ok {
		return x.Union
	}
	return nil
}

// XXX_OneofFuncs is for the internal use of the proto package.
func (*GcRule) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
	return _GcRule_OneofMarshaler, _GcRule_OneofUnmarshaler, _GcRule_OneofSizer, []interface{}{
		(*GcRule_MaxNumVersions)(nil),
		(*GcRule_MaxAge)(nil),
		(*GcRule_Intersection_)(nil),
		(*GcRule_Union_)(nil),
	}
}

func _GcRule_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
	m := msg.(*GcRule)
	// rule
	switch x := m.Rule.(type) {
	case *GcRule_MaxNumVersions:
		b.EncodeVarint(1<<3 | proto.WireVarint)
		b.EncodeVarint(uint64(x.MaxNumVersions))
	case *GcRule_MaxAge:
		b.EncodeVarint(2<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.MaxAge); err != nil {
			return err
		}
	case *GcRule_Intersection_:
		b.EncodeVarint(3<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.Intersection); err != nil {
			return err
		}
	case *GcRule_Union_:
		b.EncodeVarint(4<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.Union); err != nil {
			return err
		}
	case nil:
	default:
		return fmt.Errorf("GcRule.Rule has unexpected type %T", x)
	}
	return nil
}

func _GcRule_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
	m := msg.(*GcRule)
	switch tag {
	case 1: // rule.max_num_versions
		if wire != proto.WireVarint {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeVarint()
		m.Rule = &GcRule_MaxNumVersions{int32(x)}
		return true, err
	case 2: // rule.max_age
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(google_protobuf5.Duration)
		err := b.DecodeMessage(msg)
		m.Rule = &GcRule_MaxAge{msg}
		return true, err
	case 3: // rule.intersection
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(GcRule_Intersection)
		err := b.DecodeMessage(msg)
		m.Rule = &GcRule_Intersection_{msg}
		return true, err
	case 4: // rule.union
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(GcRule_Union)
		err := b.DecodeMessage(msg)
		m.Rule = &GcRule_Union_{msg}
		return true, err
	default:
		return false, nil
	}
}

func _GcRule_OneofSizer(msg proto.Message) (n int) {
	m := msg.(*GcRule)
	// rule
	switch x := m.Rule.(type) {
	case *GcRule_MaxNumVersions:
		n += proto.SizeVarint(1<<3 | proto.WireVarint)
		n += proto.SizeVarint(uint64(x.MaxNumVersions))
	case *GcRule_MaxAge:
		s := proto.Size(x.MaxAge)
		n += proto.SizeVarint(2<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(s))
		n += s
	case *GcRule_Intersection_:
		s := proto.Size(x.Intersection)
		n += proto.SizeVarint(3<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(s))
		n += s
	case *GcRule_Union_:
		s := proto.Size(x.Union)
		n += proto.SizeVarint(4<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(s))
		n += s
	case nil:
	default:
		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
	}
	return n
}

// A GcRule which deletes cells matching all of the given rules.
type GcRule_Intersection struct {
	// Only delete cells which would be deleted by every element of `rules`.
	Rules []*GcRule `protobuf:"bytes,1,rep,name=rules" json:"rules,omitempty"`
}

func (m *GcRule_Intersection) Reset()                    { *m = GcRule_Intersection{} }
func (m *GcRule_Intersection) String() string            { return proto.CompactTextString(m) }
func (*GcRule_Intersection) ProtoMessage()               {}
func (*GcRule_Intersection) Descriptor() ([]byte, []int) { return fileDescriptor4, []int{2, 0} }

func (m *GcRule_Intersection) GetRules() []*GcRule {
	if m != nil {
		return m.Rules
	}
	return nil
}

// A GcRule which deletes cells matching any of the given rules.
type GcRule_Union struct {
	// Delete cells which would be deleted by any element of `rules`.
	Rules []*GcRule `protobuf:"bytes,1,rep,name=rules" json:"rules,omitempty"`
}

func (m *GcRule_Union) Reset()                    { *m = GcRule_Union{} }
func (m *GcRule_Union) String() string            { return proto.CompactTextString(m) }
func (*GcRule_Union) ProtoMessage()               {}
func (*GcRule_Union) Descriptor() ([]byte, []int) { return fileDescriptor4, []int{2, 1} }

func (m *GcRule_Union) GetRules() []*GcRule {
	if m != nil {
		return m.Rules
	}
	return nil
}

// This is a private alpha release of Cloud Bigtable snapshots. This feature
// is not currently available to most Cloud Bigtable customers. This feature
// might be changed in backward-incompatible ways and is not recommended for
// production use. It is not subject to any SLA or deprecation policy.
//
// A snapshot of a table at a particular time. A snapshot can be used as a
// checkpoint for data restoration or a data source for a new table.
type Snapshot struct {
	// (`OutputOnly`)
	// The unique name of the snapshot.
	// Values are of the form
	// `projects/<project>/instances/<instance>/clusters/<cluster>/snapshots/<snapshot>`.
	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	// (`OutputOnly`)
	// The source table at the time the snapshot was taken.
	SourceTable *Table `protobuf:"bytes,2,opt,name=source_table,json=sourceTable" json:"source_table,omitempty"`
	// (`OutputOnly`)
	// The size of the data in the source table at the time the snapshot was
	// taken. In some cases, this value may be computed asynchronously via a
	// background process and a placeholder of 0 will be used in the meantime.
	DataSizeBytes int64 `protobuf:"varint,3,opt,name=data_size_bytes,json=dataSizeBytes" json:"data_size_bytes,omitempty"`
	// (`OutputOnly`)
	// The time when the snapshot is created.
	CreateTime *google_protobuf1.Timestamp `protobuf:"bytes,4,opt,name=create_time,json=createTime" json:"create_time,omitempty"`
	// (`OutputOnly`)
	// The time when the snapshot will be deleted. The maximum amount of time a
	// snapshot can stay active is 365 days. If 'ttl' is not specified,
	// the default maximum of 365 days will be used.
	DeleteTime *google_protobuf1.Timestamp `protobuf:"bytes,5,opt,name=delete_time,json=deleteTime" json:"delete_time,omitempty"`
	// (`OutputOnly`)
	// The current state of the snapshot.
	State Snapshot_State `protobuf:"varint,6,opt,name=state,enum=google.bigtable.admin.v2.Snapshot_State" json:"state,omitempty"`
	// (`OutputOnly`)
	// Description of the snapshot.
	Description string `protobuf:"bytes,7,opt,name=description" json:"description,omitempty"`
}

func (m *Snapshot) Reset()                    { *m = Snapshot{} }
func (m *Snapshot) String() string            { return proto.CompactTextString(m) }
func (*Snapshot) ProtoMessage()               {}
func (*Snapshot) Descriptor() ([]byte, []int) { return fileDescriptor4, []int{3} }

func (m *Snapshot) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *Snapshot) GetSourceTable() *Table {
	if m != nil {
		return m.SourceTable
	}
	return nil
}

func (m *Snapshot) GetDataSizeBytes() int64 {
	if m != nil {
		return m.DataSizeBytes
	}
	return 0
}

func (m *Snapshot) GetCreateTime() *google_protobuf1.Timestamp {
	if m != nil {
		return m.CreateTime
	}
	return nil
}

func (m *Snapshot) GetDeleteTime() *google_protobuf1.Timestamp {
	if m != nil {
		return m.DeleteTime
	}
	return nil
}

func (m *Snapshot) GetState() Snapshot_State {
	if m != nil {
		return m.State
	}
	return Snapshot_STATE_NOT_KNOWN
}

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

func init() {
	proto.RegisterType((*Table)(nil), "google.bigtable.admin.v2.Table")
	proto.RegisterType((*Table_ClusterState)(nil), "google.bigtable.admin.v2.Table.ClusterState")
	proto.RegisterType((*ColumnFamily)(nil), "google.bigtable.admin.v2.ColumnFamily")
	proto.RegisterType((*GcRule)(nil), "google.bigtable.admin.v2.GcRule")
	proto.RegisterType((*GcRule_Intersection)(nil), "google.bigtable.admin.v2.GcRule.Intersection")
	proto.RegisterType((*GcRule_Union)(nil), "google.bigtable.admin.v2.GcRule.Union")
	proto.RegisterType((*Snapshot)(nil), "google.bigtable.admin.v2.Snapshot")
	proto.RegisterEnum("google.bigtable.admin.v2.Table_TimestampGranularity", Table_TimestampGranularity_name, Table_TimestampGranularity_value)
	proto.RegisterEnum("google.bigtable.admin.v2.Table_View", Table_View_name, Table_View_value)
	proto.RegisterEnum("google.bigtable.admin.v2.Table_ClusterState_ReplicationState", Table_ClusterState_ReplicationState_name, Table_ClusterState_ReplicationState_value)
	proto.RegisterEnum("google.bigtable.admin.v2.Snapshot_State", Snapshot_State_name, Snapshot_State_value)
}

func init() { proto.RegisterFile("google/bigtable/admin/v2/table.proto", fileDescriptor4) }

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