Merge pull request #30521 from yujuhong/rm_pod_resources

Automatic merge from submit-queue

CRI: remove pod sandbox resources

The pod-level resources need further discussion. Remove it from CRI for now.

See the original discussion in #29871
pull/6/head
Kubernetes Submit Queue 2016-08-15 11:42:19 -07:00 committed by GitHub
commit 88d8628137
3 changed files with 235 additions and 349 deletions

View File

@ -30,8 +30,6 @@ It has these top-level messages:
DNSOption
PortMapping
Mount
ResourceRequirements
PodSandboxResources
NamespaceOption
LinuxPodSandboxConfig
PodSandboxConfig
@ -417,66 +415,6 @@ func (m *Mount) GetSelinuxRelabel() bool {
return false
}
// ResourceRequirements contains a set of resources
// Valid resources are:
// - cpu, in cores. (500m = .5 cores)
// - memory, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)
type ResourceRequirements struct {
// The maximum amount of compute resources allowed.
Limits *float64 `protobuf:"fixed64,1,opt,name=limits" json:"limits,omitempty"`
// The minimum amount of compute resources required.
// If Request is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value
Requests *float64 `protobuf:"fixed64,2,opt,name=requests" json:"requests,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *ResourceRequirements) Reset() { *m = ResourceRequirements{} }
func (m *ResourceRequirements) String() string { return proto.CompactTextString(m) }
func (*ResourceRequirements) ProtoMessage() {}
func (*ResourceRequirements) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{5} }
func (m *ResourceRequirements) GetLimits() float64 {
if m != nil && m.Limits != nil {
return *m.Limits
}
return 0
}
func (m *ResourceRequirements) GetRequests() float64 {
if m != nil && m.Requests != nil {
return *m.Requests
}
return 0
}
// PodSandboxResources contains the CPU/memory resource requirements.
type PodSandboxResources struct {
// CPU resource requirement.
Cpu *ResourceRequirements `protobuf:"bytes,1,opt,name=cpu" json:"cpu,omitempty"`
// Memory resource requirement.
Memory *ResourceRequirements `protobuf:"bytes,2,opt,name=memory" json:"memory,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *PodSandboxResources) Reset() { *m = PodSandboxResources{} }
func (m *PodSandboxResources) String() string { return proto.CompactTextString(m) }
func (*PodSandboxResources) ProtoMessage() {}
func (*PodSandboxResources) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{6} }
func (m *PodSandboxResources) GetCpu() *ResourceRequirements {
if m != nil {
return m.Cpu
}
return nil
}
func (m *PodSandboxResources) GetMemory() *ResourceRequirements {
if m != nil {
return m.Memory
}
return nil
}
// NamespaceOption provides options for Linux namespaces.
type NamespaceOption struct {
// If set, use the host's network namespace.
@ -491,7 +429,7 @@ type NamespaceOption struct {
func (m *NamespaceOption) Reset() { *m = NamespaceOption{} }
func (m *NamespaceOption) String() string { return proto.CompactTextString(m) }
func (*NamespaceOption) ProtoMessage() {}
func (*NamespaceOption) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{7} }
func (*NamespaceOption) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{5} }
func (m *NamespaceOption) GetHostNetwork() bool {
if m != nil && m.HostNetwork != nil {
@ -530,7 +468,7 @@ type LinuxPodSandboxConfig struct {
func (m *LinuxPodSandboxConfig) Reset() { *m = LinuxPodSandboxConfig{} }
func (m *LinuxPodSandboxConfig) String() string { return proto.CompactTextString(m) }
func (*LinuxPodSandboxConfig) ProtoMessage() {}
func (*LinuxPodSandboxConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{8} }
func (*LinuxPodSandboxConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{6} }
func (m *LinuxPodSandboxConfig) GetCgroupParent() string {
if m != nil && m.CgroupParent != nil {
@ -573,27 +511,20 @@ type PodSandboxConfig struct {
DnsOptions *DNSOption `protobuf:"bytes,4,opt,name=dns_options,json=dnsOptions" json:"dns_options,omitempty"`
// The port mappings for the sandbox.
PortMappings []*PortMapping `protobuf:"bytes,5,rep,name=port_mappings,json=portMappings" json:"port_mappings,omitempty"`
// Resources specifies the resource limits for the sandbox (i.e., the
// aggregate cpu/memory resources limits of all containers).
// Note: On a Linux host, kubelet will create a pod-level cgroup and pass
// it as the cgroup parent for the PodSandbox. For some runtimes, this is
// sufficient. For others, e.g., hypervisor-based runtimes, explicit
// resource limits for the sandbox are needed at creation time.
Resources *PodSandboxResources `protobuf:"bytes,6,opt,name=resources" json:"resources,omitempty"`
// Labels are key value pairs that may be used to scope and select individual resources.
Labels map[string]string `protobuf:"bytes,7,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
Labels map[string]string `protobuf:"bytes,6,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
// Annotations is an unstructured key value map that may be set by external
// tools to store and retrieve arbitrary metadata.
Annotations map[string]string `protobuf:"bytes,8,rep,name=annotations" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
Annotations map[string]string `protobuf:"bytes,7,rep,name=annotations" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
// Optional configurations specific to Linux hosts.
Linux *LinuxPodSandboxConfig `protobuf:"bytes,9,opt,name=linux" json:"linux,omitempty"`
Linux *LinuxPodSandboxConfig `protobuf:"bytes,8,opt,name=linux" json:"linux,omitempty"`
XXX_unrecognized []byte `json:"-"`
}
func (m *PodSandboxConfig) Reset() { *m = PodSandboxConfig{} }
func (m *PodSandboxConfig) String() string { return proto.CompactTextString(m) }
func (*PodSandboxConfig) ProtoMessage() {}
func (*PodSandboxConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{9} }
func (*PodSandboxConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{7} }
func (m *PodSandboxConfig) GetName() string {
if m != nil && m.Name != nil {
@ -630,13 +561,6 @@ func (m *PodSandboxConfig) GetPortMappings() []*PortMapping {
return nil
}
func (m *PodSandboxConfig) GetResources() *PodSandboxResources {
if m != nil {
return m.Resources
}
return nil
}
func (m *PodSandboxConfig) GetLabels() map[string]string {
if m != nil {
return m.Labels
@ -667,7 +591,7 @@ type CreatePodSandboxRequest struct {
func (m *CreatePodSandboxRequest) Reset() { *m = CreatePodSandboxRequest{} }
func (m *CreatePodSandboxRequest) String() string { return proto.CompactTextString(m) }
func (*CreatePodSandboxRequest) ProtoMessage() {}
func (*CreatePodSandboxRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{10} }
func (*CreatePodSandboxRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{8} }
func (m *CreatePodSandboxRequest) GetConfig() *PodSandboxConfig {
if m != nil {
@ -685,7 +609,7 @@ type CreatePodSandboxResponse struct {
func (m *CreatePodSandboxResponse) Reset() { *m = CreatePodSandboxResponse{} }
func (m *CreatePodSandboxResponse) String() string { return proto.CompactTextString(m) }
func (*CreatePodSandboxResponse) ProtoMessage() {}
func (*CreatePodSandboxResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{11} }
func (*CreatePodSandboxResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{9} }
func (m *CreatePodSandboxResponse) GetPodSandboxId() string {
if m != nil && m.PodSandboxId != nil {
@ -703,7 +627,7 @@ type StopPodSandboxRequest struct {
func (m *StopPodSandboxRequest) Reset() { *m = StopPodSandboxRequest{} }
func (m *StopPodSandboxRequest) String() string { return proto.CompactTextString(m) }
func (*StopPodSandboxRequest) ProtoMessage() {}
func (*StopPodSandboxRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{12} }
func (*StopPodSandboxRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{10} }
func (m *StopPodSandboxRequest) GetPodSandboxId() string {
if m != nil && m.PodSandboxId != nil {
@ -719,7 +643,7 @@ type StopPodSandboxResponse struct {
func (m *StopPodSandboxResponse) Reset() { *m = StopPodSandboxResponse{} }
func (m *StopPodSandboxResponse) String() string { return proto.CompactTextString(m) }
func (*StopPodSandboxResponse) ProtoMessage() {}
func (*StopPodSandboxResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{13} }
func (*StopPodSandboxResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{11} }
type RemovePodSandboxRequest struct {
// The id of the PodSandBox
@ -730,7 +654,7 @@ type RemovePodSandboxRequest struct {
func (m *RemovePodSandboxRequest) Reset() { *m = RemovePodSandboxRequest{} }
func (m *RemovePodSandboxRequest) String() string { return proto.CompactTextString(m) }
func (*RemovePodSandboxRequest) ProtoMessage() {}
func (*RemovePodSandboxRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{14} }
func (*RemovePodSandboxRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{12} }
func (m *RemovePodSandboxRequest) GetPodSandboxId() string {
if m != nil && m.PodSandboxId != nil {
@ -746,7 +670,7 @@ type RemovePodSandboxResponse struct {
func (m *RemovePodSandboxResponse) Reset() { *m = RemovePodSandboxResponse{} }
func (m *RemovePodSandboxResponse) String() string { return proto.CompactTextString(m) }
func (*RemovePodSandboxResponse) ProtoMessage() {}
func (*RemovePodSandboxResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{15} }
func (*RemovePodSandboxResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{13} }
type PodSandboxStatusRequest struct {
// The id of the PodSandBox
@ -757,7 +681,7 @@ type PodSandboxStatusRequest struct {
func (m *PodSandboxStatusRequest) Reset() { *m = PodSandboxStatusRequest{} }
func (m *PodSandboxStatusRequest) String() string { return proto.CompactTextString(m) }
func (*PodSandboxStatusRequest) ProtoMessage() {}
func (*PodSandboxStatusRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{16} }
func (*PodSandboxStatusRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{14} }
func (m *PodSandboxStatusRequest) GetPodSandboxId() string {
if m != nil && m.PodSandboxId != nil {
@ -776,7 +700,7 @@ type PodSandboxNetworkStatus struct {
func (m *PodSandboxNetworkStatus) Reset() { *m = PodSandboxNetworkStatus{} }
func (m *PodSandboxNetworkStatus) String() string { return proto.CompactTextString(m) }
func (*PodSandboxNetworkStatus) ProtoMessage() {}
func (*PodSandboxNetworkStatus) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{17} }
func (*PodSandboxNetworkStatus) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{15} }
func (m *PodSandboxNetworkStatus) GetIp() string {
if m != nil && m.Ip != nil {
@ -797,7 +721,7 @@ type Namespace struct {
func (m *Namespace) Reset() { *m = Namespace{} }
func (m *Namespace) String() string { return proto.CompactTextString(m) }
func (*Namespace) ProtoMessage() {}
func (*Namespace) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{18} }
func (*Namespace) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{16} }
func (m *Namespace) GetNetwork() string {
if m != nil && m.Network != nil {
@ -823,7 +747,7 @@ type LinuxPodSandboxStatus struct {
func (m *LinuxPodSandboxStatus) Reset() { *m = LinuxPodSandboxStatus{} }
func (m *LinuxPodSandboxStatus) String() string { return proto.CompactTextString(m) }
func (*LinuxPodSandboxStatus) ProtoMessage() {}
func (*LinuxPodSandboxStatus) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{19} }
func (*LinuxPodSandboxStatus) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{17} }
func (m *LinuxPodSandboxStatus) GetNamespaces() *Namespace {
if m != nil {
@ -857,7 +781,7 @@ type PodSandboxStatus struct {
func (m *PodSandboxStatus) Reset() { *m = PodSandboxStatus{} }
func (m *PodSandboxStatus) String() string { return proto.CompactTextString(m) }
func (*PodSandboxStatus) ProtoMessage() {}
func (*PodSandboxStatus) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{20} }
func (*PodSandboxStatus) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{18} }
func (m *PodSandboxStatus) GetId() string {
if m != nil && m.Id != nil {
@ -924,7 +848,7 @@ type PodSandboxStatusResponse struct {
func (m *PodSandboxStatusResponse) Reset() { *m = PodSandboxStatusResponse{} }
func (m *PodSandboxStatusResponse) String() string { return proto.CompactTextString(m) }
func (*PodSandboxStatusResponse) ProtoMessage() {}
func (*PodSandboxStatusResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{21} }
func (*PodSandboxStatusResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{19} }
func (m *PodSandboxStatusResponse) GetStatus() *PodSandboxStatus {
if m != nil {
@ -952,7 +876,7 @@ type PodSandboxFilter struct {
func (m *PodSandboxFilter) Reset() { *m = PodSandboxFilter{} }
func (m *PodSandboxFilter) String() string { return proto.CompactTextString(m) }
func (*PodSandboxFilter) ProtoMessage() {}
func (*PodSandboxFilter) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{22} }
func (*PodSandboxFilter) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{20} }
func (m *PodSandboxFilter) GetName() string {
if m != nil && m.Name != nil {
@ -991,7 +915,7 @@ type ListPodSandboxRequest struct {
func (m *ListPodSandboxRequest) Reset() { *m = ListPodSandboxRequest{} }
func (m *ListPodSandboxRequest) String() string { return proto.CompactTextString(m) }
func (*ListPodSandboxRequest) ProtoMessage() {}
func (*ListPodSandboxRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{23} }
func (*ListPodSandboxRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{21} }
func (m *ListPodSandboxRequest) GetFilter() *PodSandboxFilter {
if m != nil {
@ -1018,7 +942,7 @@ type PodSandbox struct {
func (m *PodSandbox) Reset() { *m = PodSandbox{} }
func (m *PodSandbox) String() string { return proto.CompactTextString(m) }
func (*PodSandbox) ProtoMessage() {}
func (*PodSandbox) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{24} }
func (*PodSandbox) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{22} }
func (m *PodSandbox) GetId() string {
if m != nil && m.Id != nil {
@ -1064,7 +988,7 @@ type ListPodSandboxResponse struct {
func (m *ListPodSandboxResponse) Reset() { *m = ListPodSandboxResponse{} }
func (m *ListPodSandboxResponse) String() string { return proto.CompactTextString(m) }
func (*ListPodSandboxResponse) ProtoMessage() {}
func (*ListPodSandboxResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{25} }
func (*ListPodSandboxResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{23} }
func (m *ListPodSandboxResponse) GetItems() []*PodSandbox {
if m != nil {
@ -1085,7 +1009,7 @@ type ImageSpec struct {
func (m *ImageSpec) Reset() { *m = ImageSpec{} }
func (m *ImageSpec) String() string { return proto.CompactTextString(m) }
func (*ImageSpec) ProtoMessage() {}
func (*ImageSpec) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{26} }
func (*ImageSpec) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{24} }
func (m *ImageSpec) GetImage() string {
if m != nil && m.Image != nil {
@ -1103,7 +1027,7 @@ type KeyValue struct {
func (m *KeyValue) Reset() { *m = KeyValue{} }
func (m *KeyValue) String() string { return proto.CompactTextString(m) }
func (*KeyValue) ProtoMessage() {}
func (*KeyValue) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{27} }
func (*KeyValue) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{25} }
func (m *KeyValue) GetKey() string {
if m != nil && m.Key != nil {
@ -1140,7 +1064,7 @@ type LinuxContainerResources struct {
func (m *LinuxContainerResources) Reset() { *m = LinuxContainerResources{} }
func (m *LinuxContainerResources) String() string { return proto.CompactTextString(m) }
func (*LinuxContainerResources) ProtoMessage() {}
func (*LinuxContainerResources) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{28} }
func (*LinuxContainerResources) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{26} }
func (m *LinuxContainerResources) GetCpuPeriod() int64 {
if m != nil && m.CpuPeriod != nil {
@ -1189,7 +1113,7 @@ type SELinuxOption struct {
func (m *SELinuxOption) Reset() { *m = SELinuxOption{} }
func (m *SELinuxOption) String() string { return proto.CompactTextString(m) }
func (*SELinuxOption) ProtoMessage() {}
func (*SELinuxOption) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{29} }
func (*SELinuxOption) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{27} }
func (m *SELinuxOption) GetUser() string {
if m != nil && m.User != nil {
@ -1231,7 +1155,7 @@ type Capability struct {
func (m *Capability) Reset() { *m = Capability{} }
func (m *Capability) String() string { return proto.CompactTextString(m) }
func (*Capability) ProtoMessage() {}
func (*Capability) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{30} }
func (*Capability) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{28} }
func (m *Capability) GetAddCapabilities() []string {
if m != nil {
@ -1264,7 +1188,7 @@ type LinuxContainerConfig struct {
func (m *LinuxContainerConfig) Reset() { *m = LinuxContainerConfig{} }
func (m *LinuxContainerConfig) String() string { return proto.CompactTextString(m) }
func (*LinuxContainerConfig) ProtoMessage() {}
func (*LinuxContainerConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{31} }
func (*LinuxContainerConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{29} }
func (m *LinuxContainerConfig) GetResources() *LinuxContainerResources {
if m != nil {
@ -1307,7 +1231,7 @@ type LinuxUser struct {
func (m *LinuxUser) Reset() { *m = LinuxUser{} }
func (m *LinuxUser) String() string { return proto.CompactTextString(m) }
func (*LinuxUser) ProtoMessage() {}
func (*LinuxUser) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{32} }
func (*LinuxUser) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{30} }
func (m *LinuxUser) GetUid() int64 {
if m != nil && m.Uid != nil {
@ -1386,7 +1310,7 @@ type ContainerConfig struct {
func (m *ContainerConfig) Reset() { *m = ContainerConfig{} }
func (m *ContainerConfig) String() string { return proto.CompactTextString(m) }
func (*ContainerConfig) ProtoMessage() {}
func (*ContainerConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{33} }
func (*ContainerConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{31} }
func (m *ContainerConfig) GetName() string {
if m != nil && m.Name != nil {
@ -1513,7 +1437,7 @@ type CreateContainerRequest struct {
func (m *CreateContainerRequest) Reset() { *m = CreateContainerRequest{} }
func (m *CreateContainerRequest) String() string { return proto.CompactTextString(m) }
func (*CreateContainerRequest) ProtoMessage() {}
func (*CreateContainerRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{34} }
func (*CreateContainerRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{32} }
func (m *CreateContainerRequest) GetPodSandboxId() string {
if m != nil && m.PodSandboxId != nil {
@ -1545,7 +1469,7 @@ type CreateContainerResponse struct {
func (m *CreateContainerResponse) Reset() { *m = CreateContainerResponse{} }
func (m *CreateContainerResponse) String() string { return proto.CompactTextString(m) }
func (*CreateContainerResponse) ProtoMessage() {}
func (*CreateContainerResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{35} }
func (*CreateContainerResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{33} }
func (m *CreateContainerResponse) GetContainerId() string {
if m != nil && m.ContainerId != nil {
@ -1563,7 +1487,7 @@ type StartContainerRequest struct {
func (m *StartContainerRequest) Reset() { *m = StartContainerRequest{} }
func (m *StartContainerRequest) String() string { return proto.CompactTextString(m) }
func (*StartContainerRequest) ProtoMessage() {}
func (*StartContainerRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{36} }
func (*StartContainerRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{34} }
func (m *StartContainerRequest) GetContainerId() string {
if m != nil && m.ContainerId != nil {
@ -1579,7 +1503,7 @@ type StartContainerResponse struct {
func (m *StartContainerResponse) Reset() { *m = StartContainerResponse{} }
func (m *StartContainerResponse) String() string { return proto.CompactTextString(m) }
func (*StartContainerResponse) ProtoMessage() {}
func (*StartContainerResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{37} }
func (*StartContainerResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{35} }
type StopContainerRequest struct {
// The id of the container
@ -1592,7 +1516,7 @@ type StopContainerRequest struct {
func (m *StopContainerRequest) Reset() { *m = StopContainerRequest{} }
func (m *StopContainerRequest) String() string { return proto.CompactTextString(m) }
func (*StopContainerRequest) ProtoMessage() {}
func (*StopContainerRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{38} }
func (*StopContainerRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{36} }
func (m *StopContainerRequest) GetContainerId() string {
if m != nil && m.ContainerId != nil {
@ -1615,7 +1539,7 @@ type StopContainerResponse struct {
func (m *StopContainerResponse) Reset() { *m = StopContainerResponse{} }
func (m *StopContainerResponse) String() string { return proto.CompactTextString(m) }
func (*StopContainerResponse) ProtoMessage() {}
func (*StopContainerResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{39} }
func (*StopContainerResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{37} }
type RemoveContainerRequest struct {
// The id of the container
@ -1626,7 +1550,7 @@ type RemoveContainerRequest struct {
func (m *RemoveContainerRequest) Reset() { *m = RemoveContainerRequest{} }
func (m *RemoveContainerRequest) String() string { return proto.CompactTextString(m) }
func (*RemoveContainerRequest) ProtoMessage() {}
func (*RemoveContainerRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{40} }
func (*RemoveContainerRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{38} }
func (m *RemoveContainerRequest) GetContainerId() string {
if m != nil && m.ContainerId != nil {
@ -1642,7 +1566,7 @@ type RemoveContainerResponse struct {
func (m *RemoveContainerResponse) Reset() { *m = RemoveContainerResponse{} }
func (m *RemoveContainerResponse) String() string { return proto.CompactTextString(m) }
func (*RemoveContainerResponse) ProtoMessage() {}
func (*RemoveContainerResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{41} }
func (*RemoveContainerResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{39} }
// ContainerFilter is used to filter containers.
// All those fields are combined with 'AND'
@ -1665,7 +1589,7 @@ type ContainerFilter struct {
func (m *ContainerFilter) Reset() { *m = ContainerFilter{} }
func (m *ContainerFilter) String() string { return proto.CompactTextString(m) }
func (*ContainerFilter) ProtoMessage() {}
func (*ContainerFilter) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{42} }
func (*ContainerFilter) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{40} }
func (m *ContainerFilter) GetName() string {
if m != nil && m.Name != nil {
@ -1710,7 +1634,7 @@ type ListContainersRequest struct {
func (m *ListContainersRequest) Reset() { *m = ListContainersRequest{} }
func (m *ListContainersRequest) String() string { return proto.CompactTextString(m) }
func (*ListContainersRequest) ProtoMessage() {}
func (*ListContainersRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{43} }
func (*ListContainersRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{41} }
func (m *ListContainersRequest) GetFilter() *ContainerFilter {
if m != nil {
@ -1742,7 +1666,7 @@ type Container struct {
func (m *Container) Reset() { *m = Container{} }
func (m *Container) String() string { return proto.CompactTextString(m) }
func (*Container) ProtoMessage() {}
func (*Container) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{44} }
func (*Container) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{42} }
func (m *Container) GetId() string {
if m != nil && m.Id != nil {
@ -1795,7 +1719,7 @@ type ListContainersResponse struct {
func (m *ListContainersResponse) Reset() { *m = ListContainersResponse{} }
func (m *ListContainersResponse) String() string { return proto.CompactTextString(m) }
func (*ListContainersResponse) ProtoMessage() {}
func (*ListContainersResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{45} }
func (*ListContainersResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{43} }
func (m *ListContainersResponse) GetContainers() []*Container {
if m != nil {
@ -1813,7 +1737,7 @@ type ContainerStatusRequest struct {
func (m *ContainerStatusRequest) Reset() { *m = ContainerStatusRequest{} }
func (m *ContainerStatusRequest) String() string { return proto.CompactTextString(m) }
func (*ContainerStatusRequest) ProtoMessage() {}
func (*ContainerStatusRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{46} }
func (*ContainerStatusRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{44} }
func (m *ContainerStatusRequest) GetContainerId() string {
if m != nil && m.ContainerId != nil {
@ -1857,7 +1781,7 @@ type ContainerStatus struct {
func (m *ContainerStatus) Reset() { *m = ContainerStatus{} }
func (m *ContainerStatus) String() string { return proto.CompactTextString(m) }
func (*ContainerStatus) ProtoMessage() {}
func (*ContainerStatus) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{47} }
func (*ContainerStatus) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{45} }
func (m *ContainerStatus) GetId() string {
if m != nil && m.Id != nil {
@ -1959,7 +1883,7 @@ type ContainerStatusResponse struct {
func (m *ContainerStatusResponse) Reset() { *m = ContainerStatusResponse{} }
func (m *ContainerStatusResponse) String() string { return proto.CompactTextString(m) }
func (*ContainerStatusResponse) ProtoMessage() {}
func (*ContainerStatusResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{48} }
func (*ContainerStatusResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{46} }
func (m *ContainerStatusResponse) GetStatus() *ContainerStatus {
if m != nil {
@ -1983,7 +1907,7 @@ type ExecRequest struct {
func (m *ExecRequest) Reset() { *m = ExecRequest{} }
func (m *ExecRequest) String() string { return proto.CompactTextString(m) }
func (*ExecRequest) ProtoMessage() {}
func (*ExecRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{49} }
func (*ExecRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{47} }
func (m *ExecRequest) GetContainerId() string {
if m != nil && m.ContainerId != nil {
@ -2024,7 +1948,7 @@ type ExecResponse struct {
func (m *ExecResponse) Reset() { *m = ExecResponse{} }
func (m *ExecResponse) String() string { return proto.CompactTextString(m) }
func (*ExecResponse) ProtoMessage() {}
func (*ExecResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{50} }
func (*ExecResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{48} }
func (m *ExecResponse) GetStdout() []byte {
if m != nil {
@ -2049,7 +1973,7 @@ type ImageFilter struct {
func (m *ImageFilter) Reset() { *m = ImageFilter{} }
func (m *ImageFilter) String() string { return proto.CompactTextString(m) }
func (*ImageFilter) ProtoMessage() {}
func (*ImageFilter) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{51} }
func (*ImageFilter) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{49} }
func (m *ImageFilter) GetImage() *ImageSpec {
if m != nil {
@ -2067,7 +1991,7 @@ type ListImagesRequest struct {
func (m *ListImagesRequest) Reset() { *m = ListImagesRequest{} }
func (m *ListImagesRequest) String() string { return proto.CompactTextString(m) }
func (*ListImagesRequest) ProtoMessage() {}
func (*ListImagesRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{52} }
func (*ListImagesRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{50} }
func (m *ListImagesRequest) GetFilter() *ImageFilter {
if m != nil {
@ -2092,7 +2016,7 @@ type Image struct {
func (m *Image) Reset() { *m = Image{} }
func (m *Image) String() string { return proto.CompactTextString(m) }
func (*Image) ProtoMessage() {}
func (*Image) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{53} }
func (*Image) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{51} }
func (m *Image) GetId() string {
if m != nil && m.Id != nil {
@ -2131,7 +2055,7 @@ type ListImagesResponse struct {
func (m *ListImagesResponse) Reset() { *m = ListImagesResponse{} }
func (m *ListImagesResponse) String() string { return proto.CompactTextString(m) }
func (*ListImagesResponse) ProtoMessage() {}
func (*ListImagesResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{54} }
func (*ListImagesResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{52} }
func (m *ListImagesResponse) GetImages() []*Image {
if m != nil {
@ -2149,7 +2073,7 @@ type ImageStatusRequest struct {
func (m *ImageStatusRequest) Reset() { *m = ImageStatusRequest{} }
func (m *ImageStatusRequest) String() string { return proto.CompactTextString(m) }
func (*ImageStatusRequest) ProtoMessage() {}
func (*ImageStatusRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{55} }
func (*ImageStatusRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{53} }
func (m *ImageStatusRequest) GetImage() *ImageSpec {
if m != nil {
@ -2167,7 +2091,7 @@ type ImageStatusResponse struct {
func (m *ImageStatusResponse) Reset() { *m = ImageStatusResponse{} }
func (m *ImageStatusResponse) String() string { return proto.CompactTextString(m) }
func (*ImageStatusResponse) ProtoMessage() {}
func (*ImageStatusResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{56} }
func (*ImageStatusResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{54} }
func (m *ImageStatusResponse) GetImage() *Image {
if m != nil {
@ -2193,7 +2117,7 @@ type AuthConfig struct {
func (m *AuthConfig) Reset() { *m = AuthConfig{} }
func (m *AuthConfig) String() string { return proto.CompactTextString(m) }
func (*AuthConfig) ProtoMessage() {}
func (*AuthConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{57} }
func (*AuthConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{55} }
func (m *AuthConfig) GetUsername() string {
if m != nil && m.Username != nil {
@ -2250,7 +2174,7 @@ type PullImageRequest struct {
func (m *PullImageRequest) Reset() { *m = PullImageRequest{} }
func (m *PullImageRequest) String() string { return proto.CompactTextString(m) }
func (*PullImageRequest) ProtoMessage() {}
func (*PullImageRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{58} }
func (*PullImageRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{56} }
func (m *PullImageRequest) GetImage() *ImageSpec {
if m != nil {
@ -2280,7 +2204,7 @@ type PullImageResponse struct {
func (m *PullImageResponse) Reset() { *m = PullImageResponse{} }
func (m *PullImageResponse) String() string { return proto.CompactTextString(m) }
func (*PullImageResponse) ProtoMessage() {}
func (*PullImageResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{59} }
func (*PullImageResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{57} }
type RemoveImageRequest struct {
// The spec of the image
@ -2291,7 +2215,7 @@ type RemoveImageRequest struct {
func (m *RemoveImageRequest) Reset() { *m = RemoveImageRequest{} }
func (m *RemoveImageRequest) String() string { return proto.CompactTextString(m) }
func (*RemoveImageRequest) ProtoMessage() {}
func (*RemoveImageRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{60} }
func (*RemoveImageRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{58} }
func (m *RemoveImageRequest) GetImage() *ImageSpec {
if m != nil {
@ -2307,7 +2231,7 @@ type RemoveImageResponse struct {
func (m *RemoveImageResponse) Reset() { *m = RemoveImageResponse{} }
func (m *RemoveImageResponse) String() string { return proto.CompactTextString(m) }
func (*RemoveImageResponse) ProtoMessage() {}
func (*RemoveImageResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{61} }
func (*RemoveImageResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{59} }
func init() {
proto.RegisterType((*VersionRequest)(nil), "runtime.VersionRequest")
@ -2315,8 +2239,6 @@ func init() {
proto.RegisterType((*DNSOption)(nil), "runtime.DNSOption")
proto.RegisterType((*PortMapping)(nil), "runtime.PortMapping")
proto.RegisterType((*Mount)(nil), "runtime.Mount")
proto.RegisterType((*ResourceRequirements)(nil), "runtime.ResourceRequirements")
proto.RegisterType((*PodSandboxResources)(nil), "runtime.PodSandboxResources")
proto.RegisterType((*NamespaceOption)(nil), "runtime.NamespaceOption")
proto.RegisterType((*LinuxPodSandboxConfig)(nil), "runtime.LinuxPodSandboxConfig")
proto.RegisterType((*PodSandboxConfig)(nil), "runtime.PodSandboxConfig")
@ -3090,182 +3012,176 @@ var _ImageService_serviceDesc = grpc.ServiceDesc{
}
var fileDescriptorApi = []byte{
// 2821 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x1a, 0xcb, 0x72, 0x1c, 0x49,
0xd1, 0xad, 0xd1, 0x48, 0x33, 0x39, 0x9a, 0xd1, 0xa8, 0x24, 0x4b, 0xb3, 0xe3, 0x5d, 0x3f, 0x9a,
0x5d, 0xf0, 0x6a, 0x77, 0x85, 0x11, 0x8f, 0xc5, 0xde, 0x5d, 0xaf, 0xb5, 0x92, 0x70, 0xc8, 0x96,
0x65, 0xd1, 0x63, 0x9b, 0xf5, 0x69, 0xa2, 0x3d, 0x5d, 0x92, 0xda, 0x9e, 0xe9, 0xee, 0xed, 0xee,
0x11, 0x16, 0x11, 0x9c, 0xf8, 0x09, 0x8e, 0x1c, 0x88, 0xe0, 0xc4, 0x85, 0x08, 0x7e, 0x02, 0x82,
0x03, 0xc1, 0x77, 0x70, 0xe2, 0xc2, 0x85, 0x80, 0xac, 0x47, 0x57, 0x57, 0x3f, 0x46, 0x96, 0x6c,
0x02, 0x73, 0xeb, 0xca, 0xcc, 0xca, 0xca, 0xca, 0xcc, 0xca, 0x47, 0x55, 0x43, 0xdd, 0x0e, 0xdc,
0xb5, 0x20, 0xf4, 0x63, 0x9f, 0xcc, 0x86, 0x63, 0x2f, 0x76, 0x47, 0xd4, 0x5c, 0x85, 0xd6, 0x13,
0x1a, 0x46, 0xae, 0xef, 0x59, 0xf4, 0x9b, 0x31, 0x8d, 0x62, 0xd2, 0x81, 0xd9, 0x63, 0x01, 0xe9,
0x18, 0x57, 0x8d, 0xeb, 0x75, 0x2b, 0x19, 0x9a, 0xbf, 0x33, 0x60, 0x5e, 0x11, 0x47, 0x81, 0xef,
0x45, 0x74, 0x32, 0x35, 0xb9, 0x06, 0x73, 0x72, 0x91, 0xbe, 0x67, 0x8f, 0x68, 0x67, 0x8a, 0xa3,
0x1b, 0x12, 0xb6, 0x87, 0x20, 0xf2, 0x1d, 0x98, 0x4f, 0x48, 0x12, 0x26, 0x15, 0x4e, 0xd5, 0x92,
0x60, 0xb9, 0x1a, 0x59, 0x83, 0xc5, 0x84, 0x10, 0xf7, 0xa0, 0x88, 0xa7, 0x39, 0xf1, 0x82, 0x44,
0x6d, 0x04, 0xae, 0xa4, 0x37, 0x37, 0xa0, 0xbe, 0xb5, 0xd7, 0x7b, 0x18, 0xc4, 0x6c, 0x32, 0x8a,
0x18, 0xd1, 0x90, 0xcd, 0x41, 0x11, 0x2b, 0x4c, 0x44, 0x39, 0x24, 0x5d, 0xa8, 0x45, 0xd4, 0x0e,
0x07, 0x47, 0x34, 0x42, 0xf1, 0x18, 0x4a, 0x8d, 0xcd, 0xdf, 0x1b, 0xd0, 0xd8, 0xf7, 0xc3, 0xf8,
0x81, 0x1d, 0x04, 0xae, 0x77, 0x48, 0x08, 0x4c, 0xf3, 0x6d, 0x88, 0x5d, 0xf2, 0x6f, 0xf2, 0x09,
0xd4, 0xb8, 0x3a, 0x07, 0xfe, 0x90, 0x6f, 0xaf, 0xb5, 0xbe, 0xb0, 0x26, 0x85, 0x59, 0xdb, 0x97,
0x08, 0x4b, 0x91, 0x90, 0x0f, 0xa0, 0x35, 0xf0, 0xbd, 0xd8, 0x76, 0x3d, 0x1a, 0xf6, 0x03, 0xe4,
0xcd, 0x77, 0x5b, 0xb5, 0x9a, 0x0a, 0xca, 0x16, 0x24, 0x97, 0xa0, 0x7e, 0xe4, 0x47, 0xb1, 0xa0,
0x98, 0xe6, 0x14, 0x35, 0x06, 0xe0, 0xc8, 0x15, 0x98, 0xe5, 0x48, 0x37, 0xe8, 0x54, 0xb9, 0x24,
0x33, 0x6c, 0xb8, 0x13, 0x98, 0xbf, 0x35, 0xa0, 0xfa, 0xc0, 0xc7, 0xc5, 0x4b, 0x25, 0xcd, 0x2e,
0x6d, 0xc7, 0x47, 0xd2, 0x1c, 0xda, 0xd2, 0x08, 0x4c, 0x97, 0x66, 0x14, 0xc2, 0x14, 0x62, 0x69,
0x86, 0x44, 0x6d, 0x85, 0xd4, 0x76, 0x7c, 0x6f, 0x78, 0xc2, 0xc5, 0xaa, 0x59, 0x6a, 0xcc, 0x2c,
0x19, 0xd1, 0xa1, 0xeb, 0x8d, 0x5f, 0xf6, 0x43, 0x3a, 0xb4, 0x9f, 0xd1, 0x21, 0x17, 0xaf, 0x66,
0xb5, 0x24, 0xd8, 0x12, 0x50, 0xf3, 0x1e, 0x2c, 0xa1, 0xef, 0xf8, 0xe3, 0x70, 0x40, 0x99, 0xc3,
0xb9, 0x21, 0x1d, 0x51, 0x2f, 0x8e, 0xc8, 0x32, 0xcc, 0x0c, 0xdd, 0x91, 0x1b, 0x47, 0x5c, 0x6c,
0xc3, 0x92, 0x23, 0xb1, 0x28, 0x77, 0xcc, 0x88, 0x8b, 0x6c, 0x58, 0x6a, 0x6c, 0xfe, 0x12, 0x16,
0xf7, 0x7d, 0xa7, 0x67, 0x7b, 0xce, 0x33, 0xff, 0x65, 0xc2, 0x35, 0x22, 0xdf, 0x85, 0xca, 0x20,
0x18, 0x73, 0x3e, 0x8d, 0xf5, 0xf7, 0x94, 0x41, 0xca, 0x96, 0xb5, 0x18, 0x25, 0xf9, 0x21, 0xcc,
0x8c, 0xe8, 0xc8, 0x0f, 0x4f, 0xf8, 0x0a, 0xaf, 0x9c, 0x23, 0x89, 0xcd, 0xe7, 0x30, 0xcf, 0xbc,
0x38, 0x0a, 0xec, 0x01, 0x95, 0xae, 0x86, 0x3e, 0xcf, 0xf5, 0xe7, 0xd1, 0xf8, 0xe7, 0x7e, 0xf8,
0x82, 0xcb, 0x50, 0xb3, 0x1a, 0x0c, 0xb6, 0x27, 0x40, 0xe4, 0x1d, 0xa8, 0x09, 0x15, 0xbb, 0x0e,
0x5f, 0xae, 0x66, 0x71, 0x83, 0xee, 0xbb, 0x8e, 0x42, 0xb9, 0xc1, 0x80, 0x2b, 0x5f, 0xa2, 0x76,
0x82, 0x81, 0xf9, 0x2b, 0x03, 0x2e, 0xee, 0x32, 0x3d, 0xa6, 0x1b, 0xde, 0xf4, 0xbd, 0x03, 0xf7,
0x90, 0x7c, 0x0b, 0x9a, 0x83, 0xc3, 0xd0, 0x1f, 0x07, 0x68, 0xb4, 0x10, 0xe5, 0x93, 0x66, 0x9f,
0x13, 0xc0, 0x7d, 0x0e, 0x23, 0xdb, 0xb0, 0xe0, 0x25, 0xa2, 0xf6, 0x7d, 0x2e, 0x6b, 0x24, 0x37,
0xdb, 0x51, 0x9b, 0xcd, 0x6d, 0xc6, 0x6a, 0x7b, 0x59, 0x40, 0x64, 0xfe, 0x75, 0x1a, 0xda, 0x05,
0x01, 0xca, 0xdc, 0xad, 0x2b, 0x76, 0xa2, 0x9d, 0x7b, 0x35, 0x66, 0x02, 0x0f, 0xfd, 0xc3, 0xbe,
0x83, 0xfa, 0x1c, 0xc4, 0x4c, 0xe9, 0xc2, 0xcf, 0xe6, 0x10, 0xb8, 0x95, 0xc0, 0xc8, 0xf7, 0xa1,
0xe1, 0x78, 0x91, 0x12, 0x75, 0x9a, 0x8b, 0x4a, 0x94, 0xa8, 0xea, 0x70, 0x5b, 0x80, 0x64, 0x52,
0x3c, 0x72, 0x13, 0x9a, 0xec, 0xcc, 0xf4, 0x47, 0xe2, 0xc8, 0x46, 0xe8, 0x82, 0x15, 0x9c, 0xb6,
0x94, 0x9e, 0xc9, 0xf4, 0x3c, 0x5b, 0x73, 0x41, 0x3a, 0x88, 0xc8, 0x2d, 0xa8, 0x87, 0x89, 0x03,
0x75, 0x66, 0xf8, 0x6a, 0xef, 0x6a, 0xd3, 0x0a, 0x4e, 0x66, 0xa5, 0xe4, 0xe4, 0x0b, 0x74, 0x5d,
0xe6, 0xdb, 0x51, 0x67, 0x96, 0xaf, 0xf7, 0x41, 0xc9, 0x44, 0xa1, 0xab, 0xb5, 0x5d, 0x4e, 0xb7,
0xed, 0xc5, 0xe1, 0x89, 0x25, 0x27, 0x91, 0x5d, 0x68, 0xd8, 0x9e, 0xe7, 0xc7, 0xb6, 0xd8, 0x6a,
0x8d, 0xf3, 0x58, 0x9d, 0xcc, 0x63, 0x23, 0x25, 0x16, 0x8c, 0xf4, 0xe9, 0xe4, 0x07, 0x50, 0xe5,
0xe7, 0xad, 0x53, 0xe7, 0x9b, 0xb8, 0xac, 0xf8, 0x94, 0x7a, 0x8f, 0x25, 0x88, 0xbb, 0x37, 0xa1,
0xa1, 0x89, 0x46, 0xda, 0x50, 0x79, 0x41, 0x4f, 0xa4, 0x45, 0xd9, 0x27, 0x59, 0x82, 0xea, 0xb1,
0x3d, 0x1c, 0x27, 0xd6, 0x14, 0x83, 0x5b, 0x53, 0x3f, 0x36, 0xba, 0xb7, 0xa1, 0x9d, 0x97, 0xe8,
0x3c, 0xf3, 0xcd, 0x5d, 0x58, 0xd9, 0xc4, 0x30, 0x12, 0x53, 0x5d, 0xcb, 0x22, 0x13, 0x7d, 0x0f,
0x66, 0x06, 0x5c, 0x4c, 0x79, 0x96, 0xdf, 0x99, 0xa8, 0x14, 0x4b, 0x12, 0x9a, 0x77, 0xa0, 0x53,
0xe4, 0x26, 0x53, 0xd5, 0xfb, 0xd0, 0x0a, 0x7c, 0xa7, 0x1f, 0x09, 0x70, 0x1f, 0xcf, 0x9f, 0x3c,
0x2a, 0x81, 0xa2, 0xdd, 0x71, 0xcc, 0x2f, 0xe0, 0x62, 0x2f, 0xf6, 0x83, 0xa2, 0x34, 0x67, 0x9b,
0xde, 0x81, 0xe5, 0xfc, 0x74, 0xb1, 0xbc, 0xf9, 0x25, 0xac, 0x58, 0x18, 0x38, 0x8e, 0xe9, 0xeb,
0xb2, 0xee, 0x42, 0xa7, 0xc8, 0x20, 0x65, 0x9e, 0x42, 0x7b, 0x68, 0x8c, 0x71, 0x74, 0x3e, 0xe6,
0x1f, 0xea, 0x0c, 0x64, 0xac, 0x12, 0x7c, 0x48, 0x0b, 0xa6, 0x30, 0xdb, 0x88, 0x49, 0xf8, 0x65,
0x3e, 0x85, 0xba, 0x0a, 0x15, 0x2c, 0xb9, 0xea, 0xc1, 0x0e, 0x93, 0xab, 0x1c, 0x92, 0x75, 0x98,
0x3d, 0x6b, 0xa4, 0x49, 0x08, 0xcd, 0xfb, 0x85, 0x28, 0x27, 0x65, 0x58, 0x07, 0x50, 0xd1, 0x28,
0x92, 0xee, 0x40, 0x8a, 0xfc, 0x2c, 0x8d, 0xca, 0xfc, 0x77, 0x45, 0x8f, 0x56, 0xda, 0x66, 0x1c,
0xb5, 0x19, 0x47, 0x45, 0xaf, 0x29, 0x2d, 0x7a, 0xad, 0x41, 0x35, 0x42, 0x6a, 0xca, 0x23, 0x53,
0x4b, 0x93, 0x5b, 0x72, 0xfb, 0x4a, 0x70, 0xa3, 0x96, 0x20, 0x23, 0xef, 0x01, 0x0c, 0xb8, 0xd3,
0x39, 0x7d, 0x5b, 0x64, 0xec, 0x8a, 0x55, 0x97, 0x90, 0x8d, 0x18, 0x63, 0x8b, 0x52, 0x51, 0x95,
0x0b, 0x7e, 0xb5, 0xc4, 0x8f, 0x33, 0x2a, 0x4f, 0x95, 0xa8, 0x8e, 0xf3, 0xcc, 0xe9, 0xc7, 0x59,
0xce, 0x13, 0xc4, 0x67, 0x8a, 0x48, 0x62, 0xc6, 0x9b, 0x45, 0x24, 0xc9, 0xe3, 0xd4, 0x88, 0xf4,
0x36, 0x63, 0xcb, 0x03, 0xe8, 0x14, 0x4f, 0x85, 0x8c, 0x06, 0x18, 0x5c, 0x22, 0x0e, 0x39, 0x25,
0xb8, 0xc8, 0x29, 0x92, 0xd0, 0xfc, 0x97, 0xa1, 0x3b, 0xd4, 0x4f, 0xdc, 0x61, 0x4c, 0xc3, 0xd2,
0xf4, 0x27, 0x9c, 0x6c, 0x4a, 0x39, 0xd9, 0x79, 0x1d, 0xaa, 0x07, 0x2d, 0x6e, 0x8a, 0x3e, 0x16,
0x4f, 0x3c, 0x21, 0xa2, 0x53, 0x31, 0x1b, 0x7c, 0x5c, 0x22, 0xa3, 0x10, 0x43, 0xd8, 0xb1, 0x27,
0xc9, 0x85, 0x15, 0x9a, 0x43, 0x1d, 0xd6, 0xbd, 0x03, 0xa4, 0x48, 0x74, 0x2e, 0x75, 0xde, 0x63,
0xa7, 0x93, 0xd5, 0xa1, 0x25, 0x81, 0xfa, 0x80, 0x8b, 0x71, 0x8a, 0x2e, 0x85, 0x9c, 0x96, 0x24,
0x34, 0xff, 0x61, 0x00, 0xa4, 0xc8, 0xb7, 0x71, 0x2c, 0x3f, 0x55, 0x87, 0x44, 0x94, 0x09, 0x57,
0x4a, 0x84, 0x2e, 0x3b, 0x1e, 0x6f, 0xe0, 0xd0, 0xe6, 0x26, 0x2c, 0xe7, 0x35, 0x28, 0xdd, 0xf1,
0x43, 0xa8, 0xba, 0x31, 0x1d, 0x89, 0x16, 0xa5, 0xb1, 0xbe, 0x58, 0x56, 0x7c, 0x08, 0x0a, 0xf3,
0x1a, 0xd4, 0x77, 0x46, 0xf6, 0x21, 0xed, 0x05, 0x74, 0xc0, 0xd6, 0x72, 0xd9, 0x40, 0xae, 0x2f,
0x06, 0xe6, 0x3a, 0xd4, 0xee, 0xd3, 0x93, 0x27, 0x6c, 0xdd, 0xb3, 0xca, 0x67, 0xfe, 0xd9, 0x80,
0x15, 0x1e, 0x55, 0x36, 0x93, 0x96, 0x20, 0x2d, 0xa9, 0x99, 0x2a, 0x83, 0x71, 0x3f, 0xa0, 0xa1,
0xeb, 0x0b, 0x33, 0x31, 0x55, 0x06, 0xe3, 0x7d, 0x0e, 0x60, 0x6d, 0x03, 0x43, 0x7f, 0x33, 0xc6,
0xa3, 0xca, 0x99, 0x56, 0xac, 0x1a, 0x02, 0x7e, 0xca, 0xc6, 0xc9, 0xdc, 0xe8, 0x08, 0x4b, 0xd1,
0x88, 0xdb, 0x4e, 0xcc, 0xed, 0x71, 0x00, 0xfa, 0xce, 0x45, 0x51, 0x4f, 0xf7, 0x79, 0xc5, 0xdf,
0x77, 0xbd, 0xfe, 0xb3, 0x93, 0x98, 0x46, 0xd2, 0x60, 0x44, 0x20, 0x77, 0x19, 0x6e, 0xc7, 0xfb,
0x8a, 0x61, 0x88, 0x09, 0x4d, 0xdf, 0x1f, 0xf5, 0xa3, 0x81, 0x1f, 0x62, 0x3f, 0xe8, 0x3c, 0xe7,
0x61, 0xb5, 0x62, 0x35, 0x10, 0xd8, 0x63, 0xb0, 0x0d, 0xe7, 0xb9, 0x69, 0x43, 0xb3, 0xb7, 0xcd,
0xb7, 0x23, 0x4b, 0x73, 0xf4, 0xa8, 0x71, 0x24, 0x3d, 0x14, 0x3d, 0x8a, 0x7d, 0x33, 0x58, 0xe8,
0x0f, 0x95, 0x97, 0xb1, 0x6f, 0x06, 0x8b, 0x4f, 0x02, 0x2a, 0xab, 0x52, 0xfe, 0xcd, 0x14, 0x36,
0xa4, 0xc7, 0xd8, 0xd3, 0x88, 0x86, 0x53, 0x0c, 0x4c, 0x07, 0x60, 0xd3, 0x0e, 0xec, 0x67, 0xee,
0xd0, 0x8d, 0x4f, 0xd0, 0x80, 0x6d, 0xdb, 0x71, 0xfa, 0x83, 0x04, 0xe2, 0xd2, 0xa4, 0xdd, 0x9c,
0x47, 0xf8, 0xa6, 0x06, 0x26, 0x1f, 0xc1, 0x82, 0x13, 0xfa, 0x41, 0x96, 0x56, 0xf4, 0x9f, 0x6d,
0x86, 0xd0, 0x89, 0xcd, 0x7f, 0x1a, 0xb0, 0x94, 0x35, 0x8b, 0xac, 0xbb, 0x6f, 0xeb, 0x25, 0xab,
0x91, 0x4b, 0x2c, 0x13, 0x0c, 0xa9, 0x97, 0xad, 0x9f, 0xc2, 0x5c, 0x4e, 0x00, 0x23, 0xe3, 0x78,
0xe9, 0xde, 0xac, 0x0c, 0x21, 0xf9, 0x32, 0xed, 0xf5, 0x92, 0x04, 0x5f, 0xe1, 0x73, 0x97, 0xd5,
0xdc, 0x8c, 0xea, 0x55, 0x0f, 0x98, 0xd4, 0xe9, 0xdf, 0x96, 0xa6, 0xc8, 0x57, 0xf5, 0x7c, 0xce,
0x63, 0xc4, 0x08, 0xf3, 0x98, 0x5f, 0x43, 0x5d, 0x81, 0x98, 0x1b, 0x8f, 0xdd, 0xc4, 0xf7, 0xd8,
0x27, 0x83, 0x1c, 0xca, 0x30, 0x8b, 0x10, 0xfc, 0x64, 0x5d, 0x28, 0xea, 0xda, 0x65, 0xab, 0xd8,
0xc3, 0x3e, 0x42, 0x98, 0x64, 0x15, 0xc4, 0xb6, 0x52, 0xf0, 0x5d, 0x84, 0x9a, 0x7f, 0xab, 0xc2,
0x7c, 0x5e, 0x9f, 0x65, 0x81, 0xfc, 0x7a, 0x72, 0xba, 0xa6, 0x72, 0xa2, 0xaa, 0x03, 0x28, 0x4f,
0x1c, 0xab, 0x83, 0x06, 0xfe, 0x68, 0x84, 0x27, 0x95, 0x2f, 0x89, 0x75, 0x90, 0x1c, 0x32, 0xbe,
0x76, 0x78, 0x18, 0xf1, 0x10, 0x8e, 0x7c, 0xd9, 0x37, 0xb9, 0x02, 0x0d, 0x96, 0xde, 0xb1, 0xf5,
0x60, 0x7d, 0x90, 0xec, 0xe4, 0x41, 0x82, 0xb0, 0x0b, 0xc2, 0x7e, 0x7d, 0x9a, 0x7a, 0xc7, 0xac,
0x15, 0x61, 0xd1, 0x20, 0xbd, 0x55, 0x48, 0x4e, 0xb5, 0xc5, 0xd1, 0xa8, 0xc9, 0x99, 0x11, 0xeb,
0xf9, 0x93, 0x44, 0xdf, 0x52, 0x84, 0xfc, 0x2a, 0xc0, 0x92, 0x58, 0xf2, 0xb9, 0x8a, 0x75, 0x22,
0x99, 0xbf, 0x9f, 0x5a, 0x39, 0xab, 0x85, 0xd2, 0x7a, 0xe0, 0x7e, 0xb6, 0x1e, 0xa8, 0x73, 0x16,
0x1f, 0x4e, 0x64, 0x71, 0x7a, 0x83, 0x72, 0x19, 0x20, 0x08, 0xdd, 0x63, 0x77, 0x48, 0x0f, 0xa9,
0xd3, 0x01, 0xde, 0xe6, 0x6a, 0x10, 0x7e, 0x27, 0x24, 0x6f, 0x15, 0xfa, 0xa1, 0xef, 0xc7, 0x07,
0x51, 0xa7, 0x21, 0x6e, 0x12, 0x12, 0xb0, 0xc5, 0xa1, 0xac, 0x5b, 0x66, 0x7d, 0x24, 0xbf, 0xaa,
0x98, 0x13, 0xa5, 0x27, 0x8e, 0xf9, 0x4d, 0xc5, 0x12, 0xcb, 0x14, 0x8e, 0xeb, 0x75, 0x9a, 0x7c,
0xa6, 0x18, 0xb0, 0x40, 0xc4, 0x3f, 0xfa, 0xbe, 0x37, 0xa0, 0x9d, 0x16, 0x47, 0xd5, 0x39, 0xe4,
0x21, 0x02, 0x98, 0x3b, 0xc5, 0xf1, 0x49, 0x67, 0x9e, 0xc3, 0xd9, 0x27, 0x36, 0xa1, 0xb2, 0xf8,
0x6a, 0xe7, 0xae, 0x05, 0xca, 0xce, 0xe3, 0xff, 0x41, 0x2b, 0xf5, 0x07, 0x03, 0x96, 0x45, 0xf7,
0xa3, 0x9d, 0xfc, 0x73, 0x34, 0x01, 0xe4, 0x86, 0x6a, 0xb8, 0xf2, 0x15, 0x7b, 0x7e, 0xb3, 0x92,
0x8e, 0xdc, 0x81, 0x56, 0xc2, 0x53, 0xce, 0xac, 0xbc, 0xaa, 0x55, 0x6b, 0x46, 0xfa, 0xd0, 0xfc,
0x3c, 0xe9, 0xff, 0xf4, 0x68, 0x25, 0x72, 0xe2, 0x35, 0x8c, 0x50, 0xea, 0xd2, 0x4a, 0x89, 0xdc,
0x50, 0x30, 0x6c, 0x5b, 0x6e, 0xb1, 0x6e, 0xcd, 0x0e, 0xe3, 0xc2, 0x86, 0xcf, 0x30, 0x97, 0xb7,
0x6a, 0xd9, 0xb9, 0xb2, 0x9b, 0xea, 0xc1, 0x12, 0x6b, 0xe2, 0x5e, 0x83, 0x29, 0x8b, 0x03, 0x6c,
0xdb, 0xfe, 0x38, 0x96, 0x81, 0x29, 0x19, 0x9a, 0x2b, 0xa2, 0xb1, 0x2c, 0xae, 0xf6, 0x19, 0x2c,
0x8b, 0xbe, 0xee, 0x75, 0x36, 0xf1, 0x4e, 0xd2, 0x55, 0x16, 0xf9, 0xfe, 0x66, 0x4a, 0x0b, 0x72,
0xe7, 0xa8, 0x56, 0x3f, 0xc9, 0xd6, 0x59, 0x2b, 0x45, 0x27, 0xc8, 0x94, 0x59, 0x45, 0xd7, 0x9a,
0x2e, 0x71, 0x2d, 0xab, 0x50, 0xd2, 0x8a, 0xaa, 0xeb, 0xa3, 0x22, 0xf7, 0xff, 0x61, 0x45, 0xbb,
0x23, 0x2a, 0x5a, 0xb5, 0xb4, 0x6a, 0x9a, 0x6f, 0xe4, 0x2a, 0xda, 0xce, 0x24, 0x31, 0x55, 0x41,
0xfb, 0xeb, 0x29, 0xa8, 0x2b, 0xdc, 0x99, 0xea, 0x59, 0x95, 0x5c, 0x2a, 0xaf, 0x4a, 0x2e, 0x58,
0x5f, 0xf1, 0x8f, 0x7e, 0x48, 0x0f, 0xa4, 0x76, 0x6b, 0x1c, 0x60, 0xd1, 0x83, 0xd4, 0x5c, 0xd5,
0x33, 0x99, 0xeb, 0x47, 0x2a, 0x15, 0x88, 0xdc, 0x72, 0xb9, 0x48, 0xff, 0xdf, 0xae, 0x7a, 0x77,
0x45, 0xd5, 0xab, 0x6b, 0x59, 0x9e, 0x70, 0x6c, 0xeb, 0x95, 0x33, 0x27, 0xa5, 0x2f, 0x29, 0x0a,
0x64, 0x69, 0x54, 0xec, 0xb8, 0x64, 0x76, 0x96, 0xde, 0x74, 0x9c, 0xe1, 0xb8, 0xfc, 0x7d, 0x5a,
0x3b, 0x13, 0xe7, 0xb8, 0x12, 0x38, 0xe7, 0x99, 0x78, 0x45, 0xeb, 0xc1, 0x33, 0x11, 0x46, 0x1e,
0x81, 0x16, 0xd5, 0x6b, 0x5d, 0x42, 0x10, 0x8d, 0xd5, 0xc1, 0x81, 0xeb, 0xb9, 0xd1, 0x91, 0xc0,
0xcf, 0x70, 0x3c, 0x24, 0xa0, 0x0d, 0xfe, 0x42, 0x40, 0x5f, 0x62, 0xad, 0x3c, 0xf0, 0x1d, 0x8a,
0x99, 0x9f, 0xbf, 0x10, 0x30, 0xc0, 0x26, 0x8e, 0x53, 0xb7, 0xaa, 0x9d, 0xcb, 0xad, 0xea, 0x39,
0xb7, 0x5a, 0x86, 0x19, 0x94, 0x37, 0xf2, 0x3d, 0x9e, 0xa3, 0xeb, 0x96, 0x1c, 0x69, 0xa5, 0x44,
0x63, 0x52, 0x29, 0x71, 0xca, 0xd5, 0x42, 0xae, 0x94, 0x98, 0x9b, 0x54, 0x4a, 0x9c, 0xe5, 0x66,
0x41, 0xab, 0x7e, 0x9a, 0xa7, 0x55, 0x3f, 0x6f, 0x33, 0x25, 0xdf, 0xc7, 0xec, 0x96, 0x77, 0x56,
0xe9, 0xfb, 0x37, 0x72, 0x17, 0x10, 0x9d, 0x49, 0x5a, 0x50, 0xf7, 0x0f, 0xcf, 0xa1, 0xb1, 0xfd,
0x12, 0xcd, 0x77, 0xf6, 0x6c, 0x84, 0xa2, 0x0e, 0x46, 0x8e, 0xec, 0x2d, 0xd8, 0x67, 0x52, 0xe5,
0x54, 0xd2, 0x2a, 0x47, 0x15, 0x4b, 0xcc, 0x4d, 0xe7, 0x64, 0xb1, 0x64, 0xde, 0x86, 0x39, 0xb1,
0x96, 0x94, 0x76, 0x99, 0x49, 0xeb, 0xb0, 0xb4, 0x66, 0x70, 0x32, 0x39, 0x92, 0x70, 0x1a, 0x86,
0x7c, 0xef, 0x02, 0x8e, 0x23, 0xf3, 0x53, 0x68, 0x70, 0x7f, 0x93, 0x79, 0xe7, 0xba, 0xde, 0xa6,
0x9e, 0xe6, 0x94, 0xe6, 0x06, 0x2c, 0xb0, 0x60, 0xc1, 0xe1, 0xea, 0x64, 0x7f, 0x9c, 0x0b, 0xc7,
0x4b, 0xd9, 0xf9, 0xb9, 0x50, 0xfc, 0x02, 0xaa, 0x1c, 0x5c, 0x38, 0xd9, 0x97, 0x58, 0xcb, 0x14,
0xf8, 0xfd, 0xd8, 0x3e, 0x54, 0x0f, 0x7e, 0x0c, 0xf0, 0x08, 0xc7, 0xfc, 0xbd, 0x92, 0x21, 0x1d,
0xf7, 0x90, 0xbf, 0x36, 0x89, 0x32, 0xbe, 0xc1, 0x60, 0x5b, 0x02, 0xc4, 0x22, 0x43, 0xe4, 0xfe,
0x82, 0x72, 0x4d, 0x4d, 0x5b, 0xfc, 0x1b, 0xeb, 0x17, 0xa2, 0xcb, 0x2b, 0xd5, 0x85, 0xae, 0xc9,
0xb7, 0x93, 0x04, 0xb5, 0x56, 0x56, 0x60, 0x4b, 0x62, 0x51, 0xcd, 0x44, 0x68, 0x20, 0x13, 0xc8,
0xce, 0xae, 0xad, 0xcf, 0x60, 0x31, 0x33, 0x5f, 0x5d, 0x75, 0x67, 0x18, 0xe4, 0x57, 0x97, 0x93,
0xff, 0x62, 0x00, 0x6c, 0x8c, 0xe3, 0x23, 0xd9, 0x00, 0x75, 0xa1, 0xc6, 0xda, 0x2e, 0xad, 0x3e,
0x50, 0x63, 0x86, 0x0b, 0xec, 0x28, 0xc2, 0x0e, 0x25, 0xa9, 0x14, 0xd4, 0x98, 0x37, 0x38, 0x63,
0xf5, 0x5e, 0xc8, 0xbf, 0xd9, 0x7b, 0xa3, 0x78, 0x64, 0xc5, 0xfe, 0xdc, 0xc1, 0x9e, 0x33, 0x92,
0x69, 0xab, 0x29, 0xa0, 0x1b, 0x02, 0xc8, 0xc8, 0x5c, 0x87, 0xa2, 0x68, 0xf1, 0x49, 0x3f, 0xf6,
0x5f, 0x50, 0x4f, 0xb6, 0x42, 0xcd, 0x04, 0xfa, 0x88, 0x01, 0x19, 0x59, 0x48, 0x0f, 0x51, 0xcb,
0x61, 0x42, 0x36, 0x23, 0xc8, 0x12, 0x28, 0x27, 0x63, 0xef, 0xd3, 0xed, 0xfd, 0xf1, 0x70, 0x28,
0x36, 0x79, 0x5e, 0x5d, 0x62, 0xe7, 0x21, 0xf6, 0x91, 0x6f, 0x84, 0x53, 0x15, 0xc9, 0xcd, 0xbd,
0x79, 0xd1, 0xbb, 0x08, 0x0b, 0x9a, 0xa0, 0xb2, 0x5e, 0x43, 0x5f, 0x10, 0xa5, 0xdc, 0xeb, 0xc9,
0x6f, 0x5e, 0x84, 0xc5, 0xcc, 0x7c, 0xc1, 0x76, 0xf5, 0x5d, 0xa8, 0x25, 0x6f, 0xd1, 0x64, 0x16,
0x2a, 0x8f, 0x36, 0xf7, 0xdb, 0x17, 0xd8, 0xc7, 0xe3, 0xad, 0xfd, 0xb6, 0xb1, 0xba, 0x0a, 0xf3,
0xb9, 0xeb, 0x33, 0x52, 0x87, 0xaa, 0xb5, 0xbd, 0xb1, 0xf5, 0x14, 0xc9, 0xe6, 0xa0, 0xb6, 0xf7,
0xf0, 0x91, 0x18, 0x19, 0xab, 0x9b, 0xd0, 0xca, 0xa6, 0x3b, 0xd2, 0x80, 0xd9, 0x4d, 0xc4, 0x3e,
0xda, 0xde, 0x42, 0x62, 0x1c, 0x58, 0x8f, 0xf7, 0xf6, 0x76, 0xf6, 0xee, 0xb6, 0x0d, 0x02, 0x30,
0xb3, 0xfd, 0xf5, 0x0e, 0x43, 0x4c, 0x31, 0xc4, 0xe3, 0xbd, 0xfb, 0x7b, 0x0f, 0x7f, 0xb6, 0xd7,
0xae, 0xac, 0xff, 0xa9, 0x06, 0x2d, 0x4b, 0x6c, 0xa1, 0x87, 0xbe, 0xe0, 0x62, 0xe7, 0x75, 0x1b,
0x66, 0x93, 0x87, 0xfe, 0x34, 0xb1, 0x66, 0xff, 0x4a, 0xe8, 0x76, 0x8a, 0x08, 0xa9, 0xb6, 0x0b,
0xe4, 0x29, 0xb4, 0xf3, 0x8f, 0x3e, 0x24, 0xbd, 0x0a, 0x99, 0xf0, 0xba, 0xd4, 0xbd, 0x76, 0x0a,
0x85, 0x62, 0xdd, 0x83, 0x56, 0xf6, 0x39, 0x87, 0xa4, 0xf5, 0x52, 0xe9, 0x33, 0x51, 0xf7, 0xca,
0x44, 0xbc, 0x2e, 0x6f, 0xfe, 0x21, 0x47, 0x93, 0x77, 0xc2, 0x23, 0x91, 0x26, 0xef, 0xc4, 0x57,
0x20, 0xce, 0xba, 0xf0, 0xe4, 0x71, 0x75, 0xf2, 0xcd, 0x76, 0x81, 0xf5, 0xa4, 0xeb, 0x72, 0xa1,
0x8a, 0xec, 0xdd, 0x25, 0xd1, 0x5f, 0x23, 0x4a, 0xae, 0x85, 0x35, 0x55, 0x94, 0x5f, 0x7a, 0x22,
0xd3, 0x27, 0x58, 0x8e, 0x65, 0xbb, 0x3f, 0x72, 0x25, 0x67, 0x97, 0x7c, 0x57, 0xd4, 0xbd, 0x3a,
0x99, 0x20, 0x6b, 0x37, 0xbd, 0xb7, 0xcb, 0xd8, 0xad, 0xa4, 0x61, 0xcc, 0xd8, 0xad, 0xb4, 0x29,
0xbc, 0x40, 0xf6, 0xa1, 0x99, 0xe9, 0xe0, 0xc8, 0x7b, 0x19, 0x5b, 0x17, 0x58, 0x5e, 0x9e, 0x84,
0xd6, 0xb7, 0x9f, 0xeb, 0xde, 0xb4, 0xed, 0x97, 0x37, 0x85, 0xdd, 0xab, 0x93, 0x09, 0xf2, 0xb6,
0x4a, 0x2b, 0xee, 0x9c, 0xad, 0x0a, 0x0d, 0x4f, 0xce, 0x56, 0xc5, 0x52, 0x5d, 0xda, 0x2a, 0x57,
0x3a, 0x5f, 0x99, 0x58, 0xb3, 0x14, 0x6d, 0x55, 0x5e, 0x06, 0x21, 0xdf, 0x9b, 0x30, 0xcd, 0x4a,
0x0d, 0x92, 0x26, 0x75, 0xad, 0xca, 0xe9, 0x5e, 0xcc, 0x41, 0x93, 0x69, 0xd7, 0x8d, 0x1b, 0xc6,
0xfa, 0x1f, 0xa7, 0x60, 0x4e, 0xc4, 0x41, 0x19, 0x4a, 0xee, 0x02, 0xa4, 0xd9, 0x98, 0x74, 0x33,
0x9b, 0xca, 0x94, 0x14, 0xdd, 0x4b, 0xa5, 0x38, 0x25, 0xd4, 0x3d, 0x59, 0xbf, 0xc8, 0x8d, 0x5e,
0xca, 0x85, 0xdd, 0xcc, 0x26, 0xdf, 0x2d, 0x47, 0x2a, 0x5e, 0x5b, 0x50, 0x57, 0xd1, 0x9e, 0x68,
0x49, 0x22, 0x97, 0xaa, 0xba, 0xdd, 0x32, 0x94, 0x2e, 0x91, 0x16, 0xde, 0x35, 0x89, 0x8a, 0x49,
0x43, 0x93, 0xa8, 0x24, 0x23, 0x98, 0x17, 0xfe, 0x13, 0x00, 0x00, 0xff, 0xff, 0x8e, 0xd8, 0xd5,
0x8a, 0x0a, 0x26, 0x00, 0x00,
// 2735 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x19, 0x4d, 0x73, 0x1b, 0x49,
0x35, 0xb2, 0x2c, 0x5b, 0x7a, 0xb2, 0x64, 0xb9, 0xe3, 0xd8, 0x8a, 0xb2, 0x49, 0x9c, 0x61, 0x17,
0x12, 0xef, 0xae, 0x2b, 0x18, 0x8a, 0x25, 0xd9, 0xdd, 0x6c, 0xbc, 0xb6, 0x49, 0x79, 0xe3, 0x38,
0x66, 0x94, 0x84, 0xcd, 0x49, 0x35, 0xd1, 0xb4, 0xed, 0x49, 0xa4, 0x99, 0xd9, 0x99, 0x91, 0x89,
0xb8, 0xf2, 0x1b, 0xa8, 0xe2, 0xc8, 0x81, 0x2a, 0x4e, 0x5c, 0xa8, 0xe2, 0x4f, 0x40, 0x71, 0xe2,
0x77, 0x70, 0xe2, 0xc2, 0x85, 0x82, 0xd7, 0x1f, 0xd3, 0xd3, 0xf3, 0x21, 0x47, 0xce, 0x52, 0x64,
0x6f, 0xdd, 0xef, 0xbd, 0x7e, 0xfd, 0xfa, 0xbd, 0xd7, 0xef, 0xa3, 0x1b, 0x6a, 0x96, 0xef, 0x6c,
0xf8, 0x81, 0x17, 0x79, 0x64, 0x3e, 0x18, 0xb9, 0x91, 0x33, 0xa4, 0xc6, 0x3a, 0x34, 0x9f, 0xd1,
0x20, 0x74, 0x3c, 0xd7, 0xa4, 0xdf, 0x8c, 0x68, 0x18, 0x91, 0x36, 0xcc, 0x9f, 0x0a, 0x48, 0xbb,
0xb4, 0x56, 0xba, 0x59, 0x33, 0xe3, 0xa9, 0xf1, 0x87, 0x12, 0x2c, 0x2a, 0xe2, 0xd0, 0xf7, 0xdc,
0x90, 0x4e, 0xa6, 0x26, 0x37, 0x60, 0x41, 0x6e, 0xd2, 0x73, 0xad, 0x21, 0x6d, 0xcf, 0x70, 0x74,
0x5d, 0xc2, 0x0e, 0x10, 0x44, 0x7e, 0x00, 0x8b, 0x31, 0x49, 0xcc, 0xa4, 0xcc, 0xa9, 0x9a, 0x12,
0x2c, 0x77, 0x23, 0x1b, 0x70, 0x31, 0x26, 0xc4, 0x33, 0x28, 0xe2, 0x59, 0x4e, 0xbc, 0x24, 0x51,
0x5b, 0xbe, 0x23, 0xe9, 0x8d, 0x2d, 0xa8, 0xed, 0x1c, 0x74, 0x1f, 0xfb, 0x11, 0x5b, 0x8c, 0x22,
0x86, 0x34, 0x60, 0x6b, 0x50, 0xc4, 0x32, 0x13, 0x51, 0x4e, 0x49, 0x07, 0xaa, 0x21, 0xb5, 0x82,
0xfe, 0x09, 0x0d, 0x51, 0x3c, 0x86, 0x52, 0x73, 0xe3, 0x8f, 0x25, 0xa8, 0x1f, 0x7a, 0x41, 0xf4,
0xc8, 0xf2, 0x7d, 0xc7, 0x3d, 0x26, 0x04, 0x66, 0xf9, 0x31, 0xc4, 0x29, 0xf9, 0x98, 0x7c, 0x0c,
0x55, 0xae, 0xce, 0xbe, 0x37, 0xe0, 0xc7, 0x6b, 0x6e, 0x2e, 0x6d, 0x48, 0x61, 0x36, 0x0e, 0x25,
0xc2, 0x54, 0x24, 0xe4, 0x03, 0x68, 0xf6, 0x3d, 0x37, 0xb2, 0x1c, 0x97, 0x06, 0x3d, 0x1f, 0x79,
0xf3, 0xd3, 0x56, 0xcc, 0x86, 0x82, 0xb2, 0x0d, 0xc9, 0x15, 0xa8, 0x9d, 0x78, 0x61, 0x24, 0x28,
0x66, 0x39, 0x45, 0x95, 0x01, 0x38, 0x72, 0x15, 0xe6, 0x39, 0xd2, 0xf1, 0xdb, 0x15, 0x2e, 0xc9,
0x1c, 0x9b, 0xee, 0xf9, 0xc6, 0xef, 0x4b, 0x50, 0x79, 0xe4, 0xe1, 0xe6, 0x85, 0x92, 0xa6, 0xb7,
0xb6, 0xa2, 0x13, 0x69, 0x0e, 0x6d, 0x6b, 0x04, 0x26, 0x5b, 0x33, 0x0a, 0x61, 0x0a, 0xb1, 0x35,
0x43, 0xa2, 0xb6, 0x02, 0x6a, 0xd9, 0x9e, 0x3b, 0x18, 0x73, 0xb1, 0xaa, 0xa6, 0x9a, 0x33, 0x4b,
0x86, 0x74, 0xe0, 0xb8, 0xa3, 0xd7, 0xbd, 0x80, 0x0e, 0xac, 0x17, 0x74, 0xc0, 0xc5, 0xab, 0x9a,
0x4d, 0x09, 0x36, 0x05, 0xd4, 0x78, 0x09, 0x8b, 0xcc, 0xf4, 0xa1, 0x6f, 0xf5, 0xa9, 0xb4, 0x0f,
0x3a, 0x0a, 0xdf, 0xd4, 0xa5, 0xd1, 0x2f, 0xbd, 0xe0, 0x15, 0x97, 0xbb, 0x6a, 0xd6, 0x19, 0xec,
0x40, 0x80, 0xc8, 0x65, 0xa8, 0x0a, 0xb9, 0x1c, 0x9b, 0x0b, 0x5e, 0x35, 0xb9, 0x16, 0x0e, 0x1d,
0x5b, 0xa1, 0x1c, 0xbf, 0xcf, 0x25, 0x96, 0xa8, 0x3d, 0xbf, 0x6f, 0xfc, 0xba, 0x04, 0x97, 0xf6,
0xd9, 0xe6, 0x87, 0x9e, 0xdd, 0xb5, 0x5c, 0xfb, 0x85, 0xf7, 0x7a, 0xdb, 0x73, 0x8f, 0x9c, 0x63,
0xf2, 0x3d, 0x68, 0xf4, 0x8f, 0x03, 0x6f, 0xe4, 0xe3, 0x49, 0x03, 0xea, 0x46, 0x52, 0x57, 0x0b,
0x02, 0x78, 0xc8, 0x61, 0x64, 0x17, 0x96, 0xdc, 0x58, 0xd4, 0x9e, 0xc7, 0x65, 0x0d, 0xf9, 0xee,
0xf5, 0xcd, 0xb6, 0x32, 0x73, 0xe6, 0x30, 0x66, 0xcb, 0x4d, 0x03, 0x42, 0xe3, 0x37, 0xb3, 0xd0,
0xca, 0x09, 0x50, 0x64, 0xa3, 0x8e, 0x38, 0x89, 0x76, 0x59, 0xd4, 0x9c, 0x09, 0x3c, 0xf0, 0x8e,
0x7b, 0xb6, 0x13, 0xd0, 0x7e, 0xe4, 0x05, 0x63, 0x69, 0x9c, 0x05, 0x04, 0xee, 0xc4, 0x30, 0xf2,
0x23, 0xa8, 0xdb, 0x6e, 0xa8, 0x44, 0x9d, 0xe5, 0xa2, 0x12, 0x25, 0xaa, 0xba, 0x11, 0x26, 0x20,
0x99, 0x14, 0x8f, 0xdc, 0x81, 0x06, 0x73, 0xb4, 0xde, 0x50, 0xf8, 0x79, 0x88, 0x76, 0x2b, 0xe3,
0xb2, 0xe5, 0xc4, 0x91, 0x93, 0x4b, 0x60, 0x2e, 0xf8, 0xc9, 0x24, 0x24, 0x9f, 0xc3, 0x1c, 0x37,
0x6a, 0xd8, 0x9e, 0xe3, 0x6b, 0x3e, 0xd0, 0xd6, 0xa4, 0xcf, 0xbb, 0xb1, 0xcf, 0xe9, 0x76, 0xdd,
0x28, 0x18, 0x9b, 0x72, 0x11, 0xd9, 0x87, 0xba, 0xe5, 0xba, 0x5e, 0x64, 0x09, 0x71, 0xe7, 0x39,
0x8f, 0xf5, 0xc9, 0x3c, 0xb6, 0x12, 0x62, 0xc1, 0x48, 0x5f, 0x4e, 0x7e, 0x0c, 0x15, 0xee, 0x68,
0xed, 0x2a, 0x3f, 0xf6, 0x35, 0xc5, 0xa7, 0xd0, 0x03, 0x4c, 0x41, 0xdc, 0xb9, 0x03, 0x75, 0x4d,
0x34, 0xd2, 0x82, 0xf2, 0x2b, 0x3a, 0x96, 0x56, 0x61, 0x43, 0xb2, 0x0c, 0x95, 0x53, 0x6b, 0x30,
0x8a, 0x2d, 0x22, 0x26, 0x77, 0x67, 0x7e, 0x5a, 0xea, 0xdc, 0x83, 0x56, 0x56, 0xa2, 0xf3, 0xac,
0x37, 0xf6, 0x61, 0x75, 0x1b, 0xef, 0x4f, 0x44, 0x13, 0xd9, 0xe2, 0x10, 0xfc, 0x43, 0x98, 0xeb,
0x73, 0x31, 0x39, 0xa7, 0xfa, 0xe6, 0xe5, 0x89, 0x4a, 0x31, 0x25, 0xa1, 0x71, 0x1f, 0xda, 0x79,
0x6e, 0x32, 0x46, 0xbf, 0x0f, 0x4d, 0xdf, 0xb3, 0x7b, 0xa1, 0x00, 0xf7, 0xf0, 0x0e, 0x49, 0x77,
0xf7, 0x15, 0xed, 0x9e, 0x6d, 0x7c, 0x0e, 0x97, 0xba, 0x91, 0xe7, 0xe7, 0xa5, 0x99, 0x6e, 0x79,
0x1b, 0x56, 0xb2, 0xcb, 0xc5, 0xf6, 0xc6, 0x17, 0xb0, 0x6a, 0xd2, 0xa1, 0x77, 0x4a, 0xdf, 0x96,
0x75, 0x07, 0xda, 0x79, 0x06, 0x09, 0xf3, 0x04, 0xda, 0x45, 0x63, 0x8c, 0xc2, 0xf3, 0x31, 0xbf,
0xa5, 0x33, 0x90, 0xf1, 0x46, 0xf0, 0x21, 0x4d, 0x98, 0xc1, 0x30, 0x2b, 0x16, 0xe1, 0xc8, 0x78,
0x0e, 0x35, 0x75, 0xdd, 0x59, 0x56, 0xd1, 0x03, 0x16, 0x66, 0x15, 0x39, 0x25, 0x9b, 0x30, 0x3f,
0x6d, 0xb4, 0x88, 0x09, 0x8d, 0x87, 0xb9, 0x48, 0x25, 0x65, 0xd8, 0x04, 0x50, 0x11, 0x25, 0x94,
0xee, 0x40, 0xf2, 0xfc, 0x4c, 0x8d, 0xca, 0xf8, 0x4f, 0x59, 0x8f, 0x38, 0xda, 0x61, 0x6c, 0x75,
0x18, 0x5b, 0x45, 0xa0, 0x19, 0x2d, 0x02, 0x6d, 0x40, 0x25, 0x44, 0x6a, 0xca, 0xa3, 0x4b, 0x53,
0x93, 0x5b, 0x72, 0xfb, 0x52, 0x70, 0xa3, 0xa6, 0x20, 0x23, 0x57, 0x01, 0xfa, 0xdc, 0xe9, 0xec,
0x9e, 0x25, 0x52, 0x55, 0xd9, 0xac, 0x49, 0xc8, 0x56, 0x44, 0xee, 0x26, 0x2a, 0xaa, 0x70, 0xc1,
0xd7, 0x0a, 0xfc, 0x38, 0xa5, 0xf2, 0x44, 0x89, 0xea, 0x3a, 0xcf, 0x9d, 0x7d, 0x9d, 0xe5, 0x3a,
0x41, 0xac, 0x45, 0xa4, 0xf9, 0x89, 0x11, 0x49, 0xac, 0x98, 0x26, 0x22, 0x55, 0x27, 0x46, 0x24,
0xc9, 0xe3, 0xcc, 0x88, 0xf4, 0x2e, 0x63, 0xcb, 0x23, 0x68, 0xe7, 0x6f, 0x85, 0x8c, 0x06, 0x18,
0x5c, 0x42, 0x0e, 0x39, 0x23, 0xb8, 0xc8, 0x25, 0x92, 0xd0, 0xf8, 0x77, 0x49, 0x77, 0xa8, 0x9f,
0x39, 0x83, 0x88, 0x06, 0x85, 0x29, 0x4c, 0x38, 0xd9, 0x8c, 0x72, 0xb2, 0xf3, 0x3a, 0x54, 0x17,
0x9a, 0xdc, 0x14, 0x3d, 0xac, 0x1a, 0x78, 0x52, 0x43, 0xa7, 0x62, 0x36, 0xf8, 0xa8, 0x40, 0x46,
0x21, 0x86, 0xb0, 0x63, 0x57, 0x92, 0x0b, 0x2b, 0x34, 0x06, 0x3a, 0xac, 0x73, 0x1f, 0x48, 0x9e,
0xe8, 0x5c, 0xea, 0xfc, 0x8a, 0xdd, 0x4e, 0x56, 0x80, 0x15, 0x04, 0xea, 0x23, 0x2e, 0xc6, 0x19,
0xba, 0x14, 0x72, 0x9a, 0x92, 0xd0, 0xf8, 0x67, 0x09, 0x20, 0x41, 0xbe, 0x8b, 0x6b, 0xf9, 0x89,
0xba, 0x24, 0x22, 0xd5, 0x5f, 0x2f, 0x10, 0xba, 0xe8, 0x7a, 0x7c, 0x0b, 0x87, 0x36, 0xb6, 0x61,
0x25, 0xab, 0x41, 0xe9, 0x8e, 0xb7, 0xa0, 0xe2, 0x44, 0x74, 0x28, 0x6a, 0xf3, 0xfa, 0xe6, 0xc5,
0x02, 0x61, 0x4c, 0x41, 0x61, 0xdc, 0x80, 0xda, 0xde, 0xd0, 0x3a, 0xa6, 0x5d, 0x9f, 0xf6, 0xd9,
0x5e, 0x0e, 0x9b, 0xc8, 0xfd, 0xc5, 0xc4, 0xd8, 0x84, 0xea, 0x43, 0x3a, 0x7e, 0xc6, 0xf6, 0x9d,
0x56, 0x3e, 0xe3, 0xaf, 0x25, 0x58, 0xe5, 0x51, 0x65, 0x3b, 0xae, 0x85, 0x51, 0x38, 0x6f, 0x14,
0x60, 0x28, 0xe5, 0xaa, 0xf4, 0x47, 0x3d, 0x9f, 0x06, 0x8e, 0x27, 0xcc, 0xc4, 0x54, 0xe9, 0x8f,
0x0e, 0x39, 0x80, 0xd5, 0xcb, 0x0c, 0xfd, 0xcd, 0x08, 0xaf, 0x2a, 0x67, 0x5a, 0x36, 0xab, 0x08,
0xf8, 0x39, 0x9b, 0xc7, 0x6b, 0xc3, 0x13, 0x2c, 0x27, 0x43, 0x6e, 0x3b, 0xb1, 0xb6, 0xcb, 0x01,
0xe8, 0x3b, 0x97, 0x86, 0x98, 0xd5, 0x82, 0x71, 0x6f, 0xe0, 0x0c, 0x1d, 0x2c, 0x60, 0xdd, 0xde,
0x8b, 0x71, 0x44, 0x43, 0x69, 0x30, 0x22, 0x90, 0xfb, 0x0c, 0xb7, 0xe7, 0x7e, 0xc9, 0x30, 0xc4,
0x80, 0x86, 0xe7, 0x0d, 0x7b, 0x61, 0xdf, 0x0b, 0xb0, 0x11, 0xb2, 0x5f, 0xf2, 0xb0, 0x5a, 0x36,
0xeb, 0x08, 0xec, 0x32, 0xd8, 0x96, 0xfd, 0xd2, 0xb0, 0xa0, 0xd1, 0xdd, 0xe5, 0xc7, 0x91, 0xe5,
0x35, 0x7a, 0xd4, 0x28, 0x94, 0x1e, 0x8a, 0x1e, 0xc5, 0xc6, 0x0c, 0x16, 0x78, 0x03, 0xe5, 0x65,
0x6c, 0xcc, 0x60, 0xd1, 0xd8, 0xa7, 0xb2, 0xb2, 0xe4, 0x63, 0xa6, 0xb0, 0x01, 0x3d, 0xc5, 0x62,
0x5e, 0x74, 0x5a, 0x62, 0x62, 0xd8, 0x00, 0xdb, 0x96, 0x6f, 0xbd, 0x70, 0x06, 0x4e, 0x34, 0x46,
0x03, 0xb6, 0x2c, 0xdb, 0xee, 0xf5, 0x63, 0x88, 0x43, 0xe3, 0x3e, 0x6b, 0x11, 0xe1, 0xdb, 0x1a,
0x98, 0x7c, 0x08, 0x4b, 0x76, 0xe0, 0xf9, 0x69, 0x5a, 0xd1, 0x78, 0xb5, 0x18, 0x42, 0x27, 0x36,
0xfe, 0x55, 0x82, 0xe5, 0xb4, 0x59, 0x64, 0xed, 0x7c, 0x0f, 0x6a, 0x41, 0x6c, 0x20, 0x79, 0xef,
0xd6, 0xd2, 0xe9, 0x21, 0x6f, 0x48, 0x33, 0x59, 0x82, 0xfe, 0xbf, 0x90, 0x11, 0xa0, 0x94, 0x72,
0xbc, 0xe4, 0x6c, 0x66, 0x8a, 0x90, 0x7c, 0x91, 0x34, 0x39, 0x71, 0x82, 0x2f, 0xf3, 0xb5, 0x2b,
0x6a, 0x6d, 0x4a, 0xf5, 0xaa, 0xf9, 0x89, 0x6b, 0xed, 0xef, 0x4b, 0x53, 0x64, 0x2b, 0x73, 0xbe,
0xe6, 0x29, 0x62, 0x84, 0x79, 0x8c, 0xaf, 0xa1, 0xa6, 0x40, 0xcc, 0x8d, 0x47, 0x4e, 0xec, 0x7b,
0x6c, 0xc8, 0x20, 0xc7, 0x32, 0xcc, 0x22, 0x04, 0x87, 0xac, 0xfd, 0x42, 0x5d, 0x3b, 0x6c, 0x17,
0x6b, 0xd0, 0x43, 0x08, 0x93, 0xac, 0x8c, 0xd8, 0x66, 0x02, 0x7e, 0x80, 0x50, 0xe3, 0xef, 0x15,
0x58, 0xcc, 0xea, 0xb3, 0x28, 0x90, 0xdf, 0x8c, 0x6f, 0xd7, 0x4c, 0x46, 0x54, 0x75, 0x01, 0xe5,
0x8d, 0x63, 0x75, 0x50, 0xdf, 0x1b, 0x0e, 0xf1, 0xa6, 0xf2, 0x2d, 0xb1, 0x0e, 0x92, 0x53, 0xc6,
0xd7, 0x0a, 0x8e, 0x43, 0x1e, 0xc2, 0x91, 0x2f, 0x1b, 0x93, 0xeb, 0x50, 0x67, 0xe9, 0x1d, 0xdb,
0x07, 0xd6, 0xcb, 0xc8, 0x16, 0x16, 0x24, 0x08, 0x3b, 0x19, 0x6c, 0x54, 0x67, 0xa9, 0x7b, 0x1a,
0x77, 0x14, 0x49, 0x3b, 0x1d, 0xdf, 0x6a, 0x93, 0xa3, 0x51, 0x93, 0x73, 0x43, 0xd6, 0xec, 0xc6,
0x89, 0xbe, 0xa9, 0x08, 0x79, 0x0f, 0x6c, 0x4a, 0x2c, 0xf9, 0x4c, 0xc5, 0x3a, 0x91, 0xcc, 0xdf,
0x4f, 0xac, 0x9c, 0xd6, 0x42, 0x61, 0x3d, 0xf0, 0x30, 0x5d, 0x0f, 0xd4, 0x38, 0x8b, 0x5b, 0x13,
0x59, 0x9c, 0xdd, 0xa0, 0x5c, 0x03, 0xf0, 0x03, 0xe7, 0xd4, 0x19, 0xd0, 0x63, 0x6a, 0xb7, 0x81,
0xb7, 0xaa, 0x1a, 0x84, 0x3f, 0x86, 0xc8, 0x76, 0xba, 0x17, 0x78, 0x5e, 0x74, 0x14, 0xb6, 0xeb,
0xa2, 0x85, 0x8e, 0xc1, 0x26, 0x87, 0xb2, 0x8e, 0x97, 0xf5, 0x82, 0xbc, 0x47, 0x5f, 0x10, 0xa5,
0x27, 0xce, 0x79, 0x8b, 0xbe, 0xcc, 0x32, 0x85, 0xed, 0xb8, 0xed, 0x06, 0x5f, 0x29, 0x26, 0x2c,
0x10, 0xf1, 0x41, 0xcf, 0x73, 0xfb, 0xb4, 0xdd, 0xe4, 0xa8, 0x1a, 0x87, 0x3c, 0x46, 0x00, 0x73,
0xa7, 0x28, 0x1a, 0xb7, 0x17, 0x39, 0x9c, 0x0d, 0xb1, 0x91, 0x94, 0xc5, 0x57, 0x8b, 0x5b, 0xff,
0xea, 0x84, 0xdb, 0xf5, 0x9d, 0x69, 0xa5, 0xfe, 0x54, 0x82, 0x15, 0xd1, 0xfd, 0x68, 0x37, 0xff,
0x1c, 0x4d, 0x00, 0xb9, 0xad, 0x1a, 0xae, 0x6c, 0xc5, 0x9e, 0x3d, 0xac, 0xa4, 0x23, 0xf7, 0xa1,
0x19, 0xf3, 0x94, 0x2b, 0xcb, 0x6f, 0x6a, 0xd5, 0x1a, 0xa1, 0x3e, 0x35, 0x3e, 0x8b, 0xfb, 0x3f,
0x3d, 0x5a, 0x89, 0x9c, 0x78, 0x03, 0x23, 0x94, 0x7a, 0xad, 0x51, 0x22, 0xd7, 0x15, 0x0c, 0xdb,
0x96, 0xbb, 0xac, 0x5b, 0xb3, 0x82, 0x28, 0x77, 0xe0, 0x29, 0xd6, 0xf2, 0x56, 0x2d, 0xbd, 0x56,
0x76, 0x53, 0x5d, 0x58, 0x66, 0x4d, 0xdc, 0x5b, 0x30, 0x65, 0x71, 0x80, 0x1d, 0xdb, 0x1b, 0x45,
0x32, 0x30, 0xc5, 0x53, 0x63, 0x55, 0x34, 0x96, 0xf9, 0xdd, 0x3e, 0x85, 0x15, 0xd1, 0xd7, 0xbd,
0xcd, 0x21, 0x2e, 0xc7, 0x5d, 0x65, 0x9e, 0xef, 0xef, 0x66, 0xb4, 0x20, 0x77, 0x8e, 0x6a, 0xf5,
0xe3, 0x74, 0x9d, 0xb5, 0x9a, 0x77, 0x82, 0x54, 0x99, 0x95, 0x77, 0xad, 0xd9, 0x02, 0xd7, 0x32,
0x73, 0x25, 0xad, 0xa8, 0xba, 0x3e, 0xcc, 0x73, 0xff, 0x3f, 0x56, 0xb4, 0x7b, 0xa2, 0xa2, 0x55,
0x5b, 0xab, 0xa6, 0xf9, 0x76, 0xa6, 0xa2, 0x6d, 0x4f, 0x12, 0x53, 0x15, 0xb4, 0xbf, 0x9d, 0x81,
0x9a, 0xc2, 0x4d, 0x55, 0xcf, 0xaa, 0xe4, 0x52, 0x7e, 0x53, 0x72, 0xc1, 0xfa, 0x8a, 0x0f, 0x7a,
0x01, 0x3d, 0x92, 0xda, 0xad, 0x72, 0x80, 0x49, 0x8f, 0x12, 0x73, 0x55, 0xa6, 0x32, 0xd7, 0x4f,
0x32, 0xaf, 0x55, 0xd7, 0xf2, 0xf4, 0xff, 0xeb, 0xaa, 0x77, 0x5f, 0x54, 0xbd, 0xba, 0x96, 0xe5,
0x0d, 0xc7, 0xb6, 0x5e, 0x39, 0x73, 0x5c, 0xfa, 0x92, 0xbc, 0x40, 0xa6, 0x46, 0xc5, 0xae, 0x4b,
0xea, 0x64, 0xc9, 0x4b, 0xc7, 0x14, 0xd7, 0xe5, 0x1f, 0xb3, 0xda, 0x9d, 0x38, 0xc7, 0x93, 0xc0,
0x39, 0xef, 0xc4, 0x1b, 0x5a, 0x0f, 0x9e, 0x89, 0x30, 0xf2, 0x08, 0xb4, 0xa8, 0x5e, 0x6b, 0x12,
0x82, 0x68, 0xac, 0x0e, 0x8e, 0x1c, 0xd7, 0x09, 0x4f, 0x04, 0x7e, 0x8e, 0xe3, 0x21, 0x06, 0x6d,
0xf1, 0xa7, 0x71, 0xfa, 0x1a, 0x6b, 0xe5, 0xbe, 0x67, 0x53, 0xcc, 0xfc, 0xfc, 0x69, 0x9c, 0x01,
0xb6, 0x71, 0x9e, 0xb8, 0x55, 0xf5, 0x5c, 0x6e, 0x55, 0xcb, 0xb8, 0xd5, 0x0a, 0xcc, 0xa1, 0xbc,
0xa1, 0xe7, 0xf2, 0x1c, 0x5d, 0x33, 0xe5, 0x4c, 0x2b, 0x25, 0xea, 0x93, 0x4a, 0x89, 0x33, 0x9e,
0x16, 0x32, 0xa5, 0xc4, 0xc2, 0xa4, 0x52, 0x62, 0x9a, 0x97, 0x05, 0xad, 0xfa, 0x69, 0x9c, 0x55,
0xfd, 0xbc, 0xcb, 0x94, 0xfc, 0x10, 0xb3, 0x5b, 0xd6, 0x59, 0xa5, 0xef, 0xdf, 0xce, 0x3c, 0x40,
0xb4, 0x27, 0x69, 0x41, 0xbd, 0x3f, 0xbc, 0x84, 0xfa, 0xee, 0x6b, 0x34, 0xdf, 0xf4, 0xd9, 0x08,
0x45, 0xed, 0x0f, 0x6d, 0xd9, 0x5b, 0xb0, 0x61, 0x5c, 0xe5, 0x94, 0x93, 0x2a, 0x47, 0x15, 0x4b,
0xcc, 0x4d, 0x17, 0x64, 0xb1, 0x64, 0xdc, 0x83, 0x05, 0xb1, 0x97, 0x94, 0x76, 0x85, 0x49, 0x6b,
0xb3, 0xb4, 0x56, 0xe2, 0x64, 0x72, 0x26, 0xe1, 0x34, 0x08, 0xf8, 0xd9, 0x05, 0x1c, 0x67, 0xc6,
0x27, 0x50, 0xe7, 0xfe, 0x26, 0xf3, 0xce, 0x4d, 0xbd, 0x4d, 0x3d, 0xcb, 0x29, 0x8d, 0x2d, 0x58,
0x62, 0xc1, 0x82, 0xc3, 0xd5, 0xcd, 0xfe, 0x28, 0x13, 0x8e, 0x97, 0xd3, 0xeb, 0x33, 0xa1, 0xf8,
0x15, 0x54, 0x38, 0x38, 0x77, 0xb3, 0xaf, 0xb0, 0x96, 0xc9, 0xf7, 0x7a, 0x91, 0x75, 0xac, 0x7e,
0xba, 0x18, 0xe0, 0x09, 0xce, 0xf9, 0x47, 0x1d, 0x43, 0xda, 0x0e, 0x6e, 0x1c, 0x85, 0xb2, 0x8c,
0xaf, 0x33, 0xd8, 0x8e, 0x00, 0xb1, 0xc8, 0x10, 0x3a, 0xbf, 0xa2, 0x5c, 0x53, 0xb3, 0x26, 0x1f,
0x63, 0xfd, 0x42, 0x74, 0x79, 0xa5, 0xba, 0xd0, 0x35, 0xf9, 0x71, 0xe2, 0xa0, 0xd6, 0x4c, 0x0b,
0x6c, 0x4a, 0x2c, 0xaa, 0x99, 0x08, 0x0d, 0xa4, 0x02, 0xd9, 0xf4, 0xda, 0xfa, 0x14, 0x2e, 0xa6,
0xd6, 0xab, 0xa7, 0xee, 0x14, 0x83, 0xec, 0xee, 0x72, 0xf1, 0xdf, 0x4a, 0x00, 0x5b, 0xa3, 0xe8,
0x44, 0x36, 0x40, 0x1d, 0xa8, 0xb2, 0xb6, 0x4b, 0xab, 0x0f, 0xd4, 0x9c, 0xe1, 0x7c, 0x2b, 0x0c,
0xb1, 0x43, 0x89, 0x2b, 0x05, 0x35, 0xe7, 0x0d, 0xce, 0x48, 0x7d, 0x94, 0xf1, 0x31, 0xfb, 0x68,
0x13, 0xbf, 0x8b, 0xd8, 0x9f, 0xdb, 0xd8, 0x73, 0x86, 0x32, 0x6d, 0x35, 0x04, 0x74, 0x4b, 0x00,
0x19, 0x99, 0x63, 0x53, 0x14, 0x2d, 0x1a, 0xf7, 0x22, 0xef, 0x15, 0x75, 0x65, 0x2b, 0xd4, 0x88,
0xa1, 0x4f, 0x18, 0x90, 0x91, 0x05, 0xf4, 0x18, 0xb5, 0x1c, 0xc4, 0x64, 0x73, 0x82, 0x2c, 0x86,
0x72, 0x32, 0xf6, 0x31, 0xdb, 0x3a, 0x1c, 0x0d, 0x06, 0xe2, 0x90, 0xe7, 0xd5, 0x25, 0x76, 0x1e,
0xe2, 0x1c, 0xd9, 0x46, 0x38, 0x51, 0x91, 0x3c, 0xdc, 0xb7, 0x2f, 0x7a, 0x2f, 0xc2, 0x92, 0x26,
0xa8, 0xac, 0xd7, 0xd0, 0x17, 0x44, 0x29, 0xf7, 0x76, 0xf2, 0x1b, 0x97, 0xe0, 0x62, 0x6a, 0xbd,
0x60, 0xbb, 0xfe, 0x1e, 0x54, 0xe3, 0x4f, 0x58, 0x32, 0x0f, 0xe5, 0x27, 0xdb, 0x87, 0xad, 0x0b,
0x6c, 0xf0, 0x74, 0xe7, 0xb0, 0x55, 0x5a, 0x5f, 0x87, 0xc5, 0xcc, 0xf3, 0x19, 0xa9, 0x41, 0xc5,
0xdc, 0xdd, 0xda, 0x79, 0x8e, 0x64, 0x0b, 0x50, 0x3d, 0x78, 0xfc, 0x44, 0xcc, 0x4a, 0xeb, 0xdb,
0xd0, 0x4c, 0xa7, 0x3b, 0x52, 0x87, 0xf9, 0x6d, 0xc4, 0x3e, 0xd9, 0xdd, 0x41, 0x62, 0x9c, 0x98,
0x4f, 0x0f, 0x0e, 0xf6, 0x0e, 0x1e, 0xb4, 0x4a, 0x04, 0x60, 0x6e, 0xf7, 0xeb, 0x3d, 0x86, 0x98,
0x61, 0x88, 0xa7, 0x07, 0x0f, 0x0f, 0x1e, 0xff, 0xe2, 0xa0, 0x55, 0xde, 0xfc, 0x4b, 0x15, 0x9a,
0xa6, 0x38, 0x42, 0x17, 0x7d, 0xc1, 0xc1, 0xce, 0xeb, 0x1e, 0xcc, 0xc7, 0x3f, 0xdc, 0x49, 0x62,
0x4d, 0x7f, 0xc7, 0x77, 0xda, 0x79, 0x84, 0x54, 0xdb, 0x05, 0xf2, 0x1c, 0x5a, 0xd9, 0x4f, 0x1f,
0x92, 0x3c, 0x85, 0x4c, 0xf8, 0x5d, 0xea, 0xdc, 0x38, 0x83, 0x42, 0xb1, 0xee, 0x42, 0x33, 0xfd,
0x9d, 0x43, 0x92, 0x7a, 0xa9, 0xf0, 0x9b, 0xa8, 0x73, 0x7d, 0x22, 0x5e, 0x97, 0x37, 0xfb, 0x91,
0xa3, 0xc9, 0x3b, 0xe1, 0x93, 0x48, 0x93, 0x77, 0xe2, 0x2f, 0x10, 0x67, 0x9d, 0xfb, 0xf2, 0x58,
0x9b, 0xfc, 0xb2, 0x9d, 0x63, 0x3d, 0xe9, 0xb9, 0x5c, 0xa8, 0x22, 0xfd, 0x76, 0x49, 0xf4, 0xdf,
0x88, 0x82, 0x67, 0x61, 0x4d, 0x15, 0xc5, 0x8f, 0x9e, 0xc8, 0xf4, 0x19, 0x96, 0x63, 0xe9, 0xee,
0x8f, 0x5c, 0xcf, 0xd8, 0x25, 0xdb, 0x15, 0x75, 0xd6, 0x26, 0x13, 0xa4, 0xed, 0xa6, 0xf7, 0x76,
0x29, 0xbb, 0x15, 0x34, 0x8c, 0x29, 0xbb, 0x15, 0x36, 0x85, 0x17, 0xc8, 0x21, 0x34, 0x52, 0x1d,
0x1c, 0xb9, 0x9a, 0xb2, 0x75, 0x8e, 0xe5, 0xb5, 0x49, 0x68, 0xfd, 0xf8, 0x99, 0xee, 0x4d, 0x3b,
0x7e, 0x71, 0x53, 0xd8, 0x59, 0x9b, 0x4c, 0x90, 0xb5, 0x55, 0x52, 0x71, 0x67, 0x6c, 0x95, 0x6b,
0x78, 0x32, 0xb6, 0xca, 0x97, 0xea, 0xd2, 0x56, 0x99, 0xd2, 0xf9, 0xfa, 0xc4, 0x9a, 0x25, 0x6f,
0xab, 0xe2, 0x32, 0x08, 0xf9, 0xde, 0x81, 0x59, 0x56, 0x6a, 0x90, 0x24, 0xa9, 0x6b, 0x55, 0x4e,
0xe7, 0x52, 0x06, 0x1a, 0x2f, 0xbb, 0x59, 0xba, 0x5d, 0xda, 0xfc, 0xf3, 0x0c, 0x2c, 0x88, 0x38,
0x28, 0x43, 0xc9, 0x03, 0x80, 0x24, 0x1b, 0x93, 0x4e, 0xea, 0x50, 0xa9, 0x92, 0xa2, 0x73, 0xa5,
0x10, 0xa7, 0x84, 0xfa, 0x4a, 0xd6, 0x2f, 0xf2, 0xa0, 0x57, 0x32, 0x61, 0x37, 0x75, 0xc8, 0xf7,
0x8a, 0x91, 0x8a, 0xd7, 0x0e, 0xd4, 0x54, 0xb4, 0x27, 0x5a, 0x92, 0xc8, 0xa4, 0xaa, 0x4e, 0xa7,
0x08, 0xa5, 0x4b, 0xa4, 0x85, 0x77, 0x4d, 0xa2, 0x7c, 0xd2, 0xd0, 0x24, 0x2a, 0xc8, 0x08, 0xc6,
0x85, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x00, 0x73, 0xab, 0x16, 0x03, 0x25, 0x00, 0x00,
}

View File

@ -112,26 +112,6 @@ message Mount {
optional bool selinux_relabel = 5;
}
// ResourceRequirements contains a set of resources
// Valid resources are:
// - cpu, in cores. (500m = .5 cores)
// - memory, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)
message ResourceRequirements {
// The maximum amount of compute resources allowed.
optional double limits = 1;
// The minimum amount of compute resources required.
// If Request is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value
optional double requests = 2;
}
// PodSandboxResources contains the CPU/memory resource requirements.
message PodSandboxResources {
// CPU resource requirement.
optional ResourceRequirements cpu = 1;
// Memory resource requirement.
optional ResourceRequirements memory = 2;
}
// NamespaceOption provides options for Linux namespaces.
message NamespaceOption {
// If set, use the host's network namespace.
@ -181,20 +161,13 @@ message PodSandboxConfig {
optional DNSOption dns_options = 4;
// The port mappings for the sandbox.
repeated PortMapping port_mappings = 5;
// Resources specifies the resource limits for the sandbox (i.e., the
// aggregate cpu/memory resources limits of all containers).
// Note: On a Linux host, kubelet will create a pod-level cgroup and pass
// it as the cgroup parent for the PodSandbox. For some runtimes, this is
// sufficient. For others, e.g., hypervisor-based runtimes, explicit
// resource limits for the sandbox are needed at creation time.
optional PodSandboxResources resources = 6;
// Labels are key value pairs that may be used to scope and select individual resources.
map<string, string> labels = 7;
map<string, string> labels = 6;
// Annotations is an unstructured key value map that may be set by external
// tools to store and retrieve arbitrary metadata.
map<string, string> annotations = 8;
map<string, string> annotations = 7;
// Optional configurations specific to Linux hosts.
optional LinuxPodSandboxConfig linux = 9;
optional LinuxPodSandboxConfig linux = 8;
}
message CreatePodSandboxRequest {

View File

@ -240,7 +240,7 @@ func makeSandboxDockerConfig(c *runtimeApi.PodSandboxConfig, image string) *dock
}
// Apply resource options.
setSandboxResources(c.GetResources(), hc)
setSandboxResources(hc)
// Set security options.
hc.SecurityOpt = []string{getSeccompOpts()}
@ -248,10 +248,7 @@ func makeSandboxDockerConfig(c *runtimeApi.PodSandboxConfig, image string) *dock
return createConfig
}
func setSandboxResources(_ *runtimeApi.PodSandboxResources, hc *dockercontainer.HostConfig) {
// Ignore the resource requests and limits for now and just use the docker
// defaults.
// TODO: apply resource limits based on the configuration.
func setSandboxResources(hc *dockercontainer.HostConfig) {
hc.Resources = dockercontainer.Resources{
MemorySwap: -1, // Always disable memory swap.
CPUShares: defaultSandboxCPUshares,