// Copyright 2019 Google LLC.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.22.0
// 	protoc        v3.12.3
// source: google/cloud/language/v1/language_service.proto

package language

import (
	context "context"
	reflect "reflect"
	sync "sync"

	proto "github.com/golang/protobuf/proto"
	_ "google.golang.org/genproto/googleapis/api/annotations"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
)

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)
)

// This is a compile-time assertion that a sufficiently up-to-date version
// of the legacy proto package is being used.
const _ = proto.ProtoPackageIsVersion4

// Represents the text encoding that the caller uses to process the output.
// Providing an `EncodingType` is recommended because the API provides the
// beginning offsets for various outputs, such as tokens and mentions, and
// languages that natively use different text encodings may access offsets
// differently.
type EncodingType int32

const (
	// If `EncodingType` is not specified, encoding-dependent information (such as
	// `begin_offset`) will be set at `-1`.
	EncodingType_NONE EncodingType = 0
	// Encoding-dependent information (such as `begin_offset`) is calculated based
	// on the UTF-8 encoding of the input. C++ and Go are examples of languages
	// that use this encoding natively.
	EncodingType_UTF8 EncodingType = 1
	// Encoding-dependent information (such as `begin_offset`) is calculated based
	// on the UTF-16 encoding of the input. Java and JavaScript are examples of
	// languages that use this encoding natively.
	EncodingType_UTF16 EncodingType = 2
	// Encoding-dependent information (such as `begin_offset`) is calculated based
	// on the UTF-32 encoding of the input. Python is an example of a language
	// that uses this encoding natively.
	EncodingType_UTF32 EncodingType = 3
)

// Enum value maps for EncodingType.
var (
	EncodingType_name = map[int32]string{
		0: "NONE",
		1: "UTF8",
		2: "UTF16",
		3: "UTF32",
	}
	EncodingType_value = map[string]int32{
		"NONE":  0,
		"UTF8":  1,
		"UTF16": 2,
		"UTF32": 3,
	}
)

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

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

func (EncodingType) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_language_v1_language_service_proto_enumTypes[0].Descriptor()
}

func (EncodingType) Type() protoreflect.EnumType {
	return &file_google_cloud_language_v1_language_service_proto_enumTypes[0]
}

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

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

// The document types enum.
type Document_Type int32

const (
	// The content type is not specified.
	Document_TYPE_UNSPECIFIED Document_Type = 0
	// Plain text
	Document_PLAIN_TEXT Document_Type = 1
	// HTML
	Document_HTML Document_Type = 2
)

// Enum value maps for Document_Type.
var (
	Document_Type_name = map[int32]string{
		0: "TYPE_UNSPECIFIED",
		1: "PLAIN_TEXT",
		2: "HTML",
	}
	Document_Type_value = map[string]int32{
		"TYPE_UNSPECIFIED": 0,
		"PLAIN_TEXT":       1,
		"HTML":             2,
	}
)

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

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

func (Document_Type) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_language_v1_language_service_proto_enumTypes[1].Descriptor()
}

func (Document_Type) Type() protoreflect.EnumType {
	return &file_google_cloud_language_v1_language_service_proto_enumTypes[1]
}

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

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

// The type of the entity. For most entity types, the associated metadata is a
// Wikipedia URL (`wikipedia_url`) and Knowledge Graph MID (`mid`). The table
// below lists the associated fields for entities that have different
// metadata.
type Entity_Type int32

const (
	// Unknown
	Entity_UNKNOWN Entity_Type = 0
	// Person
	Entity_PERSON Entity_Type = 1
	// Location
	Entity_LOCATION Entity_Type = 2
	// Organization
	Entity_ORGANIZATION Entity_Type = 3
	// Event
	Entity_EVENT Entity_Type = 4
	// Artwork
	Entity_WORK_OF_ART Entity_Type = 5
	// Consumer product
	Entity_CONSUMER_GOOD Entity_Type = 6
	// Other types of entities
	Entity_OTHER Entity_Type = 7
	// Phone number<br><br>
	// The metadata lists the phone number, formatted according to local
	// convention, plus whichever additional elements appear in the text:<ul>
	// <li><code>number</code> &ndash; the actual number, broken down into
	// sections as per local convention</li> <li><code>national_prefix</code>
	// &ndash; country code, if detected</li> <li><code>area_code</code> &ndash;
	// region or area code, if detected</li> <li><code>extension</code> &ndash;
	// phone extension (to be dialed after connection), if detected</li></ul>
	Entity_PHONE_NUMBER Entity_Type = 9
	// Address<br><br>
	// The metadata identifies the street number and locality plus whichever
	// additional elements appear in the text:<ul>
	// <li><code>street_number</code> &ndash; street number</li>
	// <li><code>locality</code> &ndash; city or town</li>
	// <li><code>street_name</code> &ndash; street/route name, if detected</li>
	// <li><code>postal_code</code> &ndash; postal code, if detected</li>
	// <li><code>country</code> &ndash; country, if detected</li>
	// <li><code>broad_region</code> &ndash; administrative area, such as the
	// state, if detected</li> <li><code>narrow_region</code> &ndash; smaller
	// administrative area, such as county, if detected</li>
	// <li><code>sublocality</code> &ndash; used in Asian addresses to demark a
	// district within a city, if detected</li></ul>
	Entity_ADDRESS Entity_Type = 10
	// Date<br><br>
	// The metadata identifies the components of the date:<ul>
	// <li><code>year</code> &ndash; four digit year, if detected</li>
	// <li><code>month</code> &ndash; two digit month number, if detected</li>
	// <li><code>day</code> &ndash; two digit day number, if detected</li></ul>
	Entity_DATE Entity_Type = 11
	// Number<br><br>
	// The metadata is the number itself.
	Entity_NUMBER Entity_Type = 12
	// Price<br><br>
	// The metadata identifies the <code>value</code> and <code>currency</code>.
	Entity_PRICE Entity_Type = 13
)

// Enum value maps for Entity_Type.
var (
	Entity_Type_name = map[int32]string{
		0:  "UNKNOWN",
		1:  "PERSON",
		2:  "LOCATION",
		3:  "ORGANIZATION",
		4:  "EVENT",
		5:  "WORK_OF_ART",
		6:  "CONSUMER_GOOD",
		7:  "OTHER",
		9:  "PHONE_NUMBER",
		10: "ADDRESS",
		11: "DATE",
		12: "NUMBER",
		13: "PRICE",
	}
	Entity_Type_value = map[string]int32{
		"UNKNOWN":       0,
		"PERSON":        1,
		"LOCATION":      2,
		"ORGANIZATION":  3,
		"EVENT":         4,
		"WORK_OF_ART":   5,
		"CONSUMER_GOOD": 6,
		"OTHER":         7,
		"PHONE_NUMBER":  9,
		"ADDRESS":       10,
		"DATE":          11,
		"NUMBER":        12,
		"PRICE":         13,
	}
)

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

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

func (Entity_Type) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_language_v1_language_service_proto_enumTypes[2].Descriptor()
}

func (Entity_Type) Type() protoreflect.EnumType {
	return &file_google_cloud_language_v1_language_service_proto_enumTypes[2]
}

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

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

// The part of speech tags enum.
type PartOfSpeech_Tag int32

const (
	// Unknown
	PartOfSpeech_UNKNOWN PartOfSpeech_Tag = 0
	// Adjective
	PartOfSpeech_ADJ PartOfSpeech_Tag = 1
	// Adposition (preposition and postposition)
	PartOfSpeech_ADP PartOfSpeech_Tag = 2
	// Adverb
	PartOfSpeech_ADV PartOfSpeech_Tag = 3
	// Conjunction
	PartOfSpeech_CONJ PartOfSpeech_Tag = 4
	// Determiner
	PartOfSpeech_DET PartOfSpeech_Tag = 5
	// Noun (common and proper)
	PartOfSpeech_NOUN PartOfSpeech_Tag = 6
	// Cardinal number
	PartOfSpeech_NUM PartOfSpeech_Tag = 7
	// Pronoun
	PartOfSpeech_PRON PartOfSpeech_Tag = 8
	// Particle or other function word
	PartOfSpeech_PRT PartOfSpeech_Tag = 9
	// Punctuation
	PartOfSpeech_PUNCT PartOfSpeech_Tag = 10
	// Verb (all tenses and modes)
	PartOfSpeech_VERB PartOfSpeech_Tag = 11
	// Other: foreign words, typos, abbreviations
	PartOfSpeech_X PartOfSpeech_Tag = 12
	// Affix
	PartOfSpeech_AFFIX PartOfSpeech_Tag = 13
)

// Enum value maps for PartOfSpeech_Tag.
var (
	PartOfSpeech_Tag_name = map[int32]string{
		0:  "UNKNOWN",
		1:  "ADJ",
		2:  "ADP",
		3:  "ADV",
		4:  "CONJ",
		5:  "DET",
		6:  "NOUN",
		7:  "NUM",
		8:  "PRON",
		9:  "PRT",
		10: "PUNCT",
		11: "VERB",
		12: "X",
		13: "AFFIX",
	}
	PartOfSpeech_Tag_value = map[string]int32{
		"UNKNOWN": 0,
		"ADJ":     1,
		"ADP":     2,
		"ADV":     3,
		"CONJ":    4,
		"DET":     5,
		"NOUN":    6,
		"NUM":     7,
		"PRON":    8,
		"PRT":     9,
		"PUNCT":   10,
		"VERB":    11,
		"X":       12,
		"AFFIX":   13,
	}
)

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

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

func (PartOfSpeech_Tag) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_language_v1_language_service_proto_enumTypes[3].Descriptor()
}

func (PartOfSpeech_Tag) Type() protoreflect.EnumType {
	return &file_google_cloud_language_v1_language_service_proto_enumTypes[3]
}

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

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

// The characteristic of a verb that expresses time flow during an event.
type PartOfSpeech_Aspect int32

const (
	// Aspect is not applicable in the analyzed language or is not predicted.
	PartOfSpeech_ASPECT_UNKNOWN PartOfSpeech_Aspect = 0
	// Perfective
	PartOfSpeech_PERFECTIVE PartOfSpeech_Aspect = 1
	// Imperfective
	PartOfSpeech_IMPERFECTIVE PartOfSpeech_Aspect = 2
	// Progressive
	PartOfSpeech_PROGRESSIVE PartOfSpeech_Aspect = 3
)

// Enum value maps for PartOfSpeech_Aspect.
var (
	PartOfSpeech_Aspect_name = map[int32]string{
		0: "ASPECT_UNKNOWN",
		1: "PERFECTIVE",
		2: "IMPERFECTIVE",
		3: "PROGRESSIVE",
	}
	PartOfSpeech_Aspect_value = map[string]int32{
		"ASPECT_UNKNOWN": 0,
		"PERFECTIVE":     1,
		"IMPERFECTIVE":   2,
		"PROGRESSIVE":    3,
	}
)

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

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

func (PartOfSpeech_Aspect) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_language_v1_language_service_proto_enumTypes[4].Descriptor()
}

func (PartOfSpeech_Aspect) Type() protoreflect.EnumType {
	return &file_google_cloud_language_v1_language_service_proto_enumTypes[4]
}

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

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

// The grammatical function performed by a noun or pronoun in a phrase,
// clause, or sentence. In some languages, other parts of speech, such as
// adjective and determiner, take case inflection in agreement with the noun.
type PartOfSpeech_Case int32

const (
	// Case is not applicable in the analyzed language or is not predicted.
	PartOfSpeech_CASE_UNKNOWN PartOfSpeech_Case = 0
	// Accusative
	PartOfSpeech_ACCUSATIVE PartOfSpeech_Case = 1
	// Adverbial
	PartOfSpeech_ADVERBIAL PartOfSpeech_Case = 2
	// Complementive
	PartOfSpeech_COMPLEMENTIVE PartOfSpeech_Case = 3
	// Dative
	PartOfSpeech_DATIVE PartOfSpeech_Case = 4
	// Genitive
	PartOfSpeech_GENITIVE PartOfSpeech_Case = 5
	// Instrumental
	PartOfSpeech_INSTRUMENTAL PartOfSpeech_Case = 6
	// Locative
	PartOfSpeech_LOCATIVE PartOfSpeech_Case = 7
	// Nominative
	PartOfSpeech_NOMINATIVE PartOfSpeech_Case = 8
	// Oblique
	PartOfSpeech_OBLIQUE PartOfSpeech_Case = 9
	// Partitive
	PartOfSpeech_PARTITIVE PartOfSpeech_Case = 10
	// Prepositional
	PartOfSpeech_PREPOSITIONAL PartOfSpeech_Case = 11
	// Reflexive
	PartOfSpeech_REFLEXIVE_CASE PartOfSpeech_Case = 12
	// Relative
	PartOfSpeech_RELATIVE_CASE PartOfSpeech_Case = 13
	// Vocative
	PartOfSpeech_VOCATIVE PartOfSpeech_Case = 14
)

// Enum value maps for PartOfSpeech_Case.
var (
	PartOfSpeech_Case_name = map[int32]string{
		0:  "CASE_UNKNOWN",
		1:  "ACCUSATIVE",
		2:  "ADVERBIAL",
		3:  "COMPLEMENTIVE",
		4:  "DATIVE",
		5:  "GENITIVE",
		6:  "INSTRUMENTAL",
		7:  "LOCATIVE",
		8:  "NOMINATIVE",
		9:  "OBLIQUE",
		10: "PARTITIVE",
		11: "PREPOSITIONAL",
		12: "REFLEXIVE_CASE",
		13: "RELATIVE_CASE",
		14: "VOCATIVE",
	}
	PartOfSpeech_Case_value = map[string]int32{
		"CASE_UNKNOWN":   0,
		"ACCUSATIVE":     1,
		"ADVERBIAL":      2,
		"COMPLEMENTIVE":  3,
		"DATIVE":         4,
		"GENITIVE":       5,
		"INSTRUMENTAL":   6,
		"LOCATIVE":       7,
		"NOMINATIVE":     8,
		"OBLIQUE":        9,
		"PARTITIVE":      10,
		"PREPOSITIONAL":  11,
		"REFLEXIVE_CASE": 12,
		"RELATIVE_CASE":  13,
		"VOCATIVE":       14,
	}
)

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

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

func (PartOfSpeech_Case) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_language_v1_language_service_proto_enumTypes[5].Descriptor()
}

func (PartOfSpeech_Case) Type() protoreflect.EnumType {
	return &file_google_cloud_language_v1_language_service_proto_enumTypes[5]
}

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

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

// Depending on the language, Form can be categorizing different forms of
// verbs, adjectives, adverbs, etc. For example, categorizing inflected
// endings of verbs and adjectives or distinguishing between short and long
// forms of adjectives and participles
type PartOfSpeech_Form int32

const (
	// Form is not applicable in the analyzed language or is not predicted.
	PartOfSpeech_FORM_UNKNOWN PartOfSpeech_Form = 0
	// Adnomial
	PartOfSpeech_ADNOMIAL PartOfSpeech_Form = 1
	// Auxiliary
	PartOfSpeech_AUXILIARY PartOfSpeech_Form = 2
	// Complementizer
	PartOfSpeech_COMPLEMENTIZER PartOfSpeech_Form = 3
	// Final ending
	PartOfSpeech_FINAL_ENDING PartOfSpeech_Form = 4
	// Gerund
	PartOfSpeech_GERUND PartOfSpeech_Form = 5
	// Realis
	PartOfSpeech_REALIS PartOfSpeech_Form = 6
	// Irrealis
	PartOfSpeech_IRREALIS PartOfSpeech_Form = 7
	// Short form
	PartOfSpeech_SHORT PartOfSpeech_Form = 8
	// Long form
	PartOfSpeech_LONG PartOfSpeech_Form = 9
	// Order form
	PartOfSpeech_ORDER PartOfSpeech_Form = 10
	// Specific form
	PartOfSpeech_SPECIFIC PartOfSpeech_Form = 11
)

// Enum value maps for PartOfSpeech_Form.
var (
	PartOfSpeech_Form_name = map[int32]string{
		0:  "FORM_UNKNOWN",
		1:  "ADNOMIAL",
		2:  "AUXILIARY",
		3:  "COMPLEMENTIZER",
		4:  "FINAL_ENDING",
		5:  "GERUND",
		6:  "REALIS",
		7:  "IRREALIS",
		8:  "SHORT",
		9:  "LONG",
		10: "ORDER",
		11: "SPECIFIC",
	}
	PartOfSpeech_Form_value = map[string]int32{
		"FORM_UNKNOWN":   0,
		"ADNOMIAL":       1,
		"AUXILIARY":      2,
		"COMPLEMENTIZER": 3,
		"FINAL_ENDING":   4,
		"GERUND":         5,
		"REALIS":         6,
		"IRREALIS":       7,
		"SHORT":          8,
		"LONG":           9,
		"ORDER":          10,
		"SPECIFIC":       11,
	}
)

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

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

func (PartOfSpeech_Form) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_language_v1_language_service_proto_enumTypes[6].Descriptor()
}

func (PartOfSpeech_Form) Type() protoreflect.EnumType {
	return &file_google_cloud_language_v1_language_service_proto_enumTypes[6]
}

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

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

// Gender classes of nouns reflected in the behaviour of associated words.
type PartOfSpeech_Gender int32

const (
	// Gender is not applicable in the analyzed language or is not predicted.
	PartOfSpeech_GENDER_UNKNOWN PartOfSpeech_Gender = 0
	// Feminine
	PartOfSpeech_FEMININE PartOfSpeech_Gender = 1
	// Masculine
	PartOfSpeech_MASCULINE PartOfSpeech_Gender = 2
	// Neuter
	PartOfSpeech_NEUTER PartOfSpeech_Gender = 3
)

// Enum value maps for PartOfSpeech_Gender.
var (
	PartOfSpeech_Gender_name = map[int32]string{
		0: "GENDER_UNKNOWN",
		1: "FEMININE",
		2: "MASCULINE",
		3: "NEUTER",
	}
	PartOfSpeech_Gender_value = map[string]int32{
		"GENDER_UNKNOWN": 0,
		"FEMININE":       1,
		"MASCULINE":      2,
		"NEUTER":         3,
	}
)

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

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

func (PartOfSpeech_Gender) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_language_v1_language_service_proto_enumTypes[7].Descriptor()
}

func (PartOfSpeech_Gender) Type() protoreflect.EnumType {
	return &file_google_cloud_language_v1_language_service_proto_enumTypes[7]
}

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

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

// The grammatical feature of verbs, used for showing modality and attitude.
type PartOfSpeech_Mood int32

const (
	// Mood is not applicable in the analyzed language or is not predicted.
	PartOfSpeech_MOOD_UNKNOWN PartOfSpeech_Mood = 0
	// Conditional
	PartOfSpeech_CONDITIONAL_MOOD PartOfSpeech_Mood = 1
	// Imperative
	PartOfSpeech_IMPERATIVE PartOfSpeech_Mood = 2
	// Indicative
	PartOfSpeech_INDICATIVE PartOfSpeech_Mood = 3
	// Interrogative
	PartOfSpeech_INTERROGATIVE PartOfSpeech_Mood = 4
	// Jussive
	PartOfSpeech_JUSSIVE PartOfSpeech_Mood = 5
	// Subjunctive
	PartOfSpeech_SUBJUNCTIVE PartOfSpeech_Mood = 6
)

// Enum value maps for PartOfSpeech_Mood.
var (
	PartOfSpeech_Mood_name = map[int32]string{
		0: "MOOD_UNKNOWN",
		1: "CONDITIONAL_MOOD",
		2: "IMPERATIVE",
		3: "INDICATIVE",
		4: "INTERROGATIVE",
		5: "JUSSIVE",
		6: "SUBJUNCTIVE",
	}
	PartOfSpeech_Mood_value = map[string]int32{
		"MOOD_UNKNOWN":     0,
		"CONDITIONAL_MOOD": 1,
		"IMPERATIVE":       2,
		"INDICATIVE":       3,
		"INTERROGATIVE":    4,
		"JUSSIVE":          5,
		"SUBJUNCTIVE":      6,
	}
)

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

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

func (PartOfSpeech_Mood) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_language_v1_language_service_proto_enumTypes[8].Descriptor()
}

func (PartOfSpeech_Mood) Type() protoreflect.EnumType {
	return &file_google_cloud_language_v1_language_service_proto_enumTypes[8]
}

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

// Deprecated: Use PartOfSpeech_Mood.Descriptor instead.
func (PartOfSpeech_Mood) EnumDescriptor() ([]byte, []int) {
	return file_google_cloud_language_v1_language_service_proto_rawDescGZIP(), []int{5, 5}
}

// Count distinctions.
type PartOfSpeech_Number int32

const (
	// Number is not applicable in the analyzed language or is not predicted.
	PartOfSpeech_NUMBER_UNKNOWN PartOfSpeech_Number = 0
	// Singular
	PartOfSpeech_SINGULAR PartOfSpeech_Number = 1
	// Plural
	PartOfSpeech_PLURAL PartOfSpeech_Number = 2
	// Dual
	PartOfSpeech_DUAL PartOfSpeech_Number = 3
)

// Enum value maps for PartOfSpeech_Number.
var (
	PartOfSpeech_Number_name = map[int32]string{
		0: "NUMBER_UNKNOWN",
		1: "SINGULAR",
		2: "PLURAL",
		3: "DUAL",
	}
	PartOfSpeech_Number_value = map[string]int32{
		"NUMBER_UNKNOWN": 0,
		"SINGULAR":       1,
		"PLURAL":         2,
		"DUAL":           3,
	}
)

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

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

func (PartOfSpeech_Number) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_language_v1_language_service_proto_enumTypes[9].Descriptor()
}

func (PartOfSpeech_Number) Type() protoreflect.EnumType {
	return &file_google_cloud_language_v1_language_service_proto_enumTypes[9]
}

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

// Deprecated: Use PartOfSpeech_Number.Descriptor instead.
func (PartOfSpeech_Number) EnumDescriptor() ([]byte, []int) {
	return file_google_cloud_language_v1_language_service_proto_rawDescGZIP(), []int{5, 6}
}

// The distinction between the speaker, second person, third person, etc.
type PartOfSpeech_Person int32

const (
	// Person is not applicable in the analyzed language or is not predicted.
	PartOfSpeech_PERSON_UNKNOWN PartOfSpeech_Person = 0
	// First
	PartOfSpeech_FIRST PartOfSpeech_Person = 1
	// Second
	PartOfSpeech_SECOND PartOfSpeech_Person = 2
	// Third
	PartOfSpeech_THIRD PartOfSpeech_Person = 3
	// Reflexive
	PartOfSpeech_REFLEXIVE_PERSON PartOfSpeech_Person = 4
)

// Enum value maps for PartOfSpeech_Person.
var (
	PartOfSpeech_Person_name = map[int32]string{
		0: "PERSON_UNKNOWN",
		1: "FIRST",
		2: "SECOND",
		3: "THIRD",
		4: "REFLEXIVE_PERSON",
	}
	PartOfSpeech_Person_value = map[string]int32{
		"PERSON_UNKNOWN":   0,
		"FIRST":            1,
		"SECOND":           2,
		"THIRD":            3,
		"REFLEXIVE_PERSON": 4,
	}
)

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

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

func (PartOfSpeech_Person) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_language_v1_language_service_proto_enumTypes[10].Descriptor()
}

func (PartOfSpeech_Person) Type() protoreflect.EnumType {
	return &file_google_cloud_language_v1_language_service_proto_enumTypes[10]
}

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

// Deprecated: Use PartOfSpeech_Person.Descriptor instead.
func (PartOfSpeech_Person) EnumDescriptor() ([]byte, []int) {
	return file_google_cloud_language_v1_language_service_proto_rawDescGZIP(), []int{5, 7}
}

// This category shows if the token is part of a proper name.
type PartOfSpeech_Proper int32

const (
	// Proper is not applicable in the analyzed language or is not predicted.
	PartOfSpeech_PROPER_UNKNOWN PartOfSpeech_Proper = 0
	// Proper
	PartOfSpeech_PROPER PartOfSpeech_Proper = 1
	// Not proper
	PartOfSpeech_NOT_PROPER PartOfSpeech_Proper = 2
)

// Enum value maps for PartOfSpeech_Proper.
var (
	PartOfSpeech_Proper_name = map[int32]string{
		0: "PROPER_UNKNOWN",
		1: "PROPER",
		2: "NOT_PROPER",
	}
	PartOfSpeech_Proper_value = map[string]int32{
		"PROPER_UNKNOWN": 0,
		"PROPER":         1,
		"NOT_PROPER":     2,
	}
)

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

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

func (PartOfSpeech_Proper) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_language_v1_language_service_proto_enumTypes[11].Descriptor()
}

func (PartOfSpeech_Proper) Type() protoreflect.EnumType {
	return &file_google_cloud_language_v1_language_service_proto_enumTypes[11]
}

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

// Deprecated: Use PartOfSpeech_Proper.Descriptor instead.
func (PartOfSpeech_Proper) EnumDescriptor() ([]byte, []int) {
	return file_google_cloud_language_v1_language_service_proto_rawDescGZIP(), []int{5, 8}
}

// Reciprocal features of a pronoun.
type PartOfSpeech_Reciprocity int32

const (
	// Reciprocity is not applicable in the analyzed language or is not
	// predicted.
	PartOfSpeech_RECIPROCITY_UNKNOWN PartOfSpeech_Reciprocity = 0
	// Reciprocal
	PartOfSpeech_RECIPROCAL PartOfSpeech_Reciprocity = 1
	// Non-reciprocal
	PartOfSpeech_NON_RECIPROCAL PartOfSpeech_Reciprocity = 2
)

// Enum value maps for PartOfSpeech_Reciprocity.
var (
	PartOfSpeech_Reciprocity_name = map[int32]string{
		0: "RECIPROCITY_UNKNOWN",
		1: "RECIPROCAL",
		2: "NON_RECIPROCAL",
	}
	PartOfSpeech_Reciprocity_value = map[string]int32{
		"RECIPROCITY_UNKNOWN": 0,
		"RECIPROCAL":          1,
		"NON_RECIPROCAL":      2,
	}
)

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

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

func (PartOfSpeech_Reciprocity) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_language_v1_language_service_proto_enumTypes[12].Descriptor()
}

func (PartOfSpeech_Reciprocity) Type() protoreflect.EnumType {
	return &file_google_cloud_language_v1_language_service_proto_enumTypes[12]
}

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

// Deprecated: Use PartOfSpeech_Reciprocity.Descriptor instead.
func (PartOfSpeech_Reciprocity) EnumDescriptor() ([]byte, []int) {
	return file_google_cloud_language_v1_language_service_proto_rawDescGZIP(), []int{5, 9}
}

// Time reference.
type PartOfSpeech_Tense int32

const (
	// Tense is not applicable in the analyzed language or is not predicted.
	PartOfSpeech_TENSE_UNKNOWN PartOfSpeech_Tense = 0
	// Conditional
	PartOfSpeech_CONDITIONAL_TENSE PartOfSpeech_Tense = 1
	// Future
	PartOfSpeech_FUTURE PartOfSpeech_Tense = 2
	// Past
	PartOfSpeech_PAST PartOfSpeech_Tense = 3
	// Present
	PartOfSpeech_PRESENT PartOfSpeech_Tense = 4
	// Imperfect
	PartOfSpeech_IMPERFECT PartOfSpeech_Tense = 5
	// Pluperfect
	PartOfSpeech_PLUPERFECT PartOfSpeech_Tense = 6
)

// Enum value maps for PartOfSpeech_Tense.
var (
	PartOfSpeech_Tense_name = map[int32]string{
		0: "TENSE_UNKNOWN",
		1: "CONDITIONAL_TENSE",
		2: "FUTURE",
		3: "PAST",
		4: "PRESENT",
		5: "IMPERFECT",
		6: "PLUPERFECT",
	}
	PartOfSpeech_Tense_value = map[string]int32{
		"TENSE_UNKNOWN":     0,
		"CONDITIONAL_TENSE": 1,
		"FUTURE":            2,
		"PAST":              3,
		"PRESENT":           4,
		"IMPERFECT":         5,
		"PLUPERFECT":        6,
	}
)

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

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

func (PartOfSpeech_Tense) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_language_v1_language_service_proto_enumTypes[13].Descriptor()
}

func (PartOfSpeech_Tense) Type() protoreflect.EnumType {
	return &file_google_cloud_language_v1_language_service_proto_enumTypes[13]
}

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

// Deprecated: Use PartOfSpeech_Tense.Descriptor instead.
func (PartOfSpeech_Tense) EnumDescriptor() ([]byte, []int) {
	return file_google_cloud_language_v1_language_service_proto_rawDescGZIP(), []int{5, 10}
}

// The relationship between the action that a verb expresses and the
// participants identified by its arguments.
type PartOfSpeech_Voice int32

const (
	// Voice is not applicable in the analyzed language or is not predicted.
	PartOfSpeech_VOICE_UNKNOWN PartOfSpeech_Voice = 0
	// Active
	PartOfSpeech_ACTIVE PartOfSpeech_Voice = 1
	// Causative
	PartOfSpeech_CAUSATIVE PartOfSpeech_Voice = 2
	// Passive
	PartOfSpeech_PASSIVE PartOfSpeech_Voice = 3
)

// Enum value maps for PartOfSpeech_Voice.
var (
	PartOfSpeech_Voice_name = map[int32]string{
		0: "VOICE_UNKNOWN",
		1: "ACTIVE",
		2: "CAUSATIVE",
		3: "PASSIVE",
	}
	PartOfSpeech_Voice_value = map[string]int32{
		"VOICE_UNKNOWN": 0,
		"ACTIVE":        1,
		"CAUSATIVE":     2,
		"PASSIVE":       3,
	}
)

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

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

func (PartOfSpeech_Voice) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_language_v1_language_service_proto_enumTypes[14].Descriptor()
}

func (PartOfSpeech_Voice) Type() protoreflect.EnumType {
	return &file_google_cloud_language_v1_language_service_proto_enumTypes[14]
}

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

// Deprecated: Use PartOfSpeech_Voice.Descriptor instead.
func (PartOfSpeech_Voice) EnumDescriptor() ([]byte, []int) {
	return file_google_cloud_language_v1_language_service_proto_rawDescGZIP(), []int{5, 11}
}

// The parse label enum for the token.
type DependencyEdge_Label int32

const (
	// Unknown
	DependencyEdge_UNKNOWN DependencyEdge_Label = 0
	// Abbreviation modifier
	DependencyEdge_ABBREV DependencyEdge_Label = 1
	// Adjectival complement
	DependencyEdge_ACOMP DependencyEdge_Label = 2
	// Adverbial clause modifier
	DependencyEdge_ADVCL DependencyEdge_Label = 3
	// Adverbial modifier
	DependencyEdge_ADVMOD DependencyEdge_Label = 4
	// Adjectival modifier of an NP
	DependencyEdge_AMOD DependencyEdge_Label = 5
	// Appositional modifier of an NP
	DependencyEdge_APPOS DependencyEdge_Label = 6
	// Attribute dependent of a copular verb
	DependencyEdge_ATTR DependencyEdge_Label = 7
	// Auxiliary (non-main) verb
	DependencyEdge_AUX DependencyEdge_Label = 8
	// Passive auxiliary
	DependencyEdge_AUXPASS DependencyEdge_Label = 9
	// Coordinating conjunction
	DependencyEdge_CC DependencyEdge_Label = 10
	// Clausal complement of a verb or adjective
	DependencyEdge_CCOMP DependencyEdge_Label = 11
	// Conjunct
	DependencyEdge_CONJ DependencyEdge_Label = 12
	// Clausal subject
	DependencyEdge_CSUBJ DependencyEdge_Label = 13
	// Clausal passive subject
	DependencyEdge_CSUBJPASS DependencyEdge_Label = 14
	// Dependency (unable to determine)
	DependencyEdge_DEP DependencyEdge_Label = 15
	// Determiner
	DependencyEdge_DET DependencyEdge_Label = 16
	// Discourse
	DependencyEdge_DISCOURSE DependencyEdge_Label = 17
	// Direct object
	DependencyEdge_DOBJ DependencyEdge_Label = 18
	// Expletive
	DependencyEdge_EXPL DependencyEdge_Label = 19
	// Goes with (part of a word in a text not well edited)
	DependencyEdge_GOESWITH DependencyEdge_Label = 20
	// Indirect object
	DependencyEdge_IOBJ DependencyEdge_Label = 21
	// Marker (word introducing a subordinate clause)
	DependencyEdge_MARK DependencyEdge_Label = 22
	// Multi-word expression
	DependencyEdge_MWE DependencyEdge_Label = 23
	// Multi-word verbal expression
	DependencyEdge_MWV DependencyEdge_Label = 24
	// Negation modifier
	DependencyEdge_NEG DependencyEdge_Label = 25
	// Noun compound modifier
	DependencyEdge_NN DependencyEdge_Label = 26
	// Noun phrase used as an adverbial modifier
	DependencyEdge_NPADVMOD DependencyEdge_Label = 27
	// Nominal subject
	DependencyEdge_NSUBJ DependencyEdge_Label = 28
	// Passive nominal subject
	DependencyEdge_NSUBJPASS DependencyEdge_Label = 29
	// Numeric modifier of a noun
	DependencyEdge_NUM DependencyEdge_Label = 30
	// Element of compound number
	DependencyEdge_NUMBER DependencyEdge_Label = 31
	// Punctuation mark
	DependencyEdge_P DependencyEdge_Label = 32
	// Parataxis relation
	DependencyEdge_PARATAXIS DependencyEdge_Label = 33
	// Participial modifier
	DependencyEdge_PARTMOD DependencyEdge_Label = 34
	// The complement of a preposition is a clause
	DependencyEdge_PCOMP DependencyEdge_Label = 35
	// Object of a preposition
	DependencyEdge_POBJ DependencyEdge_Label = 36
	// Possession modifier
	DependencyEdge_POSS DependencyEdge_Label = 37
	// Postverbal negative particle
	DependencyEdge_POSTNEG DependencyEdge_Label = 38
	// Predicate complement
	DependencyEdge_PRECOMP DependencyEdge_Label = 39
	// Preconjunt
	DependencyEdge_PRECONJ DependencyEdge_Label = 40
	// Predeterminer
	DependencyEdge_PREDET DependencyEdge_Label = 41
	// Prefix
	DependencyEdge_PREF DependencyEdge_Label = 42
	// Prepositional modifier
	DependencyEdge_PREP DependencyEdge_Label = 43
	// The relationship between a verb and verbal morpheme
	DependencyEdge_PRONL DependencyEdge_Label = 44
	// Particle
	DependencyEdge_PRT DependencyEdge_Label = 45
	// Associative or possessive marker
	DependencyEdge_PS DependencyEdge_Label = 46
	// Quantifier phrase modifier
	DependencyEdge_QUANTMOD DependencyEdge_Label = 47
	// Relative clause modifier
	DependencyEdge_RCMOD DependencyEdge_Label = 48
	// Complementizer in relative clause
	DependencyEdge_RCMODREL DependencyEdge_Label = 49
	// Ellipsis without a preceding predicate
	DependencyEdge_RDROP DependencyEdge_Label = 50
	// Referent
	DependencyEdge_REF DependencyEdge_Label = 51
	// Remnant
	DependencyEdge_REMNANT DependencyEdge_Label = 52
	// Reparandum
	DependencyEdge_REPARANDUM DependencyEdge_Label = 53
	// Root
	DependencyEdge_ROOT DependencyEdge_Label = 54
	// Suffix specifying a unit of number
	DependencyEdge_SNUM DependencyEdge_Label = 55
	// Suffix
	DependencyEdge_SUFF DependencyEdge_Label = 56
	// Temporal modifier
	DependencyEdge_TMOD DependencyEdge_Label = 57
	// Topic marker
	DependencyEdge_TOPIC DependencyEdge_Label = 58
	// Clause headed by an infinite form of the verb that modifies a noun
	DependencyEdge_VMOD DependencyEdge_Label = 59
	// Vocative
	DependencyEdge_VOCATIVE DependencyEdge_Label = 60
	// Open clausal complement
	DependencyEdge_XCOMP DependencyEdge_Label = 61
	// Name suffix
	DependencyEdge_SUFFIX DependencyEdge_Label = 62
	// Name title
	DependencyEdge_TITLE DependencyEdge_Label = 63
	// Adverbial phrase modifier
	DependencyEdge_ADVPHMOD DependencyEdge_Label = 64
	// Causative auxiliary
	DependencyEdge_AUXCAUS DependencyEdge_Label = 65
	// Helper auxiliary
	DependencyEdge_AUXVV DependencyEdge_Label = 66
	// Rentaishi (Prenominal modifier)
	DependencyEdge_DTMOD DependencyEdge_Label = 67
	// Foreign words
	DependencyEdge_FOREIGN DependencyEdge_Label = 68
	// Keyword
	DependencyEdge_KW DependencyEdge_Label = 69
	// List for chains of comparable items
	DependencyEdge_LIST DependencyEdge_Label = 70
	// Nominalized clause
	DependencyEdge_NOMC DependencyEdge_Label = 71
	// Nominalized clausal subject
	DependencyEdge_NOMCSUBJ DependencyEdge_Label = 72
	// Nominalized clausal passive
	DependencyEdge_NOMCSUBJPASS DependencyEdge_Label = 73
	// Compound of numeric modifier
	DependencyEdge_NUMC DependencyEdge_Label = 74
	// Copula
	DependencyEdge_COP DependencyEdge_Label = 75
	// Dislocated relation (for fronted/topicalized elements)
	DependencyEdge_DISLOCATED DependencyEdge_Label = 76
	// Aspect marker
	DependencyEdge_ASP DependencyEdge_Label = 77
	// Genitive modifier
	DependencyEdge_GMOD DependencyEdge_Label = 78
	// Genitive object
	DependencyEdge_GOBJ DependencyEdge_Label = 79
	// Infinitival modifier
	DependencyEdge_INFMOD DependencyEdge_Label = 80
	// Measure
	DependencyEdge_MES DependencyEdge_Label = 81
	// Nominal complement of a noun
	DependencyEdge_NCOMP DependencyEdge_Label = 82
)

// Enum value maps for DependencyEdge_Label.
var (
	DependencyEdge_Label_name = map[int32]string{
		0:  "UNKNOWN",
		1:  "ABBREV",
		2:  "ACOMP",
		3:  "ADVCL",
		4:  "ADVMOD",
		5:  "AMOD",
		6:  "APPOS",
		7:  "ATTR",
		8:  "AUX",
		9:  "AUXPASS",
		10: "CC",
		11: "CCOMP",
		12: "CONJ",
		13: "CSUBJ",
		14: "CSUBJPASS",
		15: "DEP",
		16: "DET",
		17: "DISCOURSE",
		18: "DOBJ",
		19: "EXPL",
		20: "GOESWITH",
		21: "IOBJ",
		22: "MARK",
		23: "MWE",
		24: "MWV",
		25: "NEG",
		26: "NN",
		27: "NPADVMOD",
		28: "NSUBJ",
		29: "NSUBJPASS",
		30: "NUM",
		31: "NUMBER",
		32: "P",
		33: "PARATAXIS",
		34: "PARTMOD",
		35: "PCOMP",
		36: "POBJ",
		37: "POSS",
		38: "POSTNEG",
		39: "PRECOMP",
		40: "PRECONJ",
		41: "PREDET",
		42: "PREF",
		43: "PREP",
		44: "PRONL",
		45: "PRT",
		46: "PS",
		47: "QUANTMOD",
		48: "RCMOD",
		49: "RCMODREL",
		50: "RDROP",
		51: "REF",
		52: "REMNANT",
		53: "REPARANDUM",
		54: "ROOT",
		55: "SNUM",
		56: "SUFF",
		57: "TMOD",
		58: "TOPIC",
		59: "VMOD",
		60: "VOCATIVE",
		61: "XCOMP",
		62: "SUFFIX",
		63: "TITLE",
		64: "ADVPHMOD",
		65: "AUXCAUS",
		66: "AUXVV",
		67: "DTMOD",
		68: "FOREIGN",
		69: "KW",
		70: "LIST",
		71: "NOMC",
		72: "NOMCSUBJ",
		73: "NOMCSUBJPASS",
		74: "NUMC",
		75: "COP",
		76: "DISLOCATED",
		77: "ASP",
		78: "GMOD",
		79: "GOBJ",
		80: "INFMOD",
		81: "MES",
		82: "NCOMP",
	}
	DependencyEdge_Label_value = map[string]int32{
		"UNKNOWN":      0,
		"ABBREV":       1,
		"ACOMP":        2,
		"ADVCL":        3,
		"ADVMOD":       4,
		"AMOD":         5,
		"APPOS":        6,
		"ATTR":         7,
		"AUX":          8,
		"AUXPASS":      9,
		"CC":           10,
		"CCOMP":        11,
		"CONJ":         12,
		"CSUBJ":        13,
		"CSUBJPASS":    14,
		"DEP":          15,
		"DET":          16,
		"DISCOURSE":    17,
		"DOBJ":         18,
		"EXPL":         19,
		"GOESWITH":     20,
		"IOBJ":         21,
		"MARK":         22,
		"MWE":          23,
		"MWV":          24,
		"NEG":          25,
		"NN":           26,
		"NPADVMOD":     27,
		"NSUBJ":        28,
		"NSUBJPASS":    29,
		"NUM":          30,
		"NUMBER":       31,
		"P":            32,
		"PARATAXIS":    33,
		"PARTMOD":      34,
		"PCOMP":        35,
		"POBJ":         36,
		"POSS":         37,
		"POSTNEG":      38,
		"PRECOMP":      39,
		"PRECONJ":      40,
		"PREDET":       41,
		"PREF":         42,
		"PREP":         43,
		"PRONL":        44,
		"PRT":          45,
		"PS":           46,
		"QUANTMOD":     47,
		"RCMOD":        48,
		"RCMODREL":     49,
		"RDROP":        50,
		"REF":          51,
		"REMNANT":      52,
		"REPARANDUM":   53,
		"ROOT":         54,
		"SNUM":         55,
		"SUFF":         56,
		"TMOD":         57,
		"TOPIC":        58,
		"VMOD":         59,
		"VOCATIVE":     60,
		"XCOMP":        61,
		"SUFFIX":       62,
		"TITLE":        63,
		"ADVPHMOD":     64,
		"AUXCAUS":      65,
		"AUXVV":        66,
		"DTMOD":        67,
		"FOREIGN":      68,
		"KW":           69,
		"LIST":         70,
		"NOMC":         71,
		"NOMCSUBJ":     72,
		"NOMCSUBJPASS": 73,
		"NUMC":         74,
		"COP":          75,
		"DISLOCATED":   76,
		"ASP":          77,
		"GMOD":         78,
		"GOBJ":         79,
		"INFMOD":       80,
		"MES":          81,
		"NCOMP":        82,
	}
)

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

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

func (DependencyEdge_Label) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_language_v1_language_service_proto_enumTypes[15].Descriptor()
}

func (DependencyEdge_Label) Type() protoreflect.EnumType {
	return &file_google_cloud_language_v1_language_service_proto_enumTypes[15]
}

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

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

// The supported types of mentions.
type EntityMention_Type int32

const (
	// Unknown
	EntityMention_TYPE_UNKNOWN EntityMention_Type = 0
	// Proper name
	EntityMention_PROPER EntityMention_Type = 1
	// Common noun (or noun compound)
	EntityMention_COMMON EntityMention_Type = 2
)

// Enum value maps for EntityMention_Type.
var (
	EntityMention_Type_name = map[int32]string{
		0: "TYPE_UNKNOWN",
		1: "PROPER",
		2: "COMMON",
	}
	EntityMention_Type_value = map[string]int32{
		"TYPE_UNKNOWN": 0,
		"PROPER":       1,
		"COMMON":       2,
	}
)

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

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

func (EntityMention_Type) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_language_v1_language_service_proto_enumTypes[16].Descriptor()
}

func (EntityMention_Type) Type() protoreflect.EnumType {
	return &file_google_cloud_language_v1_language_service_proto_enumTypes[16]
}

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

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

// ################################################################ #
//
// Represents the input to API methods.
type Document struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Required. If the type is not set or is `TYPE_UNSPECIFIED`,
	// returns an `INVALID_ARGUMENT` error.
	Type Document_Type `protobuf:"varint,1,opt,name=type,proto3,enum=google.cloud.language.v1.Document_Type" json:"type,omitempty"`
	// The source of the document: a string containing the content or a
	// Google Cloud Storage URI.
	//
	// Types that are assignable to Source:
	//	*Document_Content
	//	*Document_GcsContentUri
	Source isDocument_Source `protobuf_oneof:"source"`
	// The language of the document (if not specified, the language is
	// automatically detected). Both ISO and BCP-47 language codes are
	// accepted.<br>
	// [Language
	// Support](https://cloud.google.com/natural-language/docs/languages) lists
	// currently supported languages for each API method. If the language (either
	// specified by the caller or automatically detected) is not supported by the
	// called API method, an `INVALID_ARGUMENT` error is returned.
	Language string `protobuf:"bytes,4,opt,name=language,proto3" json:"language,omitempty"`
}

func (x *Document) Reset() {
	*x = Document{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_language_v1_language_service_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Document) ProtoMessage() {}

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

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

func (x *Document) GetType() Document_Type {
	if x != nil {
		return x.Type
	}
	return Document_TYPE_UNSPECIFIED
}

func (m *Document) GetSource() isDocument_Source {
	if m != nil {
		return m.Source
	}
	return nil
}

func (x *Document) GetContent() string {
	if x, ok := x.GetSource().(*Document_Content); ok {
		return x.Content
	}
	return ""
}

func (x *Document) GetGcsContentUri() string {
	if x, ok := x.GetSource().(*Document_GcsContentUri); ok {
		return x.GcsContentUri
	}
	return ""
}

func (x *Document) GetLanguage() string {
	if x != nil {
		return x.Language
	}
	return ""
}

type isDocument_Source interface {
	isDocument_Source()
}

type Document_Content struct {
	// The content of the input in string format.
	// Cloud audit logging exempt since it is based on user data.
	Content string `protobuf:"bytes,2,opt,name=content,proto3,oneof"`
}

type Document_GcsContentUri struct {
	// The Google Cloud Storage URI where the file content is located.
	// This URI must be of the form: gs://bucket_name/object_name. For more
	// details, see https://cloud.google.com/storage/docs/reference-uris.
	// NOTE: Cloud Storage object versioning is not supported.
	GcsContentUri string `protobuf:"bytes,3,opt,name=gcs_content_uri,json=gcsContentUri,proto3,oneof"`
}

func (*Document_Content) isDocument_Source() {}

func (*Document_GcsContentUri) isDocument_Source() {}

// Represents a sentence in the input document.
type Sentence struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The sentence text.
	Text *TextSpan `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"`
	// For calls to [AnalyzeSentiment][] or if
	// [AnnotateTextRequest.Features.extract_document_sentiment][google.cloud.language.v1.AnnotateTextRequest.Features.extract_document_sentiment] is set to
	// true, this field will contain the sentiment for the sentence.
	Sentiment *Sentiment `protobuf:"bytes,2,opt,name=sentiment,proto3" json:"sentiment,omitempty"`
}

func (x *Sentence) Reset() {
	*x = Sentence{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_language_v1_language_service_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Sentence) ProtoMessage() {}

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

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

func (x *Sentence) GetText() *TextSpan {
	if x != nil {
		return x.Text
	}
	return nil
}

func (x *Sentence) GetSentiment() *Sentiment {
	if x != nil {
		return x.Sentiment
	}
	return nil
}

// Represents a phrase in the text that is a known entity, such as
// a person, an organization, or location. The API associates information, such
// as salience and mentions, with entities.
type Entity struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The representative name for the entity.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// The entity type.
	Type Entity_Type `protobuf:"varint,2,opt,name=type,proto3,enum=google.cloud.language.v1.Entity_Type" json:"type,omitempty"`
	// Metadata associated with the entity.
	//
	// For most entity types, the metadata is a Wikipedia URL (`wikipedia_url`)
	// and Knowledge Graph MID (`mid`), if they are available. For the metadata
	// associated with other entity types, see the Type table below.
	Metadata map[string]string `protobuf:"bytes,3,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// The salience score associated with the entity in the [0, 1.0] range.
	//
	// The salience score for an entity provides information about the
	// importance or centrality of that entity to the entire document text.
	// Scores closer to 0 are less salient, while scores closer to 1.0 are highly
	// salient.
	Salience float32 `protobuf:"fixed32,4,opt,name=salience,proto3" json:"salience,omitempty"`
	// The mentions of this entity in the input document. The API currently
	// supports proper noun mentions.
	Mentions []*EntityMention `protobuf:"bytes,5,rep,name=mentions,proto3" json:"mentions,omitempty"`
	// For calls to [AnalyzeEntitySentiment][] or if
	// [AnnotateTextRequest.Features.extract_entity_sentiment][google.cloud.language.v1.AnnotateTextRequest.Features.extract_entity_sentiment] is set to
	// true, this field will contain the aggregate sentiment expressed for this
	// entity in the provided document.
	Sentiment *Sentiment `protobuf:"bytes,6,opt,name=sentiment,proto3" json:"sentiment,omitempty"`
}

func (x *Entity) Reset() {
	*x = Entity{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_language_v1_language_service_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Entity) ProtoMessage() {}

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

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

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

func (x *Entity) GetType() Entity_Type {
	if x != nil {
		return x.Type
	}
	return Entity_UNKNOWN
}

func (x *Entity) GetMetadata() map[string]string {
	if x != nil {
		return x.Metadata
	}
	return nil
}

func (x *Entity) GetSalience() float32 {
	if x != nil {
		return x.Salience
	}
	return 0
}

func (x *Entity) GetMentions() []*EntityMention {
	if x != nil {
		return x.Mentions
	}
	return nil
}

func (x *Entity) GetSentiment() *Sentiment {
	if x != nil {
		return x.Sentiment
	}
	return nil
}

// Represents the smallest syntactic building block of the text.
type Token struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The token text.
	Text *TextSpan `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"`
	// Parts of speech tag for this token.
	PartOfSpeech *PartOfSpeech `protobuf:"bytes,2,opt,name=part_of_speech,json=partOfSpeech,proto3" json:"part_of_speech,omitempty"`
	// Dependency tree parse for this token.
	DependencyEdge *DependencyEdge `protobuf:"bytes,3,opt,name=dependency_edge,json=dependencyEdge,proto3" json:"dependency_edge,omitempty"`
	// [Lemma](https://en.wikipedia.org/wiki/Lemma_%28morphology%29) of the token.
	Lemma string `protobuf:"bytes,4,opt,name=lemma,proto3" json:"lemma,omitempty"`
}

func (x *Token) Reset() {
	*x = Token{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_language_v1_language_service_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Token) ProtoMessage() {}

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

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

func (x *Token) GetText() *TextSpan {
	if x != nil {
		return x.Text
	}
	return nil
}

func (x *Token) GetPartOfSpeech() *PartOfSpeech {
	if x != nil {
		return x.PartOfSpeech
	}
	return nil
}

func (x *Token) GetDependencyEdge() *DependencyEdge {
	if x != nil {
		return x.DependencyEdge
	}
	return nil
}

func (x *Token) GetLemma() string {
	if x != nil {
		return x.Lemma
	}
	return ""
}

// Represents the feeling associated with the entire text or entities in
// the text.
type Sentiment struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// A non-negative number in the [0, +inf) range, which represents
	// the absolute magnitude of sentiment regardless of score (positive or
	// negative).
	Magnitude float32 `protobuf:"fixed32,2,opt,name=magnitude,proto3" json:"magnitude,omitempty"`
	// Sentiment score between -1.0 (negative sentiment) and 1.0
	// (positive sentiment).
	Score float32 `protobuf:"fixed32,3,opt,name=score,proto3" json:"score,omitempty"`
}

func (x *Sentiment) Reset() {
	*x = Sentiment{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_language_v1_language_service_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*Sentiment) ProtoMessage() {}

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

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

func (x *Sentiment) GetMagnitude() float32 {
	if x != nil {
		return x.Magnitude
	}
	return 0
}

func (x *Sentiment) GetScore() float32 {
	if x != nil {
		return x.Score
	}
	return 0
}

// Represents part of speech information for a token. Parts of speech
// are as defined in
// http://www.lrec-conf.org/proceedings/lrec2012/pdf/274_Paper.pdf
type PartOfSpeech struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The part of speech tag.
	Tag PartOfSpeech_Tag `protobuf:"varint,1,opt,name=tag,proto3,enum=google.cloud.language.v1.PartOfSpeech_Tag" json:"tag,omitempty"`
	// The grammatical aspect.
	Aspect PartOfSpeech_Aspect `protobuf:"varint,2,opt,name=aspect,proto3,enum=google.cloud.language.v1.PartOfSpeech_Aspect" json:"aspect,omitempty"`
	// The grammatical case.
	Case PartOfSpeech_Case `protobuf:"varint,3,opt,name=case,proto3,enum=google.cloud.language.v1.PartOfSpeech_Case" json:"case,omitempty"`
	// The grammatical form.
	Form PartOfSpeech_Form `protobuf:"varint,4,opt,name=form,proto3,enum=google.cloud.language.v1.PartOfSpeech_Form" json:"form,omitempty"`
	// The grammatical gender.
	Gender PartOfSpeech_Gender `protobuf:"varint,5,opt,name=gender,proto3,enum=google.cloud.language.v1.PartOfSpeech_Gender" json:"gender,omitempty"`
	// The grammatical mood.
	Mood PartOfSpeech_Mood `protobuf:"varint,6,opt,name=mood,proto3,enum=google.cloud.language.v1.PartOfSpeech_Mood" json:"mood,omitempty"`
	// The grammatical number.
	Number PartOfSpeech_Number `protobuf:"varint,7,opt,name=number,proto3,enum=google.cloud.language.v1.PartOfSpeech_Number" json:"number,omitempty"`
	// The grammatical person.
	Person PartOfSpeech_Person `protobuf:"varint,8,opt,name=person,proto3,enum=google.cloud.language.v1.PartOfSpeech_Person" json:"person,omitempty"`
	// The grammatical properness.
	Proper PartOfSpeech_Proper `protobuf:"varint,9,opt,name=proper,proto3,enum=google.cloud.language.v1.PartOfSpeech_Proper" json:"proper,omitempty"`
	// The grammatical reciprocity.
	Reciprocity PartOfSpeech_Reciprocity `protobuf:"varint,10,opt,name=reciprocity,proto3,enum=google.cloud.language.v1.PartOfSpeech_Reciprocity" json:"reciprocity,omitempty"`
	// The grammatical tense.
	Tense PartOfSpeech_Tense `protobuf:"varint,11,opt,name=tense,proto3,enum=google.cloud.language.v1.PartOfSpeech_Tense" json:"tense,omitempty"`
	// The grammatical voice.
	Voice PartOfSpeech_Voice `protobuf:"varint,12,opt,name=voice,proto3,enum=google.cloud.language.v1.PartOfSpeech_Voice" json:"voice,omitempty"`
}

func (x *PartOfSpeech) Reset() {
	*x = PartOfSpeech{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_language_v1_language_service_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PartOfSpeech) ProtoMessage() {}

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

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

func (x *PartOfSpeech) GetTag() PartOfSpeech_Tag {
	if x != nil {
		return x.Tag
	}
	return PartOfSpeech_UNKNOWN
}

func (x *PartOfSpeech) GetAspect() PartOfSpeech_Aspect {
	if x != nil {
		return x.Aspect
	}
	return PartOfSpeech_ASPECT_UNKNOWN
}

func (x *PartOfSpeech) GetCase() PartOfSpeech_Case {
	if x != nil {
		return x.Case
	}
	return PartOfSpeech_CASE_UNKNOWN
}

func (x *PartOfSpeech) GetForm() PartOfSpeech_Form {
	if x != nil {
		return x.Form
	}
	return PartOfSpeech_FORM_UNKNOWN
}

func (x *PartOfSpeech) GetGender() PartOfSpeech_Gender {
	if x != nil {
		return x.Gender
	}
	return PartOfSpeech_GENDER_UNKNOWN
}

func (x *PartOfSpeech) GetMood() PartOfSpeech_Mood {
	if x != nil {
		return x.Mood
	}
	return PartOfSpeech_MOOD_UNKNOWN
}

func (x *PartOfSpeech) GetNumber() PartOfSpeech_Number {
	if x != nil {
		return x.Number
	}
	return PartOfSpeech_NUMBER_UNKNOWN
}

func (x *PartOfSpeech) GetPerson() PartOfSpeech_Person {
	if x != nil {
		return x.Person
	}
	return PartOfSpeech_PERSON_UNKNOWN
}

func (x *PartOfSpeech) GetProper() PartOfSpeech_Proper {
	if x != nil {
		return x.Proper
	}
	return PartOfSpeech_PROPER_UNKNOWN
}

func (x *PartOfSpeech) GetReciprocity() PartOfSpeech_Reciprocity {
	if x != nil {
		return x.Reciprocity
	}
	return PartOfSpeech_RECIPROCITY_UNKNOWN
}

func (x *PartOfSpeech) GetTense() PartOfSpeech_Tense {
	if x != nil {
		return x.Tense
	}
	return PartOfSpeech_TENSE_UNKNOWN
}

func (x *PartOfSpeech) GetVoice() PartOfSpeech_Voice {
	if x != nil {
		return x.Voice
	}
	return PartOfSpeech_VOICE_UNKNOWN
}

// Represents dependency parse tree information for a token. (For more
// information on dependency labels, see
// http://www.aclweb.org/anthology/P13-2017
type DependencyEdge struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Represents the head of this token in the dependency tree.
	// This is the index of the token which has an arc going to this token.
	// The index is the position of the token in the array of tokens returned
	// by the API method. If this token is a root token, then the
	// `head_token_index` is its own index.
	HeadTokenIndex int32 `protobuf:"varint,1,opt,name=head_token_index,json=headTokenIndex,proto3" json:"head_token_index,omitempty"`
	// The parse label for the token.
	Label DependencyEdge_Label `protobuf:"varint,2,opt,name=label,proto3,enum=google.cloud.language.v1.DependencyEdge_Label" json:"label,omitempty"`
}

func (x *DependencyEdge) Reset() {
	*x = DependencyEdge{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_language_v1_language_service_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*DependencyEdge) ProtoMessage() {}

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

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

func (x *DependencyEdge) GetHeadTokenIndex() int32 {
	if x != nil {
		return x.HeadTokenIndex
	}
	return 0
}

func (x *DependencyEdge) GetLabel() DependencyEdge_Label {
	if x != nil {
		return x.Label
	}
	return DependencyEdge_UNKNOWN
}

// Represents a mention for an entity in the text. Currently, proper noun
// mentions are supported.
type EntityMention struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The mention text.
	Text *TextSpan `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"`
	// The type of the entity mention.
	Type EntityMention_Type `protobuf:"varint,2,opt,name=type,proto3,enum=google.cloud.language.v1.EntityMention_Type" json:"type,omitempty"`
	// For calls to [AnalyzeEntitySentiment][] or if
	// [AnnotateTextRequest.Features.extract_entity_sentiment][google.cloud.language.v1.AnnotateTextRequest.Features.extract_entity_sentiment] is set to
	// true, this field will contain the sentiment expressed for this mention of
	// the entity in the provided document.
	Sentiment *Sentiment `protobuf:"bytes,3,opt,name=sentiment,proto3" json:"sentiment,omitempty"`
}

func (x *EntityMention) Reset() {
	*x = EntityMention{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_language_v1_language_service_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*EntityMention) ProtoMessage() {}

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

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

func (x *EntityMention) GetText() *TextSpan {
	if x != nil {
		return x.Text
	}
	return nil
}

func (x *EntityMention) GetType() EntityMention_Type {
	if x != nil {
		return x.Type
	}
	return EntityMention_TYPE_UNKNOWN
}

func (x *EntityMention) GetSentiment() *Sentiment {
	if x != nil {
		return x.Sentiment
	}
	return nil
}

// Represents an output piece of text.
type TextSpan struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The content of the output text.
	Content string `protobuf:"bytes,1,opt,name=content,proto3" json:"content,omitempty"`
	// The API calculates the beginning offset of the content in the original
	// document according to the [EncodingType][google.cloud.language.v1.EncodingType] specified in the API request.
	BeginOffset int32 `protobuf:"varint,2,opt,name=begin_offset,json=beginOffset,proto3" json:"begin_offset,omitempty"`
}

func (x *TextSpan) Reset() {
	*x = TextSpan{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_language_v1_language_service_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*TextSpan) ProtoMessage() {}

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

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

func (x *TextSpan) GetContent() string {
	if x != nil {
		return x.Content
	}
	return ""
}

func (x *TextSpan) GetBeginOffset() int32 {
	if x != nil {
		return x.BeginOffset
	}
	return 0
}

// Represents a category returned from the text classifier.
type ClassificationCategory struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The name of the category representing the document, from the [predefined
	// taxonomy](https://cloud.google.com/natural-language/docs/categories).
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// The classifier's confidence of the category. Number represents how certain
	// the classifier is that this category represents the given text.
	Confidence float32 `protobuf:"fixed32,2,opt,name=confidence,proto3" json:"confidence,omitempty"`
}

func (x *ClassificationCategory) Reset() {
	*x = ClassificationCategory{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_language_v1_language_service_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ClassificationCategory) ProtoMessage() {}

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

// Deprecated: Use ClassificationCategory.ProtoReflect.Descriptor instead.
func (*ClassificationCategory) Descriptor() ([]byte, []int) {
	return file_google_cloud_language_v1_language_service_proto_rawDescGZIP(), []int{9}
}

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

func (x *ClassificationCategory) GetConfidence() float32 {
	if x != nil {
		return x.Confidence
	}
	return 0
}

// The sentiment analysis request message.
type AnalyzeSentimentRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Input document.
	Document *Document `protobuf:"bytes,1,opt,name=document,proto3" json:"document,omitempty"`
	// The encoding type used by the API to calculate sentence offsets.
	EncodingType EncodingType `protobuf:"varint,2,opt,name=encoding_type,json=encodingType,proto3,enum=google.cloud.language.v1.EncodingType" json:"encoding_type,omitempty"`
}

func (x *AnalyzeSentimentRequest) Reset() {
	*x = AnalyzeSentimentRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_language_v1_language_service_proto_msgTypes[10]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AnalyzeSentimentRequest) ProtoMessage() {}

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

// Deprecated: Use AnalyzeSentimentRequest.ProtoReflect.Descriptor instead.
func (*AnalyzeSentimentRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_language_v1_language_service_proto_rawDescGZIP(), []int{10}
}

func (x *AnalyzeSentimentRequest) GetDocument() *Document {
	if x != nil {
		return x.Document
	}
	return nil
}

func (x *AnalyzeSentimentRequest) GetEncodingType() EncodingType {
	if x != nil {
		return x.EncodingType
	}
	return EncodingType_NONE
}

// The sentiment analysis response message.
type AnalyzeSentimentResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The overall sentiment of the input document.
	DocumentSentiment *Sentiment `protobuf:"bytes,1,opt,name=document_sentiment,json=documentSentiment,proto3" json:"document_sentiment,omitempty"`
	// The language of the text, which will be the same as the language specified
	// in the request or, if not specified, the automatically-detected language.
	// See [Document.language][google.cloud.language.v1.Document.language] field for more details.
	Language string `protobuf:"bytes,2,opt,name=language,proto3" json:"language,omitempty"`
	// The sentiment for all the sentences in the document.
	Sentences []*Sentence `protobuf:"bytes,3,rep,name=sentences,proto3" json:"sentences,omitempty"`
}

func (x *AnalyzeSentimentResponse) Reset() {
	*x = AnalyzeSentimentResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_language_v1_language_service_proto_msgTypes[11]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AnalyzeSentimentResponse) ProtoMessage() {}

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

// Deprecated: Use AnalyzeSentimentResponse.ProtoReflect.Descriptor instead.
func (*AnalyzeSentimentResponse) Descriptor() ([]byte, []int) {
	return file_google_cloud_language_v1_language_service_proto_rawDescGZIP(), []int{11}
}

func (x *AnalyzeSentimentResponse) GetDocumentSentiment() *Sentiment {
	if x != nil {
		return x.DocumentSentiment
	}
	return nil
}

func (x *AnalyzeSentimentResponse) GetLanguage() string {
	if x != nil {
		return x.Language
	}
	return ""
}

func (x *AnalyzeSentimentResponse) GetSentences() []*Sentence {
	if x != nil {
		return x.Sentences
	}
	return nil
}

// The entity-level sentiment analysis request message.
type AnalyzeEntitySentimentRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Input document.
	Document *Document `protobuf:"bytes,1,opt,name=document,proto3" json:"document,omitempty"`
	// The encoding type used by the API to calculate offsets.
	EncodingType EncodingType `protobuf:"varint,2,opt,name=encoding_type,json=encodingType,proto3,enum=google.cloud.language.v1.EncodingType" json:"encoding_type,omitempty"`
}

func (x *AnalyzeEntitySentimentRequest) Reset() {
	*x = AnalyzeEntitySentimentRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_language_v1_language_service_proto_msgTypes[12]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AnalyzeEntitySentimentRequest) ProtoMessage() {}

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

// Deprecated: Use AnalyzeEntitySentimentRequest.ProtoReflect.Descriptor instead.
func (*AnalyzeEntitySentimentRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_language_v1_language_service_proto_rawDescGZIP(), []int{12}
}

func (x *AnalyzeEntitySentimentRequest) GetDocument() *Document {
	if x != nil {
		return x.Document
	}
	return nil
}

func (x *AnalyzeEntitySentimentRequest) GetEncodingType() EncodingType {
	if x != nil {
		return x.EncodingType
	}
	return EncodingType_NONE
}

// The entity-level sentiment analysis response message.
type AnalyzeEntitySentimentResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The recognized entities in the input document with associated sentiments.
	Entities []*Entity `protobuf:"bytes,1,rep,name=entities,proto3" json:"entities,omitempty"`
	// The language of the text, which will be the same as the language specified
	// in the request or, if not specified, the automatically-detected language.
	// See [Document.language][google.cloud.language.v1.Document.language] field for more details.
	Language string `protobuf:"bytes,2,opt,name=language,proto3" json:"language,omitempty"`
}

func (x *AnalyzeEntitySentimentResponse) Reset() {
	*x = AnalyzeEntitySentimentResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_language_v1_language_service_proto_msgTypes[13]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AnalyzeEntitySentimentResponse) ProtoMessage() {}

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

// Deprecated: Use AnalyzeEntitySentimentResponse.ProtoReflect.Descriptor instead.
func (*AnalyzeEntitySentimentResponse) Descriptor() ([]byte, []int) {
	return file_google_cloud_language_v1_language_service_proto_rawDescGZIP(), []int{13}
}

func (x *AnalyzeEntitySentimentResponse) GetEntities() []*Entity {
	if x != nil {
		return x.Entities
	}
	return nil
}

func (x *AnalyzeEntitySentimentResponse) GetLanguage() string {
	if x != nil {
		return x.Language
	}
	return ""
}

// The entity analysis request message.
type AnalyzeEntitiesRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Input document.
	Document *Document `protobuf:"bytes,1,opt,name=document,proto3" json:"document,omitempty"`
	// The encoding type used by the API to calculate offsets.
	EncodingType EncodingType `protobuf:"varint,2,opt,name=encoding_type,json=encodingType,proto3,enum=google.cloud.language.v1.EncodingType" json:"encoding_type,omitempty"`
}

func (x *AnalyzeEntitiesRequest) Reset() {
	*x = AnalyzeEntitiesRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_language_v1_language_service_proto_msgTypes[14]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AnalyzeEntitiesRequest) ProtoMessage() {}

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

// Deprecated: Use AnalyzeEntitiesRequest.ProtoReflect.Descriptor instead.
func (*AnalyzeEntitiesRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_language_v1_language_service_proto_rawDescGZIP(), []int{14}
}

func (x *AnalyzeEntitiesRequest) GetDocument() *Document {
	if x != nil {
		return x.Document
	}
	return nil
}

func (x *AnalyzeEntitiesRequest) GetEncodingType() EncodingType {
	if x != nil {
		return x.EncodingType
	}
	return EncodingType_NONE
}

// The entity analysis response message.
type AnalyzeEntitiesResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// The recognized entities in the input document.
	Entities []*Entity `protobuf:"bytes,1,rep,name=entities,proto3" json:"entities,omitempty"`
	// The language of the text, which will be the same as the language specified
	// in the request or, if not specified, the automatically-detected language.
	// See [Document.language][google.cloud.language.v1.Document.language] field for more details.
	Language string `protobuf:"bytes,2,opt,name=language,proto3" json:"language,omitempty"`
}

func (x *AnalyzeEntitiesResponse) Reset() {
	*x = AnalyzeEntitiesResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_language_v1_language_service_proto_msgTypes[15]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AnalyzeEntitiesResponse) ProtoMessage() {}

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

// Deprecated: Use AnalyzeEntitiesResponse.ProtoReflect.Descriptor instead.
func (*AnalyzeEntitiesResponse) Descriptor() ([]byte, []int) {
	return file_google_cloud_language_v1_language_service_proto_rawDescGZIP(), []int{15}
}

func (x *AnalyzeEntitiesResponse) GetEntities() []*Entity {
	if x != nil {
		return x.Entities
	}
	return nil
}

func (x *AnalyzeEntitiesResponse) GetLanguage() string {
	if x != nil {
		return x.Language
	}
	return ""
}

// The syntax analysis request message.
type AnalyzeSyntaxRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Input document.
	Document *Document `protobuf:"bytes,1,opt,name=document,proto3" json:"document,omitempty"`
	// The encoding type used by the API to calculate offsets.
	EncodingType EncodingType `protobuf:"varint,2,opt,name=encoding_type,json=encodingType,proto3,enum=google.cloud.language.v1.EncodingType" json:"encoding_type,omitempty"`
}

func (x *AnalyzeSyntaxRequest) Reset() {
	*x = AnalyzeSyntaxRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_language_v1_language_service_proto_msgTypes[16]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AnalyzeSyntaxRequest) ProtoMessage() {}

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

// Deprecated: Use AnalyzeSyntaxRequest.ProtoReflect.Descriptor instead.
func (*AnalyzeSyntaxRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_language_v1_language_service_proto_rawDescGZIP(), []int{16}
}

func (x *AnalyzeSyntaxRequest) GetDocument() *Document {
	if x != nil {
		return x.Document
	}
	return nil
}

func (x *AnalyzeSyntaxRequest) GetEncodingType() EncodingType {
	if x != nil {
		return x.EncodingType
	}
	return EncodingType_NONE
}

// The syntax analysis response message.
type AnalyzeSyntaxResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Sentences in the input document.
	Sentences []*Sentence `protobuf:"bytes,1,rep,name=sentences,proto3" json:"sentences,omitempty"`
	// Tokens, along with their syntactic information, in the input document.
	Tokens []*Token `protobuf:"bytes,2,rep,name=tokens,proto3" json:"tokens,omitempty"`
	// The language of the text, which will be the same as the language specified
	// in the request or, if not specified, the automatically-detected language.
	// See [Document.language][google.cloud.language.v1.Document.language] field for more details.
	Language string `protobuf:"bytes,3,opt,name=language,proto3" json:"language,omitempty"`
}

func (x *AnalyzeSyntaxResponse) Reset() {
	*x = AnalyzeSyntaxResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_language_v1_language_service_proto_msgTypes[17]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AnalyzeSyntaxResponse) ProtoMessage() {}

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

// Deprecated: Use AnalyzeSyntaxResponse.ProtoReflect.Descriptor instead.
func (*AnalyzeSyntaxResponse) Descriptor() ([]byte, []int) {
	return file_google_cloud_language_v1_language_service_proto_rawDescGZIP(), []int{17}
}

func (x *AnalyzeSyntaxResponse) GetSentences() []*Sentence {
	if x != nil {
		return x.Sentences
	}
	return nil
}

func (x *AnalyzeSyntaxResponse) GetTokens() []*Token {
	if x != nil {
		return x.Tokens
	}
	return nil
}

func (x *AnalyzeSyntaxResponse) GetLanguage() string {
	if x != nil {
		return x.Language
	}
	return ""
}

// The document classification request message.
type ClassifyTextRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Input document.
	Document *Document `protobuf:"bytes,1,opt,name=document,proto3" json:"document,omitempty"`
}

func (x *ClassifyTextRequest) Reset() {
	*x = ClassifyTextRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_language_v1_language_service_proto_msgTypes[18]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ClassifyTextRequest) ProtoMessage() {}

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

// Deprecated: Use ClassifyTextRequest.ProtoReflect.Descriptor instead.
func (*ClassifyTextRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_language_v1_language_service_proto_rawDescGZIP(), []int{18}
}

func (x *ClassifyTextRequest) GetDocument() *Document {
	if x != nil {
		return x.Document
	}
	return nil
}

// The document classification response message.
type ClassifyTextResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Categories representing the input document.
	Categories []*ClassificationCategory `protobuf:"bytes,1,rep,name=categories,proto3" json:"categories,omitempty"`
}

func (x *ClassifyTextResponse) Reset() {
	*x = ClassifyTextResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_language_v1_language_service_proto_msgTypes[19]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*ClassifyTextResponse) ProtoMessage() {}

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

// Deprecated: Use ClassifyTextResponse.ProtoReflect.Descriptor instead.
func (*ClassifyTextResponse) Descriptor() ([]byte, []int) {
	return file_google_cloud_language_v1_language_service_proto_rawDescGZIP(), []int{19}
}

func (x *ClassifyTextResponse) GetCategories() []*ClassificationCategory {
	if x != nil {
		return x.Categories
	}
	return nil
}

// The request message for the text annotation API, which can perform multiple
// analysis types (sentiment, entities, and syntax) in one call.
type AnnotateTextRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Input document.
	Document *Document `protobuf:"bytes,1,opt,name=document,proto3" json:"document,omitempty"`
	// The enabled features.
	Features *AnnotateTextRequest_Features `protobuf:"bytes,2,opt,name=features,proto3" json:"features,omitempty"`
	// The encoding type used by the API to calculate offsets.
	EncodingType EncodingType `protobuf:"varint,3,opt,name=encoding_type,json=encodingType,proto3,enum=google.cloud.language.v1.EncodingType" json:"encoding_type,omitempty"`
}

func (x *AnnotateTextRequest) Reset() {
	*x = AnnotateTextRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_language_v1_language_service_proto_msgTypes[20]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AnnotateTextRequest) ProtoMessage() {}

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

// Deprecated: Use AnnotateTextRequest.ProtoReflect.Descriptor instead.
func (*AnnotateTextRequest) Descriptor() ([]byte, []int) {
	return file_google_cloud_language_v1_language_service_proto_rawDescGZIP(), []int{20}
}

func (x *AnnotateTextRequest) GetDocument() *Document {
	if x != nil {
		return x.Document
	}
	return nil
}

func (x *AnnotateTextRequest) GetFeatures() *AnnotateTextRequest_Features {
	if x != nil {
		return x.Features
	}
	return nil
}

func (x *AnnotateTextRequest) GetEncodingType() EncodingType {
	if x != nil {
		return x.EncodingType
	}
	return EncodingType_NONE
}

// The text annotations response message.
type AnnotateTextResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Sentences in the input document. Populated if the user enables
	// [AnnotateTextRequest.Features.extract_syntax][google.cloud.language.v1.AnnotateTextRequest.Features.extract_syntax].
	Sentences []*Sentence `protobuf:"bytes,1,rep,name=sentences,proto3" json:"sentences,omitempty"`
	// Tokens, along with their syntactic information, in the input document.
	// Populated if the user enables
	// [AnnotateTextRequest.Features.extract_syntax][google.cloud.language.v1.AnnotateTextRequest.Features.extract_syntax].
	Tokens []*Token `protobuf:"bytes,2,rep,name=tokens,proto3" json:"tokens,omitempty"`
	// Entities, along with their semantic information, in the input document.
	// Populated if the user enables
	// [AnnotateTextRequest.Features.extract_entities][google.cloud.language.v1.AnnotateTextRequest.Features.extract_entities].
	Entities []*Entity `protobuf:"bytes,3,rep,name=entities,proto3" json:"entities,omitempty"`
	// The overall sentiment for the document. Populated if the user enables
	// [AnnotateTextRequest.Features.extract_document_sentiment][google.cloud.language.v1.AnnotateTextRequest.Features.extract_document_sentiment].
	DocumentSentiment *Sentiment `protobuf:"bytes,4,opt,name=document_sentiment,json=documentSentiment,proto3" json:"document_sentiment,omitempty"`
	// The language of the text, which will be the same as the language specified
	// in the request or, if not specified, the automatically-detected language.
	// See [Document.language][google.cloud.language.v1.Document.language] field for more details.
	Language string `protobuf:"bytes,5,opt,name=language,proto3" json:"language,omitempty"`
	// Categories identified in the input document.
	Categories []*ClassificationCategory `protobuf:"bytes,6,rep,name=categories,proto3" json:"categories,omitempty"`
}

func (x *AnnotateTextResponse) Reset() {
	*x = AnnotateTextResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_language_v1_language_service_proto_msgTypes[21]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AnnotateTextResponse) ProtoMessage() {}

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

// Deprecated: Use AnnotateTextResponse.ProtoReflect.Descriptor instead.
func (*AnnotateTextResponse) Descriptor() ([]byte, []int) {
	return file_google_cloud_language_v1_language_service_proto_rawDescGZIP(), []int{21}
}

func (x *AnnotateTextResponse) GetSentences() []*Sentence {
	if x != nil {
		return x.Sentences
	}
	return nil
}

func (x *AnnotateTextResponse) GetTokens() []*Token {
	if x != nil {
		return x.Tokens
	}
	return nil
}

func (x *AnnotateTextResponse) GetEntities() []*Entity {
	if x != nil {
		return x.Entities
	}
	return nil
}

func (x *AnnotateTextResponse) GetDocumentSentiment() *Sentiment {
	if x != nil {
		return x.DocumentSentiment
	}
	return nil
}

func (x *AnnotateTextResponse) GetLanguage() string {
	if x != nil {
		return x.Language
	}
	return ""
}

func (x *AnnotateTextResponse) GetCategories() []*ClassificationCategory {
	if x != nil {
		return x.Categories
	}
	return nil
}

// All available features for sentiment, syntax, and semantic analysis.
// Setting each one to true will enable that specific analysis for the input.
type AnnotateTextRequest_Features struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Extract syntax information.
	ExtractSyntax bool `protobuf:"varint,1,opt,name=extract_syntax,json=extractSyntax,proto3" json:"extract_syntax,omitempty"`
	// Extract entities.
	ExtractEntities bool `protobuf:"varint,2,opt,name=extract_entities,json=extractEntities,proto3" json:"extract_entities,omitempty"`
	// Extract document-level sentiment.
	ExtractDocumentSentiment bool `protobuf:"varint,3,opt,name=extract_document_sentiment,json=extractDocumentSentiment,proto3" json:"extract_document_sentiment,omitempty"`
	// Extract entities and their associated sentiment.
	ExtractEntitySentiment bool `protobuf:"varint,4,opt,name=extract_entity_sentiment,json=extractEntitySentiment,proto3" json:"extract_entity_sentiment,omitempty"`
	// Classify the full document into categories.
	ClassifyText bool `protobuf:"varint,6,opt,name=classify_text,json=classifyText,proto3" json:"classify_text,omitempty"`
}

func (x *AnnotateTextRequest_Features) Reset() {
	*x = AnnotateTextRequest_Features{}
	if protoimpl.UnsafeEnabled {
		mi := &file_google_cloud_language_v1_language_service_proto_msgTypes[23]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*AnnotateTextRequest_Features) ProtoMessage() {}

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

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

func (x *AnnotateTextRequest_Features) GetExtractSyntax() bool {
	if x != nil {
		return x.ExtractSyntax
	}
	return false
}

func (x *AnnotateTextRequest_Features) GetExtractEntities() bool {
	if x != nil {
		return x.ExtractEntities
	}
	return false
}

func (x *AnnotateTextRequest_Features) GetExtractDocumentSentiment() bool {
	if x != nil {
		return x.ExtractDocumentSentiment
	}
	return false
}

func (x *AnnotateTextRequest_Features) GetExtractEntitySentiment() bool {
	if x != nil {
		return x.ExtractEntitySentiment
	}
	return false
}

func (x *AnnotateTextRequest_Features) GetClassifyText() bool {
	if x != nil {
		return x.ClassifyText
	}
	return false
}

var File_google_cloud_language_v1_language_service_proto protoreflect.FileDescriptor

var file_google_cloud_language_v1_language_service_proto_rawDesc = []byte{
	0x0a, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6c,
	0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x6c, 0x61, 0x6e, 0x67, 0x75,
	0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x12, 0x18, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
	0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66,
	0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x22, 0xeb, 0x01, 0x0a, 0x08, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74,
	0x12, 0x3b, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61,
	0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65,
	0x6e, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a,
	0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00,
	0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x67, 0x63, 0x73,
	0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, 0x67, 0x63, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74,
	0x55, 0x72, 0x69, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22,
	0x36, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x59, 0x50, 0x45, 0x5f,
	0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0e, 0x0a,
	0x0a, 0x50, 0x4c, 0x41, 0x49, 0x4e, 0x5f, 0x54, 0x45, 0x58, 0x54, 0x10, 0x01, 0x12, 0x08, 0x0a,
	0x04, 0x48, 0x54, 0x4d, 0x4c, 0x10, 0x02, 0x42, 0x08, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63,
	0x65, 0x22, 0x85, 0x01, 0x0a, 0x08, 0x53, 0x65, 0x6e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x36,
	0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67,
	0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x53, 0x70, 0x61, 0x6e,
	0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x41, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6d,
	0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67,
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x09,
	0x73, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xc0, 0x04, 0x0a, 0x06, 0x45, 0x6e,
	0x74, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76,
	0x31, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74,
	0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18,
	0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31,
	0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
	0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12,
	0x1a, 0x0a, 0x08, 0x73, 0x61, 0x6c, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x02, 0x52, 0x08, 0x73, 0x61, 0x6c, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x43, 0x0a, 0x08, 0x6d,
	0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e,
	0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4d,
	0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6d, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x73,
	0x12, 0x41, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
	0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53,
	0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x09, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6d,
	0x65, 0x6e, 0x74, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45,
	0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
	0x22, 0xb9, 0x01, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b,
	0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x45, 0x52, 0x53, 0x4f, 0x4e,
	0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4c, 0x4f, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02,
	0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x52, 0x47, 0x41, 0x4e, 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e,
	0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x10, 0x04, 0x12, 0x0f, 0x0a,
	0x0b, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x4f, 0x46, 0x5f, 0x41, 0x52, 0x54, 0x10, 0x05, 0x12, 0x11,
	0x0a, 0x0d, 0x43, 0x4f, 0x4e, 0x53, 0x55, 0x4d, 0x45, 0x52, 0x5f, 0x47, 0x4f, 0x4f, 0x44, 0x10,
	0x06, 0x12, 0x09, 0x0a, 0x05, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x10, 0x07, 0x12, 0x10, 0x0a, 0x0c,
	0x50, 0x48, 0x4f, 0x4e, 0x45, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x09, 0x12, 0x0b,
	0x0a, 0x07, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x10, 0x0a, 0x12, 0x08, 0x0a, 0x04, 0x44,
	0x41, 0x54, 0x45, 0x10, 0x0b, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10,
	0x0c, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x52, 0x49, 0x43, 0x45, 0x10, 0x0d, 0x22, 0xf6, 0x01, 0x0a,
	0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x36, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
	0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e,
	0x54, 0x65, 0x78, 0x74, 0x53, 0x70, 0x61, 0x6e, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x4c,
	0x0a, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x5f, 0x6f, 0x66, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76,
	0x31, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x4f, 0x66, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x52, 0x0c,
	0x70, 0x61, 0x72, 0x74, 0x4f, 0x66, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x12, 0x51, 0x0a, 0x0f,
	0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x65, 0x64, 0x67, 0x65, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31,
	0x2e, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x45, 0x64, 0x67, 0x65, 0x52,
	0x0e, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x45, 0x64, 0x67, 0x65, 0x12,
	0x14, 0x0a, 0x05, 0x6c, 0x65, 0x6d, 0x6d, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
	0x6c, 0x65, 0x6d, 0x6d, 0x61, 0x22, 0x3f, 0x0a, 0x09, 0x53, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65,
	0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x67, 0x6e, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x6d, 0x61, 0x67, 0x6e, 0x69, 0x74, 0x75, 0x64, 0x65,
	0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52,
	0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, 0xfd, 0x10, 0x0a, 0x0c, 0x50, 0x61, 0x72, 0x74, 0x4f,
	0x66, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x12, 0x3c, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
	0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e,
	0x50, 0x61, 0x72, 0x74, 0x4f, 0x66, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x2e, 0x54, 0x61, 0x67,
	0x52, 0x03, 0x74, 0x61, 0x67, 0x12, 0x45, 0x0a, 0x06, 0x61, 0x73, 0x70, 0x65, 0x63, 0x74, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31,
	0x2e, 0x50, 0x61, 0x72, 0x74, 0x4f, 0x66, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x2e, 0x41, 0x73,
	0x70, 0x65, 0x63, 0x74, 0x52, 0x06, 0x61, 0x73, 0x70, 0x65, 0x63, 0x74, 0x12, 0x3f, 0x0a, 0x04,
	0x63, 0x61, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61,
	0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x4f, 0x66, 0x53, 0x70, 0x65, 0x65,
	0x63, 0x68, 0x2e, 0x43, 0x61, 0x73, 0x65, 0x52, 0x04, 0x63, 0x61, 0x73, 0x65, 0x12, 0x3f, 0x0a,
	0x04, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75,
	0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x4f, 0x66, 0x53, 0x70, 0x65,
	0x65, 0x63, 0x68, 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x52, 0x04, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x45,
	0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61,
	0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x4f, 0x66,
	0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x2e, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x06, 0x67,
	0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x3f, 0x0a, 0x04, 0x6d, 0x6f, 0x6f, 0x64, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
	0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50,
	0x61, 0x72, 0x74, 0x4f, 0x66, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x2e, 0x4d, 0x6f, 0x6f, 0x64,
	0x52, 0x04, 0x6d, 0x6f, 0x6f, 0x64, 0x12, 0x45, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72,
	0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76,
	0x31, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x4f, 0x66, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x2e, 0x4e,
	0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x45, 0x0a,
	0x06, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e,
	0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x4f, 0x66, 0x53,
	0x70, 0x65, 0x65, 0x63, 0x68, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x65,
	0x72, 0x73, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x06, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x18, 0x09,
	0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
	0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e,
	0x50, 0x61, 0x72, 0x74, 0x4f, 0x66, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x2e, 0x50, 0x72, 0x6f,
	0x70, 0x65, 0x72, 0x52, 0x06, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x12, 0x54, 0x0a, 0x0b, 0x72,
	0x65, 0x63, 0x69, 0x70, 0x72, 0x6f, 0x63, 0x69, 0x74, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e,
	0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
	0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x74,
	0x4f, 0x66, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x2e, 0x52, 0x65, 0x63, 0x69, 0x70, 0x72, 0x6f,
	0x63, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x69, 0x70, 0x72, 0x6f, 0x63, 0x69, 0x74,
	0x79, 0x12, 0x42, 0x0a, 0x05, 0x74, 0x65, 0x6e, 0x73, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e,
	0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
	0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x74,
	0x4f, 0x66, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x2e, 0x54, 0x65, 0x6e, 0x73, 0x65, 0x52, 0x05,
	0x74, 0x65, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x05, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x0c,
	0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
	0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e,
	0x50, 0x61, 0x72, 0x74, 0x4f, 0x66, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x2e, 0x56, 0x6f, 0x69,
	0x63, 0x65, 0x52, 0x05, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x8d, 0x01, 0x0a, 0x03, 0x54, 0x61,
	0x67, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x07,
	0x0a, 0x03, 0x41, 0x44, 0x4a, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x44, 0x50, 0x10, 0x02,
	0x12, 0x07, 0x0a, 0x03, 0x41, 0x44, 0x56, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x4f, 0x4e,
	0x4a, 0x10, 0x04, 0x12, 0x07, 0x0a, 0x03, 0x44, 0x45, 0x54, 0x10, 0x05, 0x12, 0x08, 0x0a, 0x04,
	0x4e, 0x4f, 0x55, 0x4e, 0x10, 0x06, 0x12, 0x07, 0x0a, 0x03, 0x4e, 0x55, 0x4d, 0x10, 0x07, 0x12,
	0x08, 0x0a, 0x04, 0x50, 0x52, 0x4f, 0x4e, 0x10, 0x08, 0x12, 0x07, 0x0a, 0x03, 0x50, 0x52, 0x54,
	0x10, 0x09, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x55, 0x4e, 0x43, 0x54, 0x10, 0x0a, 0x12, 0x08, 0x0a,
	0x04, 0x56, 0x45, 0x52, 0x42, 0x10, 0x0b, 0x12, 0x05, 0x0a, 0x01, 0x58, 0x10, 0x0c, 0x12, 0x09,
	0x0a, 0x05, 0x41, 0x46, 0x46, 0x49, 0x58, 0x10, 0x0d, 0x22, 0x4f, 0x0a, 0x06, 0x41, 0x73, 0x70,
	0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x0e, 0x41, 0x53, 0x50, 0x45, 0x43, 0x54, 0x5f, 0x55, 0x4e,
	0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x45, 0x52, 0x46, 0x45,
	0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x4d, 0x50, 0x45, 0x52,
	0x46, 0x45, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x52, 0x4f,
	0x47, 0x52, 0x45, 0x53, 0x53, 0x49, 0x56, 0x45, 0x10, 0x03, 0x22, 0xf8, 0x01, 0x0a, 0x04, 0x43,
	0x61, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x41, 0x53, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e,
	0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x41, 0x43, 0x43, 0x55, 0x53, 0x41, 0x54,
	0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x44, 0x56, 0x45, 0x52, 0x42, 0x49,
	0x41, 0x4c, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x4d, 0x45,
	0x4e, 0x54, 0x49, 0x56, 0x45, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x41, 0x54, 0x49, 0x56,
	0x45, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x47, 0x45, 0x4e, 0x49, 0x54, 0x49, 0x56, 0x45, 0x10,
	0x05, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x4e, 0x53, 0x54, 0x52, 0x55, 0x4d, 0x45, 0x4e, 0x54, 0x41,
	0x4c, 0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x4c, 0x4f, 0x43, 0x41, 0x54, 0x49, 0x56, 0x45, 0x10,
	0x07, 0x12, 0x0e, 0x0a, 0x0a, 0x4e, 0x4f, 0x4d, 0x49, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x10,
	0x08, 0x12, 0x0b, 0x0a, 0x07, 0x4f, 0x42, 0x4c, 0x49, 0x51, 0x55, 0x45, 0x10, 0x09, 0x12, 0x0d,
	0x0a, 0x09, 0x50, 0x41, 0x52, 0x54, 0x49, 0x54, 0x49, 0x56, 0x45, 0x10, 0x0a, 0x12, 0x11, 0x0a,
	0x0d, 0x50, 0x52, 0x45, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x0b,
	0x12, 0x12, 0x0a, 0x0e, 0x52, 0x45, 0x46, 0x4c, 0x45, 0x58, 0x49, 0x56, 0x45, 0x5f, 0x43, 0x41,
	0x53, 0x45, 0x10, 0x0c, 0x12, 0x11, 0x0a, 0x0d, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x56, 0x45,
	0x5f, 0x43, 0x41, 0x53, 0x45, 0x10, 0x0d, 0x12, 0x0c, 0x0a, 0x08, 0x56, 0x4f, 0x43, 0x41, 0x54,
	0x49, 0x56, 0x45, 0x10, 0x0e, 0x22, 0xaf, 0x01, 0x0a, 0x04, 0x46, 0x6f, 0x72, 0x6d, 0x12, 0x10,
	0x0a, 0x0c, 0x46, 0x4f, 0x52, 0x4d, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00,
	0x12, 0x0c, 0x0a, 0x08, 0x41, 0x44, 0x4e, 0x4f, 0x4d, 0x49, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x0d,
	0x0a, 0x09, 0x41, 0x55, 0x58, 0x49, 0x4c, 0x49, 0x41, 0x52, 0x59, 0x10, 0x02, 0x12, 0x12, 0x0a,
	0x0e, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x49, 0x5a, 0x45, 0x52, 0x10,
	0x03, 0x12, 0x10, 0x0a, 0x0c, 0x46, 0x49, 0x4e, 0x41, 0x4c, 0x5f, 0x45, 0x4e, 0x44, 0x49, 0x4e,
	0x47, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x47, 0x45, 0x52, 0x55, 0x4e, 0x44, 0x10, 0x05, 0x12,
	0x0a, 0x0a, 0x06, 0x52, 0x45, 0x41, 0x4c, 0x49, 0x53, 0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x49,
	0x52, 0x52, 0x45, 0x41, 0x4c, 0x49, 0x53, 0x10, 0x07, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x48, 0x4f,
	0x52, 0x54, 0x10, 0x08, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x4f, 0x4e, 0x47, 0x10, 0x09, 0x12, 0x09,
	0x0a, 0x05, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x10, 0x0a, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x50, 0x45,
	0x43, 0x49, 0x46, 0x49, 0x43, 0x10, 0x0b, 0x22, 0x45, 0x0a, 0x06, 0x47, 0x65, 0x6e, 0x64, 0x65,
	0x72, 0x12, 0x12, 0x0a, 0x0e, 0x47, 0x45, 0x4e, 0x44, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x4b, 0x4e,
	0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x45, 0x4d, 0x49, 0x4e, 0x49, 0x4e,
	0x45, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4d, 0x41, 0x53, 0x43, 0x55, 0x4c, 0x49, 0x4e, 0x45,
	0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x45, 0x55, 0x54, 0x45, 0x52, 0x10, 0x03, 0x22, 0x7f,
	0x0a, 0x04, 0x4d, 0x6f, 0x6f, 0x64, 0x12, 0x10, 0x0a, 0x0c, 0x4d, 0x4f, 0x4f, 0x44, 0x5f, 0x55,
	0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x4f, 0x4e, 0x44,
	0x49, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x5f, 0x4d, 0x4f, 0x4f, 0x44, 0x10, 0x01, 0x12, 0x0e,
	0x0a, 0x0a, 0x49, 0x4d, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x0e,
	0x0a, 0x0a, 0x49, 0x4e, 0x44, 0x49, 0x43, 0x41, 0x54, 0x49, 0x56, 0x45, 0x10, 0x03, 0x12, 0x11,
	0x0a, 0x0d, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x52, 0x4f, 0x47, 0x41, 0x54, 0x49, 0x56, 0x45, 0x10,
	0x04, 0x12, 0x0b, 0x0a, 0x07, 0x4a, 0x55, 0x53, 0x53, 0x49, 0x56, 0x45, 0x10, 0x05, 0x12, 0x0f,
	0x0a, 0x0b, 0x53, 0x55, 0x42, 0x4a, 0x55, 0x4e, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x06, 0x22,
	0x40, 0x0a, 0x06, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x55, 0x4d,
	0x42, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0c, 0x0a,
	0x08, 0x53, 0x49, 0x4e, 0x47, 0x55, 0x4c, 0x41, 0x52, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x50,
	0x4c, 0x55, 0x52, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x55, 0x41, 0x4c, 0x10,
	0x03, 0x22, 0x54, 0x0a, 0x06, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x0e, 0x50,
	0x45, 0x52, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12,
	0x09, 0x0a, 0x05, 0x46, 0x49, 0x52, 0x53, 0x54, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x45,
	0x43, 0x4f, 0x4e, 0x44, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x54, 0x48, 0x49, 0x52, 0x44, 0x10,
	0x03, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x45, 0x46, 0x4c, 0x45, 0x58, 0x49, 0x56, 0x45, 0x5f, 0x50,
	0x45, 0x52, 0x53, 0x4f, 0x4e, 0x10, 0x04, 0x22, 0x38, 0x0a, 0x06, 0x50, 0x72, 0x6f, 0x70, 0x65,
	0x72, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x52, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x4b, 0x4e,
	0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x52, 0x4f, 0x50, 0x45, 0x52, 0x10,
	0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x4e, 0x4f, 0x54, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x45, 0x52, 0x10,
	0x02, 0x22, 0x4a, 0x0a, 0x0b, 0x52, 0x65, 0x63, 0x69, 0x70, 0x72, 0x6f, 0x63, 0x69, 0x74, 0x79,
	0x12, 0x17, 0x0a, 0x13, 0x52, 0x45, 0x43, 0x49, 0x50, 0x52, 0x4f, 0x43, 0x49, 0x54, 0x59, 0x5f,
	0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x45, 0x43,
	0x49, 0x50, 0x52, 0x4f, 0x43, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x4f, 0x4e,
	0x5f, 0x52, 0x45, 0x43, 0x49, 0x50, 0x52, 0x4f, 0x43, 0x41, 0x4c, 0x10, 0x02, 0x22, 0x73, 0x0a,
	0x05, 0x54, 0x65, 0x6e, 0x73, 0x65, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x45, 0x4e, 0x53, 0x45, 0x5f,
	0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x4f, 0x4e,
	0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x5f, 0x54, 0x45, 0x4e, 0x53, 0x45, 0x10, 0x01,
	0x12, 0x0a, 0x0a, 0x06, 0x46, 0x55, 0x54, 0x55, 0x52, 0x45, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04,
	0x50, 0x41, 0x53, 0x54, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e,
	0x54, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x49, 0x4d, 0x50, 0x45, 0x52, 0x46, 0x45, 0x43, 0x54,
	0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x4c, 0x55, 0x50, 0x45, 0x52, 0x46, 0x45, 0x43, 0x54,
	0x10, 0x06, 0x22, 0x42, 0x0a, 0x05, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x11, 0x0a, 0x0d, 0x56,
	0x4f, 0x49, 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a,
	0x0a, 0x06, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41,
	0x55, 0x53, 0x41, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x41, 0x53,
	0x53, 0x49, 0x56, 0x45, 0x10, 0x03, 0x22, 0xac, 0x08, 0x0a, 0x0e, 0x44, 0x65, 0x70, 0x65, 0x6e,
	0x64, 0x65, 0x6e, 0x63, 0x79, 0x45, 0x64, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x68, 0x65, 0x61,
	0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e,
	0x64, 0x65, 0x78, 0x12, 0x44, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
	0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65,
	0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x45, 0x64, 0x67, 0x65, 0x2e, 0x4c, 0x61, 0x62,
	0x65, 0x6c, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0xa9, 0x07, 0x0a, 0x05, 0x4c, 0x61,
	0x62, 0x65, 0x6c, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00,
	0x12, 0x0a, 0x0a, 0x06, 0x41, 0x42, 0x42, 0x52, 0x45, 0x56, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05,
	0x41, 0x43, 0x4f, 0x4d, 0x50, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x44, 0x56, 0x43, 0x4c,
	0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x44, 0x56, 0x4d, 0x4f, 0x44, 0x10, 0x04, 0x12, 0x08,
	0x0a, 0x04, 0x41, 0x4d, 0x4f, 0x44, 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x50, 0x50, 0x4f,
	0x53, 0x10, 0x06, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x54, 0x54, 0x52, 0x10, 0x07, 0x12, 0x07, 0x0a,
	0x03, 0x41, 0x55, 0x58, 0x10, 0x08, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x55, 0x58, 0x50, 0x41, 0x53,
	0x53, 0x10, 0x09, 0x12, 0x06, 0x0a, 0x02, 0x43, 0x43, 0x10, 0x0a, 0x12, 0x09, 0x0a, 0x05, 0x43,
	0x43, 0x4f, 0x4d, 0x50, 0x10, 0x0b, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x4f, 0x4e, 0x4a, 0x10, 0x0c,
	0x12, 0x09, 0x0a, 0x05, 0x43, 0x53, 0x55, 0x42, 0x4a, 0x10, 0x0d, 0x12, 0x0d, 0x0a, 0x09, 0x43,
	0x53, 0x55, 0x42, 0x4a, 0x50, 0x41, 0x53, 0x53, 0x10, 0x0e, 0x12, 0x07, 0x0a, 0x03, 0x44, 0x45,
	0x50, 0x10, 0x0f, 0x12, 0x07, 0x0a, 0x03, 0x44, 0x45, 0x54, 0x10, 0x10, 0x12, 0x0d, 0x0a, 0x09,
	0x44, 0x49, 0x53, 0x43, 0x4f, 0x55, 0x52, 0x53, 0x45, 0x10, 0x11, 0x12, 0x08, 0x0a, 0x04, 0x44,
	0x4f, 0x42, 0x4a, 0x10, 0x12, 0x12, 0x08, 0x0a, 0x04, 0x45, 0x58, 0x50, 0x4c, 0x10, 0x13, 0x12,
	0x0c, 0x0a, 0x08, 0x47, 0x4f, 0x45, 0x53, 0x57, 0x49, 0x54, 0x48, 0x10, 0x14, 0x12, 0x08, 0x0a,
	0x04, 0x49, 0x4f, 0x42, 0x4a, 0x10, 0x15, 0x12, 0x08, 0x0a, 0x04, 0x4d, 0x41, 0x52, 0x4b, 0x10,
	0x16, 0x12, 0x07, 0x0a, 0x03, 0x4d, 0x57, 0x45, 0x10, 0x17, 0x12, 0x07, 0x0a, 0x03, 0x4d, 0x57,
	0x56, 0x10, 0x18, 0x12, 0x07, 0x0a, 0x03, 0x4e, 0x45, 0x47, 0x10, 0x19, 0x12, 0x06, 0x0a, 0x02,
	0x4e, 0x4e, 0x10, 0x1a, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x50, 0x41, 0x44, 0x56, 0x4d, 0x4f, 0x44,
	0x10, 0x1b, 0x12, 0x09, 0x0a, 0x05, 0x4e, 0x53, 0x55, 0x42, 0x4a, 0x10, 0x1c, 0x12, 0x0d, 0x0a,
	0x09, 0x4e, 0x53, 0x55, 0x42, 0x4a, 0x50, 0x41, 0x53, 0x53, 0x10, 0x1d, 0x12, 0x07, 0x0a, 0x03,
	0x4e, 0x55, 0x4d, 0x10, 0x1e, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10,
	0x1f, 0x12, 0x05, 0x0a, 0x01, 0x50, 0x10, 0x20, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x41, 0x52, 0x41,
	0x54, 0x41, 0x58, 0x49, 0x53, 0x10, 0x21, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x41, 0x52, 0x54, 0x4d,
	0x4f, 0x44, 0x10, 0x22, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x43, 0x4f, 0x4d, 0x50, 0x10, 0x23, 0x12,
	0x08, 0x0a, 0x04, 0x50, 0x4f, 0x42, 0x4a, 0x10, 0x24, 0x12, 0x08, 0x0a, 0x04, 0x50, 0x4f, 0x53,
	0x53, 0x10, 0x25, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x4f, 0x53, 0x54, 0x4e, 0x45, 0x47, 0x10, 0x26,
	0x12, 0x0b, 0x0a, 0x07, 0x50, 0x52, 0x45, 0x43, 0x4f, 0x4d, 0x50, 0x10, 0x27, 0x12, 0x0b, 0x0a,
	0x07, 0x50, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x4a, 0x10, 0x28, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x52,
	0x45, 0x44, 0x45, 0x54, 0x10, 0x29, 0x12, 0x08, 0x0a, 0x04, 0x50, 0x52, 0x45, 0x46, 0x10, 0x2a,
	0x12, 0x08, 0x0a, 0x04, 0x50, 0x52, 0x45, 0x50, 0x10, 0x2b, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x52,
	0x4f, 0x4e, 0x4c, 0x10, 0x2c, 0x12, 0x07, 0x0a, 0x03, 0x50, 0x52, 0x54, 0x10, 0x2d, 0x12, 0x06,
	0x0a, 0x02, 0x50, 0x53, 0x10, 0x2e, 0x12, 0x0c, 0x0a, 0x08, 0x51, 0x55, 0x41, 0x4e, 0x54, 0x4d,
	0x4f, 0x44, 0x10, 0x2f, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x43, 0x4d, 0x4f, 0x44, 0x10, 0x30, 0x12,
	0x0c, 0x0a, 0x08, 0x52, 0x43, 0x4d, 0x4f, 0x44, 0x52, 0x45, 0x4c, 0x10, 0x31, 0x12, 0x09, 0x0a,
	0x05, 0x52, 0x44, 0x52, 0x4f, 0x50, 0x10, 0x32, 0x12, 0x07, 0x0a, 0x03, 0x52, 0x45, 0x46, 0x10,
	0x33, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x45, 0x4d, 0x4e, 0x41, 0x4e, 0x54, 0x10, 0x34, 0x12, 0x0e,
	0x0a, 0x0a, 0x52, 0x45, 0x50, 0x41, 0x52, 0x41, 0x4e, 0x44, 0x55, 0x4d, 0x10, 0x35, 0x12, 0x08,
	0x0a, 0x04, 0x52, 0x4f, 0x4f, 0x54, 0x10, 0x36, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x4e, 0x55, 0x4d,
	0x10, 0x37, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x55, 0x46, 0x46, 0x10, 0x38, 0x12, 0x08, 0x0a, 0x04,
	0x54, 0x4d, 0x4f, 0x44, 0x10, 0x39, 0x12, 0x09, 0x0a, 0x05, 0x54, 0x4f, 0x50, 0x49, 0x43, 0x10,
	0x3a, 0x12, 0x08, 0x0a, 0x04, 0x56, 0x4d, 0x4f, 0x44, 0x10, 0x3b, 0x12, 0x0c, 0x0a, 0x08, 0x56,
	0x4f, 0x43, 0x41, 0x54, 0x49, 0x56, 0x45, 0x10, 0x3c, 0x12, 0x09, 0x0a, 0x05, 0x58, 0x43, 0x4f,
	0x4d, 0x50, 0x10, 0x3d, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x55, 0x46, 0x46, 0x49, 0x58, 0x10, 0x3e,
	0x12, 0x09, 0x0a, 0x05, 0x54, 0x49, 0x54, 0x4c, 0x45, 0x10, 0x3f, 0x12, 0x0c, 0x0a, 0x08, 0x41,
	0x44, 0x56, 0x50, 0x48, 0x4d, 0x4f, 0x44, 0x10, 0x40, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x55, 0x58,
	0x43, 0x41, 0x55, 0x53, 0x10, 0x41, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x55, 0x58, 0x56, 0x56, 0x10,
	0x42, 0x12, 0x09, 0x0a, 0x05, 0x44, 0x54, 0x4d, 0x4f, 0x44, 0x10, 0x43, 0x12, 0x0b, 0x0a, 0x07,
	0x46, 0x4f, 0x52, 0x45, 0x49, 0x47, 0x4e, 0x10, 0x44, 0x12, 0x06, 0x0a, 0x02, 0x4b, 0x57, 0x10,
	0x45, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x46, 0x12, 0x08, 0x0a, 0x04, 0x4e,
	0x4f, 0x4d, 0x43, 0x10, 0x47, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x4f, 0x4d, 0x43, 0x53, 0x55, 0x42,
	0x4a, 0x10, 0x48, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x4f, 0x4d, 0x43, 0x53, 0x55, 0x42, 0x4a, 0x50,
	0x41, 0x53, 0x53, 0x10, 0x49, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x55, 0x4d, 0x43, 0x10, 0x4a, 0x12,
	0x07, 0x0a, 0x03, 0x43, 0x4f, 0x50, 0x10, 0x4b, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x49, 0x53, 0x4c,
	0x4f, 0x43, 0x41, 0x54, 0x45, 0x44, 0x10, 0x4c, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x53, 0x50, 0x10,
	0x4d, 0x12, 0x08, 0x0a, 0x04, 0x47, 0x4d, 0x4f, 0x44, 0x10, 0x4e, 0x12, 0x08, 0x0a, 0x04, 0x47,
	0x4f, 0x42, 0x4a, 0x10, 0x4f, 0x12, 0x0a, 0x0a, 0x06, 0x49, 0x4e, 0x46, 0x4d, 0x4f, 0x44, 0x10,
	0x50, 0x12, 0x07, 0x0a, 0x03, 0x4d, 0x45, 0x53, 0x10, 0x51, 0x12, 0x09, 0x0a, 0x05, 0x4e, 0x43,
	0x4f, 0x4d, 0x50, 0x10, 0x52, 0x22, 0xfe, 0x01, 0x0a, 0x0d, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79,
	0x4d, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31,
	0x2e, 0x54, 0x65, 0x78, 0x74, 0x53, 0x70, 0x61, 0x6e, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12,
	0x40, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e,
	0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4d,
	0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70,
	0x65, 0x12, 0x41, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
	0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e,
	0x53, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x09, 0x73, 0x65, 0x6e, 0x74, 0x69,
	0x6d, 0x65, 0x6e, 0x74, 0x22, 0x30, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c,
	0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a,
	0x0a, 0x06, 0x50, 0x52, 0x4f, 0x50, 0x45, 0x52, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x4f,
	0x4d, 0x4d, 0x4f, 0x4e, 0x10, 0x02, 0x22, 0x47, 0x0a, 0x08, 0x54, 0x65, 0x78, 0x74, 0x53, 0x70,
	0x61, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c,
	0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x0b, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22,
	0x4c, 0x0a, 0x16, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a,
	0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x02, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xab, 0x01,
	0x0a, 0x17, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x53, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65,
	0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x08, 0x64, 0x6f, 0x63,
	0x75, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75,
	0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x42,
	0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4b,
	0x0a, 0x0d, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31,
	0x2e, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x65,
	0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x22, 0xcc, 0x01, 0x0a, 0x18,
	0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x53, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x12, 0x64, 0x6f, 0x63, 0x75,
	0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
	0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e,
	0x53, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x11, 0x64, 0x6f, 0x63, 0x75, 0x6d,
	0x65, 0x6e, 0x74, 0x53, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08,
	0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
	0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x40, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x74,
	0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75,
	0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x52,
	0x09, 0x73, 0x65, 0x6e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x22, 0xb1, 0x01, 0x0a, 0x1d, 0x41,
	0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x53, 0x65, 0x6e, 0x74,
	0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x08,
	0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61,
	0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65,
	0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
	0x74, 0x12, 0x4b, 0x0a, 0x0d, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x79,
	0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65,
	0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65,
	0x52, 0x0c, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x22, 0x7a,
	0x0a, 0x1e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x53,
	0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x12, 0x3c, 0x0a, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
	0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e,
	0x74, 0x69, 0x74, 0x79, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x1a,
	0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0xaa, 0x01, 0x0a, 0x16, 0x41,
	0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
	0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e,
	0x76, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02,
	0x52, 0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x0d, 0x65, 0x6e,
	0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0e, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
	0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x63,
	0x6f, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x65, 0x6e, 0x63, 0x6f, 0x64,
	0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x22, 0x73, 0x0a, 0x17, 0x41, 0x6e, 0x61, 0x6c, 0x79,
	0x7a, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x12, 0x3c, 0x0a, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
	0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e,
	0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73,
	0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0xa8, 0x01, 0x0a,
	0x14, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x53, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
	0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e,
	0x76, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02,
	0x52, 0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x0d, 0x65, 0x6e,
	0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x0e, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
	0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x63,
	0x6f, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x65, 0x6e, 0x63, 0x6f, 0x64,
	0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x22, 0xae, 0x01, 0x0a, 0x15, 0x41, 0x6e, 0x61, 0x6c,
	0x79, 0x7a, 0x65, 0x53, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x40, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
	0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e,
	0x53, 0x65, 0x6e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x09, 0x73, 0x65, 0x6e, 0x74, 0x65, 0x6e,
	0x63, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x02, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
	0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54,
	0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x1a, 0x0a, 0x08,
	0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
	0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x5a, 0x0a, 0x13, 0x43, 0x6c, 0x61, 0x73,
	0x73, 0x69, 0x66, 0x79, 0x54, 0x65, 0x78, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x43, 0x0a, 0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
	0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x6f, 0x63,
	0x75, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x64, 0x6f, 0x63, 0x75,
	0x6d, 0x65, 0x6e, 0x74, 0x22, 0x68, 0x0a, 0x14, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x79,
	0x54, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x0a,
	0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
	0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x61, 0x73,
	0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f,
	0x72, 0x79, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x22, 0xfc,
	0x03, 0x0a, 0x13, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x54, 0x65, 0x78, 0x74, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65,
	0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65,
	0x2e, 0x76, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41,
	0x02, 0x52, 0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x57, 0x0a, 0x08, 0x66,
	0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e,
	0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74,
	0x65, 0x54, 0x65, 0x78, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x65, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74,
	0x75, 0x72, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0d, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67,
	0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75,
	0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x54,
	0x79, 0x70, 0x65, 0x52, 0x0c, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70,
	0x65, 0x1a, 0xf9, 0x01, 0x0a, 0x08, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x25,
	0x0a, 0x0e, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x53,
	0x79, 0x6e, 0x74, 0x61, 0x78, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74,
	0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x0f, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73,
	0x12, 0x3c, 0x0a, 0x1a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x64, 0x6f, 0x63, 0x75,
	0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x44, 0x6f, 0x63,
	0x75, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x38,
	0x0a, 0x18, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79,
	0x5f, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x16, 0x65, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x53,
	0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6c, 0x61, 0x73,
	0x73, 0x69, 0x66, 0x79, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x0c, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x79, 0x54, 0x65, 0x78, 0x74, 0x22, 0x91, 0x03,
	0x0a, 0x14, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x54, 0x65, 0x78, 0x74, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x74, 0x65, 0x6e,
	0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67,
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x09, 0x73,
	0x65, 0x6e, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x06, 0x74, 0x6f, 0x6b, 0x65,
	0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65,
	0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e,
	0x73, 0x12, 0x3c, 0x0a, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
	0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45,
	0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12,
	0x52, 0x0a, 0x12, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x6e, 0x74,
	0x69, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75,
	0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74,
	0x52, 0x11, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x6e, 0x74, 0x69, 0x6d,
	0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12,
	0x50, 0x0a, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x06, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
	0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43,
	0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x74,
	0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65,
	0x73, 0x2a, 0x38, 0x0a, 0x0c, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70,
	0x65, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x55,
	0x54, 0x46, 0x38, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x55, 0x54, 0x46, 0x31, 0x36, 0x10, 0x02,
	0x12, 0x09, 0x0a, 0x05, 0x55, 0x54, 0x46, 0x33, 0x32, 0x10, 0x03, 0x32, 0xb0, 0x0a, 0x0a, 0x0f,
	0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12,
	0xc8, 0x01, 0x0a, 0x10, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x53, 0x65, 0x6e, 0x74, 0x69,
	0x6d, 0x65, 0x6e, 0x74, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
	0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e,
	0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x53, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e,
	0x76, 0x31, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x53, 0x65, 0x6e, 0x74, 0x69, 0x6d,
	0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4d, 0x82, 0xd3, 0xe4,
	0x93, 0x02, 0x23, 0x22, 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
	0x74, 0x73, 0x3a, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x53, 0x65, 0x6e, 0x74, 0x69, 0x6d,
	0x65, 0x6e, 0x74, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x16, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
	0x74, 0x2c, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0xda,
	0x41, 0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0xc4, 0x01, 0x0a, 0x0f, 0x41,
	0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x30,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61,
	0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a,
	0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x1a, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
	0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x61, 0x6c,
	0x79, 0x7a, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x22, 0x4c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x22, 0x1d, 0x2f, 0x76, 0x31,
	0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x61, 0x6e, 0x61, 0x6c, 0x79,
	0x7a, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x16,
	0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e,
	0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0xda, 0x41, 0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
	0x74, 0x12, 0xe0, 0x01, 0x0a, 0x16, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x45, 0x6e, 0x74,
	0x69, 0x74, 0x79, 0x53, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x37, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67,
	0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x45,
	0x6e, 0x74, 0x69, 0x74, 0x79, 0x53, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31,
	0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x53, 0x65,
	0x6e, 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
	0x53, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x22, 0x24, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x6f, 0x63,
	0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x45, 0x6e,
	0x74, 0x69, 0x74, 0x79, 0x53, 0x65, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x3a, 0x01, 0x2a,
	0xda, 0x41, 0x16, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x65, 0x6e, 0x63, 0x6f,
	0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0xda, 0x41, 0x08, 0x64, 0x6f, 0x63, 0x75,
	0x6d, 0x65, 0x6e, 0x74, 0x12, 0xbc, 0x01, 0x0a, 0x0d, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65,
	0x53, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76,
	0x31, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x53, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76,
	0x31, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x53, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x22,
	0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x61,
	0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x53, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x3a, 0x01, 0x2a, 0xda,
	0x41, 0x16, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x65, 0x6e, 0x63, 0x6f, 0x64,
	0x69, 0x6e, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0xda, 0x41, 0x08, 0x64, 0x6f, 0x63, 0x75, 0x6d,
	0x65, 0x6e, 0x74, 0x12, 0x9f, 0x01, 0x0a, 0x0c, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x79,
	0x54, 0x65, 0x78, 0x74, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
	0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e,
	0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x79, 0x54, 0x65, 0x78, 0x74, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
	0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43,
	0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x79, 0x54, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1a, 0x2f, 0x76, 0x31,
	0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x63, 0x6c, 0x61, 0x73, 0x73,
	0x69, 0x66, 0x79, 0x54, 0x65, 0x78, 0x74, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x08, 0x64, 0x6f, 0x63,
	0x75, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0xca, 0x01, 0x0a, 0x0c, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61,
	0x74, 0x65, 0x54, 0x65, 0x78, 0x74, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76,
	0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x54, 0x65, 0x78, 0x74, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31,
	0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x54, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x22, 0x1a, 0x2f,
	0x76, 0x31, 0x2f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x3a, 0x61, 0x6e, 0x6e,
	0x6f, 0x74, 0x61, 0x74, 0x65, 0x54, 0x65, 0x78, 0x74, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x1f, 0x64,
	0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73,
	0x2c, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0xda, 0x41,
	0x11, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2c, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72,
	0x65, 0x73, 0x1a, 0x7a, 0xca, 0x41, 0x17, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41,
	0x5d, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68,
	0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2c,
	0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f,
	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0x78,
	0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
	0x75, 0x64, 0x2e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x14,
	0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50,
	0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x40, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67,
	0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c,
	0x6f, 0x75, 0x64, 0x2f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x31, 0x3b,
	0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_google_cloud_language_v1_language_service_proto_rawDescOnce sync.Once
	file_google_cloud_language_v1_language_service_proto_rawDescData = file_google_cloud_language_v1_language_service_proto_rawDesc
)

func file_google_cloud_language_v1_language_service_proto_rawDescGZIP() []byte {
	file_google_cloud_language_v1_language_service_proto_rawDescOnce.Do(func() {
		file_google_cloud_language_v1_language_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_language_v1_language_service_proto_rawDescData)
	})
	return file_google_cloud_language_v1_language_service_proto_rawDescData
}

var file_google_cloud_language_v1_language_service_proto_enumTypes = make([]protoimpl.EnumInfo, 17)
var file_google_cloud_language_v1_language_service_proto_msgTypes = make([]protoimpl.MessageInfo, 24)
var file_google_cloud_language_v1_language_service_proto_goTypes = []interface{}{
	(EncodingType)(0),                      // 0: google.cloud.language.v1.EncodingType
	(Document_Type)(0),                     // 1: google.cloud.language.v1.Document.Type
	(Entity_Type)(0),                       // 2: google.cloud.language.v1.Entity.Type
	(PartOfSpeech_Tag)(0),                  // 3: google.cloud.language.v1.PartOfSpeech.Tag
	(PartOfSpeech_Aspect)(0),               // 4: google.cloud.language.v1.PartOfSpeech.Aspect
	(PartOfSpeech_Case)(0),                 // 5: google.cloud.language.v1.PartOfSpeech.Case
	(PartOfSpeech_Form)(0),                 // 6: google.cloud.language.v1.PartOfSpeech.Form
	(PartOfSpeech_Gender)(0),               // 7: google.cloud.language.v1.PartOfSpeech.Gender
	(PartOfSpeech_Mood)(0),                 // 8: google.cloud.language.v1.PartOfSpeech.Mood
	(PartOfSpeech_Number)(0),               // 9: google.cloud.language.v1.PartOfSpeech.Number
	(PartOfSpeech_Person)(0),               // 10: google.cloud.language.v1.PartOfSpeech.Person
	(PartOfSpeech_Proper)(0),               // 11: google.cloud.language.v1.PartOfSpeech.Proper
	(PartOfSpeech_Reciprocity)(0),          // 12: google.cloud.language.v1.PartOfSpeech.Reciprocity
	(PartOfSpeech_Tense)(0),                // 13: google.cloud.language.v1.PartOfSpeech.Tense
	(PartOfSpeech_Voice)(0),                // 14: google.cloud.language.v1.PartOfSpeech.Voice
	(DependencyEdge_Label)(0),              // 15: google.cloud.language.v1.DependencyEdge.Label
	(EntityMention_Type)(0),                // 16: google.cloud.language.v1.EntityMention.Type
	(*Document)(nil),                       // 17: google.cloud.language.v1.Document
	(*Sentence)(nil),                       // 18: google.cloud.language.v1.Sentence
	(*Entity)(nil),                         // 19: google.cloud.language.v1.Entity
	(*Token)(nil),                          // 20: google.cloud.language.v1.Token
	(*Sentiment)(nil),                      // 21: google.cloud.language.v1.Sentiment
	(*PartOfSpeech)(nil),                   // 22: google.cloud.language.v1.PartOfSpeech
	(*DependencyEdge)(nil),                 // 23: google.cloud.language.v1.DependencyEdge
	(*EntityMention)(nil),                  // 24: google.cloud.language.v1.EntityMention
	(*TextSpan)(nil),                       // 25: google.cloud.language.v1.TextSpan
	(*ClassificationCategory)(nil),         // 26: google.cloud.language.v1.ClassificationCategory
	(*AnalyzeSentimentRequest)(nil),        // 27: google.cloud.language.v1.AnalyzeSentimentRequest
	(*AnalyzeSentimentResponse)(nil),       // 28: google.cloud.language.v1.AnalyzeSentimentResponse
	(*AnalyzeEntitySentimentRequest)(nil),  // 29: google.cloud.language.v1.AnalyzeEntitySentimentRequest
	(*AnalyzeEntitySentimentResponse)(nil), // 30: google.cloud.language.v1.AnalyzeEntitySentimentResponse
	(*AnalyzeEntitiesRequest)(nil),         // 31: google.cloud.language.v1.AnalyzeEntitiesRequest
	(*AnalyzeEntitiesResponse)(nil),        // 32: google.cloud.language.v1.AnalyzeEntitiesResponse
	(*AnalyzeSyntaxRequest)(nil),           // 33: google.cloud.language.v1.AnalyzeSyntaxRequest
	(*AnalyzeSyntaxResponse)(nil),          // 34: google.cloud.language.v1.AnalyzeSyntaxResponse
	(*ClassifyTextRequest)(nil),            // 35: google.cloud.language.v1.ClassifyTextRequest
	(*ClassifyTextResponse)(nil),           // 36: google.cloud.language.v1.ClassifyTextResponse
	(*AnnotateTextRequest)(nil),            // 37: google.cloud.language.v1.AnnotateTextRequest
	(*AnnotateTextResponse)(nil),           // 38: google.cloud.language.v1.AnnotateTextResponse
	nil,                                    // 39: google.cloud.language.v1.Entity.MetadataEntry
	(*AnnotateTextRequest_Features)(nil),   // 40: google.cloud.language.v1.AnnotateTextRequest.Features
}
var file_google_cloud_language_v1_language_service_proto_depIdxs = []int32{
	1,  // 0: google.cloud.language.v1.Document.type:type_name -> google.cloud.language.v1.Document.Type
	25, // 1: google.cloud.language.v1.Sentence.text:type_name -> google.cloud.language.v1.TextSpan
	21, // 2: google.cloud.language.v1.Sentence.sentiment:type_name -> google.cloud.language.v1.Sentiment
	2,  // 3: google.cloud.language.v1.Entity.type:type_name -> google.cloud.language.v1.Entity.Type
	39, // 4: google.cloud.language.v1.Entity.metadata:type_name -> google.cloud.language.v1.Entity.MetadataEntry
	24, // 5: google.cloud.language.v1.Entity.mentions:type_name -> google.cloud.language.v1.EntityMention
	21, // 6: google.cloud.language.v1.Entity.sentiment:type_name -> google.cloud.language.v1.Sentiment
	25, // 7: google.cloud.language.v1.Token.text:type_name -> google.cloud.language.v1.TextSpan
	22, // 8: google.cloud.language.v1.Token.part_of_speech:type_name -> google.cloud.language.v1.PartOfSpeech
	23, // 9: google.cloud.language.v1.Token.dependency_edge:type_name -> google.cloud.language.v1.DependencyEdge
	3,  // 10: google.cloud.language.v1.PartOfSpeech.tag:type_name -> google.cloud.language.v1.PartOfSpeech.Tag
	4,  // 11: google.cloud.language.v1.PartOfSpeech.aspect:type_name -> google.cloud.language.v1.PartOfSpeech.Aspect
	5,  // 12: google.cloud.language.v1.PartOfSpeech.case:type_name -> google.cloud.language.v1.PartOfSpeech.Case
	6,  // 13: google.cloud.language.v1.PartOfSpeech.form:type_name -> google.cloud.language.v1.PartOfSpeech.Form
	7,  // 14: google.cloud.language.v1.PartOfSpeech.gender:type_name -> google.cloud.language.v1.PartOfSpeech.Gender
	8,  // 15: google.cloud.language.v1.PartOfSpeech.mood:type_name -> google.cloud.language.v1.PartOfSpeech.Mood
	9,  // 16: google.cloud.language.v1.PartOfSpeech.number:type_name -> google.cloud.language.v1.PartOfSpeech.Number
	10, // 17: google.cloud.language.v1.PartOfSpeech.person:type_name -> google.cloud.language.v1.PartOfSpeech.Person
	11, // 18: google.cloud.language.v1.PartOfSpeech.proper:type_name -> google.cloud.language.v1.PartOfSpeech.Proper
	12, // 19: google.cloud.language.v1.PartOfSpeech.reciprocity:type_name -> google.cloud.language.v1.PartOfSpeech.Reciprocity
	13, // 20: google.cloud.language.v1.PartOfSpeech.tense:type_name -> google.cloud.language.v1.PartOfSpeech.Tense
	14, // 21: google.cloud.language.v1.PartOfSpeech.voice:type_name -> google.cloud.language.v1.PartOfSpeech.Voice
	15, // 22: google.cloud.language.v1.DependencyEdge.label:type_name -> google.cloud.language.v1.DependencyEdge.Label
	25, // 23: google.cloud.language.v1.EntityMention.text:type_name -> google.cloud.language.v1.TextSpan
	16, // 24: google.cloud.language.v1.EntityMention.type:type_name -> google.cloud.language.v1.EntityMention.Type
	21, // 25: google.cloud.language.v1.EntityMention.sentiment:type_name -> google.cloud.language.v1.Sentiment
	17, // 26: google.cloud.language.v1.AnalyzeSentimentRequest.document:type_name -> google.cloud.language.v1.Document
	0,  // 27: google.cloud.language.v1.AnalyzeSentimentRequest.encoding_type:type_name -> google.cloud.language.v1.EncodingType
	21, // 28: google.cloud.language.v1.AnalyzeSentimentResponse.document_sentiment:type_name -> google.cloud.language.v1.Sentiment
	18, // 29: google.cloud.language.v1.AnalyzeSentimentResponse.sentences:type_name -> google.cloud.language.v1.Sentence
	17, // 30: google.cloud.language.v1.AnalyzeEntitySentimentRequest.document:type_name -> google.cloud.language.v1.Document
	0,  // 31: google.cloud.language.v1.AnalyzeEntitySentimentRequest.encoding_type:type_name -> google.cloud.language.v1.EncodingType
	19, // 32: google.cloud.language.v1.AnalyzeEntitySentimentResponse.entities:type_name -> google.cloud.language.v1.Entity
	17, // 33: google.cloud.language.v1.AnalyzeEntitiesRequest.document:type_name -> google.cloud.language.v1.Document
	0,  // 34: google.cloud.language.v1.AnalyzeEntitiesRequest.encoding_type:type_name -> google.cloud.language.v1.EncodingType
	19, // 35: google.cloud.language.v1.AnalyzeEntitiesResponse.entities:type_name -> google.cloud.language.v1.Entity
	17, // 36: google.cloud.language.v1.AnalyzeSyntaxRequest.document:type_name -> google.cloud.language.v1.Document
	0,  // 37: google.cloud.language.v1.AnalyzeSyntaxRequest.encoding_type:type_name -> google.cloud.language.v1.EncodingType
	18, // 38: google.cloud.language.v1.AnalyzeSyntaxResponse.sentences:type_name -> google.cloud.language.v1.Sentence
	20, // 39: google.cloud.language.v1.AnalyzeSyntaxResponse.tokens:type_name -> google.cloud.language.v1.Token
	17, // 40: google.cloud.language.v1.ClassifyTextRequest.document:type_name -> google.cloud.language.v1.Document
	26, // 41: google.cloud.language.v1.ClassifyTextResponse.categories:type_name -> google.cloud.language.v1.ClassificationCategory
	17, // 42: google.cloud.language.v1.AnnotateTextRequest.document:type_name -> google.cloud.language.v1.Document
	40, // 43: google.cloud.language.v1.AnnotateTextRequest.features:type_name -> google.cloud.language.v1.AnnotateTextRequest.Features
	0,  // 44: google.cloud.language.v1.AnnotateTextRequest.encoding_type:type_name -> google.cloud.language.v1.EncodingType
	18, // 45: google.cloud.language.v1.AnnotateTextResponse.sentences:type_name -> google.cloud.language.v1.Sentence
	20, // 46: google.cloud.language.v1.AnnotateTextResponse.tokens:type_name -> google.cloud.language.v1.Token
	19, // 47: google.cloud.language.v1.AnnotateTextResponse.entities:type_name -> google.cloud.language.v1.Entity
	21, // 48: google.cloud.language.v1.AnnotateTextResponse.document_sentiment:type_name -> google.cloud.language.v1.Sentiment
	26, // 49: google.cloud.language.v1.AnnotateTextResponse.categories:type_name -> google.cloud.language.v1.ClassificationCategory
	27, // 50: google.cloud.language.v1.LanguageService.AnalyzeSentiment:input_type -> google.cloud.language.v1.AnalyzeSentimentRequest
	31, // 51: google.cloud.language.v1.LanguageService.AnalyzeEntities:input_type -> google.cloud.language.v1.AnalyzeEntitiesRequest
	29, // 52: google.cloud.language.v1.LanguageService.AnalyzeEntitySentiment:input_type -> google.cloud.language.v1.AnalyzeEntitySentimentRequest
	33, // 53: google.cloud.language.v1.LanguageService.AnalyzeSyntax:input_type -> google.cloud.language.v1.AnalyzeSyntaxRequest
	35, // 54: google.cloud.language.v1.LanguageService.ClassifyText:input_type -> google.cloud.language.v1.ClassifyTextRequest
	37, // 55: google.cloud.language.v1.LanguageService.AnnotateText:input_type -> google.cloud.language.v1.AnnotateTextRequest
	28, // 56: google.cloud.language.v1.LanguageService.AnalyzeSentiment:output_type -> google.cloud.language.v1.AnalyzeSentimentResponse
	32, // 57: google.cloud.language.v1.LanguageService.AnalyzeEntities:output_type -> google.cloud.language.v1.AnalyzeEntitiesResponse
	30, // 58: google.cloud.language.v1.LanguageService.AnalyzeEntitySentiment:output_type -> google.cloud.language.v1.AnalyzeEntitySentimentResponse
	34, // 59: google.cloud.language.v1.LanguageService.AnalyzeSyntax:output_type -> google.cloud.language.v1.AnalyzeSyntaxResponse
	36, // 60: google.cloud.language.v1.LanguageService.ClassifyText:output_type -> google.cloud.language.v1.ClassifyTextResponse
	38, // 61: google.cloud.language.v1.LanguageService.AnnotateText:output_type -> google.cloud.language.v1.AnnotateTextResponse
	56, // [56:62] is the sub-list for method output_type
	50, // [50:56] is the sub-list for method input_type
	50, // [50:50] is the sub-list for extension type_name
	50, // [50:50] is the sub-list for extension extendee
	0,  // [0:50] is the sub-list for field type_name
}

func init() { file_google_cloud_language_v1_language_service_proto_init() }
func file_google_cloud_language_v1_language_service_proto_init() {
	if File_google_cloud_language_v1_language_service_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_google_cloud_language_v1_language_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Document); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_language_v1_language_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Sentence); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_language_v1_language_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Entity); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_language_v1_language_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Token); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_language_v1_language_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Sentiment); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_language_v1_language_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PartOfSpeech); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_language_v1_language_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DependencyEdge); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_language_v1_language_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*EntityMention); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_language_v1_language_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TextSpan); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_language_v1_language_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ClassificationCategory); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_language_v1_language_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AnalyzeSentimentRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_language_v1_language_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AnalyzeSentimentResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_language_v1_language_service_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AnalyzeEntitySentimentRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_language_v1_language_service_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AnalyzeEntitySentimentResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_language_v1_language_service_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AnalyzeEntitiesRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_language_v1_language_service_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AnalyzeEntitiesResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_language_v1_language_service_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AnalyzeSyntaxRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_language_v1_language_service_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AnalyzeSyntaxResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_language_v1_language_service_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ClassifyTextRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_language_v1_language_service_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ClassifyTextResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_language_v1_language_service_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AnnotateTextRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_language_v1_language_service_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AnnotateTextResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_google_cloud_language_v1_language_service_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AnnotateTextRequest_Features); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_google_cloud_language_v1_language_service_proto_msgTypes[0].OneofWrappers = []interface{}{
		(*Document_Content)(nil),
		(*Document_GcsContentUri)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_google_cloud_language_v1_language_service_proto_rawDesc,
			NumEnums:      17,
			NumMessages:   24,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_google_cloud_language_v1_language_service_proto_goTypes,
		DependencyIndexes: file_google_cloud_language_v1_language_service_proto_depIdxs,
		EnumInfos:         file_google_cloud_language_v1_language_service_proto_enumTypes,
		MessageInfos:      file_google_cloud_language_v1_language_service_proto_msgTypes,
	}.Build()
	File_google_cloud_language_v1_language_service_proto = out.File
	file_google_cloud_language_v1_language_service_proto_rawDesc = nil
	file_google_cloud_language_v1_language_service_proto_goTypes = nil
	file_google_cloud_language_v1_language_service_proto_depIdxs = nil
}

// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConnInterface

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion6

// LanguageServiceClient is the client API for LanguageService service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type LanguageServiceClient interface {
	// Analyzes the sentiment of the provided text.
	AnalyzeSentiment(ctx context.Context, in *AnalyzeSentimentRequest, opts ...grpc.CallOption) (*AnalyzeSentimentResponse, error)
	// Finds named entities (currently proper names and common nouns) in the text
	// along with entity types, salience, mentions for each entity, and
	// other properties.
	AnalyzeEntities(ctx context.Context, in *AnalyzeEntitiesRequest, opts ...grpc.CallOption) (*AnalyzeEntitiesResponse, error)
	// Finds entities, similar to [AnalyzeEntities][google.cloud.language.v1.LanguageService.AnalyzeEntities] in the text and analyzes
	// sentiment associated with each entity and its mentions.
	AnalyzeEntitySentiment(ctx context.Context, in *AnalyzeEntitySentimentRequest, opts ...grpc.CallOption) (*AnalyzeEntitySentimentResponse, error)
	// Analyzes the syntax of the text and provides sentence boundaries and
	// tokenization along with part of speech tags, dependency trees, and other
	// properties.
	AnalyzeSyntax(ctx context.Context, in *AnalyzeSyntaxRequest, opts ...grpc.CallOption) (*AnalyzeSyntaxResponse, error)
	// Classifies a document into categories.
	ClassifyText(ctx context.Context, in *ClassifyTextRequest, opts ...grpc.CallOption) (*ClassifyTextResponse, error)
	// A convenience method that provides all the features that analyzeSentiment,
	// analyzeEntities, and analyzeSyntax provide in one call.
	AnnotateText(ctx context.Context, in *AnnotateTextRequest, opts ...grpc.CallOption) (*AnnotateTextResponse, error)
}

type languageServiceClient struct {
	cc grpc.ClientConnInterface
}

func NewLanguageServiceClient(cc grpc.ClientConnInterface) LanguageServiceClient {
	return &languageServiceClient{cc}
}

func (c *languageServiceClient) AnalyzeSentiment(ctx context.Context, in *AnalyzeSentimentRequest, opts ...grpc.CallOption) (*AnalyzeSentimentResponse, error) {
	out := new(AnalyzeSentimentResponse)
	err := c.cc.Invoke(ctx, "/google.cloud.language.v1.LanguageService/AnalyzeSentiment", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *languageServiceClient) AnalyzeEntities(ctx context.Context, in *AnalyzeEntitiesRequest, opts ...grpc.CallOption) (*AnalyzeEntitiesResponse, error) {
	out := new(AnalyzeEntitiesResponse)
	err := c.cc.Invoke(ctx, "/google.cloud.language.v1.LanguageService/AnalyzeEntities", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *languageServiceClient) AnalyzeEntitySentiment(ctx context.Context, in *AnalyzeEntitySentimentRequest, opts ...grpc.CallOption) (*AnalyzeEntitySentimentResponse, error) {
	out := new(AnalyzeEntitySentimentResponse)
	err := c.cc.Invoke(ctx, "/google.cloud.language.v1.LanguageService/AnalyzeEntitySentiment", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *languageServiceClient) AnalyzeSyntax(ctx context.Context, in *AnalyzeSyntaxRequest, opts ...grpc.CallOption) (*AnalyzeSyntaxResponse, error) {
	out := new(AnalyzeSyntaxResponse)
	err := c.cc.Invoke(ctx, "/google.cloud.language.v1.LanguageService/AnalyzeSyntax", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *languageServiceClient) ClassifyText(ctx context.Context, in *ClassifyTextRequest, opts ...grpc.CallOption) (*ClassifyTextResponse, error) {
	out := new(ClassifyTextResponse)
	err := c.cc.Invoke(ctx, "/google.cloud.language.v1.LanguageService/ClassifyText", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *languageServiceClient) AnnotateText(ctx context.Context, in *AnnotateTextRequest, opts ...grpc.CallOption) (*AnnotateTextResponse, error) {
	out := new(AnnotateTextResponse)
	err := c.cc.Invoke(ctx, "/google.cloud.language.v1.LanguageService/AnnotateText", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// LanguageServiceServer is the server API for LanguageService service.
type LanguageServiceServer interface {
	// Analyzes the sentiment of the provided text.
	AnalyzeSentiment(context.Context, *AnalyzeSentimentRequest) (*AnalyzeSentimentResponse, error)
	// Finds named entities (currently proper names and common nouns) in the text
	// along with entity types, salience, mentions for each entity, and
	// other properties.
	AnalyzeEntities(context.Context, *AnalyzeEntitiesRequest) (*AnalyzeEntitiesResponse, error)
	// Finds entities, similar to [AnalyzeEntities][google.cloud.language.v1.LanguageService.AnalyzeEntities] in the text and analyzes
	// sentiment associated with each entity and its mentions.
	AnalyzeEntitySentiment(context.Context, *AnalyzeEntitySentimentRequest) (*AnalyzeEntitySentimentResponse, error)
	// Analyzes the syntax of the text and provides sentence boundaries and
	// tokenization along with part of speech tags, dependency trees, and other
	// properties.
	AnalyzeSyntax(context.Context, *AnalyzeSyntaxRequest) (*AnalyzeSyntaxResponse, error)
	// Classifies a document into categories.
	ClassifyText(context.Context, *ClassifyTextRequest) (*ClassifyTextResponse, error)
	// A convenience method that provides all the features that analyzeSentiment,
	// analyzeEntities, and analyzeSyntax provide in one call.
	AnnotateText(context.Context, *AnnotateTextRequest) (*AnnotateTextResponse, error)
}

// UnimplementedLanguageServiceServer can be embedded to have forward compatible implementations.
type UnimplementedLanguageServiceServer struct {
}

func (*UnimplementedLanguageServiceServer) AnalyzeSentiment(context.Context, *AnalyzeSentimentRequest) (*AnalyzeSentimentResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method AnalyzeSentiment not implemented")
}
func (*UnimplementedLanguageServiceServer) AnalyzeEntities(context.Context, *AnalyzeEntitiesRequest) (*AnalyzeEntitiesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method AnalyzeEntities not implemented")
}
func (*UnimplementedLanguageServiceServer) AnalyzeEntitySentiment(context.Context, *AnalyzeEntitySentimentRequest) (*AnalyzeEntitySentimentResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method AnalyzeEntitySentiment not implemented")
}
func (*UnimplementedLanguageServiceServer) AnalyzeSyntax(context.Context, *AnalyzeSyntaxRequest) (*AnalyzeSyntaxResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method AnalyzeSyntax not implemented")
}
func (*UnimplementedLanguageServiceServer) ClassifyText(context.Context, *ClassifyTextRequest) (*ClassifyTextResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ClassifyText not implemented")
}
func (*UnimplementedLanguageServiceServer) AnnotateText(context.Context, *AnnotateTextRequest) (*AnnotateTextResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method AnnotateText not implemented")
}

func RegisterLanguageServiceServer(s *grpc.Server, srv LanguageServiceServer) {
	s.RegisterService(&_LanguageService_serviceDesc, srv)
}

func _LanguageService_AnalyzeSentiment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AnalyzeSentimentRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LanguageServiceServer).AnalyzeSentiment(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.language.v1.LanguageService/AnalyzeSentiment",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LanguageServiceServer).AnalyzeSentiment(ctx, req.(*AnalyzeSentimentRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _LanguageService_AnalyzeEntities_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AnalyzeEntitiesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LanguageServiceServer).AnalyzeEntities(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.language.v1.LanguageService/AnalyzeEntities",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LanguageServiceServer).AnalyzeEntities(ctx, req.(*AnalyzeEntitiesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _LanguageService_AnalyzeEntitySentiment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AnalyzeEntitySentimentRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LanguageServiceServer).AnalyzeEntitySentiment(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.language.v1.LanguageService/AnalyzeEntitySentiment",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LanguageServiceServer).AnalyzeEntitySentiment(ctx, req.(*AnalyzeEntitySentimentRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _LanguageService_AnalyzeSyntax_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AnalyzeSyntaxRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LanguageServiceServer).AnalyzeSyntax(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.language.v1.LanguageService/AnalyzeSyntax",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LanguageServiceServer).AnalyzeSyntax(ctx, req.(*AnalyzeSyntaxRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _LanguageService_ClassifyText_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ClassifyTextRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LanguageServiceServer).ClassifyText(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.language.v1.LanguageService/ClassifyText",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LanguageServiceServer).ClassifyText(ctx, req.(*ClassifyTextRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _LanguageService_AnnotateText_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AnnotateTextRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LanguageServiceServer).AnnotateText(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/google.cloud.language.v1.LanguageService/AnnotateText",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LanguageServiceServer).AnnotateText(ctx, req.(*AnnotateTextRequest))
	}
	return interceptor(ctx, in, info, handler)
}

var _LanguageService_serviceDesc = grpc.ServiceDesc{
	ServiceName: "google.cloud.language.v1.LanguageService",
	HandlerType: (*LanguageServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "AnalyzeSentiment",
			Handler:    _LanguageService_AnalyzeSentiment_Handler,
		},
		{
			MethodName: "AnalyzeEntities",
			Handler:    _LanguageService_AnalyzeEntities_Handler,
		},
		{
			MethodName: "AnalyzeEntitySentiment",
			Handler:    _LanguageService_AnalyzeEntitySentiment_Handler,
		},
		{
			MethodName: "AnalyzeSyntax",
			Handler:    _LanguageService_AnalyzeSyntax_Handler,
		},
		{
			MethodName: "ClassifyText",
			Handler:    _LanguageService_ClassifyText_Handler,
		},
		{
			MethodName: "AnnotateText",
			Handler:    _LanguageService_AnnotateText_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "google/cloud/language/v1/language_service.proto",
}
