// Code generated by protoc-gen-go. DO NOT EDIT.
// source: rpc/rpc.proto

package rpc

import (
	fmt "fmt"
	proto "github.com/golang/protobuf/proto"
	math "math"
)

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

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package

type CriuCgMode int32

const (
	CriuCgMode_IGNORE  CriuCgMode = 0
	CriuCgMode_CG_NONE CriuCgMode = 1
	CriuCgMode_PROPS   CriuCgMode = 2
	CriuCgMode_SOFT    CriuCgMode = 3
	CriuCgMode_FULL    CriuCgMode = 4
	CriuCgMode_STRICT  CriuCgMode = 5
	CriuCgMode_DEFAULT CriuCgMode = 6
)

var CriuCgMode_name = map[int32]string{
	0: "IGNORE",
	1: "CG_NONE",
	2: "PROPS",
	3: "SOFT",
	4: "FULL",
	5: "STRICT",
	6: "DEFAULT",
}

var CriuCgMode_value = map[string]int32{
	"IGNORE":  0,
	"CG_NONE": 1,
	"PROPS":   2,
	"SOFT":    3,
	"FULL":    4,
	"STRICT":  5,
	"DEFAULT": 6,
}

func (x CriuCgMode) Enum() *CriuCgMode {
	p := new(CriuCgMode)
	*p = x
	return p
}

func (x CriuCgMode) String() string {
	return proto.EnumName(CriuCgMode_name, int32(x))
}

func (x *CriuCgMode) UnmarshalJSON(data []byte) error {
	value, err := proto.UnmarshalJSONEnum(CriuCgMode_value, data, "CriuCgMode")
	if err != nil {
		return err
	}
	*x = CriuCgMode(value)
	return nil
}

func (CriuCgMode) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_d9874a201429861e, []int{0}
}

type CriuPreDumpMode int32

const (
	CriuPreDumpMode_SPLICE  CriuPreDumpMode = 1
	CriuPreDumpMode_VM_READ CriuPreDumpMode = 2
)

var CriuPreDumpMode_name = map[int32]string{
	1: "SPLICE",
	2: "VM_READ",
}

var CriuPreDumpMode_value = map[string]int32{
	"SPLICE":  1,
	"VM_READ": 2,
}

func (x CriuPreDumpMode) Enum() *CriuPreDumpMode {
	p := new(CriuPreDumpMode)
	*p = x
	return p
}

func (x CriuPreDumpMode) String() string {
	return proto.EnumName(CriuPreDumpMode_name, int32(x))
}

func (x *CriuPreDumpMode) UnmarshalJSON(data []byte) error {
	value, err := proto.UnmarshalJSONEnum(CriuPreDumpMode_value, data, "CriuPreDumpMode")
	if err != nil {
		return err
	}
	*x = CriuPreDumpMode(value)
	return nil
}

func (CriuPreDumpMode) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_d9874a201429861e, []int{1}
}

type CriuReqType int32

const (
	CriuReqType_EMPTY            CriuReqType = 0
	CriuReqType_DUMP             CriuReqType = 1
	CriuReqType_RESTORE          CriuReqType = 2
	CriuReqType_CHECK            CriuReqType = 3
	CriuReqType_PRE_DUMP         CriuReqType = 4
	CriuReqType_PAGE_SERVER      CriuReqType = 5
	CriuReqType_NOTIFY           CriuReqType = 6
	CriuReqType_CPUINFO_DUMP     CriuReqType = 7
	CriuReqType_CPUINFO_CHECK    CriuReqType = 8
	CriuReqType_FEATURE_CHECK    CriuReqType = 9
	CriuReqType_VERSION          CriuReqType = 10
	CriuReqType_WAIT_PID         CriuReqType = 11
	CriuReqType_PAGE_SERVER_CHLD CriuReqType = 12
)

var CriuReqType_name = map[int32]string{
	0:  "EMPTY",
	1:  "DUMP",
	2:  "RESTORE",
	3:  "CHECK",
	4:  "PRE_DUMP",
	5:  "PAGE_SERVER",
	6:  "NOTIFY",
	7:  "CPUINFO_DUMP",
	8:  "CPUINFO_CHECK",
	9:  "FEATURE_CHECK",
	10: "VERSION",
	11: "WAIT_PID",
	12: "PAGE_SERVER_CHLD",
}

var CriuReqType_value = map[string]int32{
	"EMPTY":            0,
	"DUMP":             1,
	"RESTORE":          2,
	"CHECK":            3,
	"PRE_DUMP":         4,
	"PAGE_SERVER":      5,
	"NOTIFY":           6,
	"CPUINFO_DUMP":     7,
	"CPUINFO_CHECK":    8,
	"FEATURE_CHECK":    9,
	"VERSION":          10,
	"WAIT_PID":         11,
	"PAGE_SERVER_CHLD": 12,
}

func (x CriuReqType) Enum() *CriuReqType {
	p := new(CriuReqType)
	*p = x
	return p
}

func (x CriuReqType) String() string {
	return proto.EnumName(CriuReqType_name, int32(x))
}

func (x *CriuReqType) UnmarshalJSON(data []byte) error {
	value, err := proto.UnmarshalJSONEnum(CriuReqType_value, data, "CriuReqType")
	if err != nil {
		return err
	}
	*x = CriuReqType(value)
	return nil
}

func (CriuReqType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_d9874a201429861e, []int{2}
}

type CriuPageServerInfo struct {
	Address              *string  `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
	Port                 *int32   `protobuf:"varint,2,opt,name=port" json:"port,omitempty"`
	Pid                  *int32   `protobuf:"varint,3,opt,name=pid" json:"pid,omitempty"`
	Fd                   *int32   `protobuf:"varint,4,opt,name=fd" json:"fd,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

func (m *CriuPageServerInfo) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CriuPageServerInfo.Unmarshal(m, b)
}
func (m *CriuPageServerInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CriuPageServerInfo.Marshal(b, m, deterministic)
}
func (m *CriuPageServerInfo) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CriuPageServerInfo.Merge(m, src)
}
func (m *CriuPageServerInfo) XXX_Size() int {
	return xxx_messageInfo_CriuPageServerInfo.Size(m)
}
func (m *CriuPageServerInfo) XXX_DiscardUnknown() {
	xxx_messageInfo_CriuPageServerInfo.DiscardUnknown(m)
}

var xxx_messageInfo_CriuPageServerInfo proto.InternalMessageInfo

func (m *CriuPageServerInfo) GetAddress() string {
	if m != nil && m.Address != nil {
		return *m.Address
	}
	return ""
}

func (m *CriuPageServerInfo) GetPort() int32 {
	if m != nil && m.Port != nil {
		return *m.Port
	}
	return 0
}

func (m *CriuPageServerInfo) GetPid() int32 {
	if m != nil && m.Pid != nil {
		return *m.Pid
	}
	return 0
}

func (m *CriuPageServerInfo) GetFd() int32 {
	if m != nil && m.Fd != nil {
		return *m.Fd
	}
	return 0
}

type CriuVethPair struct {
	IfIn                 *string  `protobuf:"bytes,1,req,name=if_in,json=ifIn" json:"if_in,omitempty"`
	IfOut                *string  `protobuf:"bytes,2,req,name=if_out,json=ifOut" json:"if_out,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

func (m *CriuVethPair) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CriuVethPair.Unmarshal(m, b)
}
func (m *CriuVethPair) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CriuVethPair.Marshal(b, m, deterministic)
}
func (m *CriuVethPair) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CriuVethPair.Merge(m, src)
}
func (m *CriuVethPair) XXX_Size() int {
	return xxx_messageInfo_CriuVethPair.Size(m)
}
func (m *CriuVethPair) XXX_DiscardUnknown() {
	xxx_messageInfo_CriuVethPair.DiscardUnknown(m)
}

var xxx_messageInfo_CriuVethPair proto.InternalMessageInfo

func (m *CriuVethPair) GetIfIn() string {
	if m != nil && m.IfIn != nil {
		return *m.IfIn
	}
	return ""
}

func (m *CriuVethPair) GetIfOut() string {
	if m != nil && m.IfOut != nil {
		return *m.IfOut
	}
	return ""
}

type ExtMountMap struct {
	Key                  *string  `protobuf:"bytes,1,req,name=key" json:"key,omitempty"`
	Val                  *string  `protobuf:"bytes,2,req,name=val" json:"val,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

func (m *ExtMountMap) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ExtMountMap.Unmarshal(m, b)
}
func (m *ExtMountMap) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ExtMountMap.Marshal(b, m, deterministic)
}
func (m *ExtMountMap) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ExtMountMap.Merge(m, src)
}
func (m *ExtMountMap) XXX_Size() int {
	return xxx_messageInfo_ExtMountMap.Size(m)
}
func (m *ExtMountMap) XXX_DiscardUnknown() {
	xxx_messageInfo_ExtMountMap.DiscardUnknown(m)
}

var xxx_messageInfo_ExtMountMap proto.InternalMessageInfo

func (m *ExtMountMap) GetKey() string {
	if m != nil && m.Key != nil {
		return *m.Key
	}
	return ""
}

func (m *ExtMountMap) GetVal() string {
	if m != nil && m.Val != nil {
		return *m.Val
	}
	return ""
}

type JoinNamespace struct {
	Ns                   *string  `protobuf:"bytes,1,req,name=ns" json:"ns,omitempty"`
	NsFile               *string  `protobuf:"bytes,2,req,name=ns_file,json=nsFile" json:"ns_file,omitempty"`
	ExtraOpt             *string  `protobuf:"bytes,3,opt,name=extra_opt,json=extraOpt" json:"extra_opt,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

func (m *JoinNamespace) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_JoinNamespace.Unmarshal(m, b)
}
func (m *JoinNamespace) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_JoinNamespace.Marshal(b, m, deterministic)
}
func (m *JoinNamespace) XXX_Merge(src proto.Message) {
	xxx_messageInfo_JoinNamespace.Merge(m, src)
}
func (m *JoinNamespace) XXX_Size() int {
	return xxx_messageInfo_JoinNamespace.Size(m)
}
func (m *JoinNamespace) XXX_DiscardUnknown() {
	xxx_messageInfo_JoinNamespace.DiscardUnknown(m)
}

var xxx_messageInfo_JoinNamespace proto.InternalMessageInfo

func (m *JoinNamespace) GetNs() string {
	if m != nil && m.Ns != nil {
		return *m.Ns
	}
	return ""
}

func (m *JoinNamespace) GetNsFile() string {
	if m != nil && m.NsFile != nil {
		return *m.NsFile
	}
	return ""
}

func (m *JoinNamespace) GetExtraOpt() string {
	if m != nil && m.ExtraOpt != nil {
		return *m.ExtraOpt
	}
	return ""
}

type InheritFd struct {
	Key                  *string  `protobuf:"bytes,1,req,name=key" json:"key,omitempty"`
	Fd                   *int32   `protobuf:"varint,2,req,name=fd" json:"fd,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *InheritFd) Reset()         { *m = InheritFd{} }
func (m *InheritFd) String() string { return proto.CompactTextString(m) }
func (*InheritFd) ProtoMessage()    {}
func (*InheritFd) Descriptor() ([]byte, []int) {
	return fileDescriptor_d9874a201429861e, []int{4}
}

func (m *InheritFd) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_InheritFd.Unmarshal(m, b)
}
func (m *InheritFd) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_InheritFd.Marshal(b, m, deterministic)
}
func (m *InheritFd) XXX_Merge(src proto.Message) {
	xxx_messageInfo_InheritFd.Merge(m, src)
}
func (m *InheritFd) XXX_Size() int {
	return xxx_messageInfo_InheritFd.Size(m)
}
func (m *InheritFd) XXX_DiscardUnknown() {
	xxx_messageInfo_InheritFd.DiscardUnknown(m)
}

var xxx_messageInfo_InheritFd proto.InternalMessageInfo

func (m *InheritFd) GetKey() string {
	if m != nil && m.Key != nil {
		return *m.Key
	}
	return ""
}

func (m *InheritFd) GetFd() int32 {
	if m != nil && m.Fd != nil {
		return *m.Fd
	}
	return 0
}

type CgroupRoot struct {
	Ctrl                 *string  `protobuf:"bytes,1,opt,name=ctrl" json:"ctrl,omitempty"`
	Path                 *string  `protobuf:"bytes,2,req,name=path" json:"path,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CgroupRoot) Reset()         { *m = CgroupRoot{} }
func (m *CgroupRoot) String() string { return proto.CompactTextString(m) }
func (*CgroupRoot) ProtoMessage()    {}
func (*CgroupRoot) Descriptor() ([]byte, []int) {
	return fileDescriptor_d9874a201429861e, []int{5}
}

func (m *CgroupRoot) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CgroupRoot.Unmarshal(m, b)
}
func (m *CgroupRoot) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CgroupRoot.Marshal(b, m, deterministic)
}
func (m *CgroupRoot) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CgroupRoot.Merge(m, src)
}
func (m *CgroupRoot) XXX_Size() int {
	return xxx_messageInfo_CgroupRoot.Size(m)
}
func (m *CgroupRoot) XXX_DiscardUnknown() {
	xxx_messageInfo_CgroupRoot.DiscardUnknown(m)
}

var xxx_messageInfo_CgroupRoot proto.InternalMessageInfo

func (m *CgroupRoot) GetCtrl() string {
	if m != nil && m.Ctrl != nil {
		return *m.Ctrl
	}
	return ""
}

func (m *CgroupRoot) GetPath() string {
	if m != nil && m.Path != nil {
		return *m.Path
	}
	return ""
}

type UnixSk struct {
	Inode                *uint32  `protobuf:"varint,1,req,name=inode" json:"inode,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *UnixSk) Reset()         { *m = UnixSk{} }
func (m *UnixSk) String() string { return proto.CompactTextString(m) }
func (*UnixSk) ProtoMessage()    {}
func (*UnixSk) Descriptor() ([]byte, []int) {
	return fileDescriptor_d9874a201429861e, []int{6}
}

func (m *UnixSk) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UnixSk.Unmarshal(m, b)
}
func (m *UnixSk) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UnixSk.Marshal(b, m, deterministic)
}
func (m *UnixSk) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UnixSk.Merge(m, src)
}
func (m *UnixSk) XXX_Size() int {
	return xxx_messageInfo_UnixSk.Size(m)
}
func (m *UnixSk) XXX_DiscardUnknown() {
	xxx_messageInfo_UnixSk.DiscardUnknown(m)
}

var xxx_messageInfo_UnixSk proto.InternalMessageInfo

func (m *UnixSk) GetInode() uint32 {
	if m != nil && m.Inode != nil {
		return *m.Inode
	}
	return 0
}

type CriuOpts struct {
	ImagesDirFd          *int32              `protobuf:"varint,1,req,name=images_dir_fd,json=imagesDirFd" json:"images_dir_fd,omitempty"`
	Pid                  *int32              `protobuf:"varint,2,opt,name=pid" json:"pid,omitempty"`
	LeaveRunning         *bool               `protobuf:"varint,3,opt,name=leave_running,json=leaveRunning" json:"leave_running,omitempty"`
	ExtUnixSk            *bool               `protobuf:"varint,4,opt,name=ext_unix_sk,json=extUnixSk" json:"ext_unix_sk,omitempty"`
	TcpEstablished       *bool               `protobuf:"varint,5,opt,name=tcp_established,json=tcpEstablished" json:"tcp_established,omitempty"`
	EvasiveDevices       *bool               `protobuf:"varint,6,opt,name=evasive_devices,json=evasiveDevices" json:"evasive_devices,omitempty"`
	ShellJob             *bool               `protobuf:"varint,7,opt,name=shell_job,json=shellJob" json:"shell_job,omitempty"`
	FileLocks            *bool               `protobuf:"varint,8,opt,name=file_locks,json=fileLocks" json:"file_locks,omitempty"`
	LogLevel             *int32              `protobuf:"varint,9,opt,name=log_level,json=logLevel,def=2" json:"log_level,omitempty"`
	LogFile              *string             `protobuf:"bytes,10,opt,name=log_file,json=logFile" json:"log_file,omitempty"`
	Ps                   *CriuPageServerInfo `protobuf:"bytes,11,opt,name=ps" json:"ps,omitempty"`
	NotifyScripts        *bool               `protobuf:"varint,12,opt,name=notify_scripts,json=notifyScripts" json:"notify_scripts,omitempty"`
	Root                 *string             `protobuf:"bytes,13,opt,name=root" json:"root,omitempty"`
	ParentImg            *string             `protobuf:"bytes,14,opt,name=parent_img,json=parentImg" json:"parent_img,omitempty"`
	TrackMem             *bool               `protobuf:"varint,15,opt,name=track_mem,json=trackMem" json:"track_mem,omitempty"`
	AutoDedup            *bool               `protobuf:"varint,16,opt,name=auto_dedup,json=autoDedup" json:"auto_dedup,omitempty"`
	WorkDirFd            *int32              `protobuf:"varint,17,opt,name=work_dir_fd,json=workDirFd" json:"work_dir_fd,omitempty"`
	LinkRemap            *bool               `protobuf:"varint,18,opt,name=link_remap,json=linkRemap" json:"link_remap,omitempty"`
	Veths                []*CriuVethPair     `protobuf:"bytes,19,rep,name=veths" json:"veths,omitempty"`
	CpuCap               *uint32             `protobuf:"varint,20,opt,name=cpu_cap,json=cpuCap,def=4294967295" json:"cpu_cap,omitempty"`
	ForceIrmap           *bool               `protobuf:"varint,21,opt,name=force_irmap,json=forceIrmap" json:"force_irmap,omitempty"`
	ExecCmd              []string            `protobuf:"bytes,22,rep,name=exec_cmd,json=execCmd" json:"exec_cmd,omitempty"`
	ExtMnt               []*ExtMountMap      `protobuf:"bytes,23,rep,name=ext_mnt,json=extMnt" json:"ext_mnt,omitempty"`
	ManageCgroups        *bool               `protobuf:"varint,24,opt,name=manage_cgroups,json=manageCgroups" json:"manage_cgroups,omitempty"`
	CgRoot               []*CgroupRoot       `protobuf:"bytes,25,rep,name=cg_root,json=cgRoot" json:"cg_root,omitempty"`
	RstSibling           *bool               `protobuf:"varint,26,opt,name=rst_sibling,json=rstSibling" json:"rst_sibling,omitempty"`
	InheritFd            []*InheritFd        `protobuf:"bytes,27,rep,name=inherit_fd,json=inheritFd" json:"inherit_fd,omitempty"`
	AutoExtMnt           *bool               `protobuf:"varint,28,opt,name=auto_ext_mnt,json=autoExtMnt" json:"auto_ext_mnt,omitempty"`
	ExtSharing           *bool               `protobuf:"varint,29,opt,name=ext_sharing,json=extSharing" json:"ext_sharing,omitempty"`
	ExtMasters           *bool               `protobuf:"varint,30,opt,name=ext_masters,json=extMasters" json:"ext_masters,omitempty"`
	SkipMnt              []string            `protobuf:"bytes,31,rep,name=skip_mnt,json=skipMnt" json:"skip_mnt,omitempty"`
	EnableFs             []string            `protobuf:"bytes,32,rep,name=enable_fs,json=enableFs" json:"enable_fs,omitempty"`
	UnixSkIno            []*UnixSk           `protobuf:"bytes,33,rep,name=unix_sk_ino,json=unixSkIno" json:"unix_sk_ino,omitempty"`
	ManageCgroupsMode    *CriuCgMode         `protobuf:"varint,34,opt,name=manage_cgroups_mode,json=manageCgroupsMode,enum=CriuCgMode" json:"manage_cgroups_mode,omitempty"`
	GhostLimit           *uint32             `protobuf:"varint,35,opt,name=ghost_limit,json=ghostLimit,def=1048576" json:"ghost_limit,omitempty"`
	IrmapScanPaths       []string            `protobuf:"bytes,36,rep,name=irmap_scan_paths,json=irmapScanPaths" json:"irmap_scan_paths,omitempty"`
	External             []string            `protobuf:"bytes,37,rep,name=external" json:"external,omitempty"`
	EmptyNs              *uint32             `protobuf:"varint,38,opt,name=empty_ns,json=emptyNs" json:"empty_ns,omitempty"`
	JoinNs               []*JoinNamespace    `protobuf:"bytes,39,rep,name=join_ns,json=joinNs" json:"join_ns,omitempty"`
	CgroupProps          *string             `protobuf:"bytes,41,opt,name=cgroup_props,json=cgroupProps" json:"cgroup_props,omitempty"`
	CgroupPropsFile      *string             `protobuf:"bytes,42,opt,name=cgroup_props_file,json=cgroupPropsFile" json:"cgroup_props_file,omitempty"`
	CgroupDumpController []string            `protobuf:"bytes,43,rep,name=cgroup_dump_controller,json=cgroupDumpController" json:"cgroup_dump_controller,omitempty"`
	FreezeCgroup         *string             `protobuf:"bytes,44,opt,name=freeze_cgroup,json=freezeCgroup" json:"freeze_cgroup,omitempty"`
	Timeout              *uint32             `protobuf:"varint,45,opt,name=timeout" json:"timeout,omitempty"`
	TcpSkipInFlight      *bool               `protobuf:"varint,46,opt,name=tcp_skip_in_flight,json=tcpSkipInFlight" json:"tcp_skip_in_flight,omitempty"`
	WeakSysctls          *bool               `protobuf:"varint,47,opt,name=weak_sysctls,json=weakSysctls" json:"weak_sysctls,omitempty"`
	LazyPages            *bool               `protobuf:"varint,48,opt,name=lazy_pages,json=lazyPages" json:"lazy_pages,omitempty"`
	StatusFd             *int32              `protobuf:"varint,49,opt,name=status_fd,json=statusFd" json:"status_fd,omitempty"`
	OrphanPtsMaster      *bool               `protobuf:"varint,50,opt,name=orphan_pts_master,json=orphanPtsMaster" json:"orphan_pts_master,omitempty"`
	ConfigFile           *string             `protobuf:"bytes,51,opt,name=config_file,json=configFile" json:"config_file,omitempty"`
	TcpClose             *bool               `protobuf:"varint,52,opt,name=tcp_close,json=tcpClose" json:"tcp_close,omitempty"`
	LsmProfile           *string             `protobuf:"bytes,53,opt,name=lsm_profile,json=lsmProfile" json:"lsm_profile,omitempty"`
	TlsCacert            *string             `protobuf:"bytes,54,opt,name=tls_cacert,json=tlsCacert" json:"tls_cacert,omitempty"`
	TlsCacrl             *string             `protobuf:"bytes,55,opt,name=tls_cacrl,json=tlsCacrl" json:"tls_cacrl,omitempty"`
	TlsCert              *string             `protobuf:"bytes,56,opt,name=tls_cert,json=tlsCert" json:"tls_cert,omitempty"`
	TlsKey               *string             `protobuf:"bytes,57,opt,name=tls_key,json=tlsKey" json:"tls_key,omitempty"`
	Tls                  *bool               `protobuf:"varint,58,opt,name=tls" json:"tls,omitempty"`
	TlsNoCnVerify        *bool               `protobuf:"varint,59,opt,name=tls_no_cn_verify,json=tlsNoCnVerify" json:"tls_no_cn_verify,omitempty"`
	CgroupYard           *string             `protobuf:"bytes,60,opt,name=cgroup_yard,json=cgroupYard" json:"cgroup_yard,omitempty"`
	PreDumpMode          *CriuPreDumpMode    `protobuf:"varint,61,opt,name=pre_dump_mode,json=preDumpMode,enum=CriuPreDumpMode,def=1" json:"pre_dump_mode,omitempty"`
	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
	XXX_unrecognized     []byte              `json:"-"`
	XXX_sizecache        int32               `json:"-"`
}

func (m *CriuOpts) Reset()         { *m = CriuOpts{} }
func (m *CriuOpts) String() string { return proto.CompactTextString(m) }
func (*CriuOpts) ProtoMessage()    {}
func (*CriuOpts) Descriptor() ([]byte, []int) {
	return fileDescriptor_d9874a201429861e, []int{7}
}

func (m *CriuOpts) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CriuOpts.Unmarshal(m, b)
}
func (m *CriuOpts) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CriuOpts.Marshal(b, m, deterministic)
}
func (m *CriuOpts) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CriuOpts.Merge(m, src)
}
func (m *CriuOpts) XXX_Size() int {
	return xxx_messageInfo_CriuOpts.Size(m)
}
func (m *CriuOpts) XXX_DiscardUnknown() {
	xxx_messageInfo_CriuOpts.DiscardUnknown(m)
}

var xxx_messageInfo_CriuOpts proto.InternalMessageInfo

const Default_CriuOpts_LogLevel int32 = 2
const Default_CriuOpts_CpuCap uint32 = 4294967295
const Default_CriuOpts_GhostLimit uint32 = 1048576
const Default_CriuOpts_PreDumpMode CriuPreDumpMode = CriuPreDumpMode_SPLICE

func (m *CriuOpts) GetImagesDirFd() int32 {
	if m != nil && m.ImagesDirFd != nil {
		return *m.ImagesDirFd
	}
	return 0
}

func (m *CriuOpts) GetPid() int32 {
	if m != nil && m.Pid != nil {
		return *m.Pid
	}
	return 0
}

func (m *CriuOpts) GetLeaveRunning() bool {
	if m != nil && m.LeaveRunning != nil {
		return *m.LeaveRunning
	}
	return false
}

func (m *CriuOpts) GetExtUnixSk() bool {
	if m != nil && m.ExtUnixSk != nil {
		return *m.ExtUnixSk
	}
	return false
}

func (m *CriuOpts) GetTcpEstablished() bool {
	if m != nil && m.TcpEstablished != nil {
		return *m.TcpEstablished
	}
	return false
}

func (m *CriuOpts) GetEvasiveDevices() bool {
	if m != nil && m.EvasiveDevices != nil {
		return *m.EvasiveDevices
	}
	return false
}

func (m *CriuOpts) GetShellJob() bool {
	if m != nil && m.ShellJob != nil {
		return *m.ShellJob
	}
	return false
}

func (m *CriuOpts) GetFileLocks() bool {
	if m != nil && m.FileLocks != nil {
		return *m.FileLocks
	}
	return false
}

func (m *CriuOpts) GetLogLevel() int32 {
	if m != nil && m.LogLevel != nil {
		return *m.LogLevel
	}
	return Default_CriuOpts_LogLevel
}

func (m *CriuOpts) GetLogFile() string {
	if m != nil && m.LogFile != nil {
		return *m.LogFile
	}
	return ""
}

func (m *CriuOpts) GetPs() *CriuPageServerInfo {
	if m != nil {
		return m.Ps
	}
	return nil
}

func (m *CriuOpts) GetNotifyScripts() bool {
	if m != nil && m.NotifyScripts != nil {
		return *m.NotifyScripts
	}
	return false
}

func (m *CriuOpts) GetRoot() string {
	if m != nil && m.Root != nil {
		return *m.Root
	}
	return ""
}

func (m *CriuOpts) GetParentImg() string {
	if m != nil && m.ParentImg != nil {
		return *m.ParentImg
	}
	return ""
}

func (m *CriuOpts) GetTrackMem() bool {
	if m != nil && m.TrackMem != nil {
		return *m.TrackMem
	}
	return false
}

func (m *CriuOpts) GetAutoDedup() bool {
	if m != nil && m.AutoDedup != nil {
		return *m.AutoDedup
	}
	return false
}

func (m *CriuOpts) GetWorkDirFd() int32 {
	if m != nil && m.WorkDirFd != nil {
		return *m.WorkDirFd
	}
	return 0
}

func (m *CriuOpts) GetLinkRemap() bool {
	if m != nil && m.LinkRemap != nil {
		return *m.LinkRemap
	}
	return false
}

func (m *CriuOpts) GetVeths() []*CriuVethPair {
	if m != nil {
		return m.Veths
	}
	return nil
}

func (m *CriuOpts) GetCpuCap() uint32 {
	if m != nil && m.CpuCap != nil {
		return *m.CpuCap
	}
	return Default_CriuOpts_CpuCap
}

func (m *CriuOpts) GetForceIrmap() bool {
	if m != nil && m.ForceIrmap != nil {
		return *m.ForceIrmap
	}
	return false
}

func (m *CriuOpts) GetExecCmd() []string {
	if m != nil {
		return m.ExecCmd
	}
	return nil
}

func (m *CriuOpts) GetExtMnt() []*ExtMountMap {
	if m != nil {
		return m.ExtMnt
	}
	return nil
}

func (m *CriuOpts) GetManageCgroups() bool {
	if m != nil && m.ManageCgroups != nil {
		return *m.ManageCgroups
	}
	return false
}

func (m *CriuOpts) GetCgRoot() []*CgroupRoot {
	if m != nil {
		return m.CgRoot
	}
	return nil
}

func (m *CriuOpts) GetRstSibling() bool {
	if m != nil && m.RstSibling != nil {
		return *m.RstSibling
	}
	return false
}

func (m *CriuOpts) GetInheritFd() []*InheritFd {
	if m != nil {
		return m.InheritFd
	}
	return nil
}

func (m *CriuOpts) GetAutoExtMnt() bool {
	if m != nil && m.AutoExtMnt != nil {
		return *m.AutoExtMnt
	}
	return false
}

func (m *CriuOpts) GetExtSharing() bool {
	if m != nil && m.ExtSharing != nil {
		return *m.ExtSharing
	}
	return false
}

func (m *CriuOpts) GetExtMasters() bool {
	if m != nil && m.ExtMasters != nil {
		return *m.ExtMasters
	}
	return false
}

func (m *CriuOpts) GetSkipMnt() []string {
	if m != nil {
		return m.SkipMnt
	}
	return nil
}

func (m *CriuOpts) GetEnableFs() []string {
	if m != nil {
		return m.EnableFs
	}
	return nil
}

func (m *CriuOpts) GetUnixSkIno() []*UnixSk {
	if m != nil {
		return m.UnixSkIno
	}
	return nil
}

func (m *CriuOpts) GetManageCgroupsMode() CriuCgMode {
	if m != nil && m.ManageCgroupsMode != nil {
		return *m.ManageCgroupsMode
	}
	return CriuCgMode_IGNORE
}

func (m *CriuOpts) GetGhostLimit() uint32 {
	if m != nil && m.GhostLimit != nil {
		return *m.GhostLimit
	}
	return Default_CriuOpts_GhostLimit
}

func (m *CriuOpts) GetIrmapScanPaths() []string {
	if m != nil {
		return m.IrmapScanPaths
	}
	return nil
}

func (m *CriuOpts) GetExternal() []string {
	if m != nil {
		return m.External
	}
	return nil
}

func (m *CriuOpts) GetEmptyNs() uint32 {
	if m != nil && m.EmptyNs != nil {
		return *m.EmptyNs
	}
	return 0
}

func (m *CriuOpts) GetJoinNs() []*JoinNamespace {
	if m != nil {
		return m.JoinNs
	}
	return nil
}

func (m *CriuOpts) GetCgroupProps() string {
	if m != nil && m.CgroupProps != nil {
		return *m.CgroupProps
	}
	return ""
}

func (m *CriuOpts) GetCgroupPropsFile() string {
	if m != nil && m.CgroupPropsFile != nil {
		return *m.CgroupPropsFile
	}
	return ""
}

func (m *CriuOpts) GetCgroupDumpController() []string {
	if m != nil {
		return m.CgroupDumpController
	}
	return nil
}

func (m *CriuOpts) GetFreezeCgroup() string {
	if m != nil && m.FreezeCgroup != nil {
		return *m.FreezeCgroup
	}
	return ""
}

func (m *CriuOpts) GetTimeout() uint32 {
	if m != nil && m.Timeout != nil {
		return *m.Timeout
	}
	return 0
}

func (m *CriuOpts) GetTcpSkipInFlight() bool {
	if m != nil && m.TcpSkipInFlight != nil {
		return *m.TcpSkipInFlight
	}
	return false
}

func (m *CriuOpts) GetWeakSysctls() bool {
	if m != nil && m.WeakSysctls != nil {
		return *m.WeakSysctls
	}
	return false
}

func (m *CriuOpts) GetLazyPages() bool {
	if m != nil && m.LazyPages != nil {
		return *m.LazyPages
	}
	return false
}

func (m *CriuOpts) GetStatusFd() int32 {
	if m != nil && m.StatusFd != nil {
		return *m.StatusFd
	}
	return 0
}

func (m *CriuOpts) GetOrphanPtsMaster() bool {
	if m != nil && m.OrphanPtsMaster != nil {
		return *m.OrphanPtsMaster
	}
	return false
}

func (m *CriuOpts) GetConfigFile() string {
	if m != nil && m.ConfigFile != nil {
		return *m.ConfigFile
	}
	return ""
}

func (m *CriuOpts) GetTcpClose() bool {
	if m != nil && m.TcpClose != nil {
		return *m.TcpClose
	}
	return false
}

func (m *CriuOpts) GetLsmProfile() string {
	if m != nil && m.LsmProfile != nil {
		return *m.LsmProfile
	}
	return ""
}

func (m *CriuOpts) GetTlsCacert() string {
	if m != nil && m.TlsCacert != nil {
		return *m.TlsCacert
	}
	return ""
}

func (m *CriuOpts) GetTlsCacrl() string {
	if m != nil && m.TlsCacrl != nil {
		return *m.TlsCacrl
	}
	return ""
}

func (m *CriuOpts) GetTlsCert() string {
	if m != nil && m.TlsCert != nil {
		return *m.TlsCert
	}
	return ""
}

func (m *CriuOpts) GetTlsKey() string {
	if m != nil && m.TlsKey != nil {
		return *m.TlsKey
	}
	return ""
}

func (m *CriuOpts) GetTls() bool {
	if m != nil && m.Tls != nil {
		return *m.Tls
	}
	return false
}

func (m *CriuOpts) GetTlsNoCnVerify() bool {
	if m != nil && m.TlsNoCnVerify != nil {
		return *m.TlsNoCnVerify
	}
	return false
}

func (m *CriuOpts) GetCgroupYard() string {
	if m != nil && m.CgroupYard != nil {
		return *m.CgroupYard
	}
	return ""
}

func (m *CriuOpts) GetPreDumpMode() CriuPreDumpMode {
	if m != nil && m.PreDumpMode != nil {
		return *m.PreDumpMode
	}
	return Default_CriuOpts_PreDumpMode
}

type CriuDumpResp struct {
	Restored             *bool    `protobuf:"varint,1,opt,name=restored" json:"restored,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CriuDumpResp) Reset()         { *m = CriuDumpResp{} }
func (m *CriuDumpResp) String() string { return proto.CompactTextString(m) }
func (*CriuDumpResp) ProtoMessage()    {}
func (*CriuDumpResp) Descriptor() ([]byte, []int) {
	return fileDescriptor_d9874a201429861e, []int{8}
}

func (m *CriuDumpResp) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CriuDumpResp.Unmarshal(m, b)
}
func (m *CriuDumpResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CriuDumpResp.Marshal(b, m, deterministic)
}
func (m *CriuDumpResp) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CriuDumpResp.Merge(m, src)
}
func (m *CriuDumpResp) XXX_Size() int {
	return xxx_messageInfo_CriuDumpResp.Size(m)
}
func (m *CriuDumpResp) XXX_DiscardUnknown() {
	xxx_messageInfo_CriuDumpResp.DiscardUnknown(m)
}

var xxx_messageInfo_CriuDumpResp proto.InternalMessageInfo

func (m *CriuDumpResp) GetRestored() bool {
	if m != nil && m.Restored != nil {
		return *m.Restored
	}
	return false
}

type CriuRestoreResp struct {
	Pid                  *int32   `protobuf:"varint,1,req,name=pid" json:"pid,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CriuRestoreResp) Reset()         { *m = CriuRestoreResp{} }
func (m *CriuRestoreResp) String() string { return proto.CompactTextString(m) }
func (*CriuRestoreResp) ProtoMessage()    {}
func (*CriuRestoreResp) Descriptor() ([]byte, []int) {
	return fileDescriptor_d9874a201429861e, []int{9}
}

func (m *CriuRestoreResp) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CriuRestoreResp.Unmarshal(m, b)
}
func (m *CriuRestoreResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CriuRestoreResp.Marshal(b, m, deterministic)
}
func (m *CriuRestoreResp) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CriuRestoreResp.Merge(m, src)
}
func (m *CriuRestoreResp) XXX_Size() int {
	return xxx_messageInfo_CriuRestoreResp.Size(m)
}
func (m *CriuRestoreResp) XXX_DiscardUnknown() {
	xxx_messageInfo_CriuRestoreResp.DiscardUnknown(m)
}

var xxx_messageInfo_CriuRestoreResp proto.InternalMessageInfo

func (m *CriuRestoreResp) GetPid() int32 {
	if m != nil && m.Pid != nil {
		return *m.Pid
	}
	return 0
}

type CriuNotify struct {
	Script               *string  `protobuf:"bytes,1,opt,name=script" json:"script,omitempty"`
	Pid                  *int32   `protobuf:"varint,2,opt,name=pid" json:"pid,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CriuNotify) Reset()         { *m = CriuNotify{} }
func (m *CriuNotify) String() string { return proto.CompactTextString(m) }
func (*CriuNotify) ProtoMessage()    {}
func (*CriuNotify) Descriptor() ([]byte, []int) {
	return fileDescriptor_d9874a201429861e, []int{10}
}

func (m *CriuNotify) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CriuNotify.Unmarshal(m, b)
}
func (m *CriuNotify) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CriuNotify.Marshal(b, m, deterministic)
}
func (m *CriuNotify) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CriuNotify.Merge(m, src)
}
func (m *CriuNotify) XXX_Size() int {
	return xxx_messageInfo_CriuNotify.Size(m)
}
func (m *CriuNotify) XXX_DiscardUnknown() {
	xxx_messageInfo_CriuNotify.DiscardUnknown(m)
}

var xxx_messageInfo_CriuNotify proto.InternalMessageInfo

func (m *CriuNotify) GetScript() string {
	if m != nil && m.Script != nil {
		return *m.Script
	}
	return ""
}

func (m *CriuNotify) GetPid() int32 {
	if m != nil && m.Pid != nil {
		return *m.Pid
	}
	return 0
}

//
// List of features which can queried via
// CRIU_REQ_TYPE__FEATURE_CHECK
type CriuFeatures struct {
	MemTrack             *bool    `protobuf:"varint,1,opt,name=mem_track,json=memTrack" json:"mem_track,omitempty"`
	LazyPages            *bool    `protobuf:"varint,2,opt,name=lazy_pages,json=lazyPages" json:"lazy_pages,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CriuFeatures) Reset()         { *m = CriuFeatures{} }
func (m *CriuFeatures) String() string { return proto.CompactTextString(m) }
func (*CriuFeatures) ProtoMessage()    {}
func (*CriuFeatures) Descriptor() ([]byte, []int) {
	return fileDescriptor_d9874a201429861e, []int{11}
}

func (m *CriuFeatures) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CriuFeatures.Unmarshal(m, b)
}
func (m *CriuFeatures) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CriuFeatures.Marshal(b, m, deterministic)
}
func (m *CriuFeatures) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CriuFeatures.Merge(m, src)
}
func (m *CriuFeatures) XXX_Size() int {
	return xxx_messageInfo_CriuFeatures.Size(m)
}
func (m *CriuFeatures) XXX_DiscardUnknown() {
	xxx_messageInfo_CriuFeatures.DiscardUnknown(m)
}

var xxx_messageInfo_CriuFeatures proto.InternalMessageInfo

func (m *CriuFeatures) GetMemTrack() bool {
	if m != nil && m.MemTrack != nil {
		return *m.MemTrack
	}
	return false
}

func (m *CriuFeatures) GetLazyPages() bool {
	if m != nil && m.LazyPages != nil {
		return *m.LazyPages
	}
	return false
}

type CriuReq struct {
	Type          *CriuReqType `protobuf:"varint,1,req,name=type,enum=CriuReqType" json:"type,omitempty"`
	Opts          *CriuOpts    `protobuf:"bytes,2,opt,name=opts" json:"opts,omitempty"`
	NotifySuccess *bool        `protobuf:"varint,3,opt,name=notify_success,json=notifySuccess" json:"notify_success,omitempty"`
	//
	// When set service won't close the connection but
	// will wait for more req-s to appear. Works not
	// for all request types.
	KeepOpen *bool `protobuf:"varint,4,opt,name=keep_open,json=keepOpen" json:"keep_open,omitempty"`
	//
	// 'features' can be used to query which features
	// are supported by the installed criu/kernel
	// via RPC.
	Features *CriuFeatures `protobuf:"bytes,5,opt,name=features" json:"features,omitempty"`
	// 'pid' is used for WAIT_PID
	Pid                  *uint32  `protobuf:"varint,6,opt,name=pid" json:"pid,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CriuReq) Reset()         { *m = CriuReq{} }
func (m *CriuReq) String() string { return proto.CompactTextString(m) }
func (*CriuReq) ProtoMessage()    {}
func (*CriuReq) Descriptor() ([]byte, []int) {
	return fileDescriptor_d9874a201429861e, []int{12}
}

func (m *CriuReq) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CriuReq.Unmarshal(m, b)
}
func (m *CriuReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CriuReq.Marshal(b, m, deterministic)
}
func (m *CriuReq) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CriuReq.Merge(m, src)
}
func (m *CriuReq) XXX_Size() int {
	return xxx_messageInfo_CriuReq.Size(m)
}
func (m *CriuReq) XXX_DiscardUnknown() {
	xxx_messageInfo_CriuReq.DiscardUnknown(m)
}

var xxx_messageInfo_CriuReq proto.InternalMessageInfo

func (m *CriuReq) GetType() CriuReqType {
	if m != nil && m.Type != nil {
		return *m.Type
	}
	return CriuReqType_EMPTY
}

func (m *CriuReq) GetOpts() *CriuOpts {
	if m != nil {
		return m.Opts
	}
	return nil
}

func (m *CriuReq) GetNotifySuccess() bool {
	if m != nil && m.NotifySuccess != nil {
		return *m.NotifySuccess
	}
	return false
}

func (m *CriuReq) GetKeepOpen() bool {
	if m != nil && m.KeepOpen != nil {
		return *m.KeepOpen
	}
	return false
}

func (m *CriuReq) GetFeatures() *CriuFeatures {
	if m != nil {
		return m.Features
	}
	return nil
}

func (m *CriuReq) GetPid() uint32 {
	if m != nil && m.Pid != nil {
		return *m.Pid
	}
	return 0
}

type CriuResp struct {
	Type                 *CriuReqType        `protobuf:"varint,1,req,name=type,enum=CriuReqType" json:"type,omitempty"`
	Success              *bool               `protobuf:"varint,2,req,name=success" json:"success,omitempty"`
	Dump                 *CriuDumpResp       `protobuf:"bytes,3,opt,name=dump" json:"dump,omitempty"`
	Restore              *CriuRestoreResp    `protobuf:"bytes,4,opt,name=restore" json:"restore,omitempty"`
	Notify               *CriuNotify         `protobuf:"bytes,5,opt,name=notify" json:"notify,omitempty"`
	Ps                   *CriuPageServerInfo `protobuf:"bytes,6,opt,name=ps" json:"ps,omitempty"`
	CrErrno              *int32              `protobuf:"varint,7,opt,name=cr_errno,json=crErrno" json:"cr_errno,omitempty"`
	Features             *CriuFeatures       `protobuf:"bytes,8,opt,name=features" json:"features,omitempty"`
	CrErrmsg             *string             `protobuf:"bytes,9,opt,name=cr_errmsg,json=crErrmsg" json:"cr_errmsg,omitempty"`
	Version              *CriuVersion        `protobuf:"bytes,10,opt,name=version" json:"version,omitempty"`
	Status               *int32              `protobuf:"varint,11,opt,name=status" json:"status,omitempty"`
	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
	XXX_unrecognized     []byte              `json:"-"`
	XXX_sizecache        int32               `json:"-"`
}

func (m *CriuResp) Reset()         { *m = CriuResp{} }
func (m *CriuResp) String() string { return proto.CompactTextString(m) }
func (*CriuResp) ProtoMessage()    {}
func (*CriuResp) Descriptor() ([]byte, []int) {
	return fileDescriptor_d9874a201429861e, []int{13}
}

func (m *CriuResp) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CriuResp.Unmarshal(m, b)
}
func (m *CriuResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CriuResp.Marshal(b, m, deterministic)
}
func (m *CriuResp) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CriuResp.Merge(m, src)
}
func (m *CriuResp) XXX_Size() int {
	return xxx_messageInfo_CriuResp.Size(m)
}
func (m *CriuResp) XXX_DiscardUnknown() {
	xxx_messageInfo_CriuResp.DiscardUnknown(m)
}

var xxx_messageInfo_CriuResp proto.InternalMessageInfo

func (m *CriuResp) GetType() CriuReqType {
	if m != nil && m.Type != nil {
		return *m.Type
	}
	return CriuReqType_EMPTY
}

func (m *CriuResp) GetSuccess() bool {
	if m != nil && m.Success != nil {
		return *m.Success
	}
	return false
}

func (m *CriuResp) GetDump() *CriuDumpResp {
	if m != nil {
		return m.Dump
	}
	return nil
}

func (m *CriuResp) GetRestore() *CriuRestoreResp {
	if m != nil {
		return m.Restore
	}
	return nil
}

func (m *CriuResp) GetNotify() *CriuNotify {
	if m != nil {
		return m.Notify
	}
	return nil
}

func (m *CriuResp) GetPs() *CriuPageServerInfo {
	if m != nil {
		return m.Ps
	}
	return nil
}

func (m *CriuResp) GetCrErrno() int32 {
	if m != nil && m.CrErrno != nil {
		return *m.CrErrno
	}
	return 0
}

func (m *CriuResp) GetFeatures() *CriuFeatures {
	if m != nil {
		return m.Features
	}
	return nil
}

func (m *CriuResp) GetCrErrmsg() string {
	if m != nil && m.CrErrmsg != nil {
		return *m.CrErrmsg
	}
	return ""
}

func (m *CriuResp) GetVersion() *CriuVersion {
	if m != nil {
		return m.Version
	}
	return nil
}

func (m *CriuResp) GetStatus() int32 {
	if m != nil && m.Status != nil {
		return *m.Status
	}
	return 0
}

// Answer for criu_req_type.VERSION requests
type CriuVersion struct {
	MajorNumber          *int32   `protobuf:"varint,1,req,name=major_number,json=majorNumber" json:"major_number,omitempty"`
	MinorNumber          *int32   `protobuf:"varint,2,req,name=minor_number,json=minorNumber" json:"minor_number,omitempty"`
	Gitid                *string  `protobuf:"bytes,3,opt,name=gitid" json:"gitid,omitempty"`
	Sublevel             *int32   `protobuf:"varint,4,opt,name=sublevel" json:"sublevel,omitempty"`
	Extra                *int32   `protobuf:"varint,5,opt,name=extra" json:"extra,omitempty"`
	Name                 *string  `protobuf:"bytes,6,opt,name=name" json:"name,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CriuVersion) Reset()         { *m = CriuVersion{} }
func (m *CriuVersion) String() string { return proto.CompactTextString(m) }
func (*CriuVersion) ProtoMessage()    {}
func (*CriuVersion) Descriptor() ([]byte, []int) {
	return fileDescriptor_d9874a201429861e, []int{14}
}

func (m *CriuVersion) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CriuVersion.Unmarshal(m, b)
}
func (m *CriuVersion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CriuVersion.Marshal(b, m, deterministic)
}
func (m *CriuVersion) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CriuVersion.Merge(m, src)
}
func (m *CriuVersion) XXX_Size() int {
	return xxx_messageInfo_CriuVersion.Size(m)
}
func (m *CriuVersion) XXX_DiscardUnknown() {
	xxx_messageInfo_CriuVersion.DiscardUnknown(m)
}

var xxx_messageInfo_CriuVersion proto.InternalMessageInfo

func (m *CriuVersion) GetMajorNumber() int32 {
	if m != nil && m.MajorNumber != nil {
		return *m.MajorNumber
	}
	return 0
}

func (m *CriuVersion) GetMinorNumber() int32 {
	if m != nil && m.MinorNumber != nil {
		return *m.MinorNumber
	}
	return 0
}

func (m *CriuVersion) GetGitid() string {
	if m != nil && m.Gitid != nil {
		return *m.Gitid
	}
	return ""
}

func (m *CriuVersion) GetSublevel() int32 {
	if m != nil && m.Sublevel != nil {
		return *m.Sublevel
	}
	return 0
}

func (m *CriuVersion) GetExtra() int32 {
	if m != nil && m.Extra != nil {
		return *m.Extra
	}
	return 0
}

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

func init() {
	proto.RegisterEnum("CriuCgMode", CriuCgMode_name, CriuCgMode_value)
	proto.RegisterEnum("CriuPreDumpMode", CriuPreDumpMode_name, CriuPreDumpMode_value)
	proto.RegisterEnum("CriuReqType", CriuReqType_name, CriuReqType_value)
	proto.RegisterType((*CriuPageServerInfo)(nil), "criu_page_server_info")
	proto.RegisterType((*CriuVethPair)(nil), "criu_veth_pair")
	proto.RegisterType((*ExtMountMap)(nil), "ext_mount_map")
	proto.RegisterType((*JoinNamespace)(nil), "join_namespace")
	proto.RegisterType((*InheritFd)(nil), "inherit_fd")
	proto.RegisterType((*CgroupRoot)(nil), "cgroup_root")
	proto.RegisterType((*UnixSk)(nil), "unix_sk")
	proto.RegisterType((*CriuOpts)(nil), "criu_opts")
	proto.RegisterType((*CriuDumpResp)(nil), "criu_dump_resp")
	proto.RegisterType((*CriuRestoreResp)(nil), "criu_restore_resp")
	proto.RegisterType((*CriuNotify)(nil), "criu_notify")
	proto.RegisterType((*CriuFeatures)(nil), "criu_features")
	proto.RegisterType((*CriuReq)(nil), "criu_req")
	proto.RegisterType((*CriuResp)(nil), "criu_resp")
	proto.RegisterType((*CriuVersion)(nil), "criu_version")
}

func init() { proto.RegisterFile("rpc/rpc.proto", fileDescriptor_d9874a201429861e) }

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