// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.4
// 	protoc        v5.29.0
// source: kernel/network.proto

package kernel

import (
	_ "buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go/buf/validate"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

// NetworkType is the type of network.
// Types are basically based on the Go net.Dialer.
// See https://pkg.go.dev/net#Dial.
type NetworkType int32

const (
	NetworkType_HTTP       NetworkType = 0  // "http".
	NetworkType_TCP        NetworkType = 1  // "tcp", both IPv4 and IPv6 available.
	NetworkType_TCP4       NetworkType = 2  // "tcp4", "tcp" for IPv4.
	NetworkType_TCP6       NetworkType = 3  // "tcp6", "tcp" for IPv6.
	NetworkType_UDP        NetworkType = 4  // "udp", both IPv4 and IPv6 available.
	NetworkType_UDP4       NetworkType = 5  // "udp4", "udp" for IPv4.
	NetworkType_UDP6       NetworkType = 6  // "udp6", "udp" for IPv6.
	NetworkType_IP         NetworkType = 7  // "ip", both IPv4 and IPv6 available.
	NetworkType_IP4        NetworkType = 8  // "ip4", "ip" for IPv4.
	NetworkType_IP6        NetworkType = 9  // "ip6", "ip" for IPv6.
	NetworkType_Unix       NetworkType = 10 // "unix".
	NetworkType_UnixGram   NetworkType = 11 // "unixgram".
	NetworkType_UnixPacket NetworkType = 12 // "unixpacket".
)

// Enum value maps for NetworkType.
var (
	NetworkType_name = map[int32]string{
		0:  "HTTP",
		1:  "TCP",
		2:  "TCP4",
		3:  "TCP6",
		4:  "UDP",
		5:  "UDP4",
		6:  "UDP6",
		7:  "IP",
		8:  "IP4",
		9:  "IP6",
		10: "Unix",
		11: "UnixGram",
		12: "UnixPacket",
	}
	NetworkType_value = map[string]int32{
		"HTTP":       0,
		"TCP":        1,
		"TCP4":       2,
		"TCP6":       3,
		"UDP":        4,
		"UDP4":       5,
		"UDP6":       6,
		"IP":         7,
		"IP4":        8,
		"IP6":        9,
		"Unix":       10,
		"UnixGram":   11,
		"UnixPacket": 12,
	}
)

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

func (x NetworkType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (NetworkType) Descriptor() protoreflect.EnumDescriptor {
	return file_kernel_network_proto_enumTypes[0].Descriptor()
}

func (NetworkType) Type() protoreflect.EnumType {
	return &file_kernel_network_proto_enumTypes[0]
}

func (x NetworkType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use NetworkType.Descriptor instead.
func (NetworkType) EnumDescriptor() ([]byte, []int) {
	return file_kernel_network_proto_rawDescGZIP(), []int{0}
}

// ClientAuthType declares the policy the server will follow for TLS Client Authentication.
// See https://pkg.go.dev/crypto/tls#ClientAuthType
type ClientAuthType int32

const (
	ClientAuthType_NoClientCert               ClientAuthType = 0
	ClientAuthType_RequestClientCert          ClientAuthType = 1
	ClientAuthType_RequireAnyClientCert       ClientAuthType = 2
	ClientAuthType_VerifyClientCertIfGiven    ClientAuthType = 3
	ClientAuthType_RequireAndVerifyClientCert ClientAuthType = 4
)

// Enum value maps for ClientAuthType.
var (
	ClientAuthType_name = map[int32]string{
		0: "NoClientCert",
		1: "RequestClientCert",
		2: "RequireAnyClientCert",
		3: "VerifyClientCertIfGiven",
		4: "RequireAndVerifyClientCert",
	}
	ClientAuthType_value = map[string]int32{
		"NoClientCert":               0,
		"RequestClientCert":          1,
		"RequireAnyClientCert":       2,
		"VerifyClientCertIfGiven":    3,
		"RequireAndVerifyClientCert": 4,
	}
)

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

func (x ClientAuthType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (ClientAuthType) Descriptor() protoreflect.EnumDescriptor {
	return file_kernel_network_proto_enumTypes[1].Descriptor()
}

func (ClientAuthType) Type() protoreflect.EnumType {
	return &file_kernel_network_proto_enumTypes[1]
}

func (x ClientAuthType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use ClientAuthType.Descriptor instead.
func (ClientAuthType) EnumDescriptor() ([]byte, []int) {
	return file_kernel_network_proto_rawDescGZIP(), []int{1}
}

// RenegotiationSupport is the different levels of support for TLS renegotiation.
// See https://pkg.go.dev/crypto/tls#RenegotiationSupport
type RenegotiationSupport int32

const (
	RenegotiationSupport_RenegotiateNever          RenegotiationSupport = 0
	RenegotiationSupport_RenegotiateOnceAsClient   RenegotiationSupport = 1
	RenegotiationSupport_RenegotiateFreelyAsClient RenegotiationSupport = 2
)

// Enum value maps for RenegotiationSupport.
var (
	RenegotiationSupport_name = map[int32]string{
		0: "RenegotiateNever",
		1: "RenegotiateOnceAsClient",
		2: "RenegotiateFreelyAsClient",
	}
	RenegotiationSupport_value = map[string]int32{
		"RenegotiateNever":          0,
		"RenegotiateOnceAsClient":   1,
		"RenegotiateFreelyAsClient": 2,
	}
)

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

func (x RenegotiationSupport) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (RenegotiationSupport) Descriptor() protoreflect.EnumDescriptor {
	return file_kernel_network_proto_enumTypes[2].Descriptor()
}

func (RenegotiationSupport) Type() protoreflect.EnumType {
	return &file_kernel_network_proto_enumTypes[2]
}

func (x RenegotiationSupport) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use RenegotiationSupport.Descriptor instead.
func (RenegotiationSupport) EnumDescriptor() ([]byte, []int) {
	return file_kernel_network_proto_rawDescGZIP(), []int{2}
}

// CurveID is the type of a TLS identifier for an elliptic curve.
// See https://pkg.go.dev/crypto/tls#CurveID
// and https://www.iana.org/assignments/tls-parameters/tls-parameters.xml#tls-parameters-8.
type CurveID int32

const (
	CurveID_CurveP256 CurveID = 0
	CurveID_CurveP384 CurveID = 1
	CurveID_CurveP521 CurveID = 2
	CurveID_X25519    CurveID = 3
)

// Enum value maps for CurveID.
var (
	CurveID_name = map[int32]string{
		0: "CurveP256",
		1: "CurveP384",
		2: "CurveP521",
		3: "X25519",
	}
	CurveID_value = map[string]int32{
		"CurveP256": 0,
		"CurveP384": 1,
		"CurveP521": 2,
		"X25519":    3,
	}
)

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

func (x CurveID) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (CurveID) Descriptor() protoreflect.EnumDescriptor {
	return file_kernel_network_proto_enumTypes[3].Descriptor()
}

func (CurveID) Type() protoreflect.EnumType {
	return &file_kernel_network_proto_enumTypes[3]
}

func (x CurveID) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use CurveID.Descriptor instead.
func (CurveID) EnumDescriptor() ([]byte, []int) {
	return file_kernel_network_proto_rawDescGZIP(), []int{3}
}

// TLSCipher is the TLS cipher suite.
// Refer TLS package at https://pkg.go.dev/crypto/tls#pkg-constants
type TLSCipher int32

const (
	// TLS 1.0 - 1.2 cipher suites.
	TLSCipher_TLS_RSA_WITH_RC4_128_SHA                      TLSCipher = 0
	TLSCipher_TLS_RSA_WITH_3DES_EDE_CBC_SHA                 TLSCipher = 1
	TLSCipher_TLS_RSA_WITH_AES_128_CBC_SHA                  TLSCipher = 2
	TLSCipher_TLS_RSA_WITH_AES_256_CBC_SHA                  TLSCipher = 3
	TLSCipher_TLS_RSA_WITH_AES_128_CBC_SHA256               TLSCipher = 4
	TLSCipher_TLS_RSA_WITH_AES_128_GCM_SHA256               TLSCipher = 5
	TLSCipher_TLS_RSA_WITH_AES_256_GCM_SHA384               TLSCipher = 6
	TLSCipher_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA              TLSCipher = 7
	TLSCipher_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA          TLSCipher = 8
	TLSCipher_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA          TLSCipher = 9
	TLSCipher_TLS_ECDHE_RSA_WITH_RC4_128_SHA                TLSCipher = 10
	TLSCipher_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA           TLSCipher = 11
	TLSCipher_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA            TLSCipher = 12
	TLSCipher_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA            TLSCipher = 13
	TLSCipher_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256       TLSCipher = 14
	TLSCipher_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256         TLSCipher = 15
	TLSCipher_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256         TLSCipher = 16
	TLSCipher_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256       TLSCipher = 17
	TLSCipher_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384         TLSCipher = 18
	TLSCipher_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384       TLSCipher = 19
	TLSCipher_TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256   TLSCipher = 20
	TLSCipher_TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 TLSCipher = 21
	// TLS 1.3 cipher suites.
	TLSCipher_TLS_AES_128_GCM_SHA256       TLSCipher = 22
	TLSCipher_TLS_AES_256_GCM_SHA384       TLSCipher = 23
	TLSCipher_TLS_CHACHA20_POLY1305_SHA256 TLSCipher = 24
	// TLS_FALLBACK_SCSV isn't a standard cipher suite but an indicator
	// that the client is doing version fallback. See RFC 7507.
	TLSCipher_TLS_FALLBACK_SCSV TLSCipher = 25
	// Legacy names for the corresponding cipher suites with the correct _SHA256
	// suffix, retained for backward compatibility.
	TLSCipher_TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305   TLSCipher = 26
	TLSCipher_TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 TLSCipher = 27
)

// Enum value maps for TLSCipher.
var (
	TLSCipher_name = map[int32]string{
		0:  "TLS_RSA_WITH_RC4_128_SHA",
		1:  "TLS_RSA_WITH_3DES_EDE_CBC_SHA",
		2:  "TLS_RSA_WITH_AES_128_CBC_SHA",
		3:  "TLS_RSA_WITH_AES_256_CBC_SHA",
		4:  "TLS_RSA_WITH_AES_128_CBC_SHA256",
		5:  "TLS_RSA_WITH_AES_128_GCM_SHA256",
		6:  "TLS_RSA_WITH_AES_256_GCM_SHA384",
		7:  "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA",
		8:  "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA",
		9:  "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA",
		10: "TLS_ECDHE_RSA_WITH_RC4_128_SHA",
		11: "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA",
		12: "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA",
		13: "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA",
		14: "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
		15: "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
		16: "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
		17: "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
		18: "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
		19: "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
		20: "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256",
		21: "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256",
		22: "TLS_AES_128_GCM_SHA256",
		23: "TLS_AES_256_GCM_SHA384",
		24: "TLS_CHACHA20_POLY1305_SHA256",
		25: "TLS_FALLBACK_SCSV",
		26: "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305",
		27: "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305",
	}
	TLSCipher_value = map[string]int32{
		"TLS_RSA_WITH_RC4_128_SHA":                      0,
		"TLS_RSA_WITH_3DES_EDE_CBC_SHA":                 1,
		"TLS_RSA_WITH_AES_128_CBC_SHA":                  2,
		"TLS_RSA_WITH_AES_256_CBC_SHA":                  3,
		"TLS_RSA_WITH_AES_128_CBC_SHA256":               4,
		"TLS_RSA_WITH_AES_128_GCM_SHA256":               5,
		"TLS_RSA_WITH_AES_256_GCM_SHA384":               6,
		"TLS_ECDHE_ECDSA_WITH_RC4_128_SHA":              7,
		"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA":          8,
		"TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA":          9,
		"TLS_ECDHE_RSA_WITH_RC4_128_SHA":                10,
		"TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA":           11,
		"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA":            12,
		"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA":            13,
		"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256":       14,
		"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256":         15,
		"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256":         16,
		"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256":       17,
		"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384":         18,
		"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384":       19,
		"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256":   20,
		"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256": 21,
		"TLS_AES_128_GCM_SHA256":                        22,
		"TLS_AES_256_GCM_SHA384":                        23,
		"TLS_CHACHA20_POLY1305_SHA256":                  24,
		"TLS_FALLBACK_SCSV":                             25,
		"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305":          26,
		"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305":        27,
	}
)

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

func (x TLSCipher) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (TLSCipher) Descriptor() protoreflect.EnumDescriptor {
	return file_kernel_network_proto_enumTypes[4].Descriptor()
}

func (TLSCipher) Type() protoreflect.EnumType {
	return &file_kernel_network_proto_enumTypes[4]
}

func (x TLSCipher) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use TLSCipher.Descriptor instead.
func (TLSCipher) EnumDescriptor() ([]byte, []int) {
	return file_kernel_network_proto_rawDescGZIP(), []int{4}
}

// QuickVersion is the version of QUIC protocol.
// See https://pkg.go.dev/github.com/quic-go/quic-go#pkg-constants
type QuicConfig_Version int32

const (
	QuicConfig_Version1 QuicConfig_Version = 0 // Version1 is RFC 9000
	QuicConfig_Version2 QuicConfig_Version = 1 // Version2 is RFC 9369
)

// Enum value maps for QuicConfig_Version.
var (
	QuicConfig_Version_name = map[int32]string{
		0: "Version1",
		1: "Version2",
	}
	QuicConfig_Version_value = map[string]int32{
		"Version1": 0,
		"Version2": 1,
	}
)

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

func (x QuicConfig_Version) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (QuicConfig_Version) Descriptor() protoreflect.EnumDescriptor {
	return file_kernel_network_proto_enumTypes[5].Descriptor()
}

func (QuicConfig_Version) Type() protoreflect.EnumType {
	return &file_kernel_network_proto_enumTypes[5]
}

func (x QuicConfig_Version) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use QuicConfig_Version.Descriptor instead.
func (QuicConfig_Version) EnumDescriptor() ([]byte, []int) {
	return file_kernel_network_proto_rawDescGZIP(), []int{8, 0}
}

// HTTPTransportConfig is the configuration for HTTP TransportConfig object.
// This is the configuration for the trasportation layer of HTTP networking.
// Proxy configurations are read from the environmental variable
// HTTP_PROXY, HTTPS_PROXY and NO_PROXY (or the lowercase versions thereof).
// This message is bounded to the configuration of http.Transport.
// https://pkg.go.dev/net/http#Transport.
type HTTPTransportConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// [OPTIONAL]
	// TLSConfig is the TLS configuration used in the HTTP transport layer.
	// If not set, the default configuration is used.
	// If both this field and DialerConfig.TLSConfig were set,
	// DialerConfig.TLSConfig will be prior to this field.
	// Default is not set.
	TLSConfig *TLSConfig `protobuf:"bytes,1,opt,name=TLSConfig,json=tlsConfig,proto3" json:"TLSConfig,omitempty"`
	// [OPTIONAL]
	// TLSHandshakeTimeout specifies the maximum amount of time
	// in milliseconds to wait for a TLS handshake.
	// Zero means no timeout.
	// Default is [0] milliseconds.
	TLSHandshakeTimeout int64 `protobuf:"varint,2,opt,name=TLSHandshakeTimeout,json=tlsHandshakeTimeout,proto3" json:"TLSHandshakeTimeout,omitempty"`
	// [OPTIONAL]
	// DisableKeepAlives, if true, disables HTTP keep-alives and will only use the connection
	// to the server for a single HTTP request.
	// This is unrelated to the similarly named TCP keep-alives.
	// Default is [false].
	DisableKeepAlives bool `protobuf:"varint,3,opt,name=DisableKeepAlives,json=disableKeepAlives,proto3" json:"DisableKeepAlives,omitempty"`
	// [OPTIONAL]
	// DisableCompression, if true, prevents the Transport from requesting compression
	// with an "Accept-Encoding: gzip" request header when the Request contains
	// no existing Accept-Encoding value.
	// If the Transport requests gzip on its own and gets a gzipped response,
	// it's transparently decoded in the Response.Body.
	// However, if the user explicitly requested gzip it is not automatically uncompressed.
	// Default is [false].
	DisableCompression bool `protobuf:"varint,4,opt,name=DisableCompression,json=disableCompression,proto3" json:"DisableCompression,omitempty"`
	// [OPTIONAL]
	// MaxIdleConns controls the maximum number of idle (keep-alive) connections
	// across all hosts.
	// Zero means no limit.
	// Default is [0].
	MaxIdleConns int32 `protobuf:"varint,5,opt,name=MaxIdleConns,json=maxIdleConns,proto3" json:"MaxIdleConns,omitempty"`
	// [OPTIONAL]
	// MaxIdleConnsPerHost, if non-zero, controls the maximum idle (keep-alive)
	// connections to keep per-host.
	// If zero, the default value "1024" is used.
	// See https://pkg.go.dev/net/http#DefaultMaxIdleConnsPerHost.
	// Zero means no limit.
	// Default is [1024].
	MaxIdleConnsPerHost int32 `protobuf:"varint,6,opt,name=MaxIdleConnsPerHost,json=maxIdleConnsPerHost,proto3" json:"MaxIdleConnsPerHost,omitempty"`
	// [OPTIONAL]
	// MaxConnsPerHost optionally limits the total number of connections per host,
	// including connections in the dialing, active, and idle states.
	// On limit violation, dials will block.
	// If zero, http.DefaultMaxIdleConnsPerHost(=2) is used.
	// See https://pkg.go.dev/net/http#DefaultMaxIdleConnsPerHost.
	// Default is [0].
	MaxConnsPerHost int32 `protobuf:"varint,7,opt,name=MaxConnsPerHost,json=maxConnsPerHost,proto3" json:"MaxConnsPerHost,omitempty"`
	// [OPTIONAL]
	// Timeout duration for idle HTTP connections.
	// Zero means no timeout.
	// The unit is milliseconds.
	// Default is [0] milliseconds.
	IdleConnTimeout int64 `protobuf:"varint,8,opt,name=IdleConnTimeout,json=idleConnTimeout,proto3" json:"IdleConnTimeout,omitempty"`
	// [OPTIONAL]
	// ResponseHeaderTimeout, if non-zero, specifies the amount of time to wait
	// for a server's response headers after fully writing the request (including its body, if any).
	// This time does not include the time to read the response body.
	// Zero or negative value does not have any effect and no timeout applied.
	// The unit is milliseconds.
	// Default is [0] milliseconds.
	ResponseHeaderTimeout int64 `protobuf:"varint,9,opt,name=ResponseHeaderTimeout,json=responseHeaderTimeout,proto3" json:"ResponseHeaderTimeout,omitempty"`
	// [OPTIONAL]
	// ExpectContinueTimeout, if non-zero, specifies the amount of time to wait
	// for a server's first response headers after fully writing the request headers
	// if the request has an "Expect: 100-continue" header.
	// Zero means no timeout and causes the body to be sent immediately,
	// without waiting for the server to approve.
	// This time does not include the time to send the request header.
	// The unit is milliseconds.
	// Default is [0] milliseconds.
	ExpectContinueTimeout int64 `protobuf:"varint,10,opt,name=ExpectContinueTimeout,json=expectContinueTimeout,proto3" json:"ExpectContinueTimeout,omitempty"`
	// [OPTIONAL]
	// MaxResponseHeaderBytes specifies a limit on how many response bytes
	// are allowed in the server's response header.
	// Zero means to use a default limit of 1MB.
	// See https://pkg.go.dev/net/http#DefaultMaxHeaderBytes.
	// Default is [0] bytes.
	MaxResponseHeaderBytes int64 `protobuf:"varint,12,opt,name=MaxResponseHeaderBytes,json=maxResponseHeaderBytes,proto3" json:"MaxResponseHeaderBytes,omitempty"`
	// WriteBufferSize specifies the size of the write buffer used when writing
	// to the transport. If zero, a default (currently 4KB) is used.
	// Default is [0] bytes.
	WriteBufferSize int32 `protobuf:"varint,13,opt,name=WriteBufferSize,json=writeBufferSize,proto3" json:"WriteBufferSize,omitempty"`
	// [OPTIONAL]
	// ReadBufferSize specifies the size of the read buffer used when reading
	// from the transport. If zero, a default (currently 4KB) is used.
	// Default is [0].
	ReadBufferSize int32 `protobuf:"varint,14,opt,name=ReadBufferSize,json=readBufferSize,proto3" json:"ReadBufferSize,omitempty"`
	// [OPTIONAL]
	// AllowHTTP2 allows HTTP/2 with default configuration
	// using the given TLS configurations.
	// Default is [false].
	AllowHTTP2 bool `protobuf:"varint,15,opt,name=AllowHTTP2,json=allowHTTP2,proto3" json:"AllowHTTP2,omitempty"`
	// [OPTIONAL]
	// DialConfig is the configuration for dialing.
	// Default is not set.
	DialConfig    *DialConfig `protobuf:"bytes,16,opt,name=DialConfig,json=dialConfig,proto3" json:"DialConfig,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *HTTPTransportConfig) Reset() {
	*x = HTTPTransportConfig{}
	mi := &file_kernel_network_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *HTTPTransportConfig) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*HTTPTransportConfig) ProtoMessage() {}

func (x *HTTPTransportConfig) ProtoReflect() protoreflect.Message {
	mi := &file_kernel_network_proto_msgTypes[0]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use HTTPTransportConfig.ProtoReflect.Descriptor instead.
func (*HTTPTransportConfig) Descriptor() ([]byte, []int) {
	return file_kernel_network_proto_rawDescGZIP(), []int{0}
}

func (x *HTTPTransportConfig) GetTLSConfig() *TLSConfig {
	if x != nil {
		return x.TLSConfig
	}
	return nil
}

func (x *HTTPTransportConfig) GetTLSHandshakeTimeout() int64 {
	if x != nil {
		return x.TLSHandshakeTimeout
	}
	return 0
}

func (x *HTTPTransportConfig) GetDisableKeepAlives() bool {
	if x != nil {
		return x.DisableKeepAlives
	}
	return false
}

func (x *HTTPTransportConfig) GetDisableCompression() bool {
	if x != nil {
		return x.DisableCompression
	}
	return false
}

func (x *HTTPTransportConfig) GetMaxIdleConns() int32 {
	if x != nil {
		return x.MaxIdleConns
	}
	return 0
}

func (x *HTTPTransportConfig) GetMaxIdleConnsPerHost() int32 {
	if x != nil {
		return x.MaxIdleConnsPerHost
	}
	return 0
}

func (x *HTTPTransportConfig) GetMaxConnsPerHost() int32 {
	if x != nil {
		return x.MaxConnsPerHost
	}
	return 0
}

func (x *HTTPTransportConfig) GetIdleConnTimeout() int64 {
	if x != nil {
		return x.IdleConnTimeout
	}
	return 0
}

func (x *HTTPTransportConfig) GetResponseHeaderTimeout() int64 {
	if x != nil {
		return x.ResponseHeaderTimeout
	}
	return 0
}

func (x *HTTPTransportConfig) GetExpectContinueTimeout() int64 {
	if x != nil {
		return x.ExpectContinueTimeout
	}
	return 0
}

func (x *HTTPTransportConfig) GetMaxResponseHeaderBytes() int64 {
	if x != nil {
		return x.MaxResponseHeaderBytes
	}
	return 0
}

func (x *HTTPTransportConfig) GetWriteBufferSize() int32 {
	if x != nil {
		return x.WriteBufferSize
	}
	return 0
}

func (x *HTTPTransportConfig) GetReadBufferSize() int32 {
	if x != nil {
		return x.ReadBufferSize
	}
	return 0
}

func (x *HTTPTransportConfig) GetAllowHTTP2() bool {
	if x != nil {
		return x.AllowHTTP2
	}
	return false
}

func (x *HTTPTransportConfig) GetDialConfig() *DialConfig {
	if x != nil {
		return x.DialConfig
	}
	return nil
}

// HTTPTransportConfig is the specifications for the HTTP TransportConfig object.
// This is the configuration for the trasportation layer in networking.
// Proxy configurations are read from the environmental variable
// HTTP_PROXY, HTTPS_PROXY and NO_PROXY (or the lowercase versions thereof).
type HTTP2TransportConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// [OPTIONAL]
	// TLSClientConfig is the TLS configuration used in the transport.
	// If nil, the default configuration is used.
	// If both this field and DialerConfig.TLSConfig were set,
	// DialerConfig.TLSConfig will be prior to this field.
	// Default is not set.
	TLSConfig *TLSConfig `protobuf:"bytes,1,opt,name=TLSConfig,json=tlsConfig,proto3" json:"TLSConfig,omitempty"`
	// [OPTIONAL]
	// DisableCompression, if true, prevents the Transport from requesting compression
	// with an "Accept-Encoding: gzip" request header when the Request contains
	// no existing Accept-Encoding value.
	// If the Transport requests gzip on its own and gets a gzipped response,
	// it's transparently decoded in the Response.Body.
	// However, if the user explicitly requested gzip it is not automatically uncompressed.
	// Default is [false].
	DisableCompression bool `protobuf:"varint,2,opt,name=DisableCompression,json=disableCompression,proto3" json:"DisableCompression,omitempty"`
	// [OPTIONAL]
	// AllowHTTP, if true, permits HTTP/2 requests using the insecure,
	// plain-text "http" scheme.
	// Note that this does not enable h2c support.
	// Default is [false].
	AllowHTTP bool `protobuf:"varint,3,opt,name=AllowHTTP,json=allowHTTP,proto3" json:"AllowHTTP,omitempty"`
	// [OPTIONAL]
	// MaxHeaderListSize is the http2 SETTINGS_MAX_HEADER_LIST_SIZE
	// to send in the initial settings frame.
	// It is how many bytes of response headers are allowed.
	// Unlike the http2 spec, zero here means to use a default limit (currently 10MB).
	// Default is [0].
	MaxHeaderListSize uint32 `protobuf:"varint,4,opt,name=MaxHeaderListSize,json=maxHeaderListSize,proto3" json:"MaxHeaderListSize,omitempty"`
	// [OPTIONAL]
	// MaxReadFrameSize is the http2 SETTINGS_MAX_FRAME_SIZE to send in the initial settings frame.
	// It is the size in bytes of the largest frame payload that the sender is willing to receive.
	// If 0, no setting is sent, and the value is provided by the peer,
	// which should be 16384 according to the
	// spec: https://datatracker.ietf.org/doc/html/rfc7540#section-6.5.2.
	// Values are bounded in the range 16k to 16M.
	// Default is [0].
	MaxReadFrameSize uint32 `protobuf:"varint,5,opt,name=MaxReadFrameSize,json=maxReadFrameSize,proto3" json:"MaxReadFrameSize,omitempty"`
	// [OPTIONAL]
	// MaxDecoderHeaderTableSize optionally specifies the http2 SETTINGS_HEADER_TABLE_SIZE
	// to send in the initial settings frame.
	// It informs the remote endpoint of the maximum size of the header compression
	// table used to decode header blocks, in octets.
	// If zero, the default value of 4096 is used.
	// Default is [0].
	MaxDecoderHeaderTableSize uint32 `protobuf:"varint,6,opt,name=MaxDecoderHeaderTableSize,json=maxDecoderHeaderTableSize,proto3" json:"MaxDecoderHeaderTableSize,omitempty"`
	// [OPTIONAL]
	// MaxEncoderHeaderTableSize optionally specifies an upper limit for the header
	// compression table used for encoding request headers.
	// Received SETTINGS_HEADER_TABLE_SIZE settings are capped at this limit.
	// If zero, the default value of 4096 is used.
	// Default is [0].
	MaxEncoderHeaderTableSize uint32 `protobuf:"varint,7,opt,name=MaxEncoderHeaderTableSize,json=maxEncoderHeaderTableSize,proto3" json:"MaxEncoderHeaderTableSize,omitempty"`
	// [OPTIONAL]
	// StrictMaxConcurrentStreams controls whether the server's
	// SETTINGS_MAX_CONCURRENT_STREAMS should be respected globally.
	// If false, new TCP connections are created to the server as needed to keep each under the per-connection.
	// Default is [0].
	StrictMaxConcurrentStreams bool `protobuf:"varint,8,opt,name=StrictMaxConcurrentStreams,json=strictMaxConcurrentStreams,proto3" json:"StrictMaxConcurrentStreams,omitempty"`
	// [OPTIONAL]
	// IdleConnTimeout is the maximum amount of time in millisecond
	// an idle (keep-alive) connection will remain idle before closing itself.
	// Zero means no limit.
	// Default is [0] milliseconds.
	IdleConnTimeout uint32 `protobuf:"varint,9,opt,name=IdleConnTimeout,json=idleConnTimeout,proto3" json:"IdleConnTimeout,omitempty"`
	// [OPTIONAL]
	// ReadIdleTimeout is the timeout milliseconds after which a health check
	// using ping frame will be carried out if no frame is received on the connection.
	// Note that a ping response will is considered a received frame,
	// so if there is no other traffic on the connection, the health check will be
	// performed every ReadIdleTimeout interval.
	// If not set or set to 0, no health check is performed.
	// Default is [0] milliseconds.
	ReadIdleTimeout uint32 `protobuf:"varint,10,opt,name=ReadIdleTimeout,json=readIdleTimeout,proto3" json:"ReadIdleTimeout,omitempty"`
	// [OPTIONAL]
	// PingTimeout is the timeout milliseconds after which the connection
	// will be closed if a response to Ping is not received.
	// If not set or set to 0, default 15,000 ms will be used.
	// Default is [0] milliseconds.
	PingTimeout uint32 `protobuf:"varint,11,opt,name=PingTimeout,json=pingTimeout,proto3" json:"PingTimeout,omitempty"`
	// [OPTIONAL]
	// WriteByteTimeout is the timeout milliseconds after which the connection
	// will be closed no data can be written to it.
	// The timeout begins when data is available to write, and is
	// extended whenever any bytes are written.
	// Default is [0] milliseconds.
	WriteByteTimeout uint32 `protobuf:"varint,12,opt,name=WriteByteTimeout,json=writeByteTimeout,proto3" json:"WriteByteTimeout,omitempty"`
	// [OPTIONAL]
	// DialConfig is the configuration for dialing.
	// If not set, there will be no timeout for dialing.
	// Default is not set.
	DialConfig *DialConfig `protobuf:"bytes,13,opt,name=DialConfig,json=dialConfig,proto3" json:"DialConfig,omitempty"`
	// [OPTIONAL]
	// MultiIPConnPool replaces the default http2 connection pool
	// with multiple ip resolvable connection pool.
	// This connection pool is intended to be used for
	// gRPC load balancing on Kubernetes using headless services.
	// Default is false.
	MultiIPConnPool bool `protobuf:"varint,14,opt,name=MultiIPConnPool,json=multiIPConnPool,proto3" json:"MultiIPConnPool,omitempty"`
	// [OPTIONAL]
	// MinLookupInterval is the timeout milliseconds
	// of minimum lookup interval for MultiIPConnPool.
	// IP addresses lookup will be done when this interval
	// have passes from the last lookup time.
	// If 0, lookup is not done if there is at least 1 connection.
	// This value is ignored when MultiIPConnPool is not used.
	// If there is no requests, lookup won't be done
	// even after this interval have passed.
	// Default is [2000] milliseconds.
	MinLookupInterval uint32 `protobuf:"varint,15,opt,name=MinLookupInterval,json=minLookupInterval,proto3" json:"MinLookupInterval,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

func (x *HTTP2TransportConfig) Reset() {
	*x = HTTP2TransportConfig{}
	mi := &file_kernel_network_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *HTTP2TransportConfig) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*HTTP2TransportConfig) ProtoMessage() {}

func (x *HTTP2TransportConfig) ProtoReflect() protoreflect.Message {
	mi := &file_kernel_network_proto_msgTypes[1]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use HTTP2TransportConfig.ProtoReflect.Descriptor instead.
func (*HTTP2TransportConfig) Descriptor() ([]byte, []int) {
	return file_kernel_network_proto_rawDescGZIP(), []int{1}
}

func (x *HTTP2TransportConfig) GetTLSConfig() *TLSConfig {
	if x != nil {
		return x.TLSConfig
	}
	return nil
}

func (x *HTTP2TransportConfig) GetDisableCompression() bool {
	if x != nil {
		return x.DisableCompression
	}
	return false
}

func (x *HTTP2TransportConfig) GetAllowHTTP() bool {
	if x != nil {
		return x.AllowHTTP
	}
	return false
}

func (x *HTTP2TransportConfig) GetMaxHeaderListSize() uint32 {
	if x != nil {
		return x.MaxHeaderListSize
	}
	return 0
}

func (x *HTTP2TransportConfig) GetMaxReadFrameSize() uint32 {
	if x != nil {
		return x.MaxReadFrameSize
	}
	return 0
}

func (x *HTTP2TransportConfig) GetMaxDecoderHeaderTableSize() uint32 {
	if x != nil {
		return x.MaxDecoderHeaderTableSize
	}
	return 0
}

func (x *HTTP2TransportConfig) GetMaxEncoderHeaderTableSize() uint32 {
	if x != nil {
		return x.MaxEncoderHeaderTableSize
	}
	return 0
}

func (x *HTTP2TransportConfig) GetStrictMaxConcurrentStreams() bool {
	if x != nil {
		return x.StrictMaxConcurrentStreams
	}
	return false
}

func (x *HTTP2TransportConfig) GetIdleConnTimeout() uint32 {
	if x != nil {
		return x.IdleConnTimeout
	}
	return 0
}

func (x *HTTP2TransportConfig) GetReadIdleTimeout() uint32 {
	if x != nil {
		return x.ReadIdleTimeout
	}
	return 0
}

func (x *HTTP2TransportConfig) GetPingTimeout() uint32 {
	if x != nil {
		return x.PingTimeout
	}
	return 0
}

func (x *HTTP2TransportConfig) GetWriteByteTimeout() uint32 {
	if x != nil {
		return x.WriteByteTimeout
	}
	return 0
}

func (x *HTTP2TransportConfig) GetDialConfig() *DialConfig {
	if x != nil {
		return x.DialConfig
	}
	return nil
}

func (x *HTTP2TransportConfig) GetMultiIPConnPool() bool {
	if x != nil {
		return x.MultiIPConnPool
	}
	return false
}

func (x *HTTP2TransportConfig) GetMinLookupInterval() uint32 {
	if x != nil {
		return x.MinLookupInterval
	}
	return 0
}

// DialConfig is the specifications for the DilConfig object.
// DialControl controls dialing to the server to send requests to.
// This message is bounded to the net.Dialer.
// https://pkg.go.dev/net#Dialer.
type DialConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// [OPTIONAL]
	// TLSConfig is the TLS configuration for this dialer.
	// TLS will be enabled when this field is specified.
	// Default is not set.
	TLSConfig *TLSConfig `protobuf:"bytes,1,opt,name=TLSConfig,json=tlsConfig,proto3" json:"TLSConfig,omitempty"`
	// [OPTIONAL]
	// LocalAddress is the local address to listen to in the format of "<Network>://<Address>".
	// Check out the valid address format at https://pkg.go.dev/net#Dial.
	// If not set, local address is automatically selected from available ones.
	// If the port in the address parameter is empty or "0",
	// as in "127.0.0.1:" or "[::1]:0", a port number is automatically chosen.
	// Available network types are "ip", "ip4", "ip6",
	// "tcp", "tcp4" (IPv4-only), "tcp6" (IPv6-only),
	// "udp", "udp4" (IPv4-only), "udp6" (IPv6-only),
	// "unix", "unixpacket" and "unixgram".
	// Example addresses for unix type are "/var/run/gateway.sock" for
	// pathname socket and "@gateway" for abstract socket.
	// Default is not set.
	LocalAddress string `protobuf:"bytes,2,opt,name=LocalAddress,json=localAddress,proto3" json:"LocalAddress,omitempty"`
	// [OPTIONAL]
	// ReplaceTargets is the dial target address to be replaced.
	// The originally requested network and address are replaced to
	// the value defined in this field.
	// Format must be `(<FromNetwork>|<FromAddress>) (<ToNetwork>|<ToAddress>)`.
	// For example, when doing HTTP communication through unix sockets,
	// the replace definition will be like
	// `(tcp|example.com:80) (unix|/var/run/example.sock)` or
	// `(tcp|example.com:80) (unix|@example)`.
	// Supported values of networks and addresses
	// follow the specification of net.Dialer.
	// See https://pkg.go.dev/net#Dialer.
	// As described in the link, TCP and UDP must have a port number.
	// That means "example.com" not works. Set with a port number like "example.com:80".
	// If nothing set, requested network and address are used as-is.
	// Default is not set.
	ReplaceTargets []string `protobuf:"bytes,3,rep,name=ReplaceTargets,json=replaceTargets,proto3" json:"ReplaceTargets,omitempty"`
	// [OPTIONAL]
	// Timeout is the timeout duration as an client in milliseconds.
	// This field will be used only for cliet.
	// There will be no timeout when not set or 0.
	// This field will be used as https://pkg.go.dev/net#Dialer.Timeout.
	// Default is [0] milliseconds.
	Timeout int32 `protobuf:"varint,4,opt,name=Timeout,json=timeout,proto3" json:"Timeout,omitempty"`
	// [OPTIONAL]
	// FallbackDelay is the fallback delay duration in milliseconds.
	// This field will be used as https://pkg.go.dev/net#Dialer.FallbackDelay.
	// Default is [0] milliseconds.
	FallbackDelay int32 `protobuf:"varint,5,opt,name=FallbackDelay,json=fallbackDelay,proto3" json:"FallbackDelay,omitempty"`
	// [OPTIONAL]
	// SockOption is the socket options.
	// Default is not set.
	SockOption    *SockOption `protobuf:"bytes,6,opt,name=SockOption,json=sockOption,proto3" json:"SockOption,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DialConfig) Reset() {
	*x = DialConfig{}
	mi := &file_kernel_network_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DialConfig) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DialConfig) ProtoMessage() {}

func (x *DialConfig) ProtoReflect() protoreflect.Message {
	mi := &file_kernel_network_proto_msgTypes[2]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DialConfig.ProtoReflect.Descriptor instead.
func (*DialConfig) Descriptor() ([]byte, []int) {
	return file_kernel_network_proto_rawDescGZIP(), []int{2}
}

func (x *DialConfig) GetTLSConfig() *TLSConfig {
	if x != nil {
		return x.TLSConfig
	}
	return nil
}

func (x *DialConfig) GetLocalAddress() string {
	if x != nil {
		return x.LocalAddress
	}
	return ""
}

func (x *DialConfig) GetReplaceTargets() []string {
	if x != nil {
		return x.ReplaceTargets
	}
	return nil
}

func (x *DialConfig) GetTimeout() int32 {
	if x != nil {
		return x.Timeout
	}
	return 0
}

func (x *DialConfig) GetFallbackDelay() int32 {
	if x != nil {
		return x.FallbackDelay
	}
	return 0
}

func (x *DialConfig) GetSockOption() *SockOption {
	if x != nil {
		return x.SockOption
	}
	return nil
}

// HTTP3TransportConfig is the specifications for the HTTP3 TransportConfig object.
// This is the configuration for the transport layer of HTTP3.
// http3.RoundTri
// See https://pkg.go.dev/github.com/lucas-clemente/quic-go/http3#RoundTripper
type HTTP3TransportConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// [OPTIONAL]
	// TLSConfig is the TLS configuration used in the transport.
	// If nil, the default configuration is used.
	// Default is not set.
	TLSConfig *TLSConfig `protobuf:"bytes,1,opt,name=TLSConfig,json=tlsConfig,proto3" json:"TLSConfig,omitempty"`
	// [OPTIONAL]
	// QuicConfig is the configuration of QUIC protocols
	// used in the transport.
	// If not set, default config will be used.
	// Default is not set.
	QuicConfig *QuicConfig `protobuf:"bytes,2,opt,name=QuicConfig,json=quicConfig,proto3" json:"QuicConfig,omitempty"`
	// [OPTIONAL]
	// DisableCompression, if true, prevents the Transport from
	// requesting compression with an "Accept-Encoding: gzip"
	// request header when the Request contains no existing
	// Accept-Encoding value. If the Transport requests gzip on
	// its own and gets a gzipped response, it's transparently
	// decoded in the Response.Body. However, if the user
	// explicitly requested gzip it is not automatically
	// uncompressed.
	// Default is [false]
	DisableCompression bool `protobuf:"varint,3,opt,name=DisableCompression,json=disableCompression,proto3" json:"DisableCompression,omitempty"`
	// [OPTIONAL]
	// Enable support for HTTP/3 datagrams.
	// If set to true, QuicConfig.EnableDatagram will be set.
	// See https://www.ietf.org/archive/id/draft-schinazi-masque-h3-datagram-02.html.
	// Default is [false].
	EnableDatagrams bool `protobuf:"varint,4,opt,name=EnableDatagrams,json=enableDatagrams,proto3" json:"EnableDatagrams,omitempty"`
	// [OPTIONAL]
	// MaxResponseHeaderBytes specifies a limit on how many response bytes are
	// allowed in the server's response header.
	// Zero means to use a default limit.
	// Default is [0].
	MaxResponseHeaderBytes int64 `protobuf:"varint,5,opt,name=MaxResponseHeaderBytes,json=maxResponseHeaderBytes,proto3" json:"MaxResponseHeaderBytes,omitempty"`
	unknownFields          protoimpl.UnknownFields
	sizeCache              protoimpl.SizeCache
}

func (x *HTTP3TransportConfig) Reset() {
	*x = HTTP3TransportConfig{}
	mi := &file_kernel_network_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *HTTP3TransportConfig) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*HTTP3TransportConfig) ProtoMessage() {}

func (x *HTTP3TransportConfig) ProtoReflect() protoreflect.Message {
	mi := &file_kernel_network_proto_msgTypes[3]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use HTTP3TransportConfig.ProtoReflect.Descriptor instead.
func (*HTTP3TransportConfig) Descriptor() ([]byte, []int) {
	return file_kernel_network_proto_rawDescGZIP(), []int{3}
}

func (x *HTTP3TransportConfig) GetTLSConfig() *TLSConfig {
	if x != nil {
		return x.TLSConfig
	}
	return nil
}

func (x *HTTP3TransportConfig) GetQuicConfig() *QuicConfig {
	if x != nil {
		return x.QuicConfig
	}
	return nil
}

func (x *HTTP3TransportConfig) GetDisableCompression() bool {
	if x != nil {
		return x.DisableCompression
	}
	return false
}

func (x *HTTP3TransportConfig) GetEnableDatagrams() bool {
	if x != nil {
		return x.EnableDatagrams
	}
	return false
}

func (x *HTTP3TransportConfig) GetMaxResponseHeaderBytes() int64 {
	if x != nil {
		return x.MaxResponseHeaderBytes
	}
	return 0
}

// ListenConfig is the configurations for stream listner.
type ListenConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// [OPTIONAL]
	// TLSConfig is the TLS configuration for this listener.
	// TLS will be enabled when this field is specified.
	// Default is not set.
	TLSConfig *TLSConfig `protobuf:"bytes,1,opt,name=TLSConfig,json=tlsConfig,proto3" json:"TLSConfig,omitempty"`
	// [OPTIONAL]
	// Addr is the local address to listen to.
	// Check out the valid values at https://pkg.go.dev/net#Dial.
	// For TCP networks, if the host in the address parameter is empty or
	// a literal unspecified IP address, all available unicast and anycast IP addresses
	// of the local system are used.
	// If the port in the address parameter is empty or "0",
	// as in "127.0.0.1:" or "[::1]:0", a port number is automatically chosen.
	// Addr can have network type as prefix in the format of "<Network>://<Address>".
	// Available network tyep prefixes are "tcp", "tcp4" (IPv4-only), "tcp6" (IPv6-only), and "unix".
	// Example addresses for unix type are "/var/run/gateway.sock" for pathname socket and
	// "@gateway" for abstract socket. Unix socket can be used from curl as follows.
	// (curl --unix-socket "/var/run/gateway.sock" http://foo.com/bar)
	// (curl --abstract-unix-socket "gateway" http://foo.com/bar)
	// Default is not set, or empty string [""].
	Addr string `protobuf:"bytes,4,opt,name=Addr,json=addr,proto3" json:"Addr,omitempty"`
	// [OPTIONAL]
	// ConnectionLimit is the maximum number of TCP connections that the server can establish.
	// Connections are dropped after ConnectionWaitTimeout when this limit was exceeded.
	// Set -1 to disable limiting the number of TCP connections.
	// Default is [1024].
	ConnectionLimit int32 `protobuf:"varint,5,opt,name=ConnectionLimit,json=connectionLimit,proto3" json:"ConnectionLimit,omitempty"`
	// [OPTIONAL]
	// Networks is the allowed network address list.
	// If set, listed network or ip addresses are considered as whitelist.
	// If not set, all networks are allowed.
	// For example, "10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16", "127.0.0.1/32".
	// IPv6 can also be set like "::1/128".
	// Default is not set.
	Networks []string `protobuf:"bytes,6,rep,name=Networks,json=networks,proto3" json:"Networks,omitempty"`
	// [OPTIONAL]
	// Timeout is the timeout duration as an client in millisecond.
	// This field will be used only for client.
	// There will be no timeout when not set or 0.
	// This field will be passed to https://pkg.go.dev/net#Conn.SetReadDeadline.
	// Default is [0] millisecond.
	ReadDeadline int32 `protobuf:"varint,8,opt,name=ReadDeadline,json=readDeadline,proto3" json:"ReadDeadline,omitempty"`
	// [OPTIONAL]
	// Timeout is the timeout duration as an client in millisecond.
	// This field will be used only for client.
	// There will be no timeout when not set or 0.
	// This field will be passed to https://pkg.go.dev/net#Conn.SetWriteDeadline.
	// Default is [0] millisecond.
	WriteDeadline int32 `protobuf:"varint,9,opt,name=WriteDeadline,json=writeDeadline,proto3" json:"WriteDeadline,omitempty"`
	// [OPTIONAL]
	// KeepAliveConfig is the configuration for keep-alive probes.
	// If not set and the protocol supports keep-alive,
	// default values of the KeepAliveConfig are used.
	// Default is not set.
	KeepAliveConfig *KeepAliveConfig `protobuf:"bytes,10,opt,name=KeepAliveConfig,json=keepAliveConfig,proto3" json:"KeepAliveConfig,omitempty"`
	// [OPTIONAL]
	// SockOption is the socket options.
	// Default is not set.
	SockOption    *SockOption `protobuf:"bytes,12,opt,name=SockOption,json=sockOption,proto3" json:"SockOption,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListenConfig) Reset() {
	*x = ListenConfig{}
	mi := &file_kernel_network_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ListenConfig) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListenConfig) ProtoMessage() {}

func (x *ListenConfig) ProtoReflect() protoreflect.Message {
	mi := &file_kernel_network_proto_msgTypes[4]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListenConfig.ProtoReflect.Descriptor instead.
func (*ListenConfig) Descriptor() ([]byte, []int) {
	return file_kernel_network_proto_rawDescGZIP(), []int{4}
}

func (x *ListenConfig) GetTLSConfig() *TLSConfig {
	if x != nil {
		return x.TLSConfig
	}
	return nil
}

func (x *ListenConfig) GetAddr() string {
	if x != nil {
		return x.Addr
	}
	return ""
}

func (x *ListenConfig) GetConnectionLimit() int32 {
	if x != nil {
		return x.ConnectionLimit
	}
	return 0
}

func (x *ListenConfig) GetNetworks() []string {
	if x != nil {
		return x.Networks
	}
	return nil
}

func (x *ListenConfig) GetReadDeadline() int32 {
	if x != nil {
		return x.ReadDeadline
	}
	return 0
}

func (x *ListenConfig) GetWriteDeadline() int32 {
	if x != nil {
		return x.WriteDeadline
	}
	return 0
}

func (x *ListenConfig) GetKeepAliveConfig() *KeepAliveConfig {
	if x != nil {
		return x.KeepAliveConfig
	}
	return nil
}

func (x *ListenConfig) GetSockOption() *SockOption {
	if x != nil {
		return x.SockOption
	}
	return nil
}

// KeepAliveConfig is the configuration for listener keep-alive.
// This configuration is bounded to net.KeepAliveConfig.
// See https://pkg.go.dev/net#KeepAliveConfig.
type KeepAliveConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// [OPTIONAL]
	// Disable disables keep-alive probes.
	// Default is [false].
	Disable bool `protobuf:"varint,1,opt,name=Disable,json=disable,proto3" json:"Disable,omitempty"`
	// [OPTIONAL]
	// Idle is the time in second that the connection must be idle
	// before the first keep-alive probe is sent.
	// For TCP, this is equivalent to set TCP_KEEPIDLE socket option on Linux.
	// This value is used for https://pkg.go.dev/net#KeepAliveConfig.Idle.
	// If zero or not set, a default value of 15 seconds is used.
	// Default is not set.
	Idle int32 `protobuf:"varint,2,opt,name=Idle,json=idle,proto3" json:"Idle,omitempty"`
	// [OPTIONAL]
	// Interval is the time in second between keep-alive probes.
	// For TCP, this is equivalent to set TCP_KEEPINTVL socket option on Linux.
	// This value is used for https://pkg.go.dev/net#KeepAliveConfig.Interval.
	// If zero or not set, a default value of 15 seconds is used.
	// Default is not set.
	Interval int32 `protobuf:"varint,3,opt,name=Interval,json=interval,proto3" json:"Interval,omitempty"`
	// [OPTIONAL]
	// Count is the maximum number of keep-alive probes that
	// can go unanswered before dropping a connection.
	// For TCP, this is equivalent to set TCP_KEEPCNT socket option on Linux.
	// This value is used for https://pkg.go.dev/net#KeepAliveConfig.Count.
	// If zero or not set, a default value of 9 is used.
	// Default is not set.
	Count         int32 `protobuf:"varint,4,opt,name=Count,json=count,proto3" json:"Count,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *KeepAliveConfig) Reset() {
	*x = KeepAliveConfig{}
	mi := &file_kernel_network_proto_msgTypes[5]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *KeepAliveConfig) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*KeepAliveConfig) ProtoMessage() {}

func (x *KeepAliveConfig) ProtoReflect() protoreflect.Message {
	mi := &file_kernel_network_proto_msgTypes[5]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use KeepAliveConfig.ProtoReflect.Descriptor instead.
func (*KeepAliveConfig) Descriptor() ([]byte, []int) {
	return file_kernel_network_proto_rawDescGZIP(), []int{5}
}

func (x *KeepAliveConfig) GetDisable() bool {
	if x != nil {
		return x.Disable
	}
	return false
}

func (x *KeepAliveConfig) GetIdle() int32 {
	if x != nil {
		return x.Idle
	}
	return 0
}

func (x *KeepAliveConfig) GetInterval() int32 {
	if x != nil {
		return x.Interval
	}
	return 0
}

func (x *KeepAliveConfig) GetCount() int32 {
	if x != nil {
		return x.Count
	}
	return 0
}

// TLSConfig is the configuration for TLS.
type TLSConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// [OPTIONAL]
	// CertKeyPairs is the list of key and certification paires.
	// This field is not need to be specified when using system's certifications.
	//
	// Certificates contains one or more certificate chains to present to the
	// other side of the connection. The first certificate compatible with the
	// peer's requirements is selected automatically.
	//
	// Server configurations must set one of Certificates, GetCertificate or
	// GetConfigForClient. Clients doing client-authentication may set either
	// Certificates or GetClientCertificate.
	//
	// Note: if there are multiple Certificates, and they don't have the
	// optional field Leaf set, certificate selection will incur a significant
	// per-handshake performance cost.
	// Read certs will be used as https://pkg.go.dev/crypto/tls#Config.Certificates.
	// Default is not set.
	CertKeyPairs []*CertKeyPair `protobuf:"bytes,1,rep,name=CertKeyPairs,json=certKeyPairs,proto3" json:"CertKeyPairs,omitempty"`
	// [OPTIONAL]
	// RootCAs is the file paths that will be used as root CAs.
	// The read certs will be used as https://pkg.go.dev/crypto/tls#Config.RootCAs.
	// Default is not set.
	RootCAs []string `protobuf:"bytes,2,rep,name=RootCAs,json=rootCAs,proto3" json:"RootCAs,omitempty"`
	// [OPTIONAL]
	// NextProtos is a list of supported application level protocols, in order of preference.
	// If both peers support ALPN, the selected protocol will be one from this list,
	// and the connection will fail if there is no mutually supported protocol.
	// If NextProtos is empty or the peer doesn't support ALPN, the connection will succeed.
	// Default is not set.
	NextProtos []string `protobuf:"bytes,3,rep,name=NextProtos,json=nextProtos,proto3" json:"NextProtos,omitempty"`
	// [OPTIONAL]
	// ServerName is used to verify the hostname on the returned
	// certificates unless InsecureSkipVerify is given. It is also included
	// in the client's handshake to support virtual hosting unless it is
	// an IP address.
	// Default is not set.
	ServerName string `protobuf:"bytes,4,opt,name=ServerName,json=serverName,proto3" json:"ServerName,omitempty"`
	// [OPTIONAL]
	// ClientAuth determines the server's policy for
	// TLS Client Authentication.
	// If not set, default value of NoClientCert will be used.
	// Default is not set.
	ClientAuth ClientAuthType `protobuf:"varint,5,opt,name=ClientAuth,json=clientAuth,proto3,enum=kernel.ClientAuthType" json:"ClientAuth,omitempty"`
	// [OPTIONAL]
	// ClientCAs defines the set of root certificate authorities
	// that servers use if required to verify a client certificate
	// by the policy in ClientAuth.
	// Certifications in the system's default path will be read by default.
	// Use ClientCAsIgnoreSystemCerts to ignore system's cert path.
	// Default is not set.
	ClientCAs []string `protobuf:"bytes,6,rep,name=ClientCAs,json=clientCAs,proto3" json:"ClientCAs,omitempty"`
	// [OPTIONAL]
	// InsecureSkipVerify controls whether a client verifies the server's
	// certificate chain and host name. If InsecureSkipVerify is true, crypto/tls
	// accepts any certificate presented by the server and any host name in that
	// certificate. In this mode, TLS is susceptible to machine-in-the-middle
	// attacks unless custom verification is used. This should be used only for testing.
	// Default is [false].
	InsecureSkipVerify bool `protobuf:"varint,7,opt,name=InsecureSkipVerify,json=insecureSkipVerify,proto3" json:"InsecureSkipVerify,omitempty"`
	// [OPTIONAL]
	// TLSCiphers is a list of enabled TLS 1.0–1.2 cipher suites. The order of
	// the list is ignored. Note that TLS 1.3 ciphersuites are not configurable.
	// If not set, a safe default list is used. The default cipher
	// suites might change over time. In Go 1.22 RSA key exchange based cipher
	// suites were removed from the default list, but can be re-added with the
	// GODEBUG setting tlsrsakex=1.
	// Default is not set.
	TLSCiphers []TLSCipher `protobuf:"varint,8,rep,packed,name=TLSCiphers,json=tlsCipher,proto3,enum=kernel.TLSCipher" json:"TLSCiphers,omitempty"`
	// [OPTIONAL]
	// SessionTicketsDisabled may be set to true to disable session ticket and
	// PSK (resumption) support.
	// Default is [false].
	SessionTicketsDisabled bool `protobuf:"varint,9,opt,name=SessionTicketsDisabled,json=sessionTicketsDisabled,proto3" json:"SessionTicketsDisabled,omitempty"`
	// [OPTIONAL]
	// MinVersion contains the minimum TLS version that is acceptable.
	// If not set, TLS 1.2 will be used currently.
	// The available numbers are SSL3.0=768, TLS1.0=769,
	// TLS1.1=770, TLS1.2=771, TLS1.3=772.
	// Default is not set.
	MinVersion uint32 `protobuf:"varint,10,opt,name=MinVersion,json=minVersion,proto3" json:"MinVersion,omitempty"`
	// [OPTIONAL]
	// MaxVersion contains the maximum TLS version that is acceptable.
	// If not set, TLS 1.3 will be used currently.
	// The available numbers are SSL3.0=768, TLS1.0=769,
	// TLS1.1=770, TLS1.2=771, TLS1.3=772.
	// Default is not set.
	MaxVersion uint32 `protobuf:"varint,11,opt,name=MaxVersion,json=maxVersion,proto3" json:"MaxVersion,omitempty"`
	// [OPTIONAL]
	// CurvePreferences contains the elliptic curves that will be used in
	// an ECDHE handshake, in preference order. If empty, the default will
	// be used. The client will use the first preference as the type for
	// its key share in TLS 1.3. This may change in the future.
	// This field will be used as https://pkg.go.dev/crypto/tls#Config.CurvePreferences.
	// Default is not set.
	CurvePreferences []CurveID `protobuf:"varint,12,rep,packed,name=CurvePreferences,json=curvePreferences,proto3,enum=kernel.CurveID" json:"CurvePreferences,omitempty"`
	// [OPTIONAL]
	// DynamicRecordSizingDisabled disables adaptive sizing of TLS records.
	// When true, the largest possible TLS record size is always used. When
	// false, the size of TLS records may be adjusted in an attempt to
	// improve latency.
	// This fieled will be used as https://pkg.go.dev/crypto/tls#Config.DynamicRecordSizingDisabled.
	// Default is [false].
	DynamicRecordSizingDisabled bool `protobuf:"varint,13,opt,name=DynamicRecordSizingDisabled,json=dynamicRecordSizingDisabled,proto3" json:"DynamicRecordSizingDisabled,omitempty"`
	// [OPTIONAL]
	// Renegotiation controls what types of renegotiation are supported.
	// The default, none, is correct for the vast majority of applications.
	// This fieled will be used as https://pkg.go.dev/crypto/tls#Config.Renegotiation.
	// Default is not set.
	Renegotiation RenegotiationSupport `protobuf:"varint,14,opt,name=Renegotiation,json=renegotiation,proto3,enum=kernel.RenegotiationSupport" json:"Renegotiation,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TLSConfig) Reset() {
	*x = TLSConfig{}
	mi := &file_kernel_network_proto_msgTypes[6]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TLSConfig) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TLSConfig) ProtoMessage() {}

func (x *TLSConfig) ProtoReflect() protoreflect.Message {
	mi := &file_kernel_network_proto_msgTypes[6]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TLSConfig.ProtoReflect.Descriptor instead.
func (*TLSConfig) Descriptor() ([]byte, []int) {
	return file_kernel_network_proto_rawDescGZIP(), []int{6}
}

func (x *TLSConfig) GetCertKeyPairs() []*CertKeyPair {
	if x != nil {
		return x.CertKeyPairs
	}
	return nil
}

func (x *TLSConfig) GetRootCAs() []string {
	if x != nil {
		return x.RootCAs
	}
	return nil
}

func (x *TLSConfig) GetNextProtos() []string {
	if x != nil {
		return x.NextProtos
	}
	return nil
}

func (x *TLSConfig) GetServerName() string {
	if x != nil {
		return x.ServerName
	}
	return ""
}

func (x *TLSConfig) GetClientAuth() ClientAuthType {
	if x != nil {
		return x.ClientAuth
	}
	return ClientAuthType_NoClientCert
}

func (x *TLSConfig) GetClientCAs() []string {
	if x != nil {
		return x.ClientCAs
	}
	return nil
}

func (x *TLSConfig) GetInsecureSkipVerify() bool {
	if x != nil {
		return x.InsecureSkipVerify
	}
	return false
}

func (x *TLSConfig) GetTLSCiphers() []TLSCipher {
	if x != nil {
		return x.TLSCiphers
	}
	return nil
}

func (x *TLSConfig) GetSessionTicketsDisabled() bool {
	if x != nil {
		return x.SessionTicketsDisabled
	}
	return false
}

func (x *TLSConfig) GetMinVersion() uint32 {
	if x != nil {
		return x.MinVersion
	}
	return 0
}

func (x *TLSConfig) GetMaxVersion() uint32 {
	if x != nil {
		return x.MaxVersion
	}
	return 0
}

func (x *TLSConfig) GetCurvePreferences() []CurveID {
	if x != nil {
		return x.CurvePreferences
	}
	return nil
}

func (x *TLSConfig) GetDynamicRecordSizingDisabled() bool {
	if x != nil {
		return x.DynamicRecordSizingDisabled
	}
	return false
}

func (x *TLSConfig) GetRenegotiation() RenegotiationSupport {
	if x != nil {
		return x.Renegotiation
	}
	return RenegotiationSupport_RenegotiateNever
}

// CertKeyPair is the pair of TLS cert file path
// and kery file path.
type CertKeyPair struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// [OPTIONAL]
	// CertFile is the TLS certification file path.
	// Default is not set.
	CertFile string `protobuf:"bytes,1,opt,name=CertFile,json=certFile,proto3" json:"CertFile,omitempty"`
	// [OPTIONAL]
	// KeyFile is the TLS key file path.
	// Default is not set.
	KeyFile       string `protobuf:"bytes,2,opt,name=KeyFile,json=keyFile,proto3" json:"KeyFile,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *CertKeyPair) Reset() {
	*x = CertKeyPair{}
	mi := &file_kernel_network_proto_msgTypes[7]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *CertKeyPair) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CertKeyPair) ProtoMessage() {}

func (x *CertKeyPair) ProtoReflect() protoreflect.Message {
	mi := &file_kernel_network_proto_msgTypes[7]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CertKeyPair.ProtoReflect.Descriptor instead.
func (*CertKeyPair) Descriptor() ([]byte, []int) {
	return file_kernel_network_proto_rawDescGZIP(), []int{7}
}

func (x *CertKeyPair) GetCertFile() string {
	if x != nil {
		return x.CertFile
	}
	return ""
}

func (x *CertKeyPair) GetKeyFile() string {
	if x != nil {
		return x.KeyFile
	}
	return ""
}

// QuicConfig is the specifications for the QuicConfig object.
// This is the configuration for the trasportation layer in networking of quic protocol.
// QuicConfig is related to "https://pkg.go.dev/github.com/quic-go/quic-go" package
// beside QUICConfig is related to "https://pkg.go.dev/golang.org/x/net/quic".
type QuicConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// [OPTIONAL]
	// The QUIC versions that can be negotiated.
	// If not set, it uses all versions available.
	Versions []QuicConfig_Version `protobuf:"varint,1,rep,packed,name=Versions,json=versions,proto3,enum=kernel.QuicConfig_Version" json:"Versions,omitempty"`
	// [OPTIONAL]
	// The QUIC versions that can be negotiated.
	// If not set, it uses all versions available.
	// HandshakeIdleTimeout is the idle timeout before completion of the handshake.
	// If we don't receive any packet from the peer within this time, the connection attempt is aborted.
	// Additionally, if the handshake doesn't complete in twice this time, the connection attempt is also aborted.
	// If this value is zero, the timeout is set to 5 seconds.
	HandshakeIdleTimeout int64 `protobuf:"varint,2,opt,name=HandshakeIdleTimeout,json=handshakeIdleTimeout,proto3" json:"HandshakeIdleTimeout,omitempty"`
	// [OPTIONAL]
	// MaxIdleTimeout is the maximum duration that may pass without any incoming network activity.
	// The actual value for the idle timeout is the minimum of this value and the peer's.
	// This value only applies after the handshake has completed.
	// If the timeout is exceeded, the connection is closed.
	// If this value is zero, the timeout is set to 30 seconds.
	MaxIdleTimeout int64 `protobuf:"varint,3,opt,name=MaxIdleTimeout,json=maxIdleTimeout,proto3" json:"MaxIdleTimeout,omitempty"`
	// [OPTIONAL]
	// InitialStreamReceiveWindow is the initial size of the stream-level flow control window for receiving data.
	// If the application is consuming data quickly enough, the flow control auto-tuning algorithm
	// will increase the window up to MaxStreamReceiveWindow.
	// If this value is zero, it will default to 512 KB.
	// Values larger than the maximum varint (quicvarint.Max) will be clipped to that value.
	InitialStreamReceiveWindow uint64 `protobuf:"varint,4,opt,name=InitialStreamReceiveWindow,json=initialStreamReceiveWindow,proto3" json:"InitialStreamReceiveWindow,omitempty"`
	// [OPTIONAL]
	// MaxStreamReceiveWindow is the maximum stream-level flow control window for receiving data.
	// If this value is zero, it will default to 6 MB.
	// Values larger than the maximum varint (quicvarint.Max) will be clipped to that value.
	MaxStreamReceiveWindow uint64 `protobuf:"varint,5,opt,name=MaxStreamReceiveWindow,json=maxStreamReceiveWindow,proto3" json:"MaxStreamReceiveWindow,omitempty"`
	// [OPTIONAL]
	// InitialConnectionReceiveWindow is the initial size of the stream-level flow control window for receiving data.
	// If the application is consuming data quickly enough, the flow control auto-tuning algorithm
	// will increase the window up to MaxConnectionReceiveWindow.
	// If this value is zero, it will default to 512 KB.
	// Values larger than the maximum varint (quicvarint.Max) will be clipped to that value.
	InitialConnectionReceiveWindow uint64 `protobuf:"varint,6,opt,name=InitialConnectionReceiveWindow,json=initialConnectionReceiveWindow,proto3" json:"InitialConnectionReceiveWindow,omitempty"`
	// [OPTIONAL]
	// MaxConnectionReceiveWindow is the connection-level flow control window for receiving data.
	// If this value is zero, it will default to 15 MB.
	// Values larger than the maximum varint (quicvarint.Max) will be clipped to that value.
	MaxConnectionReceiveWindow uint64 `protobuf:"varint,7,opt,name=MaxConnectionReceiveWindow,json=maxConnectionReceiveWindow,proto3" json:"MaxConnectionReceiveWindow,omitempty"`
	// MaxIncomingStreams is the maximum number of concurrent bidirectional streams that a peer is allowed to open.
	// If not set, it will default to 100.
	// If set to a negative value, it doesn't allow any bidirectional streams.
	// Values larger than 2^60 will be clipped to that value.
	MaxIncomingStreams int64 `protobuf:"varint,8,opt,name=MaxIncomingStreams,json=maxIncomingStreams,proto3" json:"MaxIncomingStreams,omitempty"`
	// [OPTIONAL]
	// MaxIncomingUniStreams is the maximum number of concurrent unidirectional streams that a peer is allowed to open.
	// If not set, it will default to 100.
	// If set to a negative value, it doesn't allow any unidirectional streams.
	// Values larger than 2^60 will be clipped to that value.
	MaxIncomingUniStreams int64 `protobuf:"varint,9,opt,name=MaxIncomingUniStreams,json=maxIncomingUniStreams,proto3" json:"MaxIncomingUniStreams,omitempty"`
	// [OPTIONAL]
	// KeepAlivePeriod defines whether this peer will periodically send a packet to keep the connection alive.
	// If set to 0, then no keep alive is sent. Otherwise, the keep alive is sent on that period (or at most
	// every half of MaxIdleTimeout, whichever is smaller).
	KeepAlivePeriod int64 `protobuf:"varint,10,opt,name=KeepAlivePeriod,json=keepAlivePeriod,proto3" json:"KeepAlivePeriod,omitempty"`
	// [OPTIONAL]
	// DisablePathMTUDiscovery disables Path MTU Discovery (RFC 8899).
	// This allows the sending of QUIC packets that fully utilize the available MTU of the path.
	// Path MTU discovery is only available on systems that allow setting of the Don't Fragment (DF) bit.
	// If unavailable or disabled, packets will be at most 1252 (IPv4) / 1232 (IPv6) bytes in size.
	DisablePathMTUDiscovery bool `protobuf:"varint,11,opt,name=DisablePathMTUDiscovery,json=disablePathMTUDiscovery,proto3" json:"DisablePathMTUDiscovery,omitempty"`
	// [OPTIONAL]
	// Allow0RTT allows the application to decide if a 0-RTT connection attempt should be accepted.
	// Only valid for the server.
	Allow0RTT bool `protobuf:"varint,12,opt,name=Allow0RTT,json=allow0RTT,proto3" json:"Allow0RTT,omitempty"`
	// [OPTIONAL]
	// EnableDatagrams is the flag to enable QUIC datagram support (RFC 9221).
	EnableDatagrams bool `protobuf:"varint,13,opt,name=EnableDatagrams,json=enableDatagrams,proto3" json:"EnableDatagrams,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

func (x *QuicConfig) Reset() {
	*x = QuicConfig{}
	mi := &file_kernel_network_proto_msgTypes[8]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *QuicConfig) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QuicConfig) ProtoMessage() {}

func (x *QuicConfig) ProtoReflect() protoreflect.Message {
	mi := &file_kernel_network_proto_msgTypes[8]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use QuicConfig.ProtoReflect.Descriptor instead.
func (*QuicConfig) Descriptor() ([]byte, []int) {
	return file_kernel_network_proto_rawDescGZIP(), []int{8}
}

func (x *QuicConfig) GetVersions() []QuicConfig_Version {
	if x != nil {
		return x.Versions
	}
	return nil
}

func (x *QuicConfig) GetHandshakeIdleTimeout() int64 {
	if x != nil {
		return x.HandshakeIdleTimeout
	}
	return 0
}

func (x *QuicConfig) GetMaxIdleTimeout() int64 {
	if x != nil {
		return x.MaxIdleTimeout
	}
	return 0
}

func (x *QuicConfig) GetInitialStreamReceiveWindow() uint64 {
	if x != nil {
		return x.InitialStreamReceiveWindow
	}
	return 0
}

func (x *QuicConfig) GetMaxStreamReceiveWindow() uint64 {
	if x != nil {
		return x.MaxStreamReceiveWindow
	}
	return 0
}

func (x *QuicConfig) GetInitialConnectionReceiveWindow() uint64 {
	if x != nil {
		return x.InitialConnectionReceiveWindow
	}
	return 0
}

func (x *QuicConfig) GetMaxConnectionReceiveWindow() uint64 {
	if x != nil {
		return x.MaxConnectionReceiveWindow
	}
	return 0
}

func (x *QuicConfig) GetMaxIncomingStreams() int64 {
	if x != nil {
		return x.MaxIncomingStreams
	}
	return 0
}

func (x *QuicConfig) GetMaxIncomingUniStreams() int64 {
	if x != nil {
		return x.MaxIncomingUniStreams
	}
	return 0
}

func (x *QuicConfig) GetKeepAlivePeriod() int64 {
	if x != nil {
		return x.KeepAlivePeriod
	}
	return 0
}

func (x *QuicConfig) GetDisablePathMTUDiscovery() bool {
	if x != nil {
		return x.DisablePathMTUDiscovery
	}
	return false
}

func (x *QuicConfig) GetAllow0RTT() bool {
	if x != nil {
		return x.Allow0RTT
	}
	return false
}

func (x *QuicConfig) GetEnableDatagrams() bool {
	if x != nil {
		return x.EnableDatagrams
	}
	return false
}

var File_kernel_network_proto protoreflect.FileDescriptor

var file_kernel_network_proto_rawDesc = string([]byte{
	0x0a, 0x14, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x1a, 0x1b,
	0x62, 0x75, 0x66, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x61, 0x6c,
	0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x15, 0x6b, 0x65, 0x72,
	0x6e, 0x65, 0x6c, 0x2f, 0x73, 0x6f, 0x63, 0x6b, 0x6f, 0x70, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x22, 0xca, 0x05, 0x0a, 0x13, 0x48, 0x54, 0x54, 0x50, 0x54, 0x72, 0x61, 0x6e, 0x73,
	0x70, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2f, 0x0a, 0x09, 0x54, 0x4c,
	0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e,
	0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x2e, 0x54, 0x4c, 0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x52, 0x09, 0x74, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x30, 0x0a, 0x13, 0x54,
	0x4c, 0x53, 0x48, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f,
	0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x74, 0x6c, 0x73, 0x48, 0x61, 0x6e,
	0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x2c, 0x0a,
	0x11, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4b, 0x65, 0x65, 0x70, 0x41, 0x6c, 0x69, 0x76,
	0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c,
	0x65, 0x4b, 0x65, 0x65, 0x70, 0x41, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x12, 0x44,
	0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f,
	0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65,
	0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x4d,
	0x61, 0x78, 0x49, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x49, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x73, 0x12,
	0x30, 0x0a, 0x13, 0x4d, 0x61, 0x78, 0x49, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x73, 0x50,
	0x65, 0x72, 0x48, 0x6f, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x6d, 0x61,
	0x78, 0x49, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x73, 0x50, 0x65, 0x72, 0x48, 0x6f, 0x73,
	0x74, 0x12, 0x28, 0x0a, 0x0f, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x6e, 0x6e, 0x73, 0x50, 0x65, 0x72,
	0x48, 0x6f, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6d, 0x61, 0x78, 0x43,
	0x6f, 0x6e, 0x6e, 0x73, 0x50, 0x65, 0x72, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x49,
	0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x08,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x69, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x54, 0x69,
	0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x34, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x09,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65,
	0x61, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x34, 0x0a, 0x15, 0x45,
	0x78, 0x70, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65, 0x54, 0x69, 0x6d,
	0x65, 0x6f, 0x75, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x65, 0x78, 0x70, 0x65,
	0x63, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75,
	0x74, 0x12, 0x36, 0x0a, 0x16, 0x4d, 0x61, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x16, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65,
	0x61, 0x64, 0x65, 0x72, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x57, 0x72, 0x69,
	0x74, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x0d, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x0f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x53,
	0x69, 0x7a, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x52, 0x65, 0x61, 0x64, 0x42, 0x75, 0x66, 0x66, 0x65,
	0x72, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x72, 0x65, 0x61,
	0x64, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x41,
	0x6c, 0x6c, 0x6f, 0x77, 0x48, 0x54, 0x54, 0x50, 0x32, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x0a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x48, 0x54, 0x54, 0x50, 0x32, 0x12, 0x32, 0x0a, 0x0a, 0x44,
	0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x12, 0x2e, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x2e, 0x44, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x52, 0x0a, 0x64, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22,
	0xd9, 0x05, 0x0a, 0x14, 0x48, 0x54, 0x54, 0x50, 0x32, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f,
	0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2f, 0x0a, 0x09, 0x54, 0x4c, 0x53, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6b, 0x65,
	0x72, 0x6e, 0x65, 0x6c, 0x2e, 0x54, 0x4c, 0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x09,
	0x74, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2e, 0x0a, 0x12, 0x44, 0x69, 0x73,
	0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f,
	0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x6c, 0x6c,
	0x6f, 0x77, 0x48, 0x54, 0x54, 0x50, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x6c,
	0x6c, 0x6f, 0x77, 0x48, 0x54, 0x54, 0x50, 0x12, 0x2c, 0x0a, 0x11, 0x4d, 0x61, 0x78, 0x48, 0x65,
	0x61, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x0d, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73,
	0x74, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x4d, 0x61, 0x78, 0x52, 0x65, 0x61, 0x64,
	0x46, 0x72, 0x61, 0x6d, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52,
	0x10, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x61, 0x64, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x53, 0x69, 0x7a,
	0x65, 0x12, 0x3c, 0x0a, 0x19, 0x4d, 0x61, 0x78, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x48,
	0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x06,
	0x20, 0x01, 0x28, 0x0d, 0x52, 0x19, 0x6d, 0x61, 0x78, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x72,
	0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12,
	0x3c, 0x0a, 0x19, 0x4d, 0x61, 0x78, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x48, 0x65, 0x61,
	0x64, 0x65, 0x72, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x01,
	0x28, 0x0d, 0x52, 0x19, 0x6d, 0x61, 0x78, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x48, 0x65,
	0x61, 0x64, 0x65, 0x72, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x3e, 0x0a,
	0x1a, 0x53, 0x74, 0x72, 0x69, 0x63, 0x74, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x6e, 0x63, 0x75, 0x72,
	0x72, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x1a, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x6e, 0x63,
	0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x12, 0x28, 0x0a,
	0x0f, 0x49, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74,
	0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x69, 0x64, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x6e,
	0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x61, 0x64, 0x49,
	0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d,
	0x52, 0x0f, 0x72, 0x65, 0x61, 0x64, 0x49, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75,
	0x74, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74,
	0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65,
	0x6f, 0x75, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x57, 0x72, 0x69, 0x74, 0x65, 0x42, 0x79, 0x74, 0x65,
	0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x77,
	0x72, 0x69, 0x74, 0x65, 0x42, 0x79, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12,
	0x32, 0x0a, 0x0a, 0x44, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0d, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x2e, 0x44, 0x69, 0x61,
	0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0a, 0x64, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x12, 0x28, 0x0a, 0x0f, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x49, 0x50, 0x43, 0x6f,
	0x6e, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x6d, 0x75,
	0x6c, 0x74, 0x69, 0x49, 0x50, 0x43, 0x6f, 0x6e, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x2c, 0x0a,
	0x11, 0x4d, 0x69, 0x6e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76,
	0x61, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x6d, 0x69, 0x6e, 0x4c, 0x6f, 0x6f,
	0x6b, 0x75, 0x70, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0xb2, 0x02, 0x0a, 0x0a,
	0x44, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2f, 0x0a, 0x09, 0x54, 0x4c,
	0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e,
	0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x2e, 0x54, 0x4c, 0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x52, 0x09, 0x74, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x22, 0x0a, 0x0c, 0x4c,
	0x6f, 0x63, 0x61, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12,
	0x5b, 0x0a, 0x0e, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74,
	0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x33, 0xba, 0x48, 0x30, 0x92, 0x01, 0x2d, 0x22,
	0x2b, 0x72, 0x29, 0x32, 0x27, 0x5e, 0x5c, 0x28, 0x5b, 0x5c, 0x77, 0x3a, 0x5c, 0x2d, 0x5d, 0x2b,
	0x5c, 0x7c, 0x2e, 0x2b, 0x5c, 0x29, 0x5b, 0x20, 0x3e, 0x5d, 0x2a, 0x5c, 0x28, 0x5b, 0x5c, 0x77,
	0x3a, 0x5c, 0x2d, 0x5d, 0x2b, 0x5c, 0x7c, 0x2e, 0x2b, 0x5c, 0x29, 0x24, 0x52, 0x0e, 0x72, 0x65,
	0x70, 0x6c, 0x61, 0x63, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07,
	0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74,
	0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x46, 0x61, 0x6c, 0x6c, 0x62, 0x61,
	0x63, 0x6b, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x66,
	0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x32, 0x0a, 0x0a,
	0x53, 0x6f, 0x63, 0x6b, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x12, 0x2e, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x6f, 0x63, 0x6b, 0x4f, 0x70,
	0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x73, 0x6f, 0x63, 0x6b, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
	0x22, 0x8d, 0x02, 0x0a, 0x14, 0x48, 0x54, 0x54, 0x50, 0x33, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70,
	0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2f, 0x0a, 0x09, 0x54, 0x4c, 0x53,
	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6b,
	0x65, 0x72, 0x6e, 0x65, 0x6c, 0x2e, 0x54, 0x4c, 0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52,
	0x09, 0x74, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x32, 0x0a, 0x0a, 0x51, 0x75,
	0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12,
	0x2e, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x2e, 0x51, 0x75, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x52, 0x0a, 0x71, 0x75, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2e,
	0x0a, 0x12, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73,
	0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x64, 0x69, 0x73, 0x61,
	0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28,
	0x0a, 0x0f, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d,
	0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x44,
	0x61, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x4d, 0x61, 0x78, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x42, 0x79, 0x74,
	0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x16, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x42, 0x79, 0x74, 0x65, 0x73,
	0x22, 0xe4, 0x02, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x12, 0x2f, 0x0a, 0x09, 0x54, 0x4c, 0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x2e, 0x54, 0x4c,
	0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x09, 0x74, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x41, 0x64, 0x64, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x04, 0x61, 0x64, 0x64, 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63,
	0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x6d, 0x69, 0x74,
	0x12, 0x24, 0x0a, 0x08, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x18, 0x06, 0x20, 0x03,
	0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x92, 0x01, 0x02, 0x18, 0x01, 0x52, 0x08, 0x6e, 0x65,
	0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x61, 0x64, 0x44, 0x65,
	0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x72, 0x65,
	0x61, 0x64, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x57, 0x72,
	0x69, 0x74, 0x65, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x0d, 0x77, 0x72, 0x69, 0x74, 0x65, 0x44, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65,
	0x12, 0x41, 0x0a, 0x0f, 0x4b, 0x65, 0x65, 0x70, 0x41, 0x6c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6b, 0x65, 0x72, 0x6e,
	0x65, 0x6c, 0x2e, 0x4b, 0x65, 0x65, 0x70, 0x41, 0x6c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x52, 0x0f, 0x6b, 0x65, 0x65, 0x70, 0x41, 0x6c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x12, 0x32, 0x0a, 0x0a, 0x53, 0x6f, 0x63, 0x6b, 0x4f, 0x70, 0x74, 0x69, 0x6f,
	0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c,
	0x2e, 0x53, 0x6f, 0x63, 0x6b, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x73, 0x6f, 0x63,
	0x6b, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x71, 0x0a, 0x0f, 0x4b, 0x65, 0x65, 0x70, 0x41,
	0x6c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x44, 0x69,
	0x73, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x69, 0x73,
	0x61, 0x62, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x49, 0x64, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x04, 0x69, 0x64, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x65,
	0x72, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65,
	0x72, 0x76, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xc5, 0x05, 0x0a, 0x09, 0x54,
	0x4c, 0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x37, 0x0a, 0x0c, 0x43, 0x65, 0x72, 0x74,
	0x4b, 0x65, 0x79, 0x50, 0x61, 0x69, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13,
	0x2e, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x4b, 0x65, 0x79, 0x50,
	0x61, 0x69, 0x72, 0x52, 0x0c, 0x63, 0x65, 0x72, 0x74, 0x4b, 0x65, 0x79, 0x50, 0x61, 0x69, 0x72,
	0x73, 0x12, 0x22, 0x0a, 0x07, 0x52, 0x6f, 0x6f, 0x74, 0x43, 0x41, 0x73, 0x18, 0x02, 0x20, 0x03,
	0x28, 0x09, 0x42, 0x08, 0xba, 0x48, 0x05, 0x92, 0x01, 0x02, 0x18, 0x01, 0x52, 0x07, 0x72, 0x6f,
	0x6f, 0x74, 0x43, 0x41, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x4e, 0x65, 0x78, 0x74, 0x50, 0x72, 0x6f,
	0x74, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x50,
	0x72, 0x6f, 0x74, 0x6f, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e,
	0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65,
	0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x36, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41,
	0x75, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x6b, 0x65, 0x72, 0x6e,
	0x65, 0x6c, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70,
	0x65, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x12, 0x26, 0x0a,
	0x09, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x41, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09,
	0x42, 0x08, 0xba, 0x48, 0x05, 0x92, 0x01, 0x02, 0x18, 0x01, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65,
	0x6e, 0x74, 0x43, 0x41, 0x73, 0x12, 0x2e, 0x0a, 0x12, 0x49, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x72,
	0x65, 0x53, 0x6b, 0x69, 0x70, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x12, 0x69, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x53, 0x6b, 0x69, 0x70, 0x56,
	0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x30, 0x0a, 0x0a, 0x54, 0x4c, 0x53, 0x43, 0x69, 0x70, 0x68,
	0x65, 0x72, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x6b, 0x65, 0x72, 0x6e,
	0x65, 0x6c, 0x2e, 0x54, 0x4c, 0x53, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x52, 0x09, 0x74, 0x6c,
	0x73, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x53, 0x65, 0x73, 0x73, 0x69,
	0x6f, 0x6e, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65,
	0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,
	0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12,
	0x29, 0x0a, 0x0a, 0x4d, 0x69, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20,
	0x01, 0x28, 0x0d, 0x42, 0x09, 0xba, 0x48, 0x06, 0x2a, 0x04, 0x18, 0xff, 0xff, 0x03, 0x52, 0x0a,
	0x6d, 0x69, 0x6e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x0a, 0x4d, 0x61,
	0x78, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x09,
	0xba, 0x48, 0x06, 0x2a, 0x04, 0x18, 0xff, 0xff, 0x03, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x56, 0x65,
	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x10, 0x43, 0x75, 0x72, 0x76, 0x65, 0x50, 0x72,
	0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0e, 0x32,
	0x0f, 0x2e, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x75, 0x72, 0x76, 0x65, 0x49, 0x44,
	0x42, 0x08, 0xba, 0x48, 0x05, 0x92, 0x01, 0x02, 0x18, 0x01, 0x52, 0x10, 0x63, 0x75, 0x72, 0x76,
	0x65, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x1b,
	0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x69, 0x7a,
	0x69, 0x6e, 0x67, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x1b, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64,
	0x53, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x42,
	0x0a, 0x0d, 0x52, 0x65, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18,
	0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x2e, 0x52,
	0x65, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x70, 0x70,
	0x6f, 0x72, 0x74, 0x52, 0x0d, 0x72, 0x65, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x22, 0x43, 0x0a, 0x0b, 0x43, 0x65, 0x72, 0x74, 0x4b, 0x65, 0x79, 0x50, 0x61, 0x69,
	0x72, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x65, 0x72, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x65, 0x72, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x18, 0x0a,
	0x07, 0x4b, 0x65, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
	0x6b, 0x65, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x22, 0xe3, 0x05, 0x0a, 0x0a, 0x51, 0x75, 0x69, 0x63,
	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x40, 0x0a, 0x08, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
	0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6b, 0x65, 0x72, 0x6e, 0x65,
	0x6c, 0x2e, 0x51, 0x75, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x56, 0x65, 0x72,
	0x73, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0xba, 0x48, 0x05, 0x92, 0x01, 0x02, 0x18, 0x01, 0x52, 0x08,
	0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x48, 0x61, 0x6e, 0x64,
	0x73, 0x68, 0x61, 0x6b, 0x65, 0x49, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b,
	0x65, 0x49, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x26, 0x0a, 0x0e,
	0x4d, 0x61, 0x78, 0x49, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x49, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d,
	0x65, 0x6f, 0x75, 0x74, 0x12, 0x3e, 0x0a, 0x1a, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x53,
	0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x57, 0x69, 0x6e, 0x64,
	0x6f, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1a, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61,
	0x6c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x57, 0x69,
	0x6e, 0x64, 0x6f, 0x77, 0x12, 0x36, 0x0a, 0x16, 0x4d, 0x61, 0x78, 0x53, 0x74, 0x72, 0x65, 0x61,
	0x6d, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x6d, 0x61, 0x78, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52,
	0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x46, 0x0a, 0x1e,
	0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x06,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x1e, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6e,
	0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x57, 0x69,
	0x6e, 0x64, 0x6f, 0x77, 0x12, 0x3e, 0x0a, 0x1a, 0x4d, 0x61, 0x78, 0x43, 0x6f, 0x6e, 0x6e, 0x65,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x57, 0x69, 0x6e, 0x64,
	0x6f, 0x77, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1a, 0x6d, 0x61, 0x78, 0x43, 0x6f, 0x6e,
	0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x57, 0x69,
	0x6e, 0x64, 0x6f, 0x77, 0x12, 0x2e, 0x0a, 0x12, 0x4d, 0x61, 0x78, 0x49, 0x6e, 0x63, 0x6f, 0x6d,
	0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x12, 0x6d, 0x61, 0x78, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72,
	0x65, 0x61, 0x6d, 0x73, 0x12, 0x34, 0x0a, 0x15, 0x4d, 0x61, 0x78, 0x49, 0x6e, 0x63, 0x6f, 0x6d,
	0x69, 0x6e, 0x67, 0x55, 0x6e, 0x69, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x18, 0x09, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x15, 0x6d, 0x61, 0x78, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67,
	0x55, 0x6e, 0x69, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x4b, 0x65,
	0x65, 0x70, 0x41, 0x6c, 0x69, 0x76, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x0a, 0x20,
	0x01, 0x28, 0x03, 0x52, 0x0f, 0x6b, 0x65, 0x65, 0x70, 0x41, 0x6c, 0x69, 0x76, 0x65, 0x50, 0x65,
	0x72, 0x69, 0x6f, 0x64, 0x12, 0x38, 0x0a, 0x17, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x50,
	0x61, 0x74, 0x68, 0x4d, 0x54, 0x55, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x18,
	0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x61,
	0x74, 0x68, 0x4d, 0x54, 0x55, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x12, 0x1c,
	0x0a, 0x09, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x30, 0x52, 0x54, 0x54, 0x18, 0x0c, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x30, 0x52, 0x54, 0x54, 0x12, 0x28, 0x0a, 0x0f,
	0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x73, 0x18,
	0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x61, 0x74,
	0x61, 0x67, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x25, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
	0x6e, 0x12, 0x0c, 0x0a, 0x08, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x31, 0x10, 0x00, 0x12,
	0x0c, 0x0a, 0x08, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x32, 0x10, 0x01, 0x2a, 0x93, 0x01,
	0x0a, 0x0b, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x08, 0x0a,
	0x04, 0x48, 0x54, 0x54, 0x50, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x43, 0x50, 0x10, 0x01,
	0x12, 0x08, 0x0a, 0x04, 0x54, 0x43, 0x50, 0x34, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x43,
	0x50, 0x36, 0x10, 0x03, 0x12, 0x07, 0x0a, 0x03, 0x55, 0x44, 0x50, 0x10, 0x04, 0x12, 0x08, 0x0a,
	0x04, 0x55, 0x44, 0x50, 0x34, 0x10, 0x05, 0x12, 0x08, 0x0a, 0x04, 0x55, 0x44, 0x50, 0x36, 0x10,
	0x06, 0x12, 0x06, 0x0a, 0x02, 0x49, 0x50, 0x10, 0x07, 0x12, 0x07, 0x0a, 0x03, 0x49, 0x50, 0x34,
	0x10, 0x08, 0x12, 0x07, 0x0a, 0x03, 0x49, 0x50, 0x36, 0x10, 0x09, 0x12, 0x08, 0x0a, 0x04, 0x55,
	0x6e, 0x69, 0x78, 0x10, 0x0a, 0x12, 0x0c, 0x0a, 0x08, 0x55, 0x6e, 0x69, 0x78, 0x47, 0x72, 0x61,
	0x6d, 0x10, 0x0b, 0x12, 0x0e, 0x0a, 0x0a, 0x55, 0x6e, 0x69, 0x78, 0x50, 0x61, 0x63, 0x6b, 0x65,
	0x74, 0x10, 0x0c, 0x2a, 0x90, 0x01, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x75,
	0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x43, 0x6c, 0x69, 0x65,
	0x6e, 0x74, 0x43, 0x65, 0x72, 0x74, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x65, 0x72, 0x74, 0x10, 0x01, 0x12,
	0x18, 0x0a, 0x14, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x41, 0x6e, 0x79, 0x43, 0x6c, 0x69,
	0x65, 0x6e, 0x74, 0x43, 0x65, 0x72, 0x74, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x56, 0x65, 0x72,
	0x69, 0x66, 0x79, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x65, 0x72, 0x74, 0x49, 0x66, 0x47,
	0x69, 0x76, 0x65, 0x6e, 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72,
	0x65, 0x41, 0x6e, 0x64, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74,
	0x43, 0x65, 0x72, 0x74, 0x10, 0x04, 0x2a, 0x68, 0x0a, 0x14, 0x52, 0x65, 0x6e, 0x65, 0x67, 0x6f,
	0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x14,
	0x0a, 0x10, 0x52, 0x65, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x76,
	0x65, 0x72, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x52, 0x65, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69,
	0x61, 0x74, 0x65, 0x4f, 0x6e, 0x63, 0x65, 0x41, 0x73, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x10,
	0x01, 0x12, 0x1d, 0x0a, 0x19, 0x52, 0x65, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x65,
	0x46, 0x72, 0x65, 0x65, 0x6c, 0x79, 0x41, 0x73, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x10, 0x02,
	0x2a, 0x42, 0x0a, 0x07, 0x43, 0x75, 0x72, 0x76, 0x65, 0x49, 0x44, 0x12, 0x0d, 0x0a, 0x09, 0x43,
	0x75, 0x72, 0x76, 0x65, 0x50, 0x32, 0x35, 0x36, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x75,
	0x72, 0x76, 0x65, 0x50, 0x33, 0x38, 0x34, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x75, 0x72,
	0x76, 0x65, 0x50, 0x35, 0x32, 0x31, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x58, 0x32, 0x35, 0x35,
	0x31, 0x39, 0x10, 0x03, 0x2a, 0xc9, 0x08, 0x0a, 0x09, 0x54, 0x4c, 0x53, 0x43, 0x69, 0x70, 0x68,
	0x65, 0x72, 0x12, 0x1c, 0x0a, 0x18, 0x54, 0x4c, 0x53, 0x5f, 0x52, 0x53, 0x41, 0x5f, 0x57, 0x49,
	0x54, 0x48, 0x5f, 0x52, 0x43, 0x34, 0x5f, 0x31, 0x32, 0x38, 0x5f, 0x53, 0x48, 0x41, 0x10, 0x00,
	0x12, 0x21, 0x0a, 0x1d, 0x54, 0x4c, 0x53, 0x5f, 0x52, 0x53, 0x41, 0x5f, 0x57, 0x49, 0x54, 0x48,
	0x5f, 0x33, 0x44, 0x45, 0x53, 0x5f, 0x45, 0x44, 0x45, 0x5f, 0x43, 0x42, 0x43, 0x5f, 0x53, 0x48,
	0x41, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x54, 0x4c, 0x53, 0x5f, 0x52, 0x53, 0x41, 0x5f, 0x57,
	0x49, 0x54, 0x48, 0x5f, 0x41, 0x45, 0x53, 0x5f, 0x31, 0x32, 0x38, 0x5f, 0x43, 0x42, 0x43, 0x5f,
	0x53, 0x48, 0x41, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x54, 0x4c, 0x53, 0x5f, 0x52, 0x53, 0x41,
	0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x41, 0x45, 0x53, 0x5f, 0x32, 0x35, 0x36, 0x5f, 0x43, 0x42,
	0x43, 0x5f, 0x53, 0x48, 0x41, 0x10, 0x03, 0x12, 0x23, 0x0a, 0x1f, 0x54, 0x4c, 0x53, 0x5f, 0x52,
	0x53, 0x41, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x41, 0x45, 0x53, 0x5f, 0x31, 0x32, 0x38, 0x5f,
	0x43, 0x42, 0x43, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x04, 0x12, 0x23, 0x0a, 0x1f,
	0x54, 0x4c, 0x53, 0x5f, 0x52, 0x53, 0x41, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x41, 0x45, 0x53,
	0x5f, 0x31, 0x32, 0x38, 0x5f, 0x47, 0x43, 0x4d, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10,
	0x05, 0x12, 0x23, 0x0a, 0x1f, 0x54, 0x4c, 0x53, 0x5f, 0x52, 0x53, 0x41, 0x5f, 0x57, 0x49, 0x54,
	0x48, 0x5f, 0x41, 0x45, 0x53, 0x5f, 0x32, 0x35, 0x36, 0x5f, 0x47, 0x43, 0x4d, 0x5f, 0x53, 0x48,
	0x41, 0x33, 0x38, 0x34, 0x10, 0x06, 0x12, 0x24, 0x0a, 0x20, 0x54, 0x4c, 0x53, 0x5f, 0x45, 0x43,
	0x44, 0x48, 0x45, 0x5f, 0x45, 0x43, 0x44, 0x53, 0x41, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x52,
	0x43, 0x34, 0x5f, 0x31, 0x32, 0x38, 0x5f, 0x53, 0x48, 0x41, 0x10, 0x07, 0x12, 0x28, 0x0a, 0x24,
	0x54, 0x4c, 0x53, 0x5f, 0x45, 0x43, 0x44, 0x48, 0x45, 0x5f, 0x45, 0x43, 0x44, 0x53, 0x41, 0x5f,
	0x57, 0x49, 0x54, 0x48, 0x5f, 0x41, 0x45, 0x53, 0x5f, 0x31, 0x32, 0x38, 0x5f, 0x43, 0x42, 0x43,
	0x5f, 0x53, 0x48, 0x41, 0x10, 0x08, 0x12, 0x28, 0x0a, 0x24, 0x54, 0x4c, 0x53, 0x5f, 0x45, 0x43,
	0x44, 0x48, 0x45, 0x5f, 0x45, 0x43, 0x44, 0x53, 0x41, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x41,
	0x45, 0x53, 0x5f, 0x32, 0x35, 0x36, 0x5f, 0x43, 0x42, 0x43, 0x5f, 0x53, 0x48, 0x41, 0x10, 0x09,
	0x12, 0x22, 0x0a, 0x1e, 0x54, 0x4c, 0x53, 0x5f, 0x45, 0x43, 0x44, 0x48, 0x45, 0x5f, 0x52, 0x53,
	0x41, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x52, 0x43, 0x34, 0x5f, 0x31, 0x32, 0x38, 0x5f, 0x53,
	0x48, 0x41, 0x10, 0x0a, 0x12, 0x27, 0x0a, 0x23, 0x54, 0x4c, 0x53, 0x5f, 0x45, 0x43, 0x44, 0x48,
	0x45, 0x5f, 0x52, 0x53, 0x41, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x33, 0x44, 0x45, 0x53, 0x5f,
	0x45, 0x44, 0x45, 0x5f, 0x43, 0x42, 0x43, 0x5f, 0x53, 0x48, 0x41, 0x10, 0x0b, 0x12, 0x26, 0x0a,
	0x22, 0x54, 0x4c, 0x53, 0x5f, 0x45, 0x43, 0x44, 0x48, 0x45, 0x5f, 0x52, 0x53, 0x41, 0x5f, 0x57,
	0x49, 0x54, 0x48, 0x5f, 0x41, 0x45, 0x53, 0x5f, 0x31, 0x32, 0x38, 0x5f, 0x43, 0x42, 0x43, 0x5f,
	0x53, 0x48, 0x41, 0x10, 0x0c, 0x12, 0x26, 0x0a, 0x22, 0x54, 0x4c, 0x53, 0x5f, 0x45, 0x43, 0x44,
	0x48, 0x45, 0x5f, 0x52, 0x53, 0x41, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x41, 0x45, 0x53, 0x5f,
	0x32, 0x35, 0x36, 0x5f, 0x43, 0x42, 0x43, 0x5f, 0x53, 0x48, 0x41, 0x10, 0x0d, 0x12, 0x2b, 0x0a,
	0x27, 0x54, 0x4c, 0x53, 0x5f, 0x45, 0x43, 0x44, 0x48, 0x45, 0x5f, 0x45, 0x43, 0x44, 0x53, 0x41,
	0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x41, 0x45, 0x53, 0x5f, 0x31, 0x32, 0x38, 0x5f, 0x43, 0x42,
	0x43, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x0e, 0x12, 0x29, 0x0a, 0x25, 0x54, 0x4c,
	0x53, 0x5f, 0x45, 0x43, 0x44, 0x48, 0x45, 0x5f, 0x52, 0x53, 0x41, 0x5f, 0x57, 0x49, 0x54, 0x48,
	0x5f, 0x41, 0x45, 0x53, 0x5f, 0x31, 0x32, 0x38, 0x5f, 0x43, 0x42, 0x43, 0x5f, 0x53, 0x48, 0x41,
	0x32, 0x35, 0x36, 0x10, 0x0f, 0x12, 0x29, 0x0a, 0x25, 0x54, 0x4c, 0x53, 0x5f, 0x45, 0x43, 0x44,
	0x48, 0x45, 0x5f, 0x52, 0x53, 0x41, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x41, 0x45, 0x53, 0x5f,
	0x31, 0x32, 0x38, 0x5f, 0x47, 0x43, 0x4d, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x10,
	0x12, 0x2b, 0x0a, 0x27, 0x54, 0x4c, 0x53, 0x5f, 0x45, 0x43, 0x44, 0x48, 0x45, 0x5f, 0x45, 0x43,
	0x44, 0x53, 0x41, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x41, 0x45, 0x53, 0x5f, 0x31, 0x32, 0x38,
	0x5f, 0x47, 0x43, 0x4d, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x11, 0x12, 0x29, 0x0a,
	0x25, 0x54, 0x4c, 0x53, 0x5f, 0x45, 0x43, 0x44, 0x48, 0x45, 0x5f, 0x52, 0x53, 0x41, 0x5f, 0x57,
	0x49, 0x54, 0x48, 0x5f, 0x41, 0x45, 0x53, 0x5f, 0x32, 0x35, 0x36, 0x5f, 0x47, 0x43, 0x4d, 0x5f,
	0x53, 0x48, 0x41, 0x33, 0x38, 0x34, 0x10, 0x12, 0x12, 0x2b, 0x0a, 0x27, 0x54, 0x4c, 0x53, 0x5f,
	0x45, 0x43, 0x44, 0x48, 0x45, 0x5f, 0x45, 0x43, 0x44, 0x53, 0x41, 0x5f, 0x57, 0x49, 0x54, 0x48,
	0x5f, 0x41, 0x45, 0x53, 0x5f, 0x32, 0x35, 0x36, 0x5f, 0x47, 0x43, 0x4d, 0x5f, 0x53, 0x48, 0x41,
	0x33, 0x38, 0x34, 0x10, 0x13, 0x12, 0x2f, 0x0a, 0x2b, 0x54, 0x4c, 0x53, 0x5f, 0x45, 0x43, 0x44,
	0x48, 0x45, 0x5f, 0x52, 0x53, 0x41, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x43, 0x48, 0x41, 0x43,
	0x48, 0x41, 0x32, 0x30, 0x5f, 0x50, 0x4f, 0x4c, 0x59, 0x31, 0x33, 0x30, 0x35, 0x5f, 0x53, 0x48,
	0x41, 0x32, 0x35, 0x36, 0x10, 0x14, 0x12, 0x31, 0x0a, 0x2d, 0x54, 0x4c, 0x53, 0x5f, 0x45, 0x43,
	0x44, 0x48, 0x45, 0x5f, 0x45, 0x43, 0x44, 0x53, 0x41, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x43,
	0x48, 0x41, 0x43, 0x48, 0x41, 0x32, 0x30, 0x5f, 0x50, 0x4f, 0x4c, 0x59, 0x31, 0x33, 0x30, 0x35,
	0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x15, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x4c, 0x53,
	0x5f, 0x41, 0x45, 0x53, 0x5f, 0x31, 0x32, 0x38, 0x5f, 0x47, 0x43, 0x4d, 0x5f, 0x53, 0x48, 0x41,
	0x32, 0x35, 0x36, 0x10, 0x16, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x4c, 0x53, 0x5f, 0x41, 0x45, 0x53,
	0x5f, 0x32, 0x35, 0x36, 0x5f, 0x47, 0x43, 0x4d, 0x5f, 0x53, 0x48, 0x41, 0x33, 0x38, 0x34, 0x10,
	0x17, 0x12, 0x20, 0x0a, 0x1c, 0x54, 0x4c, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x43, 0x48, 0x41, 0x32,
	0x30, 0x5f, 0x50, 0x4f, 0x4c, 0x59, 0x31, 0x33, 0x30, 0x35, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35,
	0x36, 0x10, 0x18, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x4c, 0x53, 0x5f, 0x46, 0x41, 0x4c, 0x4c, 0x42,
	0x41, 0x43, 0x4b, 0x5f, 0x53, 0x43, 0x53, 0x56, 0x10, 0x19, 0x12, 0x28, 0x0a, 0x24, 0x54, 0x4c,
	0x53, 0x5f, 0x45, 0x43, 0x44, 0x48, 0x45, 0x5f, 0x52, 0x53, 0x41, 0x5f, 0x57, 0x49, 0x54, 0x48,
	0x5f, 0x43, 0x48, 0x41, 0x43, 0x48, 0x41, 0x32, 0x30, 0x5f, 0x50, 0x4f, 0x4c, 0x59, 0x31, 0x33,
	0x30, 0x35, 0x10, 0x1a, 0x12, 0x2a, 0x0a, 0x26, 0x54, 0x4c, 0x53, 0x5f, 0x45, 0x43, 0x44, 0x48,
	0x45, 0x5f, 0x45, 0x43, 0x44, 0x53, 0x41, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x43, 0x48, 0x41,
	0x43, 0x48, 0x41, 0x32, 0x30, 0x5f, 0x50, 0x4f, 0x4c, 0x59, 0x31, 0x33, 0x30, 0x35, 0x10, 0x1b,
	0x42, 0x38, 0x5a, 0x36, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61,
	0x69, 0x6c, 0x65, 0x72, 0x6f, 0x6e, 0x2d, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2f, 0x61,
	0x69, 0x6c, 0x65, 0x72, 0x6f, 0x6e, 0x2d, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2f, 0x61,
	0x70, 0x69, 0x73, 0x2f, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x33,
})

var (
	file_kernel_network_proto_rawDescOnce sync.Once
	file_kernel_network_proto_rawDescData []byte
)

func file_kernel_network_proto_rawDescGZIP() []byte {
	file_kernel_network_proto_rawDescOnce.Do(func() {
		file_kernel_network_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_kernel_network_proto_rawDesc), len(file_kernel_network_proto_rawDesc)))
	})
	return file_kernel_network_proto_rawDescData
}

var file_kernel_network_proto_enumTypes = make([]protoimpl.EnumInfo, 6)
var file_kernel_network_proto_msgTypes = make([]protoimpl.MessageInfo, 9)
var file_kernel_network_proto_goTypes = []any{
	(NetworkType)(0),             // 0: kernel.NetworkType
	(ClientAuthType)(0),          // 1: kernel.ClientAuthType
	(RenegotiationSupport)(0),    // 2: kernel.RenegotiationSupport
	(CurveID)(0),                 // 3: kernel.CurveID
	(TLSCipher)(0),               // 4: kernel.TLSCipher
	(QuicConfig_Version)(0),      // 5: kernel.QuicConfig.Version
	(*HTTPTransportConfig)(nil),  // 6: kernel.HTTPTransportConfig
	(*HTTP2TransportConfig)(nil), // 7: kernel.HTTP2TransportConfig
	(*DialConfig)(nil),           // 8: kernel.DialConfig
	(*HTTP3TransportConfig)(nil), // 9: kernel.HTTP3TransportConfig
	(*ListenConfig)(nil),         // 10: kernel.ListenConfig
	(*KeepAliveConfig)(nil),      // 11: kernel.KeepAliveConfig
	(*TLSConfig)(nil),            // 12: kernel.TLSConfig
	(*CertKeyPair)(nil),          // 13: kernel.CertKeyPair
	(*QuicConfig)(nil),           // 14: kernel.QuicConfig
	(*SockOption)(nil),           // 15: kernel.SockOption
}
var file_kernel_network_proto_depIdxs = []int32{
	12, // 0: kernel.HTTPTransportConfig.TLSConfig:type_name -> kernel.TLSConfig
	8,  // 1: kernel.HTTPTransportConfig.DialConfig:type_name -> kernel.DialConfig
	12, // 2: kernel.HTTP2TransportConfig.TLSConfig:type_name -> kernel.TLSConfig
	8,  // 3: kernel.HTTP2TransportConfig.DialConfig:type_name -> kernel.DialConfig
	12, // 4: kernel.DialConfig.TLSConfig:type_name -> kernel.TLSConfig
	15, // 5: kernel.DialConfig.SockOption:type_name -> kernel.SockOption
	12, // 6: kernel.HTTP3TransportConfig.TLSConfig:type_name -> kernel.TLSConfig
	14, // 7: kernel.HTTP3TransportConfig.QuicConfig:type_name -> kernel.QuicConfig
	12, // 8: kernel.ListenConfig.TLSConfig:type_name -> kernel.TLSConfig
	11, // 9: kernel.ListenConfig.KeepAliveConfig:type_name -> kernel.KeepAliveConfig
	15, // 10: kernel.ListenConfig.SockOption:type_name -> kernel.SockOption
	13, // 11: kernel.TLSConfig.CertKeyPairs:type_name -> kernel.CertKeyPair
	1,  // 12: kernel.TLSConfig.ClientAuth:type_name -> kernel.ClientAuthType
	4,  // 13: kernel.TLSConfig.TLSCiphers:type_name -> kernel.TLSCipher
	3,  // 14: kernel.TLSConfig.CurvePreferences:type_name -> kernel.CurveID
	2,  // 15: kernel.TLSConfig.Renegotiation:type_name -> kernel.RenegotiationSupport
	5,  // 16: kernel.QuicConfig.Versions:type_name -> kernel.QuicConfig.Version
	17, // [17:17] is the sub-list for method output_type
	17, // [17:17] is the sub-list for method input_type
	17, // [17:17] is the sub-list for extension type_name
	17, // [17:17] is the sub-list for extension extendee
	0,  // [0:17] is the sub-list for field type_name
}

func init() { file_kernel_network_proto_init() }
func file_kernel_network_proto_init() {
	if File_kernel_network_proto != nil {
		return
	}
	file_kernel_sockopts_proto_init()
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_kernel_network_proto_rawDesc), len(file_kernel_network_proto_rawDesc)),
			NumEnums:      6,
			NumMessages:   9,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_kernel_network_proto_goTypes,
		DependencyIndexes: file_kernel_network_proto_depIdxs,
		EnumInfos:         file_kernel_network_proto_enumTypes,
		MessageInfos:      file_kernel_network_proto_msgTypes,
	}.Build()
	File_kernel_network_proto = out.File
	file_kernel_network_proto_goTypes = nil
	file_kernel_network_proto_depIdxs = nil
}
