From a39302fa4a41470ff0cde6c26fbae822a38779ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93lafur=20P=C3=A1ll=20Geirsson?= Date: Thu, 25 May 2023 07:43:55 +0200 Subject: [PATCH 1/2] Add `SymbolInformation.display_name` Towards https://github.com/sourcegraph/scip/issues/154 Previously, there was no reliable way to get the name of a symbol. You could parse it from the symbol descriptor but that only worked for global symbols (not locals) and was error-prone when the indexer chooses to a special encoding in the symbol for some reason (for example, all-lowercase because symbols are case-insensitive). Now, clients can use `SymbolInformation.display_name` to reliably get the name of a symbol to render in API docs or some other application. --- bindings/go/scip/scip.pb.go | 523 ++++---- bindings/rust/src/generated/scip.rs | 1803 ++++++++++++++------------- bindings/typescript/scip.ts | 23 + docs/scip.md | 13 +- scip.proto | 10 +- 5 files changed, 1234 insertions(+), 1138 deletions(-) diff --git a/bindings/go/scip/scip.pb.go b/bindings/go/scip/scip.pb.go index eeb66226..d52e092f 100644 --- a/bindings/go/scip/scip.pb.go +++ b/bindings/go/scip/scip.pb.go @@ -907,7 +907,7 @@ func (Descriptor_Suffix) EnumDescriptor() ([]byte, []int) { return file_scip_proto_rawDescGZIP(), []int{6, 0} } -// Kind represents the fine-grained category of a symbol, suitable for presenting +// (optional) Kind represents the fine-grained category of a symbol, suitable for presenting // information about the symbol's meaning in the language. // // For example: @@ -1739,6 +1739,14 @@ type SymbolInformation struct { // `SymbolDescriptor.Suffix` to determine whether something is, for example, a // class or a method. Kind SymbolInformation_Kind `protobuf:"varint,5,opt,name=kind,proto3,enum=scip.SymbolInformation_Kind" json:"kind,omitempty"` + // (optional) The name of this symbol as it should be displayed to the user. The `symbol` field + // is not a reliable source of the display name for several reasons: + // + // - Local symbols don't encode the name. + // - Some languages have case-insensitive names, so the symbol is all-lowercase. + // - The symbol may encode names with special characters that should not be + // displayed to the user. + DisplayName string `protobuf:"bytes,6,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` } func (x *SymbolInformation) Reset() { @@ -1801,6 +1809,13 @@ func (x *SymbolInformation) GetKind() SymbolInformation_Kind { return SymbolInformation_UnspecifiedKind } +func (x *SymbolInformation) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + type Relationship struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2262,7 +2277,7 @@ var file_scip_proto_rawDesc = []byte{ 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x10, 0x06, 0x12, 0x08, 0x0a, 0x04, 0x4d, 0x65, 0x74, 0x61, 0x10, 0x07, 0x12, 0x09, 0x0a, 0x05, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x10, 0x08, 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x61, 0x63, 0x72, 0x6f, 0x10, 0x09, 0x1a, - 0x02, 0x10, 0x01, 0x22, 0x9a, 0x08, 0x0a, 0x11, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x49, 0x6e, + 0x02, 0x10, 0x01, 0x22, 0xbd, 0x08, 0x0a, 0x11, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, @@ -2274,257 +2289,259 @@ var file_scip_proto_rawDesc = []byte{ 0x73, 0x12, 0x30, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x73, 0x63, 0x69, 0x70, 0x2e, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x6b, - 0x69, 0x6e, 0x64, 0x22, 0xda, 0x06, 0x0a, 0x04, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x13, 0x0a, 0x0f, - 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x4b, 0x69, 0x6e, 0x64, 0x10, - 0x00, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x72, 0x72, 0x61, 0x79, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, - 0x41, 0x73, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x41, - 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x10, 0x04, 0x12, 0x09, - 0x0a, 0x05, 0x41, 0x78, 0x69, 0x6f, 0x6d, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x6f, 0x6f, - 0x6c, 0x65, 0x61, 0x6e, 0x10, 0x06, 0x12, 0x09, 0x0a, 0x05, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x10, - 0x07, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x10, 0x08, 0x12, - 0x0f, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x6f, 0x72, 0x10, 0x09, - 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x61, 0x74, 0x61, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x10, 0x0a, - 0x12, 0x08, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x10, 0x0b, 0x12, 0x0e, 0x0a, 0x0a, 0x45, 0x6e, - 0x75, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x0c, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x10, 0x0d, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x61, 0x63, 0x74, 0x10, 0x0e, 0x12, - 0x09, 0x0a, 0x05, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x10, 0x0f, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x69, - 0x6c, 0x65, 0x10, 0x10, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x10, 0x11, 0x12, 0x0a, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x74, 0x65, 0x72, 0x10, 0x12, 0x12, 0x0b, - 0x0a, 0x07, 0x47, 0x72, 0x61, 0x6d, 0x6d, 0x61, 0x72, 0x10, 0x13, 0x12, 0x0c, 0x0a, 0x08, 0x49, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x10, 0x14, 0x12, 0x0d, 0x0a, 0x09, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x10, 0x15, 0x12, 0x07, 0x0a, 0x03, 0x4b, 0x65, 0x79, 0x10, - 0x16, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x61, 0x6e, 0x67, 0x10, 0x17, 0x12, 0x09, 0x0a, 0x05, 0x4c, - 0x65, 0x6d, 0x6d, 0x61, 0x10, 0x18, 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x61, 0x63, 0x72, 0x6f, 0x10, - 0x19, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x10, 0x1a, 0x12, 0x12, 0x0a, - 0x0e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x10, - 0x1b, 0x12, 0x0b, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x10, 0x1c, 0x12, 0x0a, - 0x0a, 0x06, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x10, 0x1d, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x10, 0x1e, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x75, 0x6c, - 0x6c, 0x10, 0x1f, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x20, 0x12, - 0x0a, 0x0a, 0x06, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x10, 0x21, 0x12, 0x0c, 0x0a, 0x08, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x22, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x61, 0x63, - 0x6b, 0x61, 0x67, 0x65, 0x10, 0x23, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, - 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x10, 0x24, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x10, 0x25, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x10, 0x26, 0x12, 0x0b, 0x0a, 0x07, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x10, 0x27, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x72, 0x65, - 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x10, 0x28, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x10, 0x29, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x10, 0x2a, 0x12, 0x0f, 0x0a, 0x0b, 0x51, 0x75, 0x61, 0x73, 0x69, 0x71, 0x75, 0x6f, - 0x74, 0x65, 0x72, 0x10, 0x2b, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x65, 0x6c, 0x66, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x10, 0x2c, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x65, 0x74, 0x74, - 0x65, 0x72, 0x10, 0x2d, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, - 0x65, 0x10, 0x2e, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x10, 0x2f, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x10, 0x30, 0x12, 0x0a, - 0x0a, 0x06, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x10, 0x31, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x61, - 0x63, 0x74, 0x69, 0x63, 0x10, 0x32, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x68, 0x65, 0x6f, 0x72, 0x65, - 0x6d, 0x10, 0x33, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x68, 0x69, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x10, 0x34, 0x12, 0x09, 0x0a, 0x05, 0x54, 0x72, 0x61, 0x69, 0x74, 0x10, - 0x35, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x10, 0x36, 0x12, 0x0d, 0x0a, 0x09, 0x54, - 0x79, 0x70, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x10, 0x37, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x79, - 0x70, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x10, 0x38, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x79, 0x70, - 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x10, 0x39, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x79, 0x70, - 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x10, 0x3a, 0x12, 0x09, 0x0a, 0x05, - 0x55, 0x6e, 0x69, 0x6f, 0x6e, 0x10, 0x3b, 0x12, 0x09, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x3c, 0x12, 0x0c, 0x0a, 0x08, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x10, 0x3d, - 0x22, 0xc9, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, - 0x70, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, - 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0b, 0x69, 0x73, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x2b, 0x0a, 0x11, - 0x69, 0x73, 0x5f, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x73, 0x49, 0x6d, 0x70, 0x6c, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x73, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x73, 0x54, 0x79, 0x70, 0x65, 0x44, 0x65, 0x66, - 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x73, 0x5f, 0x64, 0x65, - 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, - 0x69, 0x73, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa4, 0x02, 0x0a, - 0x0a, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x72, - 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x67, - 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x79, 0x6d, - 0x62, 0x6f, 0x6c, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0b, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x16, - 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x15, 0x6f, 0x76, - 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x0b, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x5f, 0x6b, 0x69, - 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x73, 0x63, 0x69, 0x70, 0x2e, - 0x53, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x0a, 0x73, 0x79, 0x6e, 0x74, - 0x61, 0x78, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x32, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, - 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x73, 0x63, - 0x69, 0x70, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x52, 0x0b, 0x64, - 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x6e, - 0x63, 0x6c, 0x6f, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x07, 0x20, - 0x03, 0x28, 0x05, 0x52, 0x0e, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x73, 0x69, 0x6e, 0x67, 0x52, 0x61, - 0x6e, 0x67, 0x65, 0x22, 0xa7, 0x01, 0x0a, 0x0a, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, - 0x69, 0x63, 0x12, 0x2a, 0x0a, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x73, 0x63, 0x69, 0x70, 0x2e, 0x53, 0x65, 0x76, 0x65, - 0x72, 0x69, 0x74, 0x79, 0x52, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x12, 0x12, - 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, - 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, - 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x73, 0x63, 0x69, 0x70, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, - 0x73, 0x74, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x2a, 0x31, 0x0a, - 0x0f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x1e, 0x0a, 0x1a, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x10, 0x00, - 0x2a, 0x40, 0x0a, 0x0c, 0x54, 0x65, 0x78, 0x74, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, - 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x54, - 0x65, 0x78, 0x74, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x10, 0x00, 0x12, 0x08, 0x0a, - 0x04, 0x55, 0x54, 0x46, 0x38, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x55, 0x54, 0x46, 0x31, 0x36, - 0x10, 0x02, 0x2a, 0x7d, 0x0a, 0x0a, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x52, 0x6f, 0x6c, 0x65, - 0x12, 0x19, 0x0a, 0x15, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x53, - 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x52, 0x6f, 0x6c, 0x65, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x44, - 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x49, - 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x57, 0x72, 0x69, 0x74, 0x65, - 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x65, 0x61, 0x64, - 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x08, 0x12, 0x0d, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, 0x10, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x65, 0x73, 0x74, 0x10, - 0x20, 0x2a, 0xea, 0x06, 0x0a, 0x0a, 0x53, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x4b, 0x69, 0x6e, 0x64, - 0x12, 0x19, 0x0a, 0x15, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x53, - 0x79, 0x6e, 0x74, 0x61, 0x78, 0x4b, 0x69, 0x6e, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x43, - 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x75, 0x6e, 0x63, - 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x72, - 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x75, 0x6e, 0x63, 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x42, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x4b, 0x65, - 0x79, 0x77, 0x6f, 0x72, 0x64, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x11, 0x49, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x66, 0x69, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x10, 0x04, 0x1a, 0x02, - 0x08, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x10, 0x06, 0x12, 0x15, 0x0a, 0x11, 0x49, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, 0x10, - 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4e, - 0x75, 0x6c, 0x6c, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x10, 0x09, 0x12, 0x1b, 0x0a, - 0x17, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x75, 0x74, 0x61, 0x62, - 0x6c, 0x65, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x10, 0x0a, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x10, 0x0b, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x10, 0x0c, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x53, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x65, 0x64, 0x10, 0x0d, - 0x12, 0x17, 0x0a, 0x13, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x10, 0x0e, 0x12, 0x18, 0x0a, 0x10, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x10, 0x0e, 0x1a, - 0x02, 0x08, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x0f, 0x12, 0x20, 0x0a, 0x1c, 0x49, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x10, 0x12, 0x13, 0x0a, - 0x0f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x61, 0x63, 0x72, 0x6f, - 0x10, 0x11, 0x12, 0x1d, 0x0a, 0x19, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, - 0x4d, 0x61, 0x63, 0x72, 0x6f, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x10, - 0x12, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x10, 0x13, 0x12, 0x19, 0x0a, 0x15, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x42, 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x10, 0x14, - 0x12, 0x17, 0x0a, 0x13, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x10, 0x15, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x65, 0x67, - 0x65, 0x78, 0x45, 0x73, 0x63, 0x61, 0x70, 0x65, 0x10, 0x16, 0x12, 0x11, 0x0a, 0x0d, 0x52, 0x65, - 0x67, 0x65, 0x78, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x10, 0x17, 0x12, 0x11, 0x0a, - 0x0d, 0x52, 0x65, 0x67, 0x65, 0x78, 0x57, 0x69, 0x6c, 0x64, 0x63, 0x61, 0x72, 0x64, 0x10, 0x18, - 0x12, 0x12, 0x0a, 0x0e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x44, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x65, 0x72, 0x10, 0x19, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x65, 0x67, 0x65, 0x78, 0x4a, 0x6f, 0x69, - 0x6e, 0x10, 0x1a, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x74, - 0x65, 0x72, 0x61, 0x6c, 0x10, 0x1b, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x45, 0x73, 0x63, 0x61, 0x70, 0x65, 0x10, 0x1c, 0x12, - 0x18, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, - 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x10, 0x1d, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x4b, 0x65, 0x79, 0x10, 0x1e, 0x12, - 0x14, 0x0a, 0x10, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x74, 0x65, - 0x72, 0x61, 0x6c, 0x10, 0x1f, 0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, - 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x10, 0x20, 0x12, 0x12, 0x0a, 0x0e, 0x42, 0x6f, 0x6f, - 0x6c, 0x65, 0x61, 0x6e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x10, 0x21, 0x12, 0x07, 0x0a, - 0x03, 0x54, 0x61, 0x67, 0x10, 0x22, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x61, 0x67, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x10, 0x23, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x61, 0x67, 0x44, - 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x72, 0x10, 0x24, 0x1a, 0x02, 0x10, 0x01, 0x2a, 0x56, - 0x0a, 0x08, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, - 0x79, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x12, 0x0b, - 0x0a, 0x07, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x49, - 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, - 0x48, 0x69, 0x6e, 0x74, 0x10, 0x04, 0x2a, 0x4e, 0x0a, 0x0d, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, - 0x73, 0x74, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x1c, 0x0a, 0x18, 0x55, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x6e, 0x6e, 0x65, 0x63, 0x65, 0x73, - 0x73, 0x61, 0x72, 0x79, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, - 0x61, 0x74, 0x65, 0x64, 0x10, 0x02, 0x2a, 0xe0, 0x08, 0x0a, 0x08, 0x4c, 0x61, 0x6e, 0x67, 0x75, - 0x61, 0x67, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, - 0x41, 0x42, 0x41, 0x50, 0x10, 0x3c, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x50, 0x4c, 0x10, 0x31, 0x12, - 0x07, 0x0a, 0x03, 0x41, 0x64, 0x61, 0x10, 0x27, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x67, 0x64, 0x61, - 0x10, 0x2d, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x73, 0x63, 0x69, 0x69, 0x44, 0x6f, 0x63, 0x10, 0x56, - 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x79, 0x10, 0x3a, 0x12, 0x07, - 0x0a, 0x03, 0x41, 0x77, 0x6b, 0x10, 0x42, 0x12, 0x07, 0x0a, 0x03, 0x42, 0x61, 0x74, 0x10, 0x44, - 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x69, 0x62, 0x54, 0x65, 0x58, 0x10, 0x51, 0x12, 0x05, 0x0a, 0x01, - 0x43, 0x10, 0x22, 0x12, 0x09, 0x0a, 0x05, 0x43, 0x4f, 0x42, 0x4f, 0x4c, 0x10, 0x3b, 0x12, 0x07, - 0x0a, 0x03, 0x43, 0x50, 0x50, 0x10, 0x23, 0x12, 0x07, 0x0a, 0x03, 0x43, 0x53, 0x53, 0x10, 0x1a, - 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x53, 0x68, 0x61, 0x72, 0x70, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, - 0x43, 0x6c, 0x6f, 0x6a, 0x75, 0x72, 0x65, 0x10, 0x08, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x6f, 0x66, - 0x66, 0x65, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x10, 0x15, 0x12, 0x0e, 0x0a, 0x0a, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x70, 0x10, 0x09, 0x12, 0x07, 0x0a, 0x03, 0x43, - 0x6f, 0x71, 0x10, 0x2f, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x61, 0x72, 0x74, 0x10, 0x03, 0x12, 0x0a, - 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x70, 0x68, 0x69, 0x10, 0x39, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x69, - 0x66, 0x66, 0x10, 0x58, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x66, 0x69, - 0x6c, 0x65, 0x10, 0x50, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x79, 0x61, 0x6c, 0x6f, 0x67, 0x10, 0x32, - 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x6c, 0x69, 0x78, 0x69, 0x72, 0x10, 0x11, 0x12, 0x0a, 0x0a, 0x06, - 0x45, 0x72, 0x6c, 0x61, 0x6e, 0x67, 0x10, 0x12, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x53, 0x68, 0x61, - 0x72, 0x70, 0x10, 0x2a, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x69, 0x73, 0x68, 0x10, 0x41, 0x12, 0x08, - 0x0a, 0x04, 0x46, 0x6c, 0x6f, 0x77, 0x10, 0x18, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x6f, 0x72, 0x74, - 0x72, 0x61, 0x6e, 0x10, 0x38, 0x12, 0x0e, 0x0a, 0x0a, 0x47, 0x69, 0x74, 0x5f, 0x43, 0x6f, 0x6d, - 0x6d, 0x69, 0x74, 0x10, 0x5b, 0x12, 0x0e, 0x0a, 0x0a, 0x47, 0x69, 0x74, 0x5f, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x10, 0x59, 0x12, 0x0e, 0x0a, 0x0a, 0x47, 0x69, 0x74, 0x5f, 0x52, 0x65, 0x62, - 0x61, 0x73, 0x65, 0x10, 0x5c, 0x12, 0x06, 0x0a, 0x02, 0x47, 0x6f, 0x10, 0x21, 0x12, 0x0a, 0x0a, - 0x06, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x79, 0x10, 0x07, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x54, 0x4d, - 0x4c, 0x10, 0x1e, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x61, 0x63, 0x6b, 0x10, 0x14, 0x12, 0x0e, 0x0a, - 0x0a, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x62, 0x61, 0x72, 0x73, 0x10, 0x5a, 0x12, 0x0b, 0x0a, - 0x07, 0x48, 0x61, 0x73, 0x6b, 0x65, 0x6c, 0x6c, 0x10, 0x2c, 0x12, 0x09, 0x0a, 0x05, 0x49, 0x64, - 0x72, 0x69, 0x73, 0x10, 0x2e, 0x12, 0x07, 0x0a, 0x03, 0x49, 0x6e, 0x69, 0x10, 0x48, 0x12, 0x05, - 0x0a, 0x01, 0x4a, 0x10, 0x33, 0x12, 0x08, 0x0a, 0x04, 0x4a, 0x53, 0x4f, 0x4e, 0x10, 0x4b, 0x12, - 0x08, 0x0a, 0x04, 0x4a, 0x61, 0x76, 0x61, 0x10, 0x06, 0x12, 0x0e, 0x0a, 0x0a, 0x4a, 0x61, 0x76, - 0x61, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x10, 0x16, 0x12, 0x13, 0x0a, 0x0f, 0x4a, 0x61, 0x76, - 0x61, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, 0x65, 0x61, 0x63, 0x74, 0x10, 0x5d, 0x12, 0x0b, - 0x0a, 0x07, 0x4a, 0x73, 0x6f, 0x6e, 0x6e, 0x65, 0x74, 0x10, 0x4c, 0x12, 0x09, 0x0a, 0x05, 0x4a, - 0x75, 0x6c, 0x69, 0x61, 0x10, 0x37, 0x12, 0x0a, 0x0a, 0x06, 0x4b, 0x6f, 0x74, 0x6c, 0x69, 0x6e, - 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x4c, 0x61, 0x54, 0x65, 0x58, 0x10, 0x53, 0x12, 0x08, 0x0a, - 0x04, 0x4c, 0x65, 0x61, 0x6e, 0x10, 0x30, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x65, 0x73, 0x73, 0x10, - 0x1b, 0x12, 0x07, 0x0a, 0x03, 0x4c, 0x75, 0x61, 0x10, 0x0c, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x61, - 0x6b, 0x65, 0x66, 0x69, 0x6c, 0x65, 0x10, 0x4f, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x61, 0x72, 0x6b, - 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x54, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x61, 0x74, 0x6c, 0x61, 0x62, - 0x10, 0x34, 0x12, 0x07, 0x0a, 0x03, 0x4e, 0x69, 0x78, 0x10, 0x4d, 0x12, 0x09, 0x0a, 0x05, 0x4f, - 0x43, 0x61, 0x6d, 0x6c, 0x10, 0x29, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x43, 0x10, 0x24, 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x43, 0x50, 0x50, 0x10, 0x25, 0x12, 0x07, 0x0a, 0x03, 0x50, 0x48, - 0x50, 0x10, 0x13, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x4c, 0x53, 0x51, 0x4c, 0x10, 0x46, 0x12, 0x08, - 0x0a, 0x04, 0x50, 0x65, 0x72, 0x6c, 0x10, 0x0d, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x6f, 0x77, 0x65, - 0x72, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x10, 0x43, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x72, 0x6f, 0x6c, - 0x6f, 0x67, 0x10, 0x47, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x10, 0x0f, - 0x12, 0x05, 0x0a, 0x01, 0x52, 0x10, 0x36, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x10, 0x0b, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x61, 0x6b, 0x75, 0x10, 0x0e, 0x12, 0x09, 0x0a, - 0x05, 0x52, 0x61, 0x7a, 0x6f, 0x72, 0x10, 0x3e, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x65, 0x53, 0x54, - 0x10, 0x55, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x75, 0x62, 0x79, 0x10, 0x10, 0x12, 0x08, 0x0a, 0x04, - 0x52, 0x75, 0x73, 0x74, 0x10, 0x28, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x41, 0x53, 0x10, 0x3d, 0x12, - 0x08, 0x0a, 0x04, 0x53, 0x43, 0x53, 0x53, 0x10, 0x1d, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x4d, 0x4c, - 0x10, 0x2b, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x51, 0x4c, 0x10, 0x45, 0x12, 0x08, 0x0a, 0x04, 0x53, - 0x61, 0x73, 0x73, 0x10, 0x1c, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x63, 0x61, 0x6c, 0x61, 0x10, 0x05, - 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x10, 0x0a, 0x12, 0x0f, 0x0a, 0x0b, - 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x10, 0x40, 0x12, 0x0b, 0x0a, - 0x07, 0x53, 0x6b, 0x79, 0x6c, 0x61, 0x72, 0x6b, 0x10, 0x4e, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x77, - 0x69, 0x66, 0x74, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x4f, 0x4d, 0x4c, 0x10, 0x49, 0x12, - 0x07, 0x0a, 0x03, 0x54, 0x65, 0x58, 0x10, 0x52, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x79, 0x70, 0x65, - 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x10, 0x17, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x79, 0x70, 0x65, - 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, 0x65, 0x61, 0x63, 0x74, 0x10, 0x5e, 0x12, 0x0f, 0x0a, - 0x0b, 0x56, 0x69, 0x73, 0x75, 0x61, 0x6c, 0x42, 0x61, 0x73, 0x69, 0x63, 0x10, 0x3f, 0x12, 0x07, - 0x0a, 0x03, 0x56, 0x75, 0x65, 0x10, 0x19, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x6f, 0x6c, 0x66, 0x72, - 0x61, 0x6d, 0x10, 0x35, 0x12, 0x07, 0x0a, 0x03, 0x58, 0x4d, 0x4c, 0x10, 0x1f, 0x12, 0x07, 0x0a, - 0x03, 0x58, 0x53, 0x4c, 0x10, 0x20, 0x12, 0x08, 0x0a, 0x04, 0x59, 0x41, 0x4d, 0x4c, 0x10, 0x4a, - 0x12, 0x07, 0x0a, 0x03, 0x5a, 0x69, 0x67, 0x10, 0x26, 0x42, 0x2f, 0x5a, 0x2d, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x67, 0x72, - 0x61, 0x70, 0x68, 0x2f, 0x73, 0x63, 0x69, 0x70, 0x2f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x73, 0x63, 0x69, 0x70, 0x2f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x69, 0x6e, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xda, 0x06, 0x0a, 0x04, 0x4b, 0x69, 0x6e, 0x64, 0x12, + 0x13, 0x0a, 0x0f, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x4b, 0x69, + 0x6e, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x72, 0x72, 0x61, 0x79, 0x10, 0x01, 0x12, + 0x0d, 0x0a, 0x09, 0x41, 0x73, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x02, 0x12, 0x12, + 0x0a, 0x0e, 0x41, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, + 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x10, + 0x04, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x78, 0x69, 0x6f, 0x6d, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, + 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x10, 0x06, 0x12, 0x09, 0x0a, 0x05, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x10, 0x07, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, + 0x10, 0x08, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x6f, + 0x72, 0x10, 0x09, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x61, 0x74, 0x61, 0x46, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x10, 0x0a, 0x12, 0x08, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x10, 0x0b, 0x12, 0x0e, 0x0a, + 0x0a, 0x45, 0x6e, 0x75, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x0c, 0x12, 0x09, 0x0a, + 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0x0d, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x61, 0x63, 0x74, + 0x10, 0x0e, 0x12, 0x09, 0x0a, 0x05, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x10, 0x0f, 0x12, 0x08, 0x0a, + 0x04, 0x46, 0x69, 0x6c, 0x65, 0x10, 0x10, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x10, 0x11, 0x12, 0x0a, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x74, 0x65, 0x72, 0x10, + 0x12, 0x12, 0x0b, 0x0a, 0x07, 0x47, 0x72, 0x61, 0x6d, 0x6d, 0x61, 0x72, 0x10, 0x13, 0x12, 0x0c, + 0x0a, 0x08, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x10, 0x14, 0x12, 0x0d, 0x0a, 0x09, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x10, 0x15, 0x12, 0x07, 0x0a, 0x03, 0x4b, + 0x65, 0x79, 0x10, 0x16, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x61, 0x6e, 0x67, 0x10, 0x17, 0x12, 0x09, + 0x0a, 0x05, 0x4c, 0x65, 0x6d, 0x6d, 0x61, 0x10, 0x18, 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x61, 0x63, + 0x72, 0x6f, 0x10, 0x19, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x10, 0x1a, + 0x12, 0x12, 0x0a, 0x0e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x72, 0x10, 0x1b, 0x12, 0x0b, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x10, + 0x1c, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x10, 0x1d, 0x12, 0x0d, 0x0a, + 0x09, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x10, 0x1e, 0x12, 0x08, 0x0a, 0x04, + 0x4e, 0x75, 0x6c, 0x6c, 0x10, 0x1f, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x10, 0x20, 0x12, 0x0a, 0x0a, 0x06, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x10, 0x21, 0x12, 0x0c, + 0x0a, 0x08, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x22, 0x12, 0x0b, 0x0a, 0x07, + 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x10, 0x23, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x61, 0x63, + 0x6b, 0x61, 0x67, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x10, 0x24, 0x12, 0x0d, 0x0a, 0x09, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x10, 0x25, 0x12, 0x12, 0x0a, 0x0e, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x10, 0x26, 0x12, + 0x0b, 0x0a, 0x07, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x10, 0x27, 0x12, 0x0d, 0x0a, 0x09, + 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x10, 0x28, 0x12, 0x0c, 0x0a, 0x08, 0x50, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x10, 0x29, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x10, 0x2a, 0x12, 0x0f, 0x0a, 0x0b, 0x51, 0x75, 0x61, 0x73, 0x69, + 0x71, 0x75, 0x6f, 0x74, 0x65, 0x72, 0x10, 0x2b, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x65, 0x6c, 0x66, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x10, 0x2c, 0x12, 0x0a, 0x0a, 0x06, 0x53, + 0x65, 0x74, 0x74, 0x65, 0x72, 0x10, 0x2d, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x10, 0x2e, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x10, 0x2f, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x10, + 0x30, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x10, 0x31, 0x12, 0x0a, 0x0a, + 0x06, 0x54, 0x61, 0x63, 0x74, 0x69, 0x63, 0x10, 0x32, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x68, 0x65, + 0x6f, 0x72, 0x65, 0x6d, 0x10, 0x33, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x68, 0x69, 0x73, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x10, 0x34, 0x12, 0x09, 0x0a, 0x05, 0x54, 0x72, 0x61, + 0x69, 0x74, 0x10, 0x35, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x10, 0x36, 0x12, 0x0d, + 0x0a, 0x09, 0x54, 0x79, 0x70, 0x65, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x10, 0x37, 0x12, 0x0d, 0x0a, + 0x09, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x10, 0x38, 0x12, 0x0e, 0x0a, 0x0a, + 0x54, 0x79, 0x70, 0x65, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x10, 0x39, 0x12, 0x11, 0x0a, 0x0d, + 0x54, 0x79, 0x70, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x10, 0x3a, 0x12, + 0x09, 0x0a, 0x05, 0x55, 0x6e, 0x69, 0x6f, 0x6e, 0x10, 0x3b, 0x12, 0x09, 0x0a, 0x05, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x3c, 0x12, 0x0c, 0x0a, 0x08, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, + 0x65, 0x10, 0x3d, 0x22, 0xc9, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x68, 0x69, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x21, 0x0a, 0x0c, + 0x69, 0x73, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, + 0x2b, 0x0a, 0x11, 0x69, 0x73, 0x5f, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x73, 0x49, 0x6d, + 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x12, + 0x69, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x73, 0x54, 0x79, 0x70, 0x65, + 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x73, + 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0c, 0x69, 0x73, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0xa4, 0x02, 0x0a, 0x0a, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x72, + 0x61, 0x6e, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x21, 0x0a, 0x0c, + 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0b, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, + 0x35, 0x0a, 0x16, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x64, 0x6f, 0x63, 0x75, + 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x15, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x0b, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, + 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x73, 0x63, + 0x69, 0x70, 0x2e, 0x53, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x0a, 0x73, + 0x79, 0x6e, 0x74, 0x61, 0x78, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x32, 0x0a, 0x0b, 0x64, 0x69, 0x61, + 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, + 0x2e, 0x73, 0x63, 0x69, 0x70, 0x2e, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, + 0x52, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x27, 0x0a, + 0x0f, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x73, 0x69, 0x6e, + 0x67, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x22, 0xa7, 0x01, 0x0a, 0x0a, 0x44, 0x69, 0x61, 0x67, 0x6e, + 0x6f, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2a, 0x0a, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x73, 0x63, 0x69, 0x70, 0x2e, 0x53, + 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x52, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, + 0x79, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x73, 0x63, 0x69, 0x70, 0x2e, 0x44, 0x69, 0x61, + 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, + 0x2a, 0x31, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x1a, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x10, 0x00, 0x2a, 0x40, 0x0a, 0x0c, 0x54, 0x65, 0x78, 0x74, 0x45, 0x6e, 0x63, 0x6f, 0x64, + 0x69, 0x6e, 0x67, 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x10, 0x00, + 0x12, 0x08, 0x0a, 0x04, 0x55, 0x54, 0x46, 0x38, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x55, 0x54, + 0x46, 0x31, 0x36, 0x10, 0x02, 0x2a, 0x7d, 0x0a, 0x0a, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x52, + 0x6f, 0x6c, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x52, 0x6f, 0x6c, 0x65, 0x10, 0x00, 0x12, 0x0e, + 0x0a, 0x0a, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x12, 0x0a, + 0x0a, 0x06, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x57, 0x72, + 0x69, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x52, + 0x65, 0x61, 0x64, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x08, 0x12, 0x0d, 0x0a, 0x09, 0x47, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, 0x10, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x65, + 0x73, 0x74, 0x10, 0x20, 0x2a, 0xea, 0x06, 0x0a, 0x0a, 0x53, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x4b, + 0x69, 0x6e, 0x64, 0x12, 0x19, 0x0a, 0x15, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x53, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x4b, 0x69, 0x6e, 0x64, 0x10, 0x00, 0x12, 0x0b, + 0x0a, 0x07, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x50, + 0x75, 0x6e, 0x63, 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x65, 0x72, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x75, 0x6e, 0x63, 0x74, 0x75, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x10, 0x03, 0x12, 0x0b, 0x0a, + 0x07, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x11, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x10, + 0x04, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x05, 0x12, 0x0e, 0x0a, + 0x0a, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x10, 0x06, 0x12, 0x15, 0x0a, + 0x11, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, 0x75, 0x69, 0x6c, 0x74, + 0x69, 0x6e, 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x4e, 0x75, 0x6c, 0x6c, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x10, 0x09, + 0x12, 0x1b, 0x0a, 0x17, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x75, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x10, 0x0a, 0x12, 0x17, 0x0a, + 0x13, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x10, 0x0b, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x10, 0x0c, 0x12, 0x16, 0x0a, 0x12, 0x49, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x53, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x65, + 0x64, 0x10, 0x0d, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x10, 0x0e, 0x12, 0x18, 0x0a, 0x10, + 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, + 0x10, 0x0e, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x0f, 0x12, 0x20, + 0x0a, 0x1c, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x46, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x10, + 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x61, + 0x63, 0x72, 0x6f, 0x10, 0x11, 0x12, 0x1d, 0x0a, 0x19, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x4d, 0x61, 0x63, 0x72, 0x6f, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x10, 0x12, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x10, 0x13, 0x12, 0x19, 0x0a, 0x15, 0x49, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, 0x54, 0x79, 0x70, + 0x65, 0x10, 0x14, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x10, 0x15, 0x12, 0x0f, 0x0a, 0x0b, + 0x52, 0x65, 0x67, 0x65, 0x78, 0x45, 0x73, 0x63, 0x61, 0x70, 0x65, 0x10, 0x16, 0x12, 0x11, 0x0a, + 0x0d, 0x52, 0x65, 0x67, 0x65, 0x78, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x10, 0x17, + 0x12, 0x11, 0x0a, 0x0d, 0x52, 0x65, 0x67, 0x65, 0x78, 0x57, 0x69, 0x6c, 0x64, 0x63, 0x61, 0x72, + 0x64, 0x10, 0x18, 0x12, 0x12, 0x0a, 0x0e, 0x52, 0x65, 0x67, 0x65, 0x78, 0x44, 0x65, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x65, 0x72, 0x10, 0x19, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x65, 0x67, 0x65, 0x78, + 0x4a, 0x6f, 0x69, 0x6e, 0x10, 0x1a, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x10, 0x1b, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x45, 0x73, 0x63, 0x61, 0x70, 0x65, + 0x10, 0x1c, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x74, 0x65, + 0x72, 0x61, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x10, 0x1d, 0x12, 0x14, 0x0a, 0x10, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x4b, 0x65, 0x79, + 0x10, 0x1e, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4c, + 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x10, 0x1f, 0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x75, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x10, 0x20, 0x12, 0x12, 0x0a, 0x0e, + 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x4c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x10, 0x21, + 0x12, 0x07, 0x0a, 0x03, 0x54, 0x61, 0x67, 0x10, 0x22, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x61, 0x67, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x10, 0x23, 0x12, 0x10, 0x0a, 0x0c, 0x54, + 0x61, 0x67, 0x44, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x72, 0x10, 0x24, 0x1a, 0x02, 0x10, + 0x01, 0x2a, 0x56, 0x0a, 0x08, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x12, 0x17, 0x0a, + 0x13, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x53, 0x65, 0x76, 0x65, + 0x72, 0x69, 0x74, 0x79, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, + 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x10, 0x02, 0x12, 0x0f, + 0x0a, 0x0b, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x03, 0x12, + 0x08, 0x0a, 0x04, 0x48, 0x69, 0x6e, 0x74, 0x10, 0x04, 0x2a, 0x4e, 0x0a, 0x0d, 0x44, 0x69, 0x61, + 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x1c, 0x0a, 0x18, 0x55, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, + 0x74, 0x69, 0x63, 0x54, 0x61, 0x67, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x6e, 0x6e, 0x65, + 0x63, 0x65, 0x73, 0x73, 0x61, 0x72, 0x79, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x65, 0x70, + 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x10, 0x02, 0x2a, 0xe0, 0x08, 0x0a, 0x08, 0x4c, 0x61, + 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x10, 0x00, 0x12, + 0x08, 0x0a, 0x04, 0x41, 0x42, 0x41, 0x50, 0x10, 0x3c, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x50, 0x4c, + 0x10, 0x31, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x64, 0x61, 0x10, 0x27, 0x12, 0x08, 0x0a, 0x04, 0x41, + 0x67, 0x64, 0x61, 0x10, 0x2d, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x73, 0x63, 0x69, 0x69, 0x44, 0x6f, + 0x63, 0x10, 0x56, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x79, 0x10, + 0x3a, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x77, 0x6b, 0x10, 0x42, 0x12, 0x07, 0x0a, 0x03, 0x42, 0x61, + 0x74, 0x10, 0x44, 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x69, 0x62, 0x54, 0x65, 0x58, 0x10, 0x51, 0x12, + 0x05, 0x0a, 0x01, 0x43, 0x10, 0x22, 0x12, 0x09, 0x0a, 0x05, 0x43, 0x4f, 0x42, 0x4f, 0x4c, 0x10, + 0x3b, 0x12, 0x07, 0x0a, 0x03, 0x43, 0x50, 0x50, 0x10, 0x23, 0x12, 0x07, 0x0a, 0x03, 0x43, 0x53, + 0x53, 0x10, 0x1a, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x53, 0x68, 0x61, 0x72, 0x70, 0x10, 0x01, 0x12, + 0x0b, 0x0a, 0x07, 0x43, 0x6c, 0x6f, 0x6a, 0x75, 0x72, 0x65, 0x10, 0x08, 0x12, 0x10, 0x0a, 0x0c, + 0x43, 0x6f, 0x66, 0x66, 0x65, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x10, 0x15, 0x12, 0x0e, + 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x70, 0x10, 0x09, 0x12, 0x07, + 0x0a, 0x03, 0x43, 0x6f, 0x71, 0x10, 0x2f, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x61, 0x72, 0x74, 0x10, + 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x70, 0x68, 0x69, 0x10, 0x39, 0x12, 0x08, 0x0a, + 0x04, 0x44, 0x69, 0x66, 0x66, 0x10, 0x58, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x6f, 0x63, 0x6b, 0x65, + 0x72, 0x66, 0x69, 0x6c, 0x65, 0x10, 0x50, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x79, 0x61, 0x6c, 0x6f, + 0x67, 0x10, 0x32, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x6c, 0x69, 0x78, 0x69, 0x72, 0x10, 0x11, 0x12, + 0x0a, 0x0a, 0x06, 0x45, 0x72, 0x6c, 0x61, 0x6e, 0x67, 0x10, 0x12, 0x12, 0x0a, 0x0a, 0x06, 0x46, + 0x53, 0x68, 0x61, 0x72, 0x70, 0x10, 0x2a, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x69, 0x73, 0x68, 0x10, + 0x41, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x6c, 0x6f, 0x77, 0x10, 0x18, 0x12, 0x0b, 0x0a, 0x07, 0x46, + 0x6f, 0x72, 0x74, 0x72, 0x61, 0x6e, 0x10, 0x38, 0x12, 0x0e, 0x0a, 0x0a, 0x47, 0x69, 0x74, 0x5f, + 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x10, 0x5b, 0x12, 0x0e, 0x0a, 0x0a, 0x47, 0x69, 0x74, 0x5f, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x10, 0x59, 0x12, 0x0e, 0x0a, 0x0a, 0x47, 0x69, 0x74, 0x5f, + 0x52, 0x65, 0x62, 0x61, 0x73, 0x65, 0x10, 0x5c, 0x12, 0x06, 0x0a, 0x02, 0x47, 0x6f, 0x10, 0x21, + 0x12, 0x0a, 0x0a, 0x06, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x79, 0x10, 0x07, 0x12, 0x08, 0x0a, 0x04, + 0x48, 0x54, 0x4d, 0x4c, 0x10, 0x1e, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x61, 0x63, 0x6b, 0x10, 0x14, + 0x12, 0x0e, 0x0a, 0x0a, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x62, 0x61, 0x72, 0x73, 0x10, 0x5a, + 0x12, 0x0b, 0x0a, 0x07, 0x48, 0x61, 0x73, 0x6b, 0x65, 0x6c, 0x6c, 0x10, 0x2c, 0x12, 0x09, 0x0a, + 0x05, 0x49, 0x64, 0x72, 0x69, 0x73, 0x10, 0x2e, 0x12, 0x07, 0x0a, 0x03, 0x49, 0x6e, 0x69, 0x10, + 0x48, 0x12, 0x05, 0x0a, 0x01, 0x4a, 0x10, 0x33, 0x12, 0x08, 0x0a, 0x04, 0x4a, 0x53, 0x4f, 0x4e, + 0x10, 0x4b, 0x12, 0x08, 0x0a, 0x04, 0x4a, 0x61, 0x76, 0x61, 0x10, 0x06, 0x12, 0x0e, 0x0a, 0x0a, + 0x4a, 0x61, 0x76, 0x61, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x10, 0x16, 0x12, 0x13, 0x0a, 0x0f, + 0x4a, 0x61, 0x76, 0x61, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, 0x65, 0x61, 0x63, 0x74, 0x10, + 0x5d, 0x12, 0x0b, 0x0a, 0x07, 0x4a, 0x73, 0x6f, 0x6e, 0x6e, 0x65, 0x74, 0x10, 0x4c, 0x12, 0x09, + 0x0a, 0x05, 0x4a, 0x75, 0x6c, 0x69, 0x61, 0x10, 0x37, 0x12, 0x0a, 0x0a, 0x06, 0x4b, 0x6f, 0x74, + 0x6c, 0x69, 0x6e, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x4c, 0x61, 0x54, 0x65, 0x58, 0x10, 0x53, + 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x65, 0x61, 0x6e, 0x10, 0x30, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x65, + 0x73, 0x73, 0x10, 0x1b, 0x12, 0x07, 0x0a, 0x03, 0x4c, 0x75, 0x61, 0x10, 0x0c, 0x12, 0x0c, 0x0a, + 0x08, 0x4d, 0x61, 0x6b, 0x65, 0x66, 0x69, 0x6c, 0x65, 0x10, 0x4f, 0x12, 0x0c, 0x0a, 0x08, 0x4d, + 0x61, 0x72, 0x6b, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x54, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x61, 0x74, + 0x6c, 0x61, 0x62, 0x10, 0x34, 0x12, 0x07, 0x0a, 0x03, 0x4e, 0x69, 0x78, 0x10, 0x4d, 0x12, 0x09, + 0x0a, 0x05, 0x4f, 0x43, 0x61, 0x6d, 0x6c, 0x10, 0x29, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x43, 0x10, 0x24, 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x43, 0x50, 0x50, 0x10, 0x25, 0x12, 0x07, 0x0a, + 0x03, 0x50, 0x48, 0x50, 0x10, 0x13, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x4c, 0x53, 0x51, 0x4c, 0x10, + 0x46, 0x12, 0x08, 0x0a, 0x04, 0x50, 0x65, 0x72, 0x6c, 0x10, 0x0d, 0x12, 0x0e, 0x0a, 0x0a, 0x50, + 0x6f, 0x77, 0x65, 0x72, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x10, 0x43, 0x12, 0x0a, 0x0a, 0x06, 0x50, + 0x72, 0x6f, 0x6c, 0x6f, 0x67, 0x10, 0x47, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x79, 0x74, 0x68, 0x6f, + 0x6e, 0x10, 0x0f, 0x12, 0x05, 0x0a, 0x01, 0x52, 0x10, 0x36, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x10, 0x0b, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x61, 0x6b, 0x75, 0x10, 0x0e, + 0x12, 0x09, 0x0a, 0x05, 0x52, 0x61, 0x7a, 0x6f, 0x72, 0x10, 0x3e, 0x12, 0x08, 0x0a, 0x04, 0x52, + 0x65, 0x53, 0x54, 0x10, 0x55, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x75, 0x62, 0x79, 0x10, 0x10, 0x12, + 0x08, 0x0a, 0x04, 0x52, 0x75, 0x73, 0x74, 0x10, 0x28, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x41, 0x53, + 0x10, 0x3d, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x43, 0x53, 0x53, 0x10, 0x1d, 0x12, 0x07, 0x0a, 0x03, + 0x53, 0x4d, 0x4c, 0x10, 0x2b, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x51, 0x4c, 0x10, 0x45, 0x12, 0x08, + 0x0a, 0x04, 0x53, 0x61, 0x73, 0x73, 0x10, 0x1c, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x63, 0x61, 0x6c, + 0x61, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x10, 0x0a, 0x12, + 0x0f, 0x0a, 0x0b, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x10, 0x40, + 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x6b, 0x79, 0x6c, 0x61, 0x72, 0x6b, 0x10, 0x4e, 0x12, 0x09, 0x0a, + 0x05, 0x53, 0x77, 0x69, 0x66, 0x74, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x4f, 0x4d, 0x4c, + 0x10, 0x49, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x65, 0x58, 0x10, 0x52, 0x12, 0x0e, 0x0a, 0x0a, 0x54, + 0x79, 0x70, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x10, 0x17, 0x12, 0x13, 0x0a, 0x0f, 0x54, + 0x79, 0x70, 0x65, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, 0x65, 0x61, 0x63, 0x74, 0x10, 0x5e, + 0x12, 0x0f, 0x0a, 0x0b, 0x56, 0x69, 0x73, 0x75, 0x61, 0x6c, 0x42, 0x61, 0x73, 0x69, 0x63, 0x10, + 0x3f, 0x12, 0x07, 0x0a, 0x03, 0x56, 0x75, 0x65, 0x10, 0x19, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x6f, + 0x6c, 0x66, 0x72, 0x61, 0x6d, 0x10, 0x35, 0x12, 0x07, 0x0a, 0x03, 0x58, 0x4d, 0x4c, 0x10, 0x1f, + 0x12, 0x07, 0x0a, 0x03, 0x58, 0x53, 0x4c, 0x10, 0x20, 0x12, 0x08, 0x0a, 0x04, 0x59, 0x41, 0x4d, + 0x4c, 0x10, 0x4a, 0x12, 0x07, 0x0a, 0x03, 0x5a, 0x69, 0x67, 0x10, 0x26, 0x42, 0x2f, 0x5a, 0x2d, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x67, 0x72, 0x61, 0x70, 0x68, 0x2f, 0x73, 0x63, 0x69, 0x70, 0x2f, 0x62, 0x69, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x73, 0x63, 0x69, 0x70, 0x2f, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/bindings/rust/src/generated/scip.rs b/bindings/rust/src/generated/scip.rs index 1cd3dd7e..6e4de644 100644 --- a/bindings/rust/src/generated/scip.rs +++ b/bindings/rust/src/generated/scip.rs @@ -1402,6 +1402,15 @@ pub struct SymbolInformation { /// class or a method. // @@protoc_insertion_point(field:scip.SymbolInformation.kind) pub kind: ::protobuf::EnumOrUnknown, + /// (optional) The name of this symbol as it should be displayed to the user. The `symbol` field + /// is not a reliable source of the display name for several reasons: + /// + /// - Local symbols don't encode the name. + /// - Some languages have case-insensitive names, so the symbol is all-lowercase. + /// - The symbol may encode names with special characters that should not be + /// displayed to the user. + // @@protoc_insertion_point(field:scip.SymbolInformation.display_name) + pub display_name: ::std::string::String, // special fields // @@protoc_insertion_point(special_field:scip.SymbolInformation.special_fields) pub special_fields: ::protobuf::SpecialFields, @@ -1419,7 +1428,7 @@ impl SymbolInformation { } fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData { - let mut fields = ::std::vec::Vec::with_capacity(4); + let mut fields = ::std::vec::Vec::with_capacity(5); let mut oneofs = ::std::vec::Vec::with_capacity(0); fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>( "symbol", @@ -1441,6 +1450,11 @@ impl SymbolInformation { |m: &SymbolInformation| { &m.kind }, |m: &mut SymbolInformation| { &mut m.kind }, )); + fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>( + "display_name", + |m: &SymbolInformation| { &m.display_name }, + |m: &mut SymbolInformation| { &mut m.display_name }, + )); ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::( "SymbolInformation", fields, @@ -1471,6 +1485,9 @@ impl ::protobuf::Message for SymbolInformation { 40 => { self.kind = is.read_enum_or_unknown()?; }, + 50 => { + self.display_name = is.read_string()?; + }, tag => { ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?; }, @@ -1496,6 +1513,9 @@ impl ::protobuf::Message for SymbolInformation { if self.kind != ::protobuf::EnumOrUnknown::new(symbol_information::Kind::UnspecifiedKind) { my_size += ::protobuf::rt::int32_size(5, self.kind.value()); } + if !self.display_name.is_empty() { + my_size += ::protobuf::rt::string_size(6, &self.display_name); + } my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields()); self.special_fields.cached_size().set(my_size as u32); my_size @@ -1514,6 +1534,9 @@ impl ::protobuf::Message for SymbolInformation { if self.kind != ::protobuf::EnumOrUnknown::new(symbol_information::Kind::UnspecifiedKind) { os.write_enum(5, ::protobuf::EnumOrUnknown::value(&self.kind))?; } + if !self.display_name.is_empty() { + os.write_string(6, &self.display_name)?; + } os.write_unknown_fields(self.special_fields.unknown_fields())?; ::std::result::Result::Ok(()) } @@ -1535,6 +1558,7 @@ impl ::protobuf::Message for SymbolInformation { self.documentation.clear(); self.relationships.clear(); self.kind = ::protobuf::EnumOrUnknown::new(symbol_information::Kind::UnspecifiedKind); + self.display_name.clear(); self.special_fields.clear(); } @@ -1544,6 +1568,7 @@ impl ::protobuf::Message for SymbolInformation { documentation: ::std::vec::Vec::new(), relationships: ::std::vec::Vec::new(), kind: ::protobuf::EnumOrUnknown::from_i32(0), + display_name: ::std::string::String::new(), special_fields: ::protobuf::SpecialFields::new(), }; &instance @@ -1569,7 +1594,7 @@ impl ::protobuf::reflect::ProtobufValue for SymbolInformation { /// Nested message and enums of message `SymbolInformation` pub mod symbol_information { - /// Kind represents the fine-grained category of a symbol, suitable for presenting + /// (optional) Kind represents the fine-grained category of a symbol, suitable for presenting /// information about the symbol's meaning in the language. /// /// For example: @@ -3739,91 +3764,92 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \x1a\x02\x08\x01\x12\x08\n\x04Type\x10\x02\x12\x08\n\x04Term\x10\x03\x12\ \n\n\x06Method\x10\x04\x12\x11\n\rTypeParameter\x10\x05\x12\r\n\tParamet\ er\x10\x06\x12\x08\n\x04Meta\x10\x07\x12\t\n\x05Local\x10\x08\x12\t\n\ - \x05Macro\x10\t\x1a\x02\x10\x01\"\x9a\x08\n\x11SymbolInformation\x12\x16\ + \x05Macro\x10\t\x1a\x02\x10\x01\"\xbd\x08\n\x11SymbolInformation\x12\x16\ \n\x06symbol\x18\x01\x20\x01(\tR\x06symbol\x12$\n\rdocumentation\x18\x03\ \x20\x03(\tR\rdocumentation\x128\n\rrelationships\x18\x04\x20\x03(\x0b2\ \x12.scip.RelationshipR\rrelationships\x120\n\x04kind\x18\x05\x20\x01(\ - \x0e2\x1c.scip.SymbolInformation.KindR\x04kind\"\xda\x06\n\x04Kind\x12\ - \x13\n\x0fUnspecifiedKind\x10\0\x12\t\n\x05Array\x10\x01\x12\r\n\tAssert\ - ion\x10\x02\x12\x12\n\x0eAssociatedType\x10\x03\x12\r\n\tAttribute\x10\ - \x04\x12\t\n\x05Axiom\x10\x05\x12\x0b\n\x07Boolean\x10\x06\x12\t\n\x05Cl\ - ass\x10\x07\x12\x0c\n\x08Constant\x10\x08\x12\x0f\n\x0bConstructor\x10\t\ - \x12\x0e\n\nDataFamily\x10\n\x12\x08\n\x04Enum\x10\x0b\x12\x0e\n\nEnumMe\ - mber\x10\x0c\x12\t\n\x05Event\x10\r\x12\x08\n\x04Fact\x10\x0e\x12\t\n\ - \x05Field\x10\x0f\x12\x08\n\x04File\x10\x10\x12\x0c\n\x08Function\x10\ - \x11\x12\n\n\x06Getter\x10\x12\x12\x0b\n\x07Grammar\x10\x13\x12\x0c\n\ - \x08Instance\x10\x14\x12\r\n\tInterface\x10\x15\x12\x07\n\x03Key\x10\x16\ - \x12\x08\n\x04Lang\x10\x17\x12\t\n\x05Lemma\x10\x18\x12\t\n\x05Macro\x10\ - \x19\x12\n\n\x06Method\x10\x1a\x12\x12\n\x0eMethodReceiver\x10\x1b\x12\ - \x0b\n\x07Message\x10\x1c\x12\n\n\x06Module\x10\x1d\x12\r\n\tNamespace\ - \x10\x1e\x12\x08\n\x04Null\x10\x1f\x12\n\n\x06Number\x10\x20\x12\n\n\x06\ - Object\x10!\x12\x0c\n\x08Operator\x10\"\x12\x0b\n\x07Package\x10#\x12\ - \x11\n\rPackageObject\x10$\x12\r\n\tParameter\x10%\x12\x12\n\x0eParamete\ - rLabel\x10&\x12\x0b\n\x07Pattern\x10'\x12\r\n\tPredicate\x10(\x12\x0c\n\ - \x08Property\x10)\x12\x0c\n\x08Protocol\x10*\x12\x0f\n\x0bQuasiquoter\ - \x10+\x12\x11\n\rSelfParameter\x10,\x12\n\n\x06Setter\x10-\x12\r\n\tSign\ - ature\x10.\x12\r\n\tSubscript\x10/\x12\n\n\x06String\x100\x12\n\n\x06Str\ - uct\x101\x12\n\n\x06Tactic\x102\x12\x0b\n\x07Theorem\x103\x12\x11\n\rThi\ - sParameter\x104\x12\t\n\x05Trait\x105\x12\x08\n\x04Type\x106\x12\r\n\tTy\ - peAlias\x107\x12\r\n\tTypeClass\x108\x12\x0e\n\nTypeFamily\x109\x12\x11\ - \n\rTypeParameter\x10:\x12\t\n\x05Union\x10;\x12\t\n\x05Value\x10<\x12\ - \x0c\n\x08Variable\x10=\"\xc9\x01\n\x0cRelationship\x12\x16\n\x06symbol\ - \x18\x01\x20\x01(\tR\x06symbol\x12!\n\x0cis_reference\x18\x02\x20\x01(\ - \x08R\x0bisReference\x12+\n\x11is_implementation\x18\x03\x20\x01(\x08R\ - \x10isImplementation\x12,\n\x12is_type_definition\x18\x04\x20\x01(\x08R\ - \x10isTypeDefinition\x12#\n\ris_definition\x18\x05\x20\x01(\x08R\x0cisDe\ - finition\"\xa4\x02\n\nOccurrence\x12\x14\n\x05range\x18\x01\x20\x03(\x05\ - R\x05range\x12\x16\n\x06symbol\x18\x02\x20\x01(\tR\x06symbol\x12!\n\x0cs\ - ymbol_roles\x18\x03\x20\x01(\x05R\x0bsymbolRoles\x125\n\x16override_docu\ - mentation\x18\x04\x20\x03(\tR\x15overrideDocumentation\x121\n\x0bsyntax_\ - kind\x18\x05\x20\x01(\x0e2\x10.scip.SyntaxKindR\nsyntaxKind\x122\n\x0bdi\ - agnostics\x18\x06\x20\x03(\x0b2\x10.scip.DiagnosticR\x0bdiagnostics\x12'\ - \n\x0fenclosing_range\x18\x07\x20\x03(\x05R\x0eenclosingRange\"\xa7\x01\ - \n\nDiagnostic\x12*\n\x08severity\x18\x01\x20\x01(\x0e2\x0e.scip.Severit\ - yR\x08severity\x12\x12\n\x04code\x18\x02\x20\x01(\tR\x04code\x12\x18\n\ - \x07message\x18\x03\x20\x01(\tR\x07message\x12\x16\n\x06source\x18\x04\ - \x20\x01(\tR\x06source\x12'\n\x04tags\x18\x05\x20\x03(\x0e2\x13.scip.Dia\ - gnosticTagR\x04tags*1\n\x0fProtocolVersion\x12\x1e\n\x1aUnspecifiedProto\ - colVersion\x10\0*@\n\x0cTextEncoding\x12\x1b\n\x17UnspecifiedTextEncodin\ - g\x10\0\x12\x08\n\x04UTF8\x10\x01\x12\t\n\x05UTF16\x10\x02*}\n\nSymbolRo\ - le\x12\x19\n\x15UnspecifiedSymbolRole\x10\0\x12\x0e\n\nDefinition\x10\ - \x01\x12\n\n\x06Import\x10\x02\x12\x0f\n\x0bWriteAccess\x10\x04\x12\x0e\ - \n\nReadAccess\x10\x08\x12\r\n\tGenerated\x10\x10\x12\x08\n\x04Test\x10\ - \x20*\xea\x06\n\nSyntaxKind\x12\x19\n\x15UnspecifiedSyntaxKind\x10\0\x12\ - \x0b\n\x07Comment\x10\x01\x12\x18\n\x14PunctuationDelimiter\x10\x02\x12\ - \x16\n\x12PunctuationBracket\x10\x03\x12\x0b\n\x07Keyword\x10\x04\x12\ - \x19\n\x11IdentifierKeyword\x10\x04\x1a\x02\x08\x01\x12\x16\n\x12Identif\ - ierOperator\x10\x05\x12\x0e\n\nIdentifier\x10\x06\x12\x15\n\x11Identifie\ - rBuiltin\x10\x07\x12\x12\n\x0eIdentifierNull\x10\x08\x12\x16\n\x12Identi\ - fierConstant\x10\t\x12\x1b\n\x17IdentifierMutableGlobal\x10\n\x12\x17\n\ - \x13IdentifierParameter\x10\x0b\x12\x13\n\x0fIdentifierLocal\x10\x0c\x12\ - \x16\n\x12IdentifierShadowed\x10\r\x12\x17\n\x13IdentifierNamespace\x10\ - \x0e\x12\x18\n\x10IdentifierModule\x10\x0e\x1a\x02\x08\x01\x12\x16\n\x12\ - IdentifierFunction\x10\x0f\x12\x20\n\x1cIdentifierFunctionDefinition\x10\ - \x10\x12\x13\n\x0fIdentifierMacro\x10\x11\x12\x1d\n\x19IdentifierMacroDe\ - finition\x10\x12\x12\x12\n\x0eIdentifierType\x10\x13\x12\x19\n\x15Identi\ - fierBuiltinType\x10\x14\x12\x17\n\x13IdentifierAttribute\x10\x15\x12\x0f\ - \n\x0bRegexEscape\x10\x16\x12\x11\n\rRegexRepeated\x10\x17\x12\x11\n\rRe\ - gexWildcard\x10\x18\x12\x12\n\x0eRegexDelimiter\x10\x19\x12\r\n\tRegexJo\ - in\x10\x1a\x12\x11\n\rStringLiteral\x10\x1b\x12\x17\n\x13StringLiteralEs\ - cape\x10\x1c\x12\x18\n\x14StringLiteralSpecial\x10\x1d\x12\x14\n\x10Stri\ - ngLiteralKey\x10\x1e\x12\x14\n\x10CharacterLiteral\x10\x1f\x12\x12\n\x0e\ - NumericLiteral\x10\x20\x12\x12\n\x0eBooleanLiteral\x10!\x12\x07\n\x03Tag\ - \x10\"\x12\x10\n\x0cTagAttribute\x10#\x12\x10\n\x0cTagDelimiter\x10$\x1a\ - \x02\x10\x01*V\n\x08Severity\x12\x17\n\x13UnspecifiedSeverity\x10\0\x12\ - \t\n\x05Error\x10\x01\x12\x0b\n\x07Warning\x10\x02\x12\x0f\n\x0bInformat\ - ion\x10\x03\x12\x08\n\x04Hint\x10\x04*N\n\rDiagnosticTag\x12\x1c\n\x18Un\ - specifiedDiagnosticTag\x10\0\x12\x0f\n\x0bUnnecessary\x10\x01\x12\x0e\n\ - \nDeprecated\x10\x02*\xe0\x08\n\x08Language\x12\x17\n\x13UnspecifiedLang\ - uage\x10\0\x12\x08\n\x04ABAP\x10<\x12\x07\n\x03APL\x101\x12\x07\n\x03Ada\ - \x10'\x12\x08\n\x04Agda\x10-\x12\x0c\n\x08AsciiDoc\x10V\x12\x0c\n\x08Ass\ - embly\x10:\x12\x07\n\x03Awk\x10B\x12\x07\n\x03Bat\x10D\x12\n\n\x06BibTeX\ - \x10Q\x12\x05\n\x01C\x10\"\x12\t\n\x05COBOL\x10;\x12\x07\n\x03CPP\x10#\ - \x12\x07\n\x03CSS\x10\x1a\x12\n\n\x06CSharp\x10\x01\x12\x0b\n\x07Clojure\ - \x10\x08\x12\x10\n\x0cCoffeescript\x10\x15\x12\x0e\n\nCommonLisp\x10\t\ - \x12\x07\n\x03Coq\x10/\x12\x08\n\x04Dart\x10\x03\x12\n\n\x06Delphi\x109\ - \x12\x08\n\x04Diff\x10X\x12\x0e\n\nDockerfile\x10P\x12\n\n\x06Dyalog\x10\ - 2\x12\n\n\x06Elixir\x10\x11\x12\n\n\x06Erlang\x10\x12\x12\n\n\x06FSharp\ + \x0e2\x1c.scip.SymbolInformation.KindR\x04kind\x12!\n\x0cdisplay_name\ + \x18\x06\x20\x01(\tR\x0bdisplayName\"\xda\x06\n\x04Kind\x12\x13\n\x0fUns\ + pecifiedKind\x10\0\x12\t\n\x05Array\x10\x01\x12\r\n\tAssertion\x10\x02\ + \x12\x12\n\x0eAssociatedType\x10\x03\x12\r\n\tAttribute\x10\x04\x12\t\n\ + \x05Axiom\x10\x05\x12\x0b\n\x07Boolean\x10\x06\x12\t\n\x05Class\x10\x07\ + \x12\x0c\n\x08Constant\x10\x08\x12\x0f\n\x0bConstructor\x10\t\x12\x0e\n\ + \nDataFamily\x10\n\x12\x08\n\x04Enum\x10\x0b\x12\x0e\n\nEnumMember\x10\ + \x0c\x12\t\n\x05Event\x10\r\x12\x08\n\x04Fact\x10\x0e\x12\t\n\x05Field\ + \x10\x0f\x12\x08\n\x04File\x10\x10\x12\x0c\n\x08Function\x10\x11\x12\n\n\ + \x06Getter\x10\x12\x12\x0b\n\x07Grammar\x10\x13\x12\x0c\n\x08Instance\ + \x10\x14\x12\r\n\tInterface\x10\x15\x12\x07\n\x03Key\x10\x16\x12\x08\n\ + \x04Lang\x10\x17\x12\t\n\x05Lemma\x10\x18\x12\t\n\x05Macro\x10\x19\x12\n\ + \n\x06Method\x10\x1a\x12\x12\n\x0eMethodReceiver\x10\x1b\x12\x0b\n\x07Me\ + ssage\x10\x1c\x12\n\n\x06Module\x10\x1d\x12\r\n\tNamespace\x10\x1e\x12\ + \x08\n\x04Null\x10\x1f\x12\n\n\x06Number\x10\x20\x12\n\n\x06Object\x10!\ + \x12\x0c\n\x08Operator\x10\"\x12\x0b\n\x07Package\x10#\x12\x11\n\rPackag\ + eObject\x10$\x12\r\n\tParameter\x10%\x12\x12\n\x0eParameterLabel\x10&\ + \x12\x0b\n\x07Pattern\x10'\x12\r\n\tPredicate\x10(\x12\x0c\n\x08Property\ + \x10)\x12\x0c\n\x08Protocol\x10*\x12\x0f\n\x0bQuasiquoter\x10+\x12\x11\n\ + \rSelfParameter\x10,\x12\n\n\x06Setter\x10-\x12\r\n\tSignature\x10.\x12\ + \r\n\tSubscript\x10/\x12\n\n\x06String\x100\x12\n\n\x06Struct\x101\x12\n\ + \n\x06Tactic\x102\x12\x0b\n\x07Theorem\x103\x12\x11\n\rThisParameter\x10\ + 4\x12\t\n\x05Trait\x105\x12\x08\n\x04Type\x106\x12\r\n\tTypeAlias\x107\ + \x12\r\n\tTypeClass\x108\x12\x0e\n\nTypeFamily\x109\x12\x11\n\rTypeParam\ + eter\x10:\x12\t\n\x05Union\x10;\x12\t\n\x05Value\x10<\x12\x0c\n\x08Varia\ + ble\x10=\"\xc9\x01\n\x0cRelationship\x12\x16\n\x06symbol\x18\x01\x20\x01\ + (\tR\x06symbol\x12!\n\x0cis_reference\x18\x02\x20\x01(\x08R\x0bisReferen\ + ce\x12+\n\x11is_implementation\x18\x03\x20\x01(\x08R\x10isImplementation\ + \x12,\n\x12is_type_definition\x18\x04\x20\x01(\x08R\x10isTypeDefinition\ + \x12#\n\ris_definition\x18\x05\x20\x01(\x08R\x0cisDefinition\"\xa4\x02\n\ + \nOccurrence\x12\x14\n\x05range\x18\x01\x20\x03(\x05R\x05range\x12\x16\n\ + \x06symbol\x18\x02\x20\x01(\tR\x06symbol\x12!\n\x0csymbol_roles\x18\x03\ + \x20\x01(\x05R\x0bsymbolRoles\x125\n\x16override_documentation\x18\x04\ + \x20\x03(\tR\x15overrideDocumentation\x121\n\x0bsyntax_kind\x18\x05\x20\ + \x01(\x0e2\x10.scip.SyntaxKindR\nsyntaxKind\x122\n\x0bdiagnostics\x18\ + \x06\x20\x03(\x0b2\x10.scip.DiagnosticR\x0bdiagnostics\x12'\n\x0fenclosi\ + ng_range\x18\x07\x20\x03(\x05R\x0eenclosingRange\"\xa7\x01\n\nDiagnostic\ + \x12*\n\x08severity\x18\x01\x20\x01(\x0e2\x0e.scip.SeverityR\x08severity\ + \x12\x12\n\x04code\x18\x02\x20\x01(\tR\x04code\x12\x18\n\x07message\x18\ + \x03\x20\x01(\tR\x07message\x12\x16\n\x06source\x18\x04\x20\x01(\tR\x06s\ + ource\x12'\n\x04tags\x18\x05\x20\x03(\x0e2\x13.scip.DiagnosticTagR\x04ta\ + gs*1\n\x0fProtocolVersion\x12\x1e\n\x1aUnspecifiedProtocolVersion\x10\0*\ + @\n\x0cTextEncoding\x12\x1b\n\x17UnspecifiedTextEncoding\x10\0\x12\x08\n\ + \x04UTF8\x10\x01\x12\t\n\x05UTF16\x10\x02*}\n\nSymbolRole\x12\x19\n\x15U\ + nspecifiedSymbolRole\x10\0\x12\x0e\n\nDefinition\x10\x01\x12\n\n\x06Impo\ + rt\x10\x02\x12\x0f\n\x0bWriteAccess\x10\x04\x12\x0e\n\nReadAccess\x10\ + \x08\x12\r\n\tGenerated\x10\x10\x12\x08\n\x04Test\x10\x20*\xea\x06\n\nSy\ + ntaxKind\x12\x19\n\x15UnspecifiedSyntaxKind\x10\0\x12\x0b\n\x07Comment\ + \x10\x01\x12\x18\n\x14PunctuationDelimiter\x10\x02\x12\x16\n\x12Punctuat\ + ionBracket\x10\x03\x12\x0b\n\x07Keyword\x10\x04\x12\x19\n\x11IdentifierK\ + eyword\x10\x04\x1a\x02\x08\x01\x12\x16\n\x12IdentifierOperator\x10\x05\ + \x12\x0e\n\nIdentifier\x10\x06\x12\x15\n\x11IdentifierBuiltin\x10\x07\ + \x12\x12\n\x0eIdentifierNull\x10\x08\x12\x16\n\x12IdentifierConstant\x10\ + \t\x12\x1b\n\x17IdentifierMutableGlobal\x10\n\x12\x17\n\x13IdentifierPar\ + ameter\x10\x0b\x12\x13\n\x0fIdentifierLocal\x10\x0c\x12\x16\n\x12Identif\ + ierShadowed\x10\r\x12\x17\n\x13IdentifierNamespace\x10\x0e\x12\x18\n\x10\ + IdentifierModule\x10\x0e\x1a\x02\x08\x01\x12\x16\n\x12IdentifierFunction\ + \x10\x0f\x12\x20\n\x1cIdentifierFunctionDefinition\x10\x10\x12\x13\n\x0f\ + IdentifierMacro\x10\x11\x12\x1d\n\x19IdentifierMacroDefinition\x10\x12\ + \x12\x12\n\x0eIdentifierType\x10\x13\x12\x19\n\x15IdentifierBuiltinType\ + \x10\x14\x12\x17\n\x13IdentifierAttribute\x10\x15\x12\x0f\n\x0bRegexEsca\ + pe\x10\x16\x12\x11\n\rRegexRepeated\x10\x17\x12\x11\n\rRegexWildcard\x10\ + \x18\x12\x12\n\x0eRegexDelimiter\x10\x19\x12\r\n\tRegexJoin\x10\x1a\x12\ + \x11\n\rStringLiteral\x10\x1b\x12\x17\n\x13StringLiteralEscape\x10\x1c\ + \x12\x18\n\x14StringLiteralSpecial\x10\x1d\x12\x14\n\x10StringLiteralKey\ + \x10\x1e\x12\x14\n\x10CharacterLiteral\x10\x1f\x12\x12\n\x0eNumericLiter\ + al\x10\x20\x12\x12\n\x0eBooleanLiteral\x10!\x12\x07\n\x03Tag\x10\"\x12\ + \x10\n\x0cTagAttribute\x10#\x12\x10\n\x0cTagDelimiter\x10$\x1a\x02\x10\ + \x01*V\n\x08Severity\x12\x17\n\x13UnspecifiedSeverity\x10\0\x12\t\n\x05E\ + rror\x10\x01\x12\x0b\n\x07Warning\x10\x02\x12\x0f\n\x0bInformation\x10\ + \x03\x12\x08\n\x04Hint\x10\x04*N\n\rDiagnosticTag\x12\x1c\n\x18Unspecifi\ + edDiagnosticTag\x10\0\x12\x0f\n\x0bUnnecessary\x10\x01\x12\x0e\n\nDeprec\ + ated\x10\x02*\xe0\x08\n\x08Language\x12\x17\n\x13UnspecifiedLanguage\x10\ + \0\x12\x08\n\x04ABAP\x10<\x12\x07\n\x03APL\x101\x12\x07\n\x03Ada\x10'\ + \x12\x08\n\x04Agda\x10-\x12\x0c\n\x08AsciiDoc\x10V\x12\x0c\n\x08Assembly\ + \x10:\x12\x07\n\x03Awk\x10B\x12\x07\n\x03Bat\x10D\x12\n\n\x06BibTeX\x10Q\ + \x12\x05\n\x01C\x10\"\x12\t\n\x05COBOL\x10;\x12\x07\n\x03CPP\x10#\x12\ + \x07\n\x03CSS\x10\x1a\x12\n\n\x06CSharp\x10\x01\x12\x0b\n\x07Clojure\x10\ + \x08\x12\x10\n\x0cCoffeescript\x10\x15\x12\x0e\n\nCommonLisp\x10\t\x12\ + \x07\n\x03Coq\x10/\x12\x08\n\x04Dart\x10\x03\x12\n\n\x06Delphi\x109\x12\ + \x08\n\x04Diff\x10X\x12\x0e\n\nDockerfile\x10P\x12\n\n\x06Dyalog\x102\ + \x12\n\n\x06Elixir\x10\x11\x12\n\n\x06Erlang\x10\x12\x12\n\n\x06FSharp\ \x10*\x12\x08\n\x04Fish\x10A\x12\x08\n\x04Flow\x10\x18\x12\x0b\n\x07Fort\ ran\x108\x12\x0e\n\nGit_Commit\x10[\x12\x0e\n\nGit_Config\x10Y\x12\x0e\n\ \nGit_Rebase\x10\\\x12\x06\n\x02Go\x10!\x12\n\n\x06Groovy\x10\x07\x12\ @@ -3848,7 +3874,7 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \x0fTypeScriptReact\x10^\x12\x0f\n\x0bVisualBasic\x10?\x12\x07\n\x03Vue\ \x10\x19\x12\x0b\n\x07Wolfram\x105\x12\x07\n\x03XML\x10\x1f\x12\x07\n\ \x03XSL\x10\x20\x12\x08\n\x04YAML\x10J\x12\x07\n\x03Zig\x10&B/Z-github.c\ - om/sourcegraph/scip/bindings/go/scip/J\xba\xf5\x01\n\x07\x12\x05\n\0\xbf\ + om/sourcegraph/scip/bindings/go/scip/J\x81\xf9\x01\n\x07\x12\x05\n\0\xc7\ \x05\x01\n\x82\x04\n\x01\x0c\x12\x03\n\0\x122\xf7\x03\x20An\x20index\x20\ contains\x20one\x20or\x20more\x20pieces\x20of\x20information\x20about\ \x20a\x20given\x20piece\x20of\n\x20source\x20code\x20or\x20software\x20a\ @@ -4087,7 +4113,7 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \x12\x04\xa9\x01\x19\x1a\n\x0c\n\x04\x04\x06\x02\x02\x12\x04\xaa\x01\x02\ \x14\n\r\n\x05\x04\x06\x02\x02\x06\x12\x04\xaa\x01\x02\x08\n\r\n\x05\x04\ \x06\x02\x02\x01\x12\x04\xaa\x01\t\x0f\n\r\n\x05\x04\x06\x02\x02\x03\x12\ - \x04\xaa\x01\x12\x13\n\x83\x01\n\x02\x04\x07\x12\x06\xaf\x01\0\xad\x02\ + \x04\xaa\x01\x12\x13\n\x83\x01\n\x02\x04\x07\x12\x06\xaf\x01\0\xb5\x02\ \x01\x1au\x20SymbolInformation\x20defines\x20metadata\x20about\x20a\x20s\ ymbol,\x20such\x20as\x20the\x20symbol's\n\x20docstring\x20or\x20what\x20\ package\x20it's\x20defined\x20it.\n\n\x0b\n\x03\x04\x07\x01\x12\x04\xaf\ @@ -4118,807 +4144,818 @@ static file_descriptor_proto_data: &'static [u8] = b"\ hether\x20something\x20is,\x20for\x20example,\x20a\n\x20class\x20or\x20a\ \x20method.\n\n\r\n\x05\x04\x07\x02\x03\x06\x12\x04\xbd\x01\x02\x06\n\r\ \n\x05\x04\x07\x02\x03\x01\x12\x04\xbd\x01\x07\x0b\n\r\n\x05\x04\x07\x02\ - \x03\x03\x12\x04\xbd\x01\x0e\x0f\n\xea\x05\n\x04\x04\x07\x04\0\x12\x06\ - \xcc\x01\x02\xac\x02\x03\x1a\xd9\x05\x20Kind\x20represents\x20the\x20fin\ - e-grained\x20category\x20of\x20a\x20symbol,\x20suitable\x20for\x20presen\ - ting\n\x20information\x20about\x20the\x20symbol's\x20meaning\x20in\x20th\ - e\x20language.\n\n\x20For\x20example:\n\x20-\x20A\x20Java\x20method\x20w\ - ould\x20have\x20the\x20kind\x20`Method`\x20while\x20a\x20Go\x20function\ - \x20would\n\x20\x20\x20have\x20the\x20kind\x20`Function`,\x20even\x20if\ - \x20the\x20symbols\x20for\x20these\x20use\x20the\x20same\n\x20\x20\x20sy\ - ntax\x20for\x20the\x20descriptor\x20`SymbolDescriptor.Suffix.Method`.\n\ - \x20-\x20A\x20Go\x20struct\x20has\x20the\x20symbol\x20kind\x20`Struct`\ - \x20while\x20a\x20Java\x20class\x20has\n\x20\x20\x20the\x20symbol\x20kin\ - d\x20`Class`\x20even\x20if\x20they\x20both\x20have\x20the\x20same\x20des\ - criptor:\n\x20\x20\x20`SymbolDescriptor.Suffix.Type`.\n\n\x20Since\x20Ki\ - nd\x20is\x20more\x20fine-grained\x20than\x20Suffix:\n\x20-\x20If\x20two\ - \x20symbols\x20have\x20the\x20same\x20Kind,\x20they\x20should\x20share\ - \x20the\x20same\x20Suffix.\n\x20-\x20If\x20two\x20symbols\x20have\x20dif\ - ferent\x20Suffixes,\x20they\x20should\x20have\x20different\x20Kinds.\n\n\ - \r\n\x05\x04\x07\x04\0\x01\x12\x04\xcc\x01\x07\x0b\n\x0e\n\x06\x04\x07\ - \x04\0\x02\0\x12\x04\xcd\x01\x06\x1a\n\x0f\n\x07\x04\x07\x04\0\x02\0\x01\ - \x12\x04\xcd\x01\x06\x15\n\x0f\n\x07\x04\x07\x04\0\x02\0\x02\x12\x04\xcd\ - \x01\x18\x19\n\x0e\n\x06\x04\x07\x04\0\x02\x01\x12\x04\xce\x01\x06\x10\n\ - \x0f\n\x07\x04\x07\x04\0\x02\x01\x01\x12\x04\xce\x01\x06\x0b\n\x0f\n\x07\ - \x04\x07\x04\0\x02\x01\x02\x12\x04\xce\x01\x0e\x0f\n\x1b\n\x06\x04\x07\ - \x04\0\x02\x02\x12\x04\xd0\x01\x06\x14\x1a\x0b\x20For\x20Alloy\n\n\x0f\n\ - \x07\x04\x07\x04\0\x02\x02\x01\x12\x04\xd0\x01\x06\x0f\n\x0f\n\x07\x04\ - \x07\x04\0\x02\x02\x02\x12\x04\xd0\x01\x12\x13\n\x0e\n\x06\x04\x07\x04\0\ - \x02\x03\x12\x04\xd1\x01\x06\x19\n\x0f\n\x07\x04\x07\x04\0\x02\x03\x01\ - \x12\x04\xd1\x01\x06\x14\n\x0f\n\x07\x04\x07\x04\0\x02\x03\x02\x12\x04\ - \xd1\x01\x17\x18\n\x19\n\x06\x04\x07\x04\0\x02\x04\x12\x04\xd3\x01\x06\ - \x14\x1a\t\x20For\x20C++\n\n\x0f\n\x07\x04\x07\x04\0\x02\x04\x01\x12\x04\ - \xd3\x01\x06\x0f\n\x0f\n\x07\x04\x07\x04\0\x02\x04\x02\x12\x04\xd3\x01\ - \x12\x13\n\x1a\n\x06\x04\x07\x04\0\x02\x05\x12\x04\xd5\x01\x06\x10\x1a\n\ - \x20For\x20Lean\n\n\x0f\n\x07\x04\x07\x04\0\x02\x05\x01\x12\x04\xd5\x01\ - \x06\x0b\n\x0f\n\x07\x04\x07\x04\0\x02\x05\x02\x12\x04\xd5\x01\x0e\x0f\n\ - \x0e\n\x06\x04\x07\x04\0\x02\x06\x12\x04\xd6\x01\x06\x12\n\x0f\n\x07\x04\ - \x07\x04\0\x02\x06\x01\x12\x04\xd6\x01\x06\r\n\x0f\n\x07\x04\x07\x04\0\ - \x02\x06\x02\x12\x04\xd6\x01\x10\x11\n\x0e\n\x06\x04\x07\x04\0\x02\x07\ - \x12\x04\xd7\x01\x06\x10\n\x0f\n\x07\x04\x07\x04\0\x02\x07\x01\x12\x04\ - \xd7\x01\x06\x0b\n\x0f\n\x07\x04\x07\x04\0\x02\x07\x02\x12\x04\xd7\x01\ - \x0e\x0f\n\x0e\n\x06\x04\x07\x04\0\x02\x08\x12\x04\xd8\x01\x06\x13\n\x0f\ - \n\x07\x04\x07\x04\0\x02\x08\x01\x12\x04\xd8\x01\x06\x0e\n\x0f\n\x07\x04\ - \x07\x04\0\x02\x08\x02\x12\x04\xd8\x01\x11\x12\n\x0e\n\x06\x04\x07\x04\0\ - \x02\t\x12\x04\xd9\x01\x06\x16\n\x0f\n\x07\x04\x07\x04\0\x02\t\x01\x12\ - \x04\xd9\x01\x06\x11\n\x0f\n\x07\x04\x07\x04\0\x02\t\x02\x12\x04\xd9\x01\ - \x14\x15\n\x1d\n\x06\x04\x07\x04\0\x02\n\x12\x04\xdb\x01\x06\x16\x1a\r\ - \x20For\x20Haskell\n\n\x0f\n\x07\x04\x07\x04\0\x02\n\x01\x12\x04\xdb\x01\ - \x06\x10\n\x0f\n\x07\x04\x07\x04\0\x02\n\x02\x12\x04\xdb\x01\x13\x15\n\ - \x0e\n\x06\x04\x07\x04\0\x02\x0b\x12\x04\xdc\x01\x06\x10\n\x0f\n\x07\x04\ - \x07\x04\0\x02\x0b\x01\x12\x04\xdc\x01\x06\n\n\x0f\n\x07\x04\x07\x04\0\ - \x02\x0b\x02\x12\x04\xdc\x01\r\x0f\n\x0e\n\x06\x04\x07\x04\0\x02\x0c\x12\ - \x04\xdd\x01\x06\x16\n\x0f\n\x07\x04\x07\x04\0\x02\x0c\x01\x12\x04\xdd\ - \x01\x06\x10\n\x0f\n\x07\x04\x07\x04\0\x02\x0c\x02\x12\x04\xdd\x01\x13\ - \x15\n\x0e\n\x06\x04\x07\x04\0\x02\r\x12\x04\xde\x01\x06\x11\n\x0f\n\x07\ - \x04\x07\x04\0\x02\r\x01\x12\x04\xde\x01\x06\x0b\n\x0f\n\x07\x04\x07\x04\ - \0\x02\r\x02\x12\x04\xde\x01\x0e\x10\n\x1b\n\x06\x04\x07\x04\0\x02\x0e\ - \x12\x04\xe0\x01\x06\x10\x1a\x0b\x20For\x20Alloy\n\n\x0f\n\x07\x04\x07\ - \x04\0\x02\x0e\x01\x12\x04\xe0\x01\x06\n\n\x0f\n\x07\x04\x07\x04\0\x02\ - \x0e\x02\x12\x04\xe0\x01\r\x0f\n\x0e\n\x06\x04\x07\x04\0\x02\x0f\x12\x04\ - \xe1\x01\x06\x11\n\x0f\n\x07\x04\x07\x04\0\x02\x0f\x01\x12\x04\xe1\x01\ - \x06\x0b\n\x0f\n\x07\x04\x07\x04\0\x02\x0f\x02\x12\x04\xe1\x01\x0e\x10\n\ - \x0e\n\x06\x04\x07\x04\0\x02\x10\x12\x04\xe2\x01\x06\x10\n\x0f\n\x07\x04\ - \x07\x04\0\x02\x10\x01\x12\x04\xe2\x01\x06\n\n\x0f\n\x07\x04\x07\x04\0\ - \x02\x10\x02\x12\x04\xe2\x01\r\x0f\n\x0e\n\x06\x04\x07\x04\0\x02\x11\x12\ - \x04\xe3\x01\x06\x14\n\x0f\n\x07\x04\x07\x04\0\x02\x11\x01\x12\x04\xe3\ - \x01\x06\x0e\n\x0f\n\x07\x04\x07\x04\0\x02\x11\x02\x12\x04\xe3\x01\x11\ - \x13\n$\n\x06\x04\x07\x04\0\x02\x12\x12\x04\xe5\x01\x06\x12\x1a\x14\x20F\ - or\x20'get'\x20in\x20Swift\n\n\x0f\n\x07\x04\x07\x04\0\x02\x12\x01\x12\ - \x04\xe5\x01\x06\x0c\n\x0f\n\x07\x04\x07\x04\0\x02\x12\x02\x12\x04\xe5\ - \x01\x0f\x11\n\x1a\n\x06\x04\x07\x04\0\x02\x13\x12\x04\xe7\x01\x06\x13\ - \x1a\n\x20For\x20Raku\n\n\x0f\n\x07\x04\x07\x04\0\x02\x13\x01\x12\x04\ - \xe7\x01\x06\r\n\x0f\n\x07\x04\x07\x04\0\x02\x13\x02\x12\x04\xe7\x01\x10\ - \x12\n)\n\x06\x04\x07\x04\0\x02\x14\x12\x04\xe9\x01\x06\x14\x1a\x19\x20F\ - or\x20Purescript\x20and\x20Lean\n\n\x0f\n\x07\x04\x07\x04\0\x02\x14\x01\ - \x12\x04\xe9\x01\x06\x0e\n\x0f\n\x07\x04\x07\x04\0\x02\x14\x02\x12\x04\ - \xe9\x01\x11\x13\n\x0e\n\x06\x04\x07\x04\0\x02\x15\x12\x04\xea\x01\x06\ - \x15\n\x0f\n\x07\x04\x07\x04\0\x02\x15\x01\x12\x04\xea\x01\x06\x0f\n\x0f\ - \n\x07\x04\x07\x04\0\x02\x15\x02\x12\x04\xea\x01\x12\x14\n\x0e\n\x06\x04\ - \x07\x04\0\x02\x16\x12\x04\xeb\x01\x06\x0f\n\x0f\n\x07\x04\x07\x04\0\x02\ - \x16\x01\x12\x04\xeb\x01\x06\t\n\x0f\n\x07\x04\x07\x04\0\x02\x16\x02\x12\ - \x04\xeb\x01\x0c\x0e\n\x1c\n\x06\x04\x07\x04\0\x02\x17\x12\x04\xed\x01\ - \x06\x10\x1a\x0c\x20For\x20Racket\n\n\x0f\n\x07\x04\x07\x04\0\x02\x17\ - \x01\x12\x04\xed\x01\x06\n\n\x0f\n\x07\x04\x07\x04\0\x02\x17\x02\x12\x04\ - \xed\x01\r\x0f\n\x1a\n\x06\x04\x07\x04\0\x02\x18\x12\x04\xef\x01\x06\x11\ - \x1a\n\x20For\x20Lean\n\n\x0f\n\x07\x04\x07\x04\0\x02\x18\x01\x12\x04\ - \xef\x01\x06\x0b\n\x0f\n\x07\x04\x07\x04\0\x02\x18\x02\x12\x04\xef\x01\ - \x0e\x10\n\x0e\n\x06\x04\x07\x04\0\x02\x19\x12\x04\xf0\x01\x06\x11\n\x0f\ - \n\x07\x04\x07\x04\0\x02\x19\x01\x12\x04\xf0\x01\x06\x0b\n\x0f\n\x07\x04\ - \x07\x04\0\x02\x19\x02\x12\x04\xf0\x01\x0e\x10\n\x0e\n\x06\x04\x07\x04\0\ - \x02\x1a\x12\x04\xf1\x01\x06\x12\n\x0f\n\x07\x04\x07\x04\0\x02\x1a\x01\ - \x12\x04\xf1\x01\x06\x0c\n\x0f\n\x07\x04\x07\x04\0\x02\x1a\x02\x12\x04\ - \xf1\x01\x0f\x11\n\x94\x01\n\x06\x04\x07\x04\0\x02\x1b\x12\x04\xf4\x01\ - \x06\x1a\x1a\x83\x01\x20Analogous\x20to\x20'ThisParameter'\x20and\x20'Se\ - lfParameter',\x20but\x20for\x20languages\n\x20like\x20Go\x20where\x20the\ - \x20receiver\x20doesn't\x20have\x20a\x20conventional\x20name.\n\n\x0f\n\ - \x07\x04\x07\x04\0\x02\x1b\x01\x12\x04\xf4\x01\x06\x14\n\x0f\n\x07\x04\ - \x07\x04\0\x02\x1b\x02\x12\x04\xf4\x01\x17\x19\n\x1e\n\x06\x04\x07\x04\0\ - \x02\x1c\x12\x04\xf6\x01\x06\x13\x1a\x0e\x20For\x20Protobuf\n\n\x0f\n\ - \x07\x04\x07\x04\0\x02\x1c\x01\x12\x04\xf6\x01\x06\r\n\x0f\n\x07\x04\x07\ - \x04\0\x02\x1c\x02\x12\x04\xf6\x01\x10\x12\n\x0e\n\x06\x04\x07\x04\0\x02\ - \x1d\x12\x04\xf7\x01\x06\x12\n\x0f\n\x07\x04\x07\x04\0\x02\x1d\x01\x12\ - \x04\xf7\x01\x06\x0c\n\x0f\n\x07\x04\x07\x04\0\x02\x1d\x02\x12\x04\xf7\ - \x01\x0f\x11\n\x0e\n\x06\x04\x07\x04\0\x02\x1e\x12\x04\xf8\x01\x06\x15\n\ - \x0f\n\x07\x04\x07\x04\0\x02\x1e\x01\x12\x04\xf8\x01\x06\x0f\n\x0f\n\x07\ - \x04\x07\x04\0\x02\x1e\x02\x12\x04\xf8\x01\x12\x14\n\x0e\n\x06\x04\x07\ - \x04\0\x02\x1f\x12\x04\xf9\x01\x06\x10\n\x0f\n\x07\x04\x07\x04\0\x02\x1f\ - \x01\x12\x04\xf9\x01\x06\n\n\x0f\n\x07\x04\x07\x04\0\x02\x1f\x02\x12\x04\ - \xf9\x01\r\x0f\n\x0e\n\x06\x04\x07\x04\0\x02\x20\x12\x04\xfa\x01\x06\x12\ - \n\x0f\n\x07\x04\x07\x04\0\x02\x20\x01\x12\x04\xfa\x01\x06\x0c\n\x0f\n\ - \x07\x04\x07\x04\0\x02\x20\x02\x12\x04\xfa\x01\x0f\x11\n\x0e\n\x06\x04\ - \x07\x04\0\x02!\x12\x04\xfb\x01\x06\x12\n\x0f\n\x07\x04\x07\x04\0\x02!\ - \x01\x12\x04\xfb\x01\x06\x0c\n\x0f\n\x07\x04\x07\x04\0\x02!\x02\x12\x04\ - \xfb\x01\x0f\x11\n\x0e\n\x06\x04\x07\x04\0\x02\"\x12\x04\xfc\x01\x06\x14\ - \n\x0f\n\x07\x04\x07\x04\0\x02\"\x01\x12\x04\xfc\x01\x06\x0e\n\x0f\n\x07\ - \x04\x07\x04\0\x02\"\x02\x12\x04\xfc\x01\x11\x13\n\x0e\n\x06\x04\x07\x04\ - \0\x02#\x12\x04\xfd\x01\x06\x13\n\x0f\n\x07\x04\x07\x04\0\x02#\x01\x12\ - \x04\xfd\x01\x06\r\n\x0f\n\x07\x04\x07\x04\0\x02#\x02\x12\x04\xfd\x01\ - \x10\x12\n\x0e\n\x06\x04\x07\x04\0\x02$\x12\x04\xfe\x01\x06\x19\n\x0f\n\ - \x07\x04\x07\x04\0\x02$\x01\x12\x04\xfe\x01\x06\x13\n\x0f\n\x07\x04\x07\ - \x04\0\x02$\x02\x12\x04\xfe\x01\x16\x18\n\x0e\n\x06\x04\x07\x04\0\x02%\ - \x12\x04\xff\x01\x06\x15\n\x0f\n\x07\x04\x07\x04\0\x02%\x01\x12\x04\xff\ - \x01\x06\x0f\n\x0f\n\x07\x04\x07\x04\0\x02%\x02\x12\x04\xff\x01\x12\x14\ - \n\x0e\n\x06\x04\x07\x04\0\x02&\x12\x04\x80\x02\x06\x1a\n\x0f\n\x07\x04\ - \x07\x04\0\x02&\x01\x12\x04\x80\x02\x06\x14\n\x0f\n\x07\x04\x07\x04\0\ - \x02&\x02\x12\x04\x80\x02\x17\x19\n/\n\x06\x04\x07\x04\0\x02'\x12\x04\ - \x82\x02\x06\x13\x1a\x1f\x20For\x20Haskell's\x20PatternSynonyms\n\n\x0f\ - \n\x07\x04\x07\x04\0\x02'\x01\x12\x04\x82\x02\x06\r\n\x0f\n\x07\x04\x07\ - \x04\0\x02'\x02\x12\x04\x82\x02\x10\x12\n\x1b\n\x06\x04\x07\x04\0\x02(\ - \x12\x04\x84\x02\x06\x15\x1a\x0b\x20For\x20Alloy\n\n\x0f\n\x07\x04\x07\ - \x04\0\x02(\x01\x12\x04\x84\x02\x06\x0f\n\x0f\n\x07\x04\x07\x04\0\x02(\ - \x02\x12\x04\x84\x02\x12\x14\n\x0e\n\x06\x04\x07\x04\0\x02)\x12\x04\x85\ - \x02\x06\x14\n\x0f\n\x07\x04\x07\x04\0\x02)\x01\x12\x04\x85\x02\x06\x0e\ - \n\x0f\n\x07\x04\x07\x04\0\x02)\x02\x12\x04\x85\x02\x11\x13\nQ\n\x06\x04\ - \x07\x04\0\x02*\x12\x04\x87\x02\x06\x14\x1aA\x20Analogous\x20to\x20'Trai\ - t'\x20and\x20'TypeClass',\x20for\x20Swift\x20and\x20Objective-C\n\n\x0f\ - \n\x07\x04\x07\x04\0\x02*\x01\x12\x04\x87\x02\x06\x0e\n\x0f\n\x07\x04\ - \x07\x04\0\x02*\x02\x12\x04\x87\x02\x11\x13\n\x1d\n\x06\x04\x07\x04\0\ - \x02+\x12\x04\x89\x02\x06\x17\x1a\r\x20For\x20Haskell\n\n\x0f\n\x07\x04\ - \x07\x04\0\x02+\x01\x12\x04\x89\x02\x06\x11\n\x0f\n\x07\x04\x07\x04\0\ - \x02+\x02\x12\x04\x89\x02\x14\x16\n4\n\x06\x04\x07\x04\0\x02,\x12\x04\ - \x8b\x02\x06\x19\x1a$\x20'self'\x20in\x20Python,\x20Rust,\x20Swift\x20et\ - c.\n\n\x0f\n\x07\x04\x07\x04\0\x02,\x01\x12\x04\x8b\x02\x06\x13\n\x0f\n\ - \x07\x04\x07\x04\0\x02,\x02\x12\x04\x8b\x02\x16\x18\n$\n\x06\x04\x07\x04\ - \0\x02-\x12\x04\x8d\x02\x06\x12\x1a\x14\x20For\x20'set'\x20in\x20Swift\n\ - \n\x0f\n\x07\x04\x07\x04\0\x02-\x01\x12\x04\x8d\x02\x06\x0c\n\x0f\n\x07\ - \x04\x07\x04\0\x02-\x02\x12\x04\x8d\x02\x0f\x11\n3\n\x06\x04\x07\x04\0\ - \x02.\x12\x04\x8f\x02\x06\x15\x1a#\x20For\x20Alloy,\x20analogous\x20to\ - \x20'Struct'.\n\n\x0f\n\x07\x04\x07\x04\0\x02.\x01\x12\x04\x8f\x02\x06\ - \x0f\n\x0f\n\x07\x04\x07\x04\0\x02.\x02\x12\x04\x8f\x02\x12\x14\n\x1b\n\ - \x06\x04\x07\x04\0\x02/\x12\x04\x91\x02\x06\x15\x1a\x0b\x20For\x20Swift\ - \n\n\x0f\n\x07\x04\x07\x04\0\x02/\x01\x12\x04\x91\x02\x06\x0f\n\x0f\n\ - \x07\x04\x07\x04\0\x02/\x02\x12\x04\x91\x02\x12\x14\n\x0e\n\x06\x04\x07\ - \x04\0\x020\x12\x04\x92\x02\x06\x12\n\x0f\n\x07\x04\x07\x04\0\x020\x01\ - \x12\x04\x92\x02\x06\x0c\n\x0f\n\x07\x04\x07\x04\0\x020\x02\x12\x04\x92\ - \x02\x0f\x11\n\x0e\n\x06\x04\x07\x04\0\x021\x12\x04\x93\x02\x06\x12\n\ - \x0f\n\x07\x04\x07\x04\0\x021\x01\x12\x04\x93\x02\x06\x0c\n\x0f\n\x07\ - \x04\x07\x04\0\x021\x02\x12\x04\x93\x02\x0f\x11\n\x1a\n\x06\x04\x07\x04\ - \0\x022\x12\x04\x95\x02\x06\x12\x1a\n\x20For\x20Lean\n\n\x0f\n\x07\x04\ - \x07\x04\0\x022\x01\x12\x04\x95\x02\x06\x0c\n\x0f\n\x07\x04\x07\x04\0\ - \x022\x02\x12\x04\x95\x02\x0f\x11\n\x1a\n\x06\x04\x07\x04\0\x023\x12\x04\ - \x97\x02\x06\x13\x1a\n\x20For\x20Lean\n\n\x0f\n\x07\x04\x07\x04\0\x023\ - \x01\x12\x04\x97\x02\x06\r\n\x0f\n\x07\x04\x07\x04\0\x023\x02\x12\x04\ - \x97\x02\x10\x12\nU\n\x06\x04\x07\x04\0\x024\x12\x04\x9a\x02\x06\x19\x1a\ - E\x20Method\x20receiver\x20for\x20languages\n\x20'this'\x20in\x20JavaScr\ - ipt,\x20C++,\x20Java\x20etc.\n\n\x0f\n\x07\x04\x07\x04\0\x024\x01\x12\ - \x04\x9a\x02\x06\x13\n\x0f\n\x07\x04\x07\x04\0\x024\x02\x12\x04\x9a\x02\ - \x16\x18\nD\n\x06\x04\x07\x04\0\x025\x12\x04\x9c\x02\x06\x11\x1a4\x20Ana\ - logous\x20to\x20'Protocol'\x20and\x20'TypeClass',\x20for\x20Rust.\n\n\ - \x0f\n\x07\x04\x07\x04\0\x025\x01\x12\x04\x9c\x02\x06\x0b\n\x0f\n\x07\ - \x04\x07\x04\0\x025\x02\x12\x04\x9c\x02\x0e\x10\n\x89\x01\n\x06\x04\x07\ - \x04\0\x026\x12\x04\x9f\x02\x06\x10\x1ay\x20Data\x20type\x20definition\ - \x20for\x20languages\x20like\x20OCaml\x20which\x20use\x20`type`\n\x20rat\ - her\x20than\x20separate\x20keywords\x20like\x20`struct`\x20and\x20`enum`\ - .\n\n\x0f\n\x07\x04\x07\x04\0\x026\x01\x12\x04\x9f\x02\x06\n\n\x0f\n\x07\ - \x04\x07\x04\0\x026\x02\x12\x04\x9f\x02\r\x0f\n\x0e\n\x06\x04\x07\x04\0\ - \x027\x12\x04\xa0\x02\x06\x15\n\x0f\n\x07\x04\x07\x04\0\x027\x01\x12\x04\ - \xa0\x02\x06\x0f\n\x0f\n\x07\x04\x07\x04\0\x027\x02\x12\x04\xa0\x02\x12\ - \x14\nS\n\x06\x04\x07\x04\0\x028\x12\x04\xa2\x02\x06\x15\x1aC\x20Analogo\ - us\x20to\x20'Trait'\x20and\x20'Protocol',\x20for\x20Haskell,\x20Purescri\ - pt\x20etc.\n\n\x0f\n\x07\x04\x07\x04\0\x028\x01\x12\x04\xa2\x02\x06\x0f\ - \n\x0f\n\x07\x04\x07\x04\0\x028\x02\x12\x04\xa2\x02\x12\x14\n\x1d\n\x06\ - \x04\x07\x04\0\x029\x12\x04\xa4\x02\x06\x16\x1a\r\x20For\x20Haskell\n\n\ - \x0f\n\x07\x04\x07\x04\0\x029\x01\x12\x04\xa4\x02\x06\x10\n\x0f\n\x07\ - \x04\x07\x04\0\x029\x02\x12\x04\xa4\x02\x13\x15\n\x0e\n\x06\x04\x07\x04\ - \0\x02:\x12\x04\xa5\x02\x06\x19\n\x0f\n\x07\x04\x07\x04\0\x02:\x01\x12\ - \x04\xa5\x02\x06\x13\n\x0f\n\x07\x04\x07\x04\0\x02:\x02\x12\x04\xa5\x02\ - \x16\x18\n(\n\x06\x04\x07\x04\0\x02;\x12\x04\xa7\x02\x06\x11\x1a\x18\x20\ - For\x20C,\x20C++,\x20Capn\x20Proto\n\n\x0f\n\x07\x04\x07\x04\0\x02;\x01\ - \x12\x04\xa7\x02\x06\x0b\n\x0f\n\x07\x04\x07\x04\0\x02;\x02\x12\x04\xa7\ - \x02\x0e\x10\n\x0e\n\x06\x04\x07\x04\0\x02<\x12\x04\xa8\x02\x06\x11\n\ - \x0f\n\x07\x04\x07\x04\0\x02<\x01\x12\x04\xa8\x02\x06\x0b\n\x0f\n\x07\ - \x04\x07\x04\0\x02<\x02\x12\x04\xa8\x02\x0e\x10\n[\n\x06\x04\x07\x04\0\ - \x02=\x12\x04\xa9\x02\x06\x14\"K\x20Next\x20=\x2062;\n\x20Feel\x20free\ - \x20to\x20open\x20a\x20PR\x20proposing\x20new\x20language-specific\x20ki\ - nds.\n\n\x0f\n\x07\x04\x07\x04\0\x02=\x01\x12\x04\xa9\x02\x06\x0e\n\x0f\ - \n\x07\x04\x07\x04\0\x02=\x02\x12\x04\xa9\x02\x11\x13\n\x0c\n\x02\x04\ - \x08\x12\x06\xb0\x02\0\xe8\x02\x01\n\x0b\n\x03\x04\x08\x01\x12\x04\xb0\ - \x02\x08\x14\n\x0c\n\x04\x04\x08\x02\0\x12\x04\xb1\x02\x02\x14\n\r\n\x05\ - \x04\x08\x02\0\x05\x12\x04\xb1\x02\x02\x08\n\r\n\x05\x04\x08\x02\0\x01\ - \x12\x04\xb1\x02\t\x0f\n\r\n\x05\x04\x08\x02\0\x03\x12\x04\xb1\x02\x12\ - \x13\n\xde\x08\n\x04\x04\x08\x02\x01\x12\x04\xca\x02\x02\x18\x1a\xcf\x08\ - \x20When\x20resolving\x20\"Find\x20references\",\x20this\x20field\x20doc\ - uments\x20what\x20other\x20symbols\n\x20should\x20be\x20included\x20toge\ - ther\x20with\x20this\x20symbol.\x20For\x20example,\x20consider\x20the\n\ - \x20following\x20TypeScript\x20code\x20that\x20defines\x20two\x20symbols\ - \x20`Animal#sound()`\x20and\n\x20`Dog#sound()`:\n\x20```ts\n\x20interfac\ - e\x20Animal\x20{\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20^^^^^^\x20\ - definition\x20Animal#\n\x20\x20\x20sound():\x20string\n\x20\x20\x20^^^^^\ - \x20definition\x20Animal#sound()\n\x20}\n\x20class\x20Dog\x20implements\ - \x20Animal\x20{\n\x20\x20\x20\x20\x20\x20\x20^^^\x20definition\x20Dog#,\ - \x20relationships\x20=\x20[{symbol:\x20\"Animal#\",\x20is_implementation\ - :\x20true}]\n\x20\x20\x20public\x20sound():\x20string\x20{\x20return\x20\ - \"woof\"\x20}\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20^^^^^\x20definiti\ - on\x20Dog#sound(),\x20references_symbols\x20=\x20Animal#sound(),\x20rela\ - tionships\x20=\x20[{symbol:\x20\"Animal#sound()\",\x20is_implementation:\ - true,\x20is_reference:\x20true}]\n\x20}\n\x20const\x20animal:\x20Animal\ - \x20=\x20new\x20Dog()\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ - \x20\x20\x20^^^^^^\x20reference\x20Animal#\n\x20console.log(animal.sound\ - ())\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ - \x20\x20\x20\x20^^^^^\x20reference\x20Animal#sound()\n\x20```\n\x20Doing\ - \x20\"Find\x20references\"\x20on\x20the\x20symbol\x20`Animal#sound()`\ - \x20should\x20return\n\x20references\x20to\x20the\x20`Dog#sound()`\x20me\ - thod\x20as\x20well.\x20Vice-versa,\x20doing\x20\"Find\n\x20references\"\ - \x20on\x20the\x20`Dog#sound()`\x20method\x20should\x20include\x20referen\ - ces\x20to\x20the\n\x20`Animal#sound()`\x20method\x20as\x20well.\n\n\r\n\ - \x05\x04\x08\x02\x01\x05\x12\x04\xca\x02\x02\x06\n\r\n\x05\x04\x08\x02\ - \x01\x01\x12\x04\xca\x02\x07\x13\n\r\n\x05\x04\x08\x02\x01\x03\x12\x04\ - \xca\x02\x16\x17\n\xee\x03\n\x04\x04\x08\x02\x02\x12\x04\xd3\x02\x02\x1d\ - \x1a\xdf\x03\x20Similar\x20to\x20`is_reference`\x20but\x20for\x20\"Find\ - \x20implementations\".\n\x20It's\x20common\x20for\x20`is_implementation`\ - \x20and\x20`is_reference`\x20to\x20both\x20be\x20true\x20but\n\x20it's\ - \x20not\x20always\x20the\x20case.\n\x20In\x20the\x20TypeScript\x20exampl\ - e\x20above,\x20observe\x20that\x20`Dog#`\x20has\x20an\n\x20`is_implement\ - ation`\x20relationship\x20with\x20`\"Animal#\"`\x20but\x20not\x20`is_ref\ - erence`.\n\x20This\x20is\x20because\x20\"Find\x20references\"\x20on\x20t\ - he\x20\"Animal#\"\x20symbol\x20should\x20not\x20return\n\x20\"Dog#\".\ - \x20We\x20only\x20want\x20\"Dog#\"\x20to\x20return\x20as\x20a\x20result\ - \x20for\x20\"Find\n\x20implementations\"\x20on\x20the\x20\"Animal#\"\x20\ - symbol.\n\n\r\n\x05\x04\x08\x02\x02\x05\x12\x04\xd3\x02\x02\x06\n\r\n\ - \x05\x04\x08\x02\x02\x01\x12\x04\xd3\x02\x07\x18\n\r\n\x05\x04\x08\x02\ - \x02\x03\x12\x04\xd3\x02\x1b\x1c\nP\n\x04\x04\x08\x02\x03\x12\x04\xd5\ - \x02\x02\x1e\x1aB\x20Similar\x20to\x20`references_symbols`\x20but\x20for\ - \x20\"Go\x20to\x20type\x20definition\".\n\n\r\n\x05\x04\x08\x02\x03\x05\ - \x12\x04\xd5\x02\x02\x06\n\r\n\x05\x04\x08\x02\x03\x01\x12\x04\xd5\x02\ - \x07\x19\n\r\n\x05\x04\x08\x02\x03\x03\x12\x04\xd5\x02\x1c\x1d\n\xa7\x07\ - \n\x04\x04\x08\x02\x04\x12\x04\xe6\x02\x02\x19\x1a\xd5\x06\x20Allows\x20\ - overriding\x20the\x20behavior\x20of\x20\"Go\x20to\x20definition\"\x20and\ - \x20\"Find\x20references\"\n\x20for\x20symbols\x20which\x20do\x20not\x20\ - have\x20a\x20definition\x20of\x20their\x20own\x20or\x20could\n\x20potent\ - ially\x20have\x20multiple\x20definitions.\n\n\x20For\x20example,\x20in\ - \x20a\x20language\x20with\x20single\x20inheritance\x20and\x20no\x20field\ - \x20overriding,\n\x20inherited\x20fields\x20can\x20reuse\x20the\x20same\ - \x20symbol\x20as\x20the\x20ancestor\x20which\x20declares\n\x20the\x20fie\ - ld.\x20In\x20such\x20a\x20situation,\x20is_definition\x20is\x20not\x20ne\ - eded.\n\n\x20On\x20the\x20other\x20hand,\x20in\x20languages\x20with\x20s\ - ingle\x20inheritance\x20and\x20some\x20form\n\x20of\x20mixins,\x20you\ - \x20can\x20use\x20is_definition\x20to\x20relate\x20the\x20symbol\x20to\ - \x20the\n\x20matching\x20symbol\x20in\x20ancestor\x20classes,\x20and\x20\ - is_reference\x20to\x20relate\x20the\n\x20symbol\x20to\x20the\x20matching\ - \x20symbol\x20in\x20mixins.\n\n\x20NOTE:\x20At\x20the\x20moment,\x20due\ - \x20to\x20limitations\x20of\x20the\x20SCIP\x20to\x20LSIF\x20conversion,\ - \n\x20only\x20global\x20symbols\x20in\x20an\x20index\x20are\x20allowed\ - \x20to\x20use\x20is_definition.\n\x20The\x20relationship\x20may\x20not\ - \x20get\x20recorded\x20if\x20either\x20symbol\x20is\x20local.\n\"A\x20Up\ - date\x20registerInverseRelationships\x20on\x20adding\x20a\x20new\x20fiel\ - d\x20here.\n\n\r\n\x05\x04\x08\x02\x04\x05\x12\x04\xe6\x02\x02\x06\n\r\n\ - \x05\x04\x08\x02\x04\x01\x12\x04\xe6\x02\x07\x14\n\r\n\x05\x04\x08\x02\ - \x04\x03\x12\x04\xe6\x02\x17\x18\n\x88\x03\n\x02\x05\x02\x12\x06\xef\x02\ - \0\xff\x02\x01\x1a\xf9\x02\x20SymbolRole\x20declares\x20what\x20\"role\"\ - \x20a\x20symbol\x20has\x20in\x20an\x20occurrence.\x20A\x20role\x20is\n\ - \x20encoded\x20as\x20a\x20bitset\x20where\x20each\x20bit\x20represents\ - \x20a\x20different\x20role.\x20For\x20example,\n\x20to\x20determine\x20i\ - f\x20the\x20`Import`\x20role\x20is\x20set,\x20test\x20whether\x20the\x20\ - second\x20bit\x20of\x20the\n\x20enum\x20value\x20is\x20defined.\x20In\ - \x20pseudocode,\x20this\x20can\x20be\x20implemented\x20with\x20the\n\x20\ - logic:\x20`const\x20isImportRole\x20=\x20(role.value\x20&\x20SymbolRole.\ - Import.value)\x20>\x200`.\n\n\x0b\n\x03\x05\x02\x01\x12\x04\xef\x02\x05\ - \x0f\nv\n\x04\x05\x02\x02\0\x12\x04\xf2\x02\x02\x1c\x1ah\x20This\x20case\ - \x20is\x20not\x20meant\x20to\x20be\x20used;\x20it\x20only\x20exists\x20t\ - o\x20avoid\x20an\x20error\n\x20from\x20the\x20Protobuf\x20code\x20genera\ - tor.\n\n\r\n\x05\x05\x02\x02\0\x01\x12\x04\xf2\x02\x02\x17\n\r\n\x05\x05\ - \x02\x02\0\x02\x12\x04\xf2\x02\x1a\x1b\nT\n\x04\x05\x02\x02\x01\x12\x04\ - \xf4\x02\x02\x13\x1aF\x20Is\x20the\x20symbol\x20defined\x20here?\x20If\ - \x20not,\x20then\x20this\x20is\x20a\x20symbol\x20reference.\n\n\r\n\x05\ - \x05\x02\x02\x01\x01\x12\x04\xf4\x02\x02\x0c\n\r\n\x05\x05\x02\x02\x01\ - \x02\x12\x04\xf4\x02\x0f\x12\n,\n\x04\x05\x02\x02\x02\x12\x04\xf6\x02\ - \x02\x0f\x1a\x1e\x20Is\x20the\x20symbol\x20imported\x20here?\n\n\r\n\x05\ - \x05\x02\x02\x02\x01\x12\x04\xf6\x02\x02\x08\n\r\n\x05\x05\x02\x02\x02\ - \x02\x12\x04\xf6\x02\x0b\x0e\n+\n\x04\x05\x02\x02\x03\x12\x04\xf8\x02\ - \x02\x14\x1a\x1d\x20Is\x20the\x20symbol\x20written\x20here?\n\n\r\n\x05\ - \x05\x02\x02\x03\x01\x12\x04\xf8\x02\x02\r\n\r\n\x05\x05\x02\x02\x03\x02\ - \x12\x04\xf8\x02\x10\x13\n(\n\x04\x05\x02\x02\x04\x12\x04\xfa\x02\x02\ - \x13\x1a\x1a\x20Is\x20the\x20symbol\x20read\x20here?\n\n\r\n\x05\x05\x02\ - \x02\x04\x01\x12\x04\xfa\x02\x02\x0c\n\r\n\x05\x05\x02\x02\x04\x02\x12\ - \x04\xfa\x02\x0f\x12\n0\n\x04\x05\x02\x02\x05\x12\x04\xfc\x02\x02\x13\ - \x1a\"\x20Is\x20the\x20symbol\x20in\x20generated\x20code?\n\n\r\n\x05\ - \x05\x02\x02\x05\x01\x12\x04\xfc\x02\x02\x0b\n\r\n\x05\x05\x02\x02\x05\ - \x02\x12\x04\xfc\x02\x0e\x12\n+\n\x04\x05\x02\x02\x06\x12\x04\xfe\x02\ - \x02\x0e\x1a\x1d\x20Is\x20the\x20symbol\x20in\x20test\x20code?\n\n\r\n\ - \x05\x05\x02\x02\x06\x01\x12\x04\xfe\x02\x02\x06\n\r\n\x05\x05\x02\x02\ - \x06\x02\x12\x04\xfe\x02\t\r\n\x0c\n\x02\x05\x03\x12\x06\x81\x03\0\xde\ - \x03\x01\n\x0b\n\x03\x05\x03\x01\x12\x04\x81\x03\x05\x0f\n\x0b\n\x03\x05\ - \x03\x03\x12\x04\x82\x03\x02\x1c\n\x0c\n\x04\x05\x03\x03\x02\x12\x04\x82\ - \x03\x02\x1c\n\x0c\n\x04\x05\x03\x02\0\x12\x04\x84\x03\x02\x1c\n\r\n\x05\ - \x05\x03\x02\0\x01\x12\x04\x84\x03\x02\x17\n\r\n\x05\x05\x03\x02\0\x02\ - \x12\x04\x84\x03\x1a\x1b\n;\n\x04\x05\x03\x02\x01\x12\x04\x87\x03\x02\ - \x0e\x1a-\x20Comment,\x20including\x20comment\x20markers\x20and\x20text\ - \n\n\r\n\x05\x05\x03\x02\x01\x01\x12\x04\x87\x03\x02\t\n\r\n\x05\x05\x03\ - \x02\x01\x02\x12\x04\x87\x03\x0c\r\n\x1b\n\x04\x05\x03\x02\x02\x12\x04\ - \x8a\x03\x02\x1b\x1a\r\x20`;`\x20`.`\x20`,`\n\n\r\n\x05\x05\x03\x02\x02\ - \x01\x12\x04\x8a\x03\x02\x16\n\r\n\x05\x05\x03\x02\x02\x02\x12\x04\x8a\ - \x03\x19\x1a\n2\n\x04\x05\x03\x02\x03\x12\x04\x8c\x03\x02\x19\x1a$\x20()\ - ,\x20{},\x20[]\x20when\x20used\x20syntactically\n\n\r\n\x05\x05\x03\x02\ - \x03\x01\x12\x04\x8c\x03\x02\x14\n\r\n\x05\x05\x03\x02\x03\x02\x12\x04\ - \x8c\x03\x17\x18\n5\n\x04\x05\x03\x02\x04\x12\x04\x8f\x03\x02\x0e\x1a'\ - \x20`if`,\x20`else`,\x20`return`,\x20`class`,\x20etc.\n\n\r\n\x05\x05\ - \x03\x02\x04\x01\x12\x04\x8f\x03\x02\t\n\r\n\x05\x05\x03\x02\x04\x02\x12\ - \x04\x8f\x03\x0c\r\n\x0c\n\x04\x05\x03\x02\x05\x12\x04\x90\x03\x02*\n\r\ - \n\x05\x05\x03\x02\x05\x01\x12\x04\x90\x03\x02\x13\n\r\n\x05\x05\x03\x02\ - \x05\x02\x12\x04\x90\x03\x16\x17\n\r\n\x05\x05\x03\x02\x05\x03\x12\x04\ - \x90\x03\x18)\n\x0e\n\x06\x05\x03\x02\x05\x03\x01\x12\x04\x90\x03\x19(\n\ - \x1e\n\x04\x05\x03\x02\x06\x12\x04\x93\x03\x02\x19\x1a\x10\x20`+`,\x20`*\ - `,\x20etc.\n\n\r\n\x05\x05\x03\x02\x06\x01\x12\x04\x93\x03\x02\x14\n\r\n\ - \x05\x05\x03\x02\x06\x02\x12\x04\x93\x03\x17\x18\nX\n\x04\x05\x03\x02\ - \x07\x12\x04\x96\x03\x02\x11\x1aJ\x20non-specific\x20catch-all\x20for\ - \x20any\x20identifier\x20not\x20better\x20described\x20elsewhere\n\n\r\n\ - \x05\x05\x03\x02\x07\x01\x12\x04\x96\x03\x02\x0c\n\r\n\x05\x05\x03\x02\ - \x07\x02\x12\x04\x96\x03\x0f\x10\nN\n\x04\x05\x03\x02\x08\x12\x04\x98\ - \x03\x02\x18\x1a@\x20Identifiers\x20builtin\x20to\x20the\x20language:\ - \x20`min`,\x20`print`\x20in\x20Python.\n\n\r\n\x05\x05\x03\x02\x08\x01\ - \x12\x04\x98\x03\x02\x13\n\r\n\x05\x05\x03\x02\x08\x02\x12\x04\x98\x03\ - \x16\x17\n[\n\x04\x05\x03\x02\t\x12\x04\x9a\x03\x02\x15\x1aM\x20Identifi\ - ers\x20representing\x20`null`-like\x20values:\x20`None`\x20in\x20Python,\ - \x20`nil`\x20in\x20Go.\n\n\r\n\x05\x05\x03\x02\t\x01\x12\x04\x9a\x03\x02\ - \x10\n\r\n\x05\x05\x03\x02\t\x02\x12\x04\x9a\x03\x13\x14\n.\n\x04\x05\ - \x03\x02\n\x12\x04\x9c\x03\x02\x19\x1a\x20\x20`xyz`\x20in\x20`const\x20x\ - yz\x20=\x20\"hello\"`\n\n\r\n\x05\x05\x03\x02\n\x01\x12\x04\x9c\x03\x02\ - \x14\n\r\n\x05\x05\x03\x02\n\x02\x12\x04\x9c\x03\x17\x18\n'\n\x04\x05\ - \x03\x02\x0b\x12\x04\x9e\x03\x02\x1f\x1a\x19\x20`var\x20X\x20=\x20\"hell\ - o\"`\x20in\x20Go\n\n\r\n\x05\x05\x03\x02\x0b\x01\x12\x04\x9e\x03\x02\x19\ - \n\r\n\x05\x05\x03\x02\x0b\x02\x12\x04\x9e\x03\x1c\x1e\n3\n\x04\x05\x03\ - \x02\x0c\x12\x04\xa0\x03\x02\x1b\x1a%\x20Parameter\x20definition\x20and\ - \x20references\n\n\r\n\x05\x05\x03\x02\x0c\x01\x12\x04\xa0\x03\x02\x15\n\ - \r\n\x05\x05\x03\x02\x0c\x02\x12\x04\xa0\x03\x18\x1a\nX\n\x04\x05\x03\ - \x02\r\x12\x04\xa2\x03\x02\x17\x1aJ\x20Identifiers\x20for\x20variable\ - \x20definitions\x20and\x20references\x20within\x20a\x20local\x20scope\n\ - \n\r\n\x05\x05\x03\x02\r\x01\x12\x04\xa2\x03\x02\x11\n\r\n\x05\x05\x03\ - \x02\r\x02\x12\x04\xa2\x03\x14\x16\nK\n\x04\x05\x03\x02\x0e\x12\x04\xa4\ - \x03\x02\x1a\x1a=\x20Identifiers\x20that\x20shadow\x20other\x20identifie\ - rs\x20in\x20an\x20outer\x20scope\n\n\r\n\x05\x05\x03\x02\x0e\x01\x12\x04\ - \xa4\x03\x02\x14\n\r\n\x05\x05\x03\x02\x0e\x02\x12\x04\xa4\x03\x17\x19\n\ - \xcd\x01\n\x04\x05\x03\x02\x0f\x12\x04\xa9\x03\x02\x1b\x1a\xbe\x01\x20Id\ - entifier\x20representing\x20a\x20unit\x20of\x20code\x20abstraction\x20an\ - d/or\x20namespacing.\n\n\x20NOTE:\x20This\x20corresponds\x20to\x20a\x20p\ - ackage\x20in\x20Go\x20and\x20JVM\x20languages,\n\x20and\x20a\x20module\ - \x20in\x20languages\x20like\x20Python\x20and\x20JavaScript.\n\n\r\n\x05\ - \x05\x03\x02\x0f\x01\x12\x04\xa9\x03\x02\x15\n\r\n\x05\x05\x03\x02\x0f\ - \x02\x12\x04\xa9\x03\x18\x1a\n\x0c\n\x04\x05\x03\x02\x10\x12\x04\xaa\x03\ - \x02*\n\r\n\x05\x05\x03\x02\x10\x01\x12\x04\xaa\x03\x02\x12\n\r\n\x05\ - \x05\x03\x02\x10\x02\x12\x04\xaa\x03\x15\x17\n\r\n\x05\x05\x03\x02\x10\ - \x03\x12\x04\xaa\x03\x18)\n\x0e\n\x06\x05\x03\x02\x10\x03\x01\x12\x04\ - \xaa\x03\x19(\n4\n\x04\x05\x03\x02\x11\x12\x04\xad\x03\x02\x1a\x1a&\x20F\ - unction\x20references,\x20including\x20calls\n\n\r\n\x05\x05\x03\x02\x11\ - \x01\x12\x04\xad\x03\x02\x14\n\r\n\x05\x05\x03\x02\x11\x02\x12\x04\xad\ - \x03\x17\x19\n(\n\x04\x05\x03\x02\x12\x12\x04\xaf\x03\x02$\x1a\x1a\x20Fu\ - nction\x20definition\x20only\n\n\r\n\x05\x05\x03\x02\x12\x01\x12\x04\xaf\ - \x03\x02\x1e\n\r\n\x05\x05\x03\x02\x12\x02\x12\x04\xaf\x03!#\n7\n\x04\ - \x05\x03\x02\x13\x12\x04\xb2\x03\x02\x17\x1a)\x20Macro\x20references,\ - \x20including\x20invocations\n\n\r\n\x05\x05\x03\x02\x13\x01\x12\x04\xb2\ - \x03\x02\x11\n\r\n\x05\x05\x03\x02\x13\x02\x12\x04\xb2\x03\x14\x16\n%\n\ - \x04\x05\x03\x02\x14\x12\x04\xb4\x03\x02!\x1a\x17\x20Macro\x20definition\ - \x20only\n\n\r\n\x05\x05\x03\x02\x14\x01\x12\x04\xb4\x03\x02\x1b\n\r\n\ - \x05\x05\x03\x02\x14\x02\x12\x04\xb4\x03\x1e\x20\n!\n\x04\x05\x03\x02\ - \x15\x12\x04\xb7\x03\x02\x16\x1a\x13\x20non-builtin\x20types\n\n\r\n\x05\ - \x05\x03\x02\x15\x01\x12\x04\xb7\x03\x02\x10\n\r\n\x05\x05\x03\x02\x15\ - \x02\x12\x04\xb7\x03\x13\x15\nK\n\x04\x05\x03\x02\x16\x12\x04\xb9\x03\ - \x02\x1d\x1a=\x20builtin\x20types\x20only,\x20such\x20as\x20`str`\x20for\ - \x20Python\x20or\x20`int`\x20in\x20Go\n\n\r\n\x05\x05\x03\x02\x16\x01\ - \x12\x04\xb9\x03\x02\x17\n\r\n\x05\x05\x03\x02\x16\x02\x12\x04\xb9\x03\ - \x1a\x1c\n7\n\x04\x05\x03\x02\x17\x12\x04\xbc\x03\x02\x1b\x1a)\x20Python\ - \x20decorators,\x20c-like\x20__attribute__\n\n\r\n\x05\x05\x03\x02\x17\ - \x01\x12\x04\xbc\x03\x02\x15\n\r\n\x05\x05\x03\x02\x17\x02\x12\x04\xbc\ - \x03\x18\x1a\n\x14\n\x04\x05\x03\x02\x18\x12\x04\xbf\x03\x02\x13\x1a\x06\ - \x20`\\b`\n\n\r\n\x05\x05\x03\x02\x18\x01\x12\x04\xbf\x03\x02\r\n\r\n\ - \x05\x05\x03\x02\x18\x02\x12\x04\xbf\x03\x10\x12\n\x18\n\x04\x05\x03\x02\ - \x19\x12\x04\xc1\x03\x02\x15\x1a\n\x20`*`,\x20`+`\n\n\r\n\x05\x05\x03\ - \x02\x19\x01\x12\x04\xc1\x03\x02\x0f\n\r\n\x05\x05\x03\x02\x19\x02\x12\ - \x04\xc1\x03\x12\x14\n\x13\n\x04\x05\x03\x02\x1a\x12\x04\xc3\x03\x02\x15\ - \x1a\x05\x20`.`\n\n\r\n\x05\x05\x03\x02\x1a\x01\x12\x04\xc3\x03\x02\x0f\ - \n\r\n\x05\x05\x03\x02\x1a\x02\x12\x04\xc3\x03\x12\x14\n\"\n\x04\x05\x03\ - \x02\x1b\x12\x04\xc5\x03\x02\x16\x1a\x14\x20`(`,\x20`)`,\x20`[`,\x20`]`\ - \n\n\r\n\x05\x05\x03\x02\x1b\x01\x12\x04\xc5\x03\x02\x10\n\r\n\x05\x05\ - \x03\x02\x1b\x02\x12\x04\xc5\x03\x13\x15\n\x18\n\x04\x05\x03\x02\x1c\x12\ - \x04\xc7\x03\x02\x11\x1a\n\x20`|`,\x20`-`\n\n\r\n\x05\x05\x03\x02\x1c\ - \x01\x12\x04\xc7\x03\x02\x0b\n\r\n\x05\x05\x03\x02\x1c\x02\x12\x04\xc7\ - \x03\x0e\x10\n0\n\x04\x05\x03\x02\x1d\x12\x04\xca\x03\x02\x15\x1a\"\x20L\ - iteral\x20strings:\x20\"Hello,\x20world!\"\n\n\r\n\x05\x05\x03\x02\x1d\ - \x01\x12\x04\xca\x03\x02\x0f\n\r\n\x05\x05\x03\x02\x1d\x02\x12\x04\xca\ - \x03\x12\x14\n-\n\x04\x05\x03\x02\x1e\x12\x04\xcc\x03\x02\x1b\x1a\x1f\ - \x20non-regex\x20escapes:\x20\"\\t\",\x20\"\\n\"\n\n\r\n\x05\x05\x03\x02\ - \x1e\x01\x12\x04\xcc\x03\x02\x15\n\r\n\x05\x05\x03\x02\x1e\x02\x12\x04\ - \xcc\x03\x18\x1a\n_\n\x04\x05\x03\x02\x1f\x12\x04\xce\x03\x02\x1c\x1aQ\ - \x20datetimes\x20within\x20strings,\x20special\x20words\x20within\x20a\ - \x20string,\x20`{}`\x20in\x20format\x20strings\n\n\r\n\x05\x05\x03\x02\ - \x1f\x01\x12\x04\xce\x03\x02\x16\n\r\n\x05\x05\x03\x02\x1f\x02\x12\x04\ - \xce\x03\x19\x1b\nG\n\x04\x05\x03\x02\x20\x12\x04\xd0\x03\x02\x18\x1a9\ - \x20\"key\"\x20in\x20{\x20\"key\":\x20\"value\"\x20},\x20useful\x20for\ - \x20example\x20in\x20JSON\n\n\r\n\x05\x05\x03\x02\x20\x01\x12\x04\xd0\ - \x03\x02\x12\n\r\n\x05\x05\x03\x02\x20\x02\x12\x04\xd0\x03\x15\x17\nV\n\ - \x04\x05\x03\x02!\x12\x04\xd2\x03\x02\x18\x1aH\x20'c'\x20or\x20similar,\ - \x20in\x20languages\x20that\x20differentiate\x20strings\x20and\x20charac\ - ters\n\n\r\n\x05\x05\x03\x02!\x01\x12\x04\xd2\x03\x02\x12\n\r\n\x05\x05\ - \x03\x02!\x02\x12\x04\xd2\x03\x15\x17\n9\n\x04\x05\x03\x02\"\x12\x04\xd4\ - \x03\x02\x16\x1a+\x20Literal\x20numbers,\x20both\x20floats\x20and\x20int\ - egers\n\n\r\n\x05\x05\x03\x02\"\x01\x12\x04\xd4\x03\x02\x10\n\r\n\x05\ - \x05\x03\x02\"\x02\x12\x04\xd4\x03\x13\x15\n\x1f\n\x04\x05\x03\x02#\x12\ - \x04\xd6\x03\x02\x16\x1a\x11\x20`true`,\x20`false`\n\n\r\n\x05\x05\x03\ - \x02#\x01\x12\x04\xd6\x03\x02\x10\n\r\n\x05\x05\x03\x02#\x02\x12\x04\xd6\ - \x03\x13\x15\n&\n\x04\x05\x03\x02$\x12\x04\xd9\x03\x02\x0b\x1a\x18\x20Us\ - ed\x20for\x20XML-like\x20tags\n\n\r\n\x05\x05\x03\x02$\x01\x12\x04\xd9\ - \x03\x02\x05\n\r\n\x05\x05\x03\x02$\x02\x12\x04\xd9\x03\x08\n\n/\n\x04\ - \x05\x03\x02%\x12\x04\xdb\x03\x02\x14\x1a!\x20Attribute\x20name\x20in\ - \x20XML-like\x20tags\n\n\r\n\x05\x05\x03\x02%\x01\x12\x04\xdb\x03\x02\ - \x0e\n\r\n\x05\x05\x03\x02%\x02\x12\x04\xdb\x03\x11\x13\n,\n\x04\x05\x03\ - \x02&\x12\x04\xdd\x03\x02\x14\x1a\x1e\x20Delimiters\x20for\x20XML-like\ - \x20tags\n\n\r\n\x05\x05\x03\x02&\x01\x12\x04\xdd\x03\x02\x0e\n\r\n\x05\ - \x05\x03\x02&\x02\x12\x04\xdd\x03\x11\x13\n\xf9\x01\n\x02\x04\t\x12\x06\ - \xe5\x03\0\xb4\x04\x01\x1a\xea\x01\x20Occurrence\x20associates\x20a\x20s\ - ource\x20position\x20with\x20a\x20symbol\x20and/or\x20highlighting\n\x20\ - information.\n\n\x20If\x20possible,\x20indexers\x20should\x20try\x20to\ - \x20bundle\x20logically\x20related\x20information\n\x20across\x20occurre\ - nces\x20into\x20a\x20single\x20occurrence\x20to\x20reduce\x20payload\x20\ - sizes.\n\n\x0b\n\x03\x04\t\x01\x12\x04\xe5\x03\x08\x12\n\xc6\x07\n\x04\ - \x04\t\x02\0\x12\x04\xf8\x03\x02\x1b\x1a\xb7\x07\x20Source\x20position\ - \x20of\x20this\x20occurrence.\x20Must\x20be\x20exactly\x20three\x20or\ - \x20four\n\x20elements:\n\n\x20-\x20Four\x20elements:\x20`[startLine,\ - \x20startCharacter,\x20endLine,\x20endCharacter]`\n\x20-\x20Three\x20ele\ - ments:\x20`[startLine,\x20startCharacter,\x20endCharacter]`.\x20The\x20e\ - nd\x20line\n\x20\x20\x20is\x20inferred\x20to\x20have\x20the\x20same\x20v\ - alue\x20as\x20the\x20start\x20line.\n\n\x20Line\x20numbers\x20and\x20cha\ - racters\x20are\x20always\x200-based.\x20Make\x20sure\x20to\x20increment\ - \x20the\n\x20line/character\x20values\x20before\x20displaying\x20them\ - \x20in\x20an\x20editor-like\x20UI\x20because\n\x20editors\x20conventiona\ - lly\x20use\x201-based\x20numbers.\n\n\x20Historical\x20note:\x20the\x20o\ - riginal\x20draft\x20of\x20this\x20schema\x20had\x20a\x20`Range`\x20messa\ - ge\n\x20type\x20with\x20`start`\x20and\x20`end`\x20fields\x20of\x20type\ - \x20`Position`,\x20mirroring\x20LSP.\n\x20Benchmarks\x20revealed\x20that\ - \x20this\x20encoding\x20was\x20inefficient\x20and\x20that\x20we\x20could\ - \n\x20reduce\x20the\x20total\x20payload\x20size\x20of\x20an\x20index\x20\ - by\x2050%\x20by\x20using\x20`repeated\x20int32`\n\x20instead.\x20The\x20\ - `repeated\x20int32`\x20encoding\x20is\x20admittedly\x20more\x20embarrass\ - ing\x20to\n\x20work\x20with\x20in\x20some\x20programming\x20languages\ - \x20but\x20we\x20hope\x20the\x20performance\n\x20improvements\x20make\ - \x20up\x20for\x20it.\n\n\r\n\x05\x04\t\x02\0\x04\x12\x04\xf8\x03\x02\n\n\ - \r\n\x05\x04\t\x02\0\x05\x12\x04\xf8\x03\x0b\x10\n\r\n\x05\x04\t\x02\0\ - \x01\x12\x04\xf8\x03\x11\x16\n\r\n\x05\x04\t\x02\0\x03\x12\x04\xf8\x03\ - \x19\x1a\n\x8a\x01\n\x04\x04\t\x02\x01\x12\x04\xfb\x03\x02\x14\x1a|\x20(\ - optional)\x20The\x20symbol\x20that\x20appears\x20at\x20this\x20position.\ - \x20See\n\x20`SymbolInformation.symbol`\x20for\x20how\x20to\x20format\ - \x20symbols\x20as\x20strings.\n\n\r\n\x05\x04\t\x02\x01\x05\x12\x04\xfb\ - \x03\x02\x08\n\r\n\x05\x04\t\x02\x01\x01\x12\x04\xfb\x03\t\x0f\n\r\n\x05\ - \x04\t\x02\x01\x03\x12\x04\xfb\x03\x12\x13\n\x97\x01\n\x04\x04\t\x02\x02\ - \x12\x04\xfe\x03\x02\x19\x1a\x88\x01\x20(optional)\x20Bitset\x20containi\ - ng\x20`SymbolRole`s\x20in\x20this\x20occurrence.\n\x20See\x20`SymbolRole\ - `'s\x20documentation\x20for\x20how\x20to\x20read\x20and\x20write\x20this\ - \x20field.\n\n\r\n\x05\x04\t\x02\x02\x05\x12\x04\xfe\x03\x02\x07\n\r\n\ - \x05\x04\t\x02\x02\x01\x12\x04\xfe\x03\x08\x14\n\r\n\x05\x04\t\x02\x02\ - \x03\x12\x04\xfe\x03\x17\x18\n\xf1\x03\n\x04\x04\t\x02\x03\x12\x04\x87\ - \x04\x02-\x1a\xe2\x03\x20(optional)\x20CommonMark-formatted\x20documenta\ - tion\x20for\x20this\x20specific\x20range.\x20If\n\x20empty,\x20the\x20`S\ - ymbol.documentation`\x20field\x20is\x20used\x20instead.\x20One\x20exampl\ - e\n\x20where\x20this\x20field\x20might\x20be\x20useful\x20is\x20when\x20\ - the\x20symbol\x20represents\x20a\x20generic\n\x20function\x20(with\x20ab\ - stract\x20type\x20parameters\x20such\x20as\x20`List`)\x20and\x20at\ - \x20this\n\x20occurrence\x20we\x20know\x20the\x20exact\x20values\x20(suc\ - h\x20as\x20`List`).\n\n\x20This\x20field\x20can\x20also\x20be\ - \x20used\x20for\x20dynamically\x20or\x20gradually\x20typed\x20languages,\ - \n\x20which\x20commonly\x20allow\x20for\x20type-changing\x20assignment.\ - \n\n\r\n\x05\x04\t\x02\x03\x04\x12\x04\x87\x04\x02\n\n\r\n\x05\x04\t\x02\ - \x03\x05\x12\x04\x87\x04\x0b\x11\n\r\n\x05\x04\t\x02\x03\x01\x12\x04\x87\ - \x04\x12(\n\r\n\x05\x04\t\x02\x03\x03\x12\x04\x87\x04+,\nX\n\x04\x04\t\ - \x02\x04\x12\x04\x89\x04\x02\x1d\x1aJ\x20(optional)\x20What\x20syntax\ - \x20highlighting\x20class\x20should\x20be\x20used\x20for\x20this\x20rang\ - e?\n\n\r\n\x05\x04\t\x02\x04\x06\x12\x04\x89\x04\x02\x0c\n\r\n\x05\x04\t\ - \x02\x04\x01\x12\x04\x89\x04\r\x18\n\r\n\x05\x04\t\x02\x04\x03\x12\x04\ - \x89\x04\x1b\x1c\nW\n\x04\x04\t\x02\x05\x12\x04\x8b\x04\x02&\x1aI\x20(op\ - tional)\x20Diagnostics\x20that\x20have\x20been\x20reported\x20for\x20thi\ - s\x20specific\x20range.\n\n\r\n\x05\x04\t\x02\x05\x04\x12\x04\x8b\x04\ - \x02\n\n\r\n\x05\x04\t\x02\x05\x06\x12\x04\x8b\x04\x0b\x15\n\r\n\x05\x04\ - \t\x02\x05\x01\x12\x04\x8b\x04\x16!\n\r\n\x05\x04\t\x02\x05\x03\x12\x04\ - \x8b\x04$%\n\x80\x0c\n\x04\x04\t\x02\x06\x12\x04\xb3\x04\x02%\x1a\xf1\ - \x0b\x20(optional)\x20Using\x20the\x20same\x20encoding\x20as\x20the\x20s\ - ibling\x20`range`\x20field,\x20source\n\x20position\x20of\x20the\x20near\ - est\x20non-trivial\x20enclosing\x20AST\x20node.\x20This\x20range\x20must\ - \n\x20enclose\x20the\x20`range`\x20field.\x20Example\x20applications\x20\ - that\x20make\x20use\x20of\x20the\n\x20enclosing_range\x20field:\n\n\x20-\ - \x20Call\x20hierarchies:\x20to\x20determine\x20what\x20symbols\x20are\ - \x20references\x20from\x20the\x20body\n\x20\x20\x20of\x20a\x20function\n\ - \x20-\x20Symbol\x20outline:\x20to\x20display\x20breadcrumbs\x20from\x20t\ - he\x20cursor\x20position\x20to\x20the\n\x20\x20\x20root\x20of\x20the\x20\ - file\n\x20-\x20Expand\x20selection:\x20to\x20select\x20the\x20nearest\ - \x20enclosing\x20AST\x20node.\n\x20-\x20Highlight\x20range:\x20to\x20ind\ - icate\x20the\x20AST\x20expression\x20that\x20is\x20associated\x20with\ - \x20a\n\x20\x20\x20hover\x20popover\n\n\x20For\x20definition\x20occurren\ - ces,\x20the\x20enclosing\x20range\x20should\x20indicate\x20the\n\x20star\ - t/end\x20bounds\x20of\x20the\x20entire\x20definition\x20AST\x20node,\x20\ - including\n\x20documentation.\n\x20```\n\x20const\x20n\x20=\x203\n\x20\ - \x20\x20\x20\x20\x20\x20^\x20range\n\x20^^^^^^^^^^^\x20enclosing_range\n\ - \n\x20/**\x20Parses\x20the\x20string\x20into\x20something\x20*/\n\x20^\ - \x20enclosing_range\x20start\x20--------------------------------------|\ - \n\x20function\x20parse(input\x20string):\x20string\x20{\x20\x20\x20\x20\ - \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ - \x20\x20|\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20^^^^^\x20range\x20\ - \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ - \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ - \x20\x20\x20\x20\x20|\n\x20\x20\x20\x20\x20return\x20input.slice(n)\x20\ - \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ + \x03\x03\x12\x04\xbd\x01\x0e\x0f\n\xf5\x05\n\x04\x04\x07\x04\0\x12\x06\ + \xcc\x01\x02\xac\x02\x03\x1a\xe4\x05\x20(optional)\x20Kind\x20represents\ + \x20the\x20fine-grained\x20category\x20of\x20a\x20symbol,\x20suitable\ + \x20for\x20presenting\n\x20information\x20about\x20the\x20symbol's\x20me\ + aning\x20in\x20the\x20language.\n\n\x20For\x20example:\n\x20-\x20A\x20Ja\ + va\x20method\x20would\x20have\x20the\x20kind\x20`Method`\x20while\x20a\ + \x20Go\x20function\x20would\n\x20\x20\x20have\x20the\x20kind\x20`Functio\ + n`,\x20even\x20if\x20the\x20symbols\x20for\x20these\x20use\x20the\x20sam\ + e\n\x20\x20\x20syntax\x20for\x20the\x20descriptor\x20`SymbolDescriptor.S\ + uffix.Method`.\n\x20-\x20A\x20Go\x20struct\x20has\x20the\x20symbol\x20ki\ + nd\x20`Struct`\x20while\x20a\x20Java\x20class\x20has\n\x20\x20\x20the\ + \x20symbol\x20kind\x20`Class`\x20even\x20if\x20they\x20both\x20have\x20t\ + he\x20same\x20descriptor:\n\x20\x20\x20`SymbolDescriptor.Suffix.Type`.\n\ + \n\x20Since\x20Kind\x20is\x20more\x20fine-grained\x20than\x20Suffix:\n\ + \x20-\x20If\x20two\x20symbols\x20have\x20the\x20same\x20Kind,\x20they\ + \x20should\x20share\x20the\x20same\x20Suffix.\n\x20-\x20If\x20two\x20sym\ + bols\x20have\x20different\x20Suffixes,\x20they\x20should\x20have\x20diff\ + erent\x20Kinds.\n\n\r\n\x05\x04\x07\x04\0\x01\x12\x04\xcc\x01\x07\x0b\n\ + \x0e\n\x06\x04\x07\x04\0\x02\0\x12\x04\xcd\x01\x06\x1a\n\x0f\n\x07\x04\ + \x07\x04\0\x02\0\x01\x12\x04\xcd\x01\x06\x15\n\x0f\n\x07\x04\x07\x04\0\ + \x02\0\x02\x12\x04\xcd\x01\x18\x19\n\x0e\n\x06\x04\x07\x04\0\x02\x01\x12\ + \x04\xce\x01\x06\x10\n\x0f\n\x07\x04\x07\x04\0\x02\x01\x01\x12\x04\xce\ + \x01\x06\x0b\n\x0f\n\x07\x04\x07\x04\0\x02\x01\x02\x12\x04\xce\x01\x0e\ + \x0f\n\x1b\n\x06\x04\x07\x04\0\x02\x02\x12\x04\xd0\x01\x06\x14\x1a\x0b\ + \x20For\x20Alloy\n\n\x0f\n\x07\x04\x07\x04\0\x02\x02\x01\x12\x04\xd0\x01\ + \x06\x0f\n\x0f\n\x07\x04\x07\x04\0\x02\x02\x02\x12\x04\xd0\x01\x12\x13\n\ + \x0e\n\x06\x04\x07\x04\0\x02\x03\x12\x04\xd1\x01\x06\x19\n\x0f\n\x07\x04\ + \x07\x04\0\x02\x03\x01\x12\x04\xd1\x01\x06\x14\n\x0f\n\x07\x04\x07\x04\0\ + \x02\x03\x02\x12\x04\xd1\x01\x17\x18\n\x19\n\x06\x04\x07\x04\0\x02\x04\ + \x12\x04\xd3\x01\x06\x14\x1a\t\x20For\x20C++\n\n\x0f\n\x07\x04\x07\x04\0\ + \x02\x04\x01\x12\x04\xd3\x01\x06\x0f\n\x0f\n\x07\x04\x07\x04\0\x02\x04\ + \x02\x12\x04\xd3\x01\x12\x13\n\x1a\n\x06\x04\x07\x04\0\x02\x05\x12\x04\ + \xd5\x01\x06\x10\x1a\n\x20For\x20Lean\n\n\x0f\n\x07\x04\x07\x04\0\x02\ + \x05\x01\x12\x04\xd5\x01\x06\x0b\n\x0f\n\x07\x04\x07\x04\0\x02\x05\x02\ + \x12\x04\xd5\x01\x0e\x0f\n\x0e\n\x06\x04\x07\x04\0\x02\x06\x12\x04\xd6\ + \x01\x06\x12\n\x0f\n\x07\x04\x07\x04\0\x02\x06\x01\x12\x04\xd6\x01\x06\r\ + \n\x0f\n\x07\x04\x07\x04\0\x02\x06\x02\x12\x04\xd6\x01\x10\x11\n\x0e\n\ + \x06\x04\x07\x04\0\x02\x07\x12\x04\xd7\x01\x06\x10\n\x0f\n\x07\x04\x07\ + \x04\0\x02\x07\x01\x12\x04\xd7\x01\x06\x0b\n\x0f\n\x07\x04\x07\x04\0\x02\ + \x07\x02\x12\x04\xd7\x01\x0e\x0f\n\x0e\n\x06\x04\x07\x04\0\x02\x08\x12\ + \x04\xd8\x01\x06\x13\n\x0f\n\x07\x04\x07\x04\0\x02\x08\x01\x12\x04\xd8\ + \x01\x06\x0e\n\x0f\n\x07\x04\x07\x04\0\x02\x08\x02\x12\x04\xd8\x01\x11\ + \x12\n\x0e\n\x06\x04\x07\x04\0\x02\t\x12\x04\xd9\x01\x06\x16\n\x0f\n\x07\ + \x04\x07\x04\0\x02\t\x01\x12\x04\xd9\x01\x06\x11\n\x0f\n\x07\x04\x07\x04\ + \0\x02\t\x02\x12\x04\xd9\x01\x14\x15\n\x1d\n\x06\x04\x07\x04\0\x02\n\x12\ + \x04\xdb\x01\x06\x16\x1a\r\x20For\x20Haskell\n\n\x0f\n\x07\x04\x07\x04\0\ + \x02\n\x01\x12\x04\xdb\x01\x06\x10\n\x0f\n\x07\x04\x07\x04\0\x02\n\x02\ + \x12\x04\xdb\x01\x13\x15\n\x0e\n\x06\x04\x07\x04\0\x02\x0b\x12\x04\xdc\ + \x01\x06\x10\n\x0f\n\x07\x04\x07\x04\0\x02\x0b\x01\x12\x04\xdc\x01\x06\n\ + \n\x0f\n\x07\x04\x07\x04\0\x02\x0b\x02\x12\x04\xdc\x01\r\x0f\n\x0e\n\x06\ + \x04\x07\x04\0\x02\x0c\x12\x04\xdd\x01\x06\x16\n\x0f\n\x07\x04\x07\x04\0\ + \x02\x0c\x01\x12\x04\xdd\x01\x06\x10\n\x0f\n\x07\x04\x07\x04\0\x02\x0c\ + \x02\x12\x04\xdd\x01\x13\x15\n\x0e\n\x06\x04\x07\x04\0\x02\r\x12\x04\xde\ + \x01\x06\x11\n\x0f\n\x07\x04\x07\x04\0\x02\r\x01\x12\x04\xde\x01\x06\x0b\ + \n\x0f\n\x07\x04\x07\x04\0\x02\r\x02\x12\x04\xde\x01\x0e\x10\n\x1b\n\x06\ + \x04\x07\x04\0\x02\x0e\x12\x04\xe0\x01\x06\x10\x1a\x0b\x20For\x20Alloy\n\ + \n\x0f\n\x07\x04\x07\x04\0\x02\x0e\x01\x12\x04\xe0\x01\x06\n\n\x0f\n\x07\ + \x04\x07\x04\0\x02\x0e\x02\x12\x04\xe0\x01\r\x0f\n\x0e\n\x06\x04\x07\x04\ + \0\x02\x0f\x12\x04\xe1\x01\x06\x11\n\x0f\n\x07\x04\x07\x04\0\x02\x0f\x01\ + \x12\x04\xe1\x01\x06\x0b\n\x0f\n\x07\x04\x07\x04\0\x02\x0f\x02\x12\x04\ + \xe1\x01\x0e\x10\n\x0e\n\x06\x04\x07\x04\0\x02\x10\x12\x04\xe2\x01\x06\ + \x10\n\x0f\n\x07\x04\x07\x04\0\x02\x10\x01\x12\x04\xe2\x01\x06\n\n\x0f\n\ + \x07\x04\x07\x04\0\x02\x10\x02\x12\x04\xe2\x01\r\x0f\n\x0e\n\x06\x04\x07\ + \x04\0\x02\x11\x12\x04\xe3\x01\x06\x14\n\x0f\n\x07\x04\x07\x04\0\x02\x11\ + \x01\x12\x04\xe3\x01\x06\x0e\n\x0f\n\x07\x04\x07\x04\0\x02\x11\x02\x12\ + \x04\xe3\x01\x11\x13\n$\n\x06\x04\x07\x04\0\x02\x12\x12\x04\xe5\x01\x06\ + \x12\x1a\x14\x20For\x20'get'\x20in\x20Swift\n\n\x0f\n\x07\x04\x07\x04\0\ + \x02\x12\x01\x12\x04\xe5\x01\x06\x0c\n\x0f\n\x07\x04\x07\x04\0\x02\x12\ + \x02\x12\x04\xe5\x01\x0f\x11\n\x1a\n\x06\x04\x07\x04\0\x02\x13\x12\x04\ + \xe7\x01\x06\x13\x1a\n\x20For\x20Raku\n\n\x0f\n\x07\x04\x07\x04\0\x02\ + \x13\x01\x12\x04\xe7\x01\x06\r\n\x0f\n\x07\x04\x07\x04\0\x02\x13\x02\x12\ + \x04\xe7\x01\x10\x12\n)\n\x06\x04\x07\x04\0\x02\x14\x12\x04\xe9\x01\x06\ + \x14\x1a\x19\x20For\x20Purescript\x20and\x20Lean\n\n\x0f\n\x07\x04\x07\ + \x04\0\x02\x14\x01\x12\x04\xe9\x01\x06\x0e\n\x0f\n\x07\x04\x07\x04\0\x02\ + \x14\x02\x12\x04\xe9\x01\x11\x13\n\x0e\n\x06\x04\x07\x04\0\x02\x15\x12\ + \x04\xea\x01\x06\x15\n\x0f\n\x07\x04\x07\x04\0\x02\x15\x01\x12\x04\xea\ + \x01\x06\x0f\n\x0f\n\x07\x04\x07\x04\0\x02\x15\x02\x12\x04\xea\x01\x12\ + \x14\n\x0e\n\x06\x04\x07\x04\0\x02\x16\x12\x04\xeb\x01\x06\x0f\n\x0f\n\ + \x07\x04\x07\x04\0\x02\x16\x01\x12\x04\xeb\x01\x06\t\n\x0f\n\x07\x04\x07\ + \x04\0\x02\x16\x02\x12\x04\xeb\x01\x0c\x0e\n\x1c\n\x06\x04\x07\x04\0\x02\ + \x17\x12\x04\xed\x01\x06\x10\x1a\x0c\x20For\x20Racket\n\n\x0f\n\x07\x04\ + \x07\x04\0\x02\x17\x01\x12\x04\xed\x01\x06\n\n\x0f\n\x07\x04\x07\x04\0\ + \x02\x17\x02\x12\x04\xed\x01\r\x0f\n\x1a\n\x06\x04\x07\x04\0\x02\x18\x12\ + \x04\xef\x01\x06\x11\x1a\n\x20For\x20Lean\n\n\x0f\n\x07\x04\x07\x04\0\ + \x02\x18\x01\x12\x04\xef\x01\x06\x0b\n\x0f\n\x07\x04\x07\x04\0\x02\x18\ + \x02\x12\x04\xef\x01\x0e\x10\n\x0e\n\x06\x04\x07\x04\0\x02\x19\x12\x04\ + \xf0\x01\x06\x11\n\x0f\n\x07\x04\x07\x04\0\x02\x19\x01\x12\x04\xf0\x01\ + \x06\x0b\n\x0f\n\x07\x04\x07\x04\0\x02\x19\x02\x12\x04\xf0\x01\x0e\x10\n\ + \x0e\n\x06\x04\x07\x04\0\x02\x1a\x12\x04\xf1\x01\x06\x12\n\x0f\n\x07\x04\ + \x07\x04\0\x02\x1a\x01\x12\x04\xf1\x01\x06\x0c\n\x0f\n\x07\x04\x07\x04\0\ + \x02\x1a\x02\x12\x04\xf1\x01\x0f\x11\n\x94\x01\n\x06\x04\x07\x04\0\x02\ + \x1b\x12\x04\xf4\x01\x06\x1a\x1a\x83\x01\x20Analogous\x20to\x20'ThisPara\ + meter'\x20and\x20'SelfParameter',\x20but\x20for\x20languages\n\x20like\ + \x20Go\x20where\x20the\x20receiver\x20doesn't\x20have\x20a\x20convention\ + al\x20name.\n\n\x0f\n\x07\x04\x07\x04\0\x02\x1b\x01\x12\x04\xf4\x01\x06\ + \x14\n\x0f\n\x07\x04\x07\x04\0\x02\x1b\x02\x12\x04\xf4\x01\x17\x19\n\x1e\ + \n\x06\x04\x07\x04\0\x02\x1c\x12\x04\xf6\x01\x06\x13\x1a\x0e\x20For\x20P\ + rotobuf\n\n\x0f\n\x07\x04\x07\x04\0\x02\x1c\x01\x12\x04\xf6\x01\x06\r\n\ + \x0f\n\x07\x04\x07\x04\0\x02\x1c\x02\x12\x04\xf6\x01\x10\x12\n\x0e\n\x06\ + \x04\x07\x04\0\x02\x1d\x12\x04\xf7\x01\x06\x12\n\x0f\n\x07\x04\x07\x04\0\ + \x02\x1d\x01\x12\x04\xf7\x01\x06\x0c\n\x0f\n\x07\x04\x07\x04\0\x02\x1d\ + \x02\x12\x04\xf7\x01\x0f\x11\n\x0e\n\x06\x04\x07\x04\0\x02\x1e\x12\x04\ + \xf8\x01\x06\x15\n\x0f\n\x07\x04\x07\x04\0\x02\x1e\x01\x12\x04\xf8\x01\ + \x06\x0f\n\x0f\n\x07\x04\x07\x04\0\x02\x1e\x02\x12\x04\xf8\x01\x12\x14\n\ + \x0e\n\x06\x04\x07\x04\0\x02\x1f\x12\x04\xf9\x01\x06\x10\n\x0f\n\x07\x04\ + \x07\x04\0\x02\x1f\x01\x12\x04\xf9\x01\x06\n\n\x0f\n\x07\x04\x07\x04\0\ + \x02\x1f\x02\x12\x04\xf9\x01\r\x0f\n\x0e\n\x06\x04\x07\x04\0\x02\x20\x12\ + \x04\xfa\x01\x06\x12\n\x0f\n\x07\x04\x07\x04\0\x02\x20\x01\x12\x04\xfa\ + \x01\x06\x0c\n\x0f\n\x07\x04\x07\x04\0\x02\x20\x02\x12\x04\xfa\x01\x0f\ + \x11\n\x0e\n\x06\x04\x07\x04\0\x02!\x12\x04\xfb\x01\x06\x12\n\x0f\n\x07\ + \x04\x07\x04\0\x02!\x01\x12\x04\xfb\x01\x06\x0c\n\x0f\n\x07\x04\x07\x04\ + \0\x02!\x02\x12\x04\xfb\x01\x0f\x11\n\x0e\n\x06\x04\x07\x04\0\x02\"\x12\ + \x04\xfc\x01\x06\x14\n\x0f\n\x07\x04\x07\x04\0\x02\"\x01\x12\x04\xfc\x01\ + \x06\x0e\n\x0f\n\x07\x04\x07\x04\0\x02\"\x02\x12\x04\xfc\x01\x11\x13\n\ + \x0e\n\x06\x04\x07\x04\0\x02#\x12\x04\xfd\x01\x06\x13\n\x0f\n\x07\x04\ + \x07\x04\0\x02#\x01\x12\x04\xfd\x01\x06\r\n\x0f\n\x07\x04\x07\x04\0\x02#\ + \x02\x12\x04\xfd\x01\x10\x12\n\x0e\n\x06\x04\x07\x04\0\x02$\x12\x04\xfe\ + \x01\x06\x19\n\x0f\n\x07\x04\x07\x04\0\x02$\x01\x12\x04\xfe\x01\x06\x13\ + \n\x0f\n\x07\x04\x07\x04\0\x02$\x02\x12\x04\xfe\x01\x16\x18\n\x0e\n\x06\ + \x04\x07\x04\0\x02%\x12\x04\xff\x01\x06\x15\n\x0f\n\x07\x04\x07\x04\0\ + \x02%\x01\x12\x04\xff\x01\x06\x0f\n\x0f\n\x07\x04\x07\x04\0\x02%\x02\x12\ + \x04\xff\x01\x12\x14\n\x0e\n\x06\x04\x07\x04\0\x02&\x12\x04\x80\x02\x06\ + \x1a\n\x0f\n\x07\x04\x07\x04\0\x02&\x01\x12\x04\x80\x02\x06\x14\n\x0f\n\ + \x07\x04\x07\x04\0\x02&\x02\x12\x04\x80\x02\x17\x19\n/\n\x06\x04\x07\x04\ + \0\x02'\x12\x04\x82\x02\x06\x13\x1a\x1f\x20For\x20Haskell's\x20PatternSy\ + nonyms\n\n\x0f\n\x07\x04\x07\x04\0\x02'\x01\x12\x04\x82\x02\x06\r\n\x0f\ + \n\x07\x04\x07\x04\0\x02'\x02\x12\x04\x82\x02\x10\x12\n\x1b\n\x06\x04\ + \x07\x04\0\x02(\x12\x04\x84\x02\x06\x15\x1a\x0b\x20For\x20Alloy\n\n\x0f\ + \n\x07\x04\x07\x04\0\x02(\x01\x12\x04\x84\x02\x06\x0f\n\x0f\n\x07\x04\ + \x07\x04\0\x02(\x02\x12\x04\x84\x02\x12\x14\n\x0e\n\x06\x04\x07\x04\0\ + \x02)\x12\x04\x85\x02\x06\x14\n\x0f\n\x07\x04\x07\x04\0\x02)\x01\x12\x04\ + \x85\x02\x06\x0e\n\x0f\n\x07\x04\x07\x04\0\x02)\x02\x12\x04\x85\x02\x11\ + \x13\nQ\n\x06\x04\x07\x04\0\x02*\x12\x04\x87\x02\x06\x14\x1aA\x20Analogo\ + us\x20to\x20'Trait'\x20and\x20'TypeClass',\x20for\x20Swift\x20and\x20Obj\ + ective-C\n\n\x0f\n\x07\x04\x07\x04\0\x02*\x01\x12\x04\x87\x02\x06\x0e\n\ + \x0f\n\x07\x04\x07\x04\0\x02*\x02\x12\x04\x87\x02\x11\x13\n\x1d\n\x06\ + \x04\x07\x04\0\x02+\x12\x04\x89\x02\x06\x17\x1a\r\x20For\x20Haskell\n\n\ + \x0f\n\x07\x04\x07\x04\0\x02+\x01\x12\x04\x89\x02\x06\x11\n\x0f\n\x07\ + \x04\x07\x04\0\x02+\x02\x12\x04\x89\x02\x14\x16\n4\n\x06\x04\x07\x04\0\ + \x02,\x12\x04\x8b\x02\x06\x19\x1a$\x20'self'\x20in\x20Python,\x20Rust,\ + \x20Swift\x20etc.\n\n\x0f\n\x07\x04\x07\x04\0\x02,\x01\x12\x04\x8b\x02\ + \x06\x13\n\x0f\n\x07\x04\x07\x04\0\x02,\x02\x12\x04\x8b\x02\x16\x18\n$\n\ + \x06\x04\x07\x04\0\x02-\x12\x04\x8d\x02\x06\x12\x1a\x14\x20For\x20'set'\ + \x20in\x20Swift\n\n\x0f\n\x07\x04\x07\x04\0\x02-\x01\x12\x04\x8d\x02\x06\ + \x0c\n\x0f\n\x07\x04\x07\x04\0\x02-\x02\x12\x04\x8d\x02\x0f\x11\n3\n\x06\ + \x04\x07\x04\0\x02.\x12\x04\x8f\x02\x06\x15\x1a#\x20For\x20Alloy,\x20ana\ + logous\x20to\x20'Struct'.\n\n\x0f\n\x07\x04\x07\x04\0\x02.\x01\x12\x04\ + \x8f\x02\x06\x0f\n\x0f\n\x07\x04\x07\x04\0\x02.\x02\x12\x04\x8f\x02\x12\ + \x14\n\x1b\n\x06\x04\x07\x04\0\x02/\x12\x04\x91\x02\x06\x15\x1a\x0b\x20F\ + or\x20Swift\n\n\x0f\n\x07\x04\x07\x04\0\x02/\x01\x12\x04\x91\x02\x06\x0f\ + \n\x0f\n\x07\x04\x07\x04\0\x02/\x02\x12\x04\x91\x02\x12\x14\n\x0e\n\x06\ + \x04\x07\x04\0\x020\x12\x04\x92\x02\x06\x12\n\x0f\n\x07\x04\x07\x04\0\ + \x020\x01\x12\x04\x92\x02\x06\x0c\n\x0f\n\x07\x04\x07\x04\0\x020\x02\x12\ + \x04\x92\x02\x0f\x11\n\x0e\n\x06\x04\x07\x04\0\x021\x12\x04\x93\x02\x06\ + \x12\n\x0f\n\x07\x04\x07\x04\0\x021\x01\x12\x04\x93\x02\x06\x0c\n\x0f\n\ + \x07\x04\x07\x04\0\x021\x02\x12\x04\x93\x02\x0f\x11\n\x1a\n\x06\x04\x07\ + \x04\0\x022\x12\x04\x95\x02\x06\x12\x1a\n\x20For\x20Lean\n\n\x0f\n\x07\ + \x04\x07\x04\0\x022\x01\x12\x04\x95\x02\x06\x0c\n\x0f\n\x07\x04\x07\x04\ + \0\x022\x02\x12\x04\x95\x02\x0f\x11\n\x1a\n\x06\x04\x07\x04\0\x023\x12\ + \x04\x97\x02\x06\x13\x1a\n\x20For\x20Lean\n\n\x0f\n\x07\x04\x07\x04\0\ + \x023\x01\x12\x04\x97\x02\x06\r\n\x0f\n\x07\x04\x07\x04\0\x023\x02\x12\ + \x04\x97\x02\x10\x12\nU\n\x06\x04\x07\x04\0\x024\x12\x04\x9a\x02\x06\x19\ + \x1aE\x20Method\x20receiver\x20for\x20languages\n\x20'this'\x20in\x20Jav\ + aScript,\x20C++,\x20Java\x20etc.\n\n\x0f\n\x07\x04\x07\x04\0\x024\x01\ + \x12\x04\x9a\x02\x06\x13\n\x0f\n\x07\x04\x07\x04\0\x024\x02\x12\x04\x9a\ + \x02\x16\x18\nD\n\x06\x04\x07\x04\0\x025\x12\x04\x9c\x02\x06\x11\x1a4\ + \x20Analogous\x20to\x20'Protocol'\x20and\x20'TypeClass',\x20for\x20Rust.\ + \n\n\x0f\n\x07\x04\x07\x04\0\x025\x01\x12\x04\x9c\x02\x06\x0b\n\x0f\n\ + \x07\x04\x07\x04\0\x025\x02\x12\x04\x9c\x02\x0e\x10\n\x89\x01\n\x06\x04\ + \x07\x04\0\x026\x12\x04\x9f\x02\x06\x10\x1ay\x20Data\x20type\x20definiti\ + on\x20for\x20languages\x20like\x20OCaml\x20which\x20use\x20`type`\n\x20r\ + ather\x20than\x20separate\x20keywords\x20like\x20`struct`\x20and\x20`enu\ + m`.\n\n\x0f\n\x07\x04\x07\x04\0\x026\x01\x12\x04\x9f\x02\x06\n\n\x0f\n\ + \x07\x04\x07\x04\0\x026\x02\x12\x04\x9f\x02\r\x0f\n\x0e\n\x06\x04\x07\ + \x04\0\x027\x12\x04\xa0\x02\x06\x15\n\x0f\n\x07\x04\x07\x04\0\x027\x01\ + \x12\x04\xa0\x02\x06\x0f\n\x0f\n\x07\x04\x07\x04\0\x027\x02\x12\x04\xa0\ + \x02\x12\x14\nS\n\x06\x04\x07\x04\0\x028\x12\x04\xa2\x02\x06\x15\x1aC\ + \x20Analogous\x20to\x20'Trait'\x20and\x20'Protocol',\x20for\x20Haskell,\ + \x20Purescript\x20etc.\n\n\x0f\n\x07\x04\x07\x04\0\x028\x01\x12\x04\xa2\ + \x02\x06\x0f\n\x0f\n\x07\x04\x07\x04\0\x028\x02\x12\x04\xa2\x02\x12\x14\ + \n\x1d\n\x06\x04\x07\x04\0\x029\x12\x04\xa4\x02\x06\x16\x1a\r\x20For\x20\ + Haskell\n\n\x0f\n\x07\x04\x07\x04\0\x029\x01\x12\x04\xa4\x02\x06\x10\n\ + \x0f\n\x07\x04\x07\x04\0\x029\x02\x12\x04\xa4\x02\x13\x15\n\x0e\n\x06\ + \x04\x07\x04\0\x02:\x12\x04\xa5\x02\x06\x19\n\x0f\n\x07\x04\x07\x04\0\ + \x02:\x01\x12\x04\xa5\x02\x06\x13\n\x0f\n\x07\x04\x07\x04\0\x02:\x02\x12\ + \x04\xa5\x02\x16\x18\n(\n\x06\x04\x07\x04\0\x02;\x12\x04\xa7\x02\x06\x11\ + \x1a\x18\x20For\x20C,\x20C++,\x20Capn\x20Proto\n\n\x0f\n\x07\x04\x07\x04\ + \0\x02;\x01\x12\x04\xa7\x02\x06\x0b\n\x0f\n\x07\x04\x07\x04\0\x02;\x02\ + \x12\x04\xa7\x02\x0e\x10\n\x0e\n\x06\x04\x07\x04\0\x02<\x12\x04\xa8\x02\ + \x06\x11\n\x0f\n\x07\x04\x07\x04\0\x02<\x01\x12\x04\xa8\x02\x06\x0b\n\ + \x0f\n\x07\x04\x07\x04\0\x02<\x02\x12\x04\xa8\x02\x0e\x10\n[\n\x06\x04\ + \x07\x04\0\x02=\x12\x04\xa9\x02\x06\x14\"K\x20Next\x20=\x2062;\n\x20Feel\ + \x20free\x20to\x20open\x20a\x20PR\x20proposing\x20new\x20language-specif\ + ic\x20kinds.\n\n\x0f\n\x07\x04\x07\x04\0\x02=\x01\x12\x04\xa9\x02\x06\ + \x0e\n\x0f\n\x07\x04\x07\x04\0\x02=\x02\x12\x04\xa9\x02\x11\x13\n\x8c\ + \x03\n\x04\x04\x07\x02\x04\x12\x04\xb4\x02\x02\x1a\x1a\xfd\x02\x20(optio\ + nal)\x20The\x20name\x20of\x20this\x20symbol\x20as\x20it\x20should\x20be\ + \x20displayed\x20to\x20the\x20user.\x20The\x20`symbol`\x20field\n\x20is\ + \x20not\x20a\x20reliable\x20source\x20of\x20the\x20display\x20name\x20fo\ + r\x20several\x20reasons:\n\n\x20-\x20Local\x20symbols\x20don't\x20encode\ + \x20the\x20name.\n\x20-\x20Some\x20languages\x20have\x20case-insensitive\ + \x20names,\x20so\x20the\x20symbol\x20is\x20all-lowercase.\n\x20-\x20The\ + \x20symbol\x20may\x20encode\x20names\x20with\x20special\x20characters\ + \x20that\x20should\x20not\x20be\n\x20\x20\x20displayed\x20to\x20the\x20u\ + ser.\n\n\r\n\x05\x04\x07\x02\x04\x05\x12\x04\xb4\x02\x02\x08\n\r\n\x05\ + \x04\x07\x02\x04\x01\x12\x04\xb4\x02\t\x15\n\r\n\x05\x04\x07\x02\x04\x03\ + \x12\x04\xb4\x02\x18\x19\n\x0c\n\x02\x04\x08\x12\x06\xb8\x02\0\xf0\x02\ + \x01\n\x0b\n\x03\x04\x08\x01\x12\x04\xb8\x02\x08\x14\n\x0c\n\x04\x04\x08\ + \x02\0\x12\x04\xb9\x02\x02\x14\n\r\n\x05\x04\x08\x02\0\x05\x12\x04\xb9\ + \x02\x02\x08\n\r\n\x05\x04\x08\x02\0\x01\x12\x04\xb9\x02\t\x0f\n\r\n\x05\ + \x04\x08\x02\0\x03\x12\x04\xb9\x02\x12\x13\n\xde\x08\n\x04\x04\x08\x02\ + \x01\x12\x04\xd2\x02\x02\x18\x1a\xcf\x08\x20When\x20resolving\x20\"Find\ + \x20references\",\x20this\x20field\x20documents\x20what\x20other\x20symb\ + ols\n\x20should\x20be\x20included\x20together\x20with\x20this\x20symbol.\ + \x20For\x20example,\x20consider\x20the\n\x20following\x20TypeScript\x20c\ + ode\x20that\x20defines\x20two\x20symbols\x20`Animal#sound()`\x20and\n\ + \x20`Dog#sound()`:\n\x20```ts\n\x20interface\x20Animal\x20{\n\x20\x20\ + \x20\x20\x20\x20\x20\x20\x20\x20\x20^^^^^^\x20definition\x20Animal#\n\ + \x20\x20\x20sound():\x20string\n\x20\x20\x20^^^^^\x20definition\x20Anima\ + l#sound()\n\x20}\n\x20class\x20Dog\x20implements\x20Animal\x20{\n\x20\ + \x20\x20\x20\x20\x20\x20^^^\x20definition\x20Dog#,\x20relationships\x20=\ + \x20[{symbol:\x20\"Animal#\",\x20is_implementation:\x20true}]\n\x20\x20\ + \x20public\x20sound():\x20string\x20{\x20return\x20\"woof\"\x20}\n\x20\ + \x20\x20\x20\x20\x20\x20\x20\x20\x20^^^^^\x20definition\x20Dog#sound(),\ + \x20references_symbols\x20=\x20Animal#sound(),\x20relationships\x20=\x20\ + [{symbol:\x20\"Animal#sound()\",\x20is_implementation:true,\x20is_refere\ + nce:\x20true}]\n\x20}\n\x20const\x20animal:\x20Animal\x20=\x20new\x20Dog\ + ()\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20^^^^^^\ + \x20reference\x20Animal#\n\x20console.log(animal.sound())\n\x20\x20\x20\ + \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20^^^^\ + ^\x20reference\x20Animal#sound()\n\x20```\n\x20Doing\x20\"Find\x20refere\ + nces\"\x20on\x20the\x20symbol\x20`Animal#sound()`\x20should\x20return\n\ + \x20references\x20to\x20the\x20`Dog#sound()`\x20method\x20as\x20well.\ + \x20Vice-versa,\x20doing\x20\"Find\n\x20references\"\x20on\x20the\x20`Do\ + g#sound()`\x20method\x20should\x20include\x20references\x20to\x20the\n\ + \x20`Animal#sound()`\x20method\x20as\x20well.\n\n\r\n\x05\x04\x08\x02\ + \x01\x05\x12\x04\xd2\x02\x02\x06\n\r\n\x05\x04\x08\x02\x01\x01\x12\x04\ + \xd2\x02\x07\x13\n\r\n\x05\x04\x08\x02\x01\x03\x12\x04\xd2\x02\x16\x17\n\ + \xee\x03\n\x04\x04\x08\x02\x02\x12\x04\xdb\x02\x02\x1d\x1a\xdf\x03\x20Si\ + milar\x20to\x20`is_reference`\x20but\x20for\x20\"Find\x20implementations\ + \".\n\x20It's\x20common\x20for\x20`is_implementation`\x20and\x20`is_refe\ + rence`\x20to\x20both\x20be\x20true\x20but\n\x20it's\x20not\x20always\x20\ + the\x20case.\n\x20In\x20the\x20TypeScript\x20example\x20above,\x20observ\ + e\x20that\x20`Dog#`\x20has\x20an\n\x20`is_implementation`\x20relationshi\ + p\x20with\x20`\"Animal#\"`\x20but\x20not\x20`is_reference`.\n\x20This\ + \x20is\x20because\x20\"Find\x20references\"\x20on\x20the\x20\"Animal#\"\ + \x20symbol\x20should\x20not\x20return\n\x20\"Dog#\".\x20We\x20only\x20wa\ + nt\x20\"Dog#\"\x20to\x20return\x20as\x20a\x20result\x20for\x20\"Find\n\ + \x20implementations\"\x20on\x20the\x20\"Animal#\"\x20symbol.\n\n\r\n\x05\ + \x04\x08\x02\x02\x05\x12\x04\xdb\x02\x02\x06\n\r\n\x05\x04\x08\x02\x02\ + \x01\x12\x04\xdb\x02\x07\x18\n\r\n\x05\x04\x08\x02\x02\x03\x12\x04\xdb\ + \x02\x1b\x1c\nP\n\x04\x04\x08\x02\x03\x12\x04\xdd\x02\x02\x1e\x1aB\x20Si\ + milar\x20to\x20`references_symbols`\x20but\x20for\x20\"Go\x20to\x20type\ + \x20definition\".\n\n\r\n\x05\x04\x08\x02\x03\x05\x12\x04\xdd\x02\x02\ + \x06\n\r\n\x05\x04\x08\x02\x03\x01\x12\x04\xdd\x02\x07\x19\n\r\n\x05\x04\ + \x08\x02\x03\x03\x12\x04\xdd\x02\x1c\x1d\n\xa7\x07\n\x04\x04\x08\x02\x04\ + \x12\x04\xee\x02\x02\x19\x1a\xd5\x06\x20Allows\x20overriding\x20the\x20b\ + ehavior\x20of\x20\"Go\x20to\x20definition\"\x20and\x20\"Find\x20referenc\ + es\"\n\x20for\x20symbols\x20which\x20do\x20not\x20have\x20a\x20definitio\ + n\x20of\x20their\x20own\x20or\x20could\n\x20potentially\x20have\x20multi\ + ple\x20definitions.\n\n\x20For\x20example,\x20in\x20a\x20language\x20wit\ + h\x20single\x20inheritance\x20and\x20no\x20field\x20overriding,\n\x20inh\ + erited\x20fields\x20can\x20reuse\x20the\x20same\x20symbol\x20as\x20the\ + \x20ancestor\x20which\x20declares\n\x20the\x20field.\x20In\x20such\x20a\ + \x20situation,\x20is_definition\x20is\x20not\x20needed.\n\n\x20On\x20the\ + \x20other\x20hand,\x20in\x20languages\x20with\x20single\x20inheritance\ + \x20and\x20some\x20form\n\x20of\x20mixins,\x20you\x20can\x20use\x20is_de\ + finition\x20to\x20relate\x20the\x20symbol\x20to\x20the\n\x20matching\x20\ + symbol\x20in\x20ancestor\x20classes,\x20and\x20is_reference\x20to\x20rel\ + ate\x20the\n\x20symbol\x20to\x20the\x20matching\x20symbol\x20in\x20mixin\ + s.\n\n\x20NOTE:\x20At\x20the\x20moment,\x20due\x20to\x20limitations\x20o\ + f\x20the\x20SCIP\x20to\x20LSIF\x20conversion,\n\x20only\x20global\x20sym\ + bols\x20in\x20an\x20index\x20are\x20allowed\x20to\x20use\x20is_definitio\ + n.\n\x20The\x20relationship\x20may\x20not\x20get\x20recorded\x20if\x20ei\ + ther\x20symbol\x20is\x20local.\n\"A\x20Update\x20registerInverseRelation\ + ships\x20on\x20adding\x20a\x20new\x20field\x20here.\n\n\r\n\x05\x04\x08\ + \x02\x04\x05\x12\x04\xee\x02\x02\x06\n\r\n\x05\x04\x08\x02\x04\x01\x12\ + \x04\xee\x02\x07\x14\n\r\n\x05\x04\x08\x02\x04\x03\x12\x04\xee\x02\x17\ + \x18\n\x88\x03\n\x02\x05\x02\x12\x06\xf7\x02\0\x87\x03\x01\x1a\xf9\x02\ + \x20SymbolRole\x20declares\x20what\x20\"role\"\x20a\x20symbol\x20has\x20\ + in\x20an\x20occurrence.\x20A\x20role\x20is\n\x20encoded\x20as\x20a\x20bi\ + tset\x20where\x20each\x20bit\x20represents\x20a\x20different\x20role.\ + \x20For\x20example,\n\x20to\x20determine\x20if\x20the\x20`Import`\x20rol\ + e\x20is\x20set,\x20test\x20whether\x20the\x20second\x20bit\x20of\x20the\ + \n\x20enum\x20value\x20is\x20defined.\x20In\x20pseudocode,\x20this\x20ca\ + n\x20be\x20implemented\x20with\x20the\n\x20logic:\x20`const\x20isImportR\ + ole\x20=\x20(role.value\x20&\x20SymbolRole.Import.value)\x20>\x200`.\n\n\ + \x0b\n\x03\x05\x02\x01\x12\x04\xf7\x02\x05\x0f\nv\n\x04\x05\x02\x02\0\ + \x12\x04\xfa\x02\x02\x1c\x1ah\x20This\x20case\x20is\x20not\x20meant\x20t\ + o\x20be\x20used;\x20it\x20only\x20exists\x20to\x20avoid\x20an\x20error\n\ + \x20from\x20the\x20Protobuf\x20code\x20generator.\n\n\r\n\x05\x05\x02\ + \x02\0\x01\x12\x04\xfa\x02\x02\x17\n\r\n\x05\x05\x02\x02\0\x02\x12\x04\ + \xfa\x02\x1a\x1b\nT\n\x04\x05\x02\x02\x01\x12\x04\xfc\x02\x02\x13\x1aF\ + \x20Is\x20the\x20symbol\x20defined\x20here?\x20If\x20not,\x20then\x20thi\ + s\x20is\x20a\x20symbol\x20reference.\n\n\r\n\x05\x05\x02\x02\x01\x01\x12\ + \x04\xfc\x02\x02\x0c\n\r\n\x05\x05\x02\x02\x01\x02\x12\x04\xfc\x02\x0f\ + \x12\n,\n\x04\x05\x02\x02\x02\x12\x04\xfe\x02\x02\x0f\x1a\x1e\x20Is\x20t\ + he\x20symbol\x20imported\x20here?\n\n\r\n\x05\x05\x02\x02\x02\x01\x12\ + \x04\xfe\x02\x02\x08\n\r\n\x05\x05\x02\x02\x02\x02\x12\x04\xfe\x02\x0b\ + \x0e\n+\n\x04\x05\x02\x02\x03\x12\x04\x80\x03\x02\x14\x1a\x1d\x20Is\x20t\ + he\x20symbol\x20written\x20here?\n\n\r\n\x05\x05\x02\x02\x03\x01\x12\x04\ + \x80\x03\x02\r\n\r\n\x05\x05\x02\x02\x03\x02\x12\x04\x80\x03\x10\x13\n(\ + \n\x04\x05\x02\x02\x04\x12\x04\x82\x03\x02\x13\x1a\x1a\x20Is\x20the\x20s\ + ymbol\x20read\x20here?\n\n\r\n\x05\x05\x02\x02\x04\x01\x12\x04\x82\x03\ + \x02\x0c\n\r\n\x05\x05\x02\x02\x04\x02\x12\x04\x82\x03\x0f\x12\n0\n\x04\ + \x05\x02\x02\x05\x12\x04\x84\x03\x02\x13\x1a\"\x20Is\x20the\x20symbol\ + \x20in\x20generated\x20code?\n\n\r\n\x05\x05\x02\x02\x05\x01\x12\x04\x84\ + \x03\x02\x0b\n\r\n\x05\x05\x02\x02\x05\x02\x12\x04\x84\x03\x0e\x12\n+\n\ + \x04\x05\x02\x02\x06\x12\x04\x86\x03\x02\x0e\x1a\x1d\x20Is\x20the\x20sym\ + bol\x20in\x20test\x20code?\n\n\r\n\x05\x05\x02\x02\x06\x01\x12\x04\x86\ + \x03\x02\x06\n\r\n\x05\x05\x02\x02\x06\x02\x12\x04\x86\x03\t\r\n\x0c\n\ + \x02\x05\x03\x12\x06\x89\x03\0\xe6\x03\x01\n\x0b\n\x03\x05\x03\x01\x12\ + \x04\x89\x03\x05\x0f\n\x0b\n\x03\x05\x03\x03\x12\x04\x8a\x03\x02\x1c\n\ + \x0c\n\x04\x05\x03\x03\x02\x12\x04\x8a\x03\x02\x1c\n\x0c\n\x04\x05\x03\ + \x02\0\x12\x04\x8c\x03\x02\x1c\n\r\n\x05\x05\x03\x02\0\x01\x12\x04\x8c\ + \x03\x02\x17\n\r\n\x05\x05\x03\x02\0\x02\x12\x04\x8c\x03\x1a\x1b\n;\n\ + \x04\x05\x03\x02\x01\x12\x04\x8f\x03\x02\x0e\x1a-\x20Comment,\x20includi\ + ng\x20comment\x20markers\x20and\x20text\n\n\r\n\x05\x05\x03\x02\x01\x01\ + \x12\x04\x8f\x03\x02\t\n\r\n\x05\x05\x03\x02\x01\x02\x12\x04\x8f\x03\x0c\ + \r\n\x1b\n\x04\x05\x03\x02\x02\x12\x04\x92\x03\x02\x1b\x1a\r\x20`;`\x20`\ + .`\x20`,`\n\n\r\n\x05\x05\x03\x02\x02\x01\x12\x04\x92\x03\x02\x16\n\r\n\ + \x05\x05\x03\x02\x02\x02\x12\x04\x92\x03\x19\x1a\n2\n\x04\x05\x03\x02\ + \x03\x12\x04\x94\x03\x02\x19\x1a$\x20(),\x20{},\x20[]\x20when\x20used\ + \x20syntactically\n\n\r\n\x05\x05\x03\x02\x03\x01\x12\x04\x94\x03\x02\ + \x14\n\r\n\x05\x05\x03\x02\x03\x02\x12\x04\x94\x03\x17\x18\n5\n\x04\x05\ + \x03\x02\x04\x12\x04\x97\x03\x02\x0e\x1a'\x20`if`,\x20`else`,\x20`return\ + `,\x20`class`,\x20etc.\n\n\r\n\x05\x05\x03\x02\x04\x01\x12\x04\x97\x03\ + \x02\t\n\r\n\x05\x05\x03\x02\x04\x02\x12\x04\x97\x03\x0c\r\n\x0c\n\x04\ + \x05\x03\x02\x05\x12\x04\x98\x03\x02*\n\r\n\x05\x05\x03\x02\x05\x01\x12\ + \x04\x98\x03\x02\x13\n\r\n\x05\x05\x03\x02\x05\x02\x12\x04\x98\x03\x16\ + \x17\n\r\n\x05\x05\x03\x02\x05\x03\x12\x04\x98\x03\x18)\n\x0e\n\x06\x05\ + \x03\x02\x05\x03\x01\x12\x04\x98\x03\x19(\n\x1e\n\x04\x05\x03\x02\x06\ + \x12\x04\x9b\x03\x02\x19\x1a\x10\x20`+`,\x20`*`,\x20etc.\n\n\r\n\x05\x05\ + \x03\x02\x06\x01\x12\x04\x9b\x03\x02\x14\n\r\n\x05\x05\x03\x02\x06\x02\ + \x12\x04\x9b\x03\x17\x18\nX\n\x04\x05\x03\x02\x07\x12\x04\x9e\x03\x02\ + \x11\x1aJ\x20non-specific\x20catch-all\x20for\x20any\x20identifier\x20no\ + t\x20better\x20described\x20elsewhere\n\n\r\n\x05\x05\x03\x02\x07\x01\ + \x12\x04\x9e\x03\x02\x0c\n\r\n\x05\x05\x03\x02\x07\x02\x12\x04\x9e\x03\ + \x0f\x10\nN\n\x04\x05\x03\x02\x08\x12\x04\xa0\x03\x02\x18\x1a@\x20Identi\ + fiers\x20builtin\x20to\x20the\x20language:\x20`min`,\x20`print`\x20in\ + \x20Python.\n\n\r\n\x05\x05\x03\x02\x08\x01\x12\x04\xa0\x03\x02\x13\n\r\ + \n\x05\x05\x03\x02\x08\x02\x12\x04\xa0\x03\x16\x17\n[\n\x04\x05\x03\x02\ + \t\x12\x04\xa2\x03\x02\x15\x1aM\x20Identifiers\x20representing\x20`null`\ + -like\x20values:\x20`None`\x20in\x20Python,\x20`nil`\x20in\x20Go.\n\n\r\ + \n\x05\x05\x03\x02\t\x01\x12\x04\xa2\x03\x02\x10\n\r\n\x05\x05\x03\x02\t\ + \x02\x12\x04\xa2\x03\x13\x14\n.\n\x04\x05\x03\x02\n\x12\x04\xa4\x03\x02\ + \x19\x1a\x20\x20`xyz`\x20in\x20`const\x20xyz\x20=\x20\"hello\"`\n\n\r\n\ + \x05\x05\x03\x02\n\x01\x12\x04\xa4\x03\x02\x14\n\r\n\x05\x05\x03\x02\n\ + \x02\x12\x04\xa4\x03\x17\x18\n'\n\x04\x05\x03\x02\x0b\x12\x04\xa6\x03\ + \x02\x1f\x1a\x19\x20`var\x20X\x20=\x20\"hello\"`\x20in\x20Go\n\n\r\n\x05\ + \x05\x03\x02\x0b\x01\x12\x04\xa6\x03\x02\x19\n\r\n\x05\x05\x03\x02\x0b\ + \x02\x12\x04\xa6\x03\x1c\x1e\n3\n\x04\x05\x03\x02\x0c\x12\x04\xa8\x03\ + \x02\x1b\x1a%\x20Parameter\x20definition\x20and\x20references\n\n\r\n\ + \x05\x05\x03\x02\x0c\x01\x12\x04\xa8\x03\x02\x15\n\r\n\x05\x05\x03\x02\ + \x0c\x02\x12\x04\xa8\x03\x18\x1a\nX\n\x04\x05\x03\x02\r\x12\x04\xaa\x03\ + \x02\x17\x1aJ\x20Identifiers\x20for\x20variable\x20definitions\x20and\ + \x20references\x20within\x20a\x20local\x20scope\n\n\r\n\x05\x05\x03\x02\ + \r\x01\x12\x04\xaa\x03\x02\x11\n\r\n\x05\x05\x03\x02\r\x02\x12\x04\xaa\ + \x03\x14\x16\nK\n\x04\x05\x03\x02\x0e\x12\x04\xac\x03\x02\x1a\x1a=\x20Id\ + entifiers\x20that\x20shadow\x20other\x20identifiers\x20in\x20an\x20outer\ + \x20scope\n\n\r\n\x05\x05\x03\x02\x0e\x01\x12\x04\xac\x03\x02\x14\n\r\n\ + \x05\x05\x03\x02\x0e\x02\x12\x04\xac\x03\x17\x19\n\xcd\x01\n\x04\x05\x03\ + \x02\x0f\x12\x04\xb1\x03\x02\x1b\x1a\xbe\x01\x20Identifier\x20representi\ + ng\x20a\x20unit\x20of\x20code\x20abstraction\x20and/or\x20namespacing.\n\ + \n\x20NOTE:\x20This\x20corresponds\x20to\x20a\x20package\x20in\x20Go\x20\ + and\x20JVM\x20languages,\n\x20and\x20a\x20module\x20in\x20languages\x20l\ + ike\x20Python\x20and\x20JavaScript.\n\n\r\n\x05\x05\x03\x02\x0f\x01\x12\ + \x04\xb1\x03\x02\x15\n\r\n\x05\x05\x03\x02\x0f\x02\x12\x04\xb1\x03\x18\ + \x1a\n\x0c\n\x04\x05\x03\x02\x10\x12\x04\xb2\x03\x02*\n\r\n\x05\x05\x03\ + \x02\x10\x01\x12\x04\xb2\x03\x02\x12\n\r\n\x05\x05\x03\x02\x10\x02\x12\ + \x04\xb2\x03\x15\x17\n\r\n\x05\x05\x03\x02\x10\x03\x12\x04\xb2\x03\x18)\ + \n\x0e\n\x06\x05\x03\x02\x10\x03\x01\x12\x04\xb2\x03\x19(\n4\n\x04\x05\ + \x03\x02\x11\x12\x04\xb5\x03\x02\x1a\x1a&\x20Function\x20references,\x20\ + including\x20calls\n\n\r\n\x05\x05\x03\x02\x11\x01\x12\x04\xb5\x03\x02\ + \x14\n\r\n\x05\x05\x03\x02\x11\x02\x12\x04\xb5\x03\x17\x19\n(\n\x04\x05\ + \x03\x02\x12\x12\x04\xb7\x03\x02$\x1a\x1a\x20Function\x20definition\x20o\ + nly\n\n\r\n\x05\x05\x03\x02\x12\x01\x12\x04\xb7\x03\x02\x1e\n\r\n\x05\ + \x05\x03\x02\x12\x02\x12\x04\xb7\x03!#\n7\n\x04\x05\x03\x02\x13\x12\x04\ + \xba\x03\x02\x17\x1a)\x20Macro\x20references,\x20including\x20invocation\ + s\n\n\r\n\x05\x05\x03\x02\x13\x01\x12\x04\xba\x03\x02\x11\n\r\n\x05\x05\ + \x03\x02\x13\x02\x12\x04\xba\x03\x14\x16\n%\n\x04\x05\x03\x02\x14\x12\ + \x04\xbc\x03\x02!\x1a\x17\x20Macro\x20definition\x20only\n\n\r\n\x05\x05\ + \x03\x02\x14\x01\x12\x04\xbc\x03\x02\x1b\n\r\n\x05\x05\x03\x02\x14\x02\ + \x12\x04\xbc\x03\x1e\x20\n!\n\x04\x05\x03\x02\x15\x12\x04\xbf\x03\x02\ + \x16\x1a\x13\x20non-builtin\x20types\n\n\r\n\x05\x05\x03\x02\x15\x01\x12\ + \x04\xbf\x03\x02\x10\n\r\n\x05\x05\x03\x02\x15\x02\x12\x04\xbf\x03\x13\ + \x15\nK\n\x04\x05\x03\x02\x16\x12\x04\xc1\x03\x02\x1d\x1a=\x20builtin\ + \x20types\x20only,\x20such\x20as\x20`str`\x20for\x20Python\x20or\x20`int\ + `\x20in\x20Go\n\n\r\n\x05\x05\x03\x02\x16\x01\x12\x04\xc1\x03\x02\x17\n\ + \r\n\x05\x05\x03\x02\x16\x02\x12\x04\xc1\x03\x1a\x1c\n7\n\x04\x05\x03\ + \x02\x17\x12\x04\xc4\x03\x02\x1b\x1a)\x20Python\x20decorators,\x20c-like\ + \x20__attribute__\n\n\r\n\x05\x05\x03\x02\x17\x01\x12\x04\xc4\x03\x02\ + \x15\n\r\n\x05\x05\x03\x02\x17\x02\x12\x04\xc4\x03\x18\x1a\n\x14\n\x04\ + \x05\x03\x02\x18\x12\x04\xc7\x03\x02\x13\x1a\x06\x20`\\b`\n\n\r\n\x05\ + \x05\x03\x02\x18\x01\x12\x04\xc7\x03\x02\r\n\r\n\x05\x05\x03\x02\x18\x02\ + \x12\x04\xc7\x03\x10\x12\n\x18\n\x04\x05\x03\x02\x19\x12\x04\xc9\x03\x02\ + \x15\x1a\n\x20`*`,\x20`+`\n\n\r\n\x05\x05\x03\x02\x19\x01\x12\x04\xc9\ + \x03\x02\x0f\n\r\n\x05\x05\x03\x02\x19\x02\x12\x04\xc9\x03\x12\x14\n\x13\ + \n\x04\x05\x03\x02\x1a\x12\x04\xcb\x03\x02\x15\x1a\x05\x20`.`\n\n\r\n\ + \x05\x05\x03\x02\x1a\x01\x12\x04\xcb\x03\x02\x0f\n\r\n\x05\x05\x03\x02\ + \x1a\x02\x12\x04\xcb\x03\x12\x14\n\"\n\x04\x05\x03\x02\x1b\x12\x04\xcd\ + \x03\x02\x16\x1a\x14\x20`(`,\x20`)`,\x20`[`,\x20`]`\n\n\r\n\x05\x05\x03\ + \x02\x1b\x01\x12\x04\xcd\x03\x02\x10\n\r\n\x05\x05\x03\x02\x1b\x02\x12\ + \x04\xcd\x03\x13\x15\n\x18\n\x04\x05\x03\x02\x1c\x12\x04\xcf\x03\x02\x11\ + \x1a\n\x20`|`,\x20`-`\n\n\r\n\x05\x05\x03\x02\x1c\x01\x12\x04\xcf\x03\ + \x02\x0b\n\r\n\x05\x05\x03\x02\x1c\x02\x12\x04\xcf\x03\x0e\x10\n0\n\x04\ + \x05\x03\x02\x1d\x12\x04\xd2\x03\x02\x15\x1a\"\x20Literal\x20strings:\ + \x20\"Hello,\x20world!\"\n\n\r\n\x05\x05\x03\x02\x1d\x01\x12\x04\xd2\x03\ + \x02\x0f\n\r\n\x05\x05\x03\x02\x1d\x02\x12\x04\xd2\x03\x12\x14\n-\n\x04\ + \x05\x03\x02\x1e\x12\x04\xd4\x03\x02\x1b\x1a\x1f\x20non-regex\x20escapes\ + :\x20\"\\t\",\x20\"\\n\"\n\n\r\n\x05\x05\x03\x02\x1e\x01\x12\x04\xd4\x03\ + \x02\x15\n\r\n\x05\x05\x03\x02\x1e\x02\x12\x04\xd4\x03\x18\x1a\n_\n\x04\ + \x05\x03\x02\x1f\x12\x04\xd6\x03\x02\x1c\x1aQ\x20datetimes\x20within\x20\ + strings,\x20special\x20words\x20within\x20a\x20string,\x20`{}`\x20in\x20\ + format\x20strings\n\n\r\n\x05\x05\x03\x02\x1f\x01\x12\x04\xd6\x03\x02\ + \x16\n\r\n\x05\x05\x03\x02\x1f\x02\x12\x04\xd6\x03\x19\x1b\nG\n\x04\x05\ + \x03\x02\x20\x12\x04\xd8\x03\x02\x18\x1a9\x20\"key\"\x20in\x20{\x20\"key\ + \":\x20\"value\"\x20},\x20useful\x20for\x20example\x20in\x20JSON\n\n\r\n\ + \x05\x05\x03\x02\x20\x01\x12\x04\xd8\x03\x02\x12\n\r\n\x05\x05\x03\x02\ + \x20\x02\x12\x04\xd8\x03\x15\x17\nV\n\x04\x05\x03\x02!\x12\x04\xda\x03\ + \x02\x18\x1aH\x20'c'\x20or\x20similar,\x20in\x20languages\x20that\x20dif\ + ferentiate\x20strings\x20and\x20characters\n\n\r\n\x05\x05\x03\x02!\x01\ + \x12\x04\xda\x03\x02\x12\n\r\n\x05\x05\x03\x02!\x02\x12\x04\xda\x03\x15\ + \x17\n9\n\x04\x05\x03\x02\"\x12\x04\xdc\x03\x02\x16\x1a+\x20Literal\x20n\ + umbers,\x20both\x20floats\x20and\x20integers\n\n\r\n\x05\x05\x03\x02\"\ + \x01\x12\x04\xdc\x03\x02\x10\n\r\n\x05\x05\x03\x02\"\x02\x12\x04\xdc\x03\ + \x13\x15\n\x1f\n\x04\x05\x03\x02#\x12\x04\xde\x03\x02\x16\x1a\x11\x20`tr\ + ue`,\x20`false`\n\n\r\n\x05\x05\x03\x02#\x01\x12\x04\xde\x03\x02\x10\n\r\ + \n\x05\x05\x03\x02#\x02\x12\x04\xde\x03\x13\x15\n&\n\x04\x05\x03\x02$\ + \x12\x04\xe1\x03\x02\x0b\x1a\x18\x20Used\x20for\x20XML-like\x20tags\n\n\ + \r\n\x05\x05\x03\x02$\x01\x12\x04\xe1\x03\x02\x05\n\r\n\x05\x05\x03\x02$\ + \x02\x12\x04\xe1\x03\x08\n\n/\n\x04\x05\x03\x02%\x12\x04\xe3\x03\x02\x14\ + \x1a!\x20Attribute\x20name\x20in\x20XML-like\x20tags\n\n\r\n\x05\x05\x03\ + \x02%\x01\x12\x04\xe3\x03\x02\x0e\n\r\n\x05\x05\x03\x02%\x02\x12\x04\xe3\ + \x03\x11\x13\n,\n\x04\x05\x03\x02&\x12\x04\xe5\x03\x02\x14\x1a\x1e\x20De\ + limiters\x20for\x20XML-like\x20tags\n\n\r\n\x05\x05\x03\x02&\x01\x12\x04\ + \xe5\x03\x02\x0e\n\r\n\x05\x05\x03\x02&\x02\x12\x04\xe5\x03\x11\x13\n\ + \xf9\x01\n\x02\x04\t\x12\x06\xed\x03\0\xbc\x04\x01\x1a\xea\x01\x20Occurr\ + ence\x20associates\x20a\x20source\x20position\x20with\x20a\x20symbol\x20\ + and/or\x20highlighting\n\x20information.\n\n\x20If\x20possible,\x20index\ + ers\x20should\x20try\x20to\x20bundle\x20logically\x20related\x20informat\ + ion\n\x20across\x20occurrences\x20into\x20a\x20single\x20occurrence\x20t\ + o\x20reduce\x20payload\x20sizes.\n\n\x0b\n\x03\x04\t\x01\x12\x04\xed\x03\ + \x08\x12\n\xc6\x07\n\x04\x04\t\x02\0\x12\x04\x80\x04\x02\x1b\x1a\xb7\x07\ + \x20Source\x20position\x20of\x20this\x20occurrence.\x20Must\x20be\x20exa\ + ctly\x20three\x20or\x20four\n\x20elements:\n\n\x20-\x20Four\x20elements:\ + \x20`[startLine,\x20startCharacter,\x20endLine,\x20endCharacter]`\n\x20-\ + \x20Three\x20elements:\x20`[startLine,\x20startCharacter,\x20endCharacte\ + r]`.\x20The\x20end\x20line\n\x20\x20\x20is\x20inferred\x20to\x20have\x20\ + the\x20same\x20value\x20as\x20the\x20start\x20line.\n\n\x20Line\x20numbe\ + rs\x20and\x20characters\x20are\x20always\x200-based.\x20Make\x20sure\x20\ + to\x20increment\x20the\n\x20line/character\x20values\x20before\x20displa\ + ying\x20them\x20in\x20an\x20editor-like\x20UI\x20because\n\x20editors\ + \x20conventionally\x20use\x201-based\x20numbers.\n\n\x20Historical\x20no\ + te:\x20the\x20original\x20draft\x20of\x20this\x20schema\x20had\x20a\x20`\ + Range`\x20message\n\x20type\x20with\x20`start`\x20and\x20`end`\x20fields\ + \x20of\x20type\x20`Position`,\x20mirroring\x20LSP.\n\x20Benchmarks\x20re\ + vealed\x20that\x20this\x20encoding\x20was\x20inefficient\x20and\x20that\ + \x20we\x20could\n\x20reduce\x20the\x20total\x20payload\x20size\x20of\x20\ + an\x20index\x20by\x2050%\x20by\x20using\x20`repeated\x20int32`\n\x20inst\ + ead.\x20The\x20`repeated\x20int32`\x20encoding\x20is\x20admittedly\x20mo\ + re\x20embarrassing\x20to\n\x20work\x20with\x20in\x20some\x20programming\ + \x20languages\x20but\x20we\x20hope\x20the\x20performance\n\x20improvemen\ + ts\x20make\x20up\x20for\x20it.\n\n\r\n\x05\x04\t\x02\0\x04\x12\x04\x80\ + \x04\x02\n\n\r\n\x05\x04\t\x02\0\x05\x12\x04\x80\x04\x0b\x10\n\r\n\x05\ + \x04\t\x02\0\x01\x12\x04\x80\x04\x11\x16\n\r\n\x05\x04\t\x02\0\x03\x12\ + \x04\x80\x04\x19\x1a\n\x8a\x01\n\x04\x04\t\x02\x01\x12\x04\x83\x04\x02\ + \x14\x1a|\x20(optional)\x20The\x20symbol\x20that\x20appears\x20at\x20thi\ + s\x20position.\x20See\n\x20`SymbolInformation.symbol`\x20for\x20how\x20t\ + o\x20format\x20symbols\x20as\x20strings.\n\n\r\n\x05\x04\t\x02\x01\x05\ + \x12\x04\x83\x04\x02\x08\n\r\n\x05\x04\t\x02\x01\x01\x12\x04\x83\x04\t\ + \x0f\n\r\n\x05\x04\t\x02\x01\x03\x12\x04\x83\x04\x12\x13\n\x97\x01\n\x04\ + \x04\t\x02\x02\x12\x04\x86\x04\x02\x19\x1a\x88\x01\x20(optional)\x20Bits\ + et\x20containing\x20`SymbolRole`s\x20in\x20this\x20occurrence.\n\x20See\ + \x20`SymbolRole`'s\x20documentation\x20for\x20how\x20to\x20read\x20and\ + \x20write\x20this\x20field.\n\n\r\n\x05\x04\t\x02\x02\x05\x12\x04\x86\ + \x04\x02\x07\n\r\n\x05\x04\t\x02\x02\x01\x12\x04\x86\x04\x08\x14\n\r\n\ + \x05\x04\t\x02\x02\x03\x12\x04\x86\x04\x17\x18\n\xf1\x03\n\x04\x04\t\x02\ + \x03\x12\x04\x8f\x04\x02-\x1a\xe2\x03\x20(optional)\x20CommonMark-format\ + ted\x20documentation\x20for\x20this\x20specific\x20range.\x20If\n\x20emp\ + ty,\x20the\x20`Symbol.documentation`\x20field\x20is\x20used\x20instead.\ + \x20One\x20example\n\x20where\x20this\x20field\x20might\x20be\x20useful\ + \x20is\x20when\x20the\x20symbol\x20represents\x20a\x20generic\n\x20funct\ + ion\x20(with\x20abstract\x20type\x20parameters\x20such\x20as\x20`List\ + `)\x20and\x20at\x20this\n\x20occurrence\x20we\x20know\x20the\x20exact\ + \x20values\x20(such\x20as\x20`List`).\n\n\x20This\x20field\x20ca\ + n\x20also\x20be\x20used\x20for\x20dynamically\x20or\x20gradually\x20type\ + d\x20languages,\n\x20which\x20commonly\x20allow\x20for\x20type-changing\ + \x20assignment.\n\n\r\n\x05\x04\t\x02\x03\x04\x12\x04\x8f\x04\x02\n\n\r\ + \n\x05\x04\t\x02\x03\x05\x12\x04\x8f\x04\x0b\x11\n\r\n\x05\x04\t\x02\x03\ + \x01\x12\x04\x8f\x04\x12(\n\r\n\x05\x04\t\x02\x03\x03\x12\x04\x8f\x04+,\ + \nX\n\x04\x04\t\x02\x04\x12\x04\x91\x04\x02\x1d\x1aJ\x20(optional)\x20Wh\ + at\x20syntax\x20highlighting\x20class\x20should\x20be\x20used\x20for\x20\ + this\x20range?\n\n\r\n\x05\x04\t\x02\x04\x06\x12\x04\x91\x04\x02\x0c\n\r\ + \n\x05\x04\t\x02\x04\x01\x12\x04\x91\x04\r\x18\n\r\n\x05\x04\t\x02\x04\ + \x03\x12\x04\x91\x04\x1b\x1c\nW\n\x04\x04\t\x02\x05\x12\x04\x93\x04\x02&\ + \x1aI\x20(optional)\x20Diagnostics\x20that\x20have\x20been\x20reported\ + \x20for\x20this\x20specific\x20range.\n\n\r\n\x05\x04\t\x02\x05\x04\x12\ + \x04\x93\x04\x02\n\n\r\n\x05\x04\t\x02\x05\x06\x12\x04\x93\x04\x0b\x15\n\ + \r\n\x05\x04\t\x02\x05\x01\x12\x04\x93\x04\x16!\n\r\n\x05\x04\t\x02\x05\ + \x03\x12\x04\x93\x04$%\n\x80\x0c\n\x04\x04\t\x02\x06\x12\x04\xbb\x04\x02\ + %\x1a\xf1\x0b\x20(optional)\x20Using\x20the\x20same\x20encoding\x20as\ + \x20the\x20sibling\x20`range`\x20field,\x20source\n\x20position\x20of\ + \x20the\x20nearest\x20non-trivial\x20enclosing\x20AST\x20node.\x20This\ + \x20range\x20must\n\x20enclose\x20the\x20`range`\x20field.\x20Example\ + \x20applications\x20that\x20make\x20use\x20of\x20the\n\x20enclosing_rang\ + e\x20field:\n\n\x20-\x20Call\x20hierarchies:\x20to\x20determine\x20what\ + \x20symbols\x20are\x20references\x20from\x20the\x20body\n\x20\x20\x20of\ + \x20a\x20function\n\x20-\x20Symbol\x20outline:\x20to\x20display\x20bread\ + crumbs\x20from\x20the\x20cursor\x20position\x20to\x20the\n\x20\x20\x20ro\ + ot\x20of\x20the\x20file\n\x20-\x20Expand\x20selection:\x20to\x20select\ + \x20the\x20nearest\x20enclosing\x20AST\x20node.\n\x20-\x20Highlight\x20r\ + ange:\x20to\x20indicate\x20the\x20AST\x20expression\x20that\x20is\x20ass\ + ociated\x20with\x20a\n\x20\x20\x20hover\x20popover\n\n\x20For\x20definit\ + ion\x20occurrences,\x20the\x20enclosing\x20range\x20should\x20indicate\ + \x20the\n\x20start/end\x20bounds\x20of\x20the\x20entire\x20definition\ + \x20AST\x20node,\x20including\n\x20documentation.\n\x20```\n\x20const\ + \x20n\x20=\x203\n\x20\x20\x20\x20\x20\x20\x20^\x20range\n\x20^^^^^^^^^^^\ + \x20enclosing_range\n\n\x20/**\x20Parses\x20the\x20string\x20into\x20som\ + ething\x20*/\n\x20^\x20enclosing_range\x20start\x20---------------------\ + -----------------|\n\x20function\x20parse(input\x20string):\x20string\ + \x20{\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ + \x20\x20\x20\x20\x20\x20\x20\x20|\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\ + \x20^^^^^\x20range\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ - |\n\x20}\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ + \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20|\n\x20\x20\x20\x20\x20retur\ + n\x20input.slice(n)\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ + \x20\x20\x20\x20\x20\x20|\n\x20}\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ - \x20\x20\x20\x20\x20\x20\x20\x20\x20|\n\x20^\x20enclosing_range\x20end\ - \x20<---------------------------------------|\n\x20```\n\x20For\x20refer\ - ence\x20occurrences,\x20the\x20enclosing\x20range\x20should\x20indicate\ - \x20the\x20start/end\n\x20bounds\x20of\x20the\x20parent\x20expression.\n\ - \x20```\n\x20const\x20a\x20=\x20a.b\n\x20\x20\x20\x20\x20\x20\x20\x20\ - \x20\x20\x20\x20\x20^\x20range\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ - \x20^^^\x20enclosing_range\n\x20const\x20b\x20=\x20a.b(41).f(42).g(43)\n\ \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ - \x20^\x20range\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20^^^^^^^^^^^^\ - ^\x20enclosing_range\n\x20```\n\n\r\n\x05\x04\t\x02\x06\x04\x12\x04\xb3\ - \x04\x02\n\n\r\n\x05\x04\t\x02\x06\x05\x12\x04\xb3\x04\x0b\x10\n\r\n\x05\ - \x04\t\x02\x06\x01\x12\x04\xb3\x04\x11\x20\n\r\n\x05\x04\t\x02\x06\x03\ - \x12\x04\xb3\x04#$\nw\n\x02\x04\n\x12\x06\xb8\x04\0\xc3\x04\x01\x1ai\x20\ - Represents\x20a\x20diagnostic,\x20such\x20as\x20a\x20compiler\x20error\ - \x20or\x20warning,\x20which\x20should\x20be\n\x20reported\x20for\x20a\ - \x20document.\n\n\x0b\n\x03\x04\n\x01\x12\x04\xb8\x04\x08\x12\nW\n\x04\ - \x04\n\x02\0\x12\x04\xba\x04\x02\x18\x1aI\x20Should\x20this\x20diagnosti\ - c\x20be\x20reported\x20as\x20an\x20error,\x20warning,\x20info,\x20or\x20\ - hint?\n\n\r\n\x05\x04\n\x02\0\x06\x12\x04\xba\x04\x02\n\n\r\n\x05\x04\n\ - \x02\0\x01\x12\x04\xba\x04\x0b\x13\n\r\n\x05\x04\n\x02\0\x03\x12\x04\xba\ - \x04\x16\x17\n]\n\x04\x04\n\x02\x01\x12\x04\xbc\x04\x02\x12\x1aO\x20(opt\ - ional)\x20Code\x20of\x20this\x20diagnostic,\x20which\x20might\x20appear\ - \x20in\x20the\x20user\x20interface.\n\n\r\n\x05\x04\n\x02\x01\x05\x12\ - \x04\xbc\x04\x02\x08\n\r\n\x05\x04\n\x02\x01\x01\x12\x04\xbc\x04\t\r\n\r\ - \n\x05\x04\n\x02\x01\x03\x12\x04\xbc\x04\x10\x11\n+\n\x04\x04\n\x02\x02\ - \x12\x04\xbe\x04\x02\x15\x1a\x1d\x20Message\x20of\x20this\x20diagnostic.\ - \n\n\r\n\x05\x04\n\x02\x02\x05\x12\x04\xbe\x04\x02\x08\n\r\n\x05\x04\n\ - \x02\x02\x01\x12\x04\xbe\x04\t\x10\n\r\n\x05\x04\n\x02\x02\x03\x12\x04\ - \xbe\x04\x13\x14\n~\n\x04\x04\n\x02\x03\x12\x04\xc1\x04\x02\x14\x1ap\x20\ - (optional)\x20Human-readable\x20string\x20describing\x20the\x20source\ - \x20of\x20this\x20diagnostic,\x20e.g.\n\x20'typescript'\x20or\x20'super\ - \x20lint'.\n\n\r\n\x05\x04\n\x02\x03\x05\x12\x04\xc1\x04\x02\x08\n\r\n\ - \x05\x04\n\x02\x03\x01\x12\x04\xc1\x04\t\x0f\n\r\n\x05\x04\n\x02\x03\x03\ - \x12\x04\xc1\x04\x12\x13\n\x0c\n\x04\x04\n\x02\x04\x12\x04\xc2\x04\x02\"\ - \n\r\n\x05\x04\n\x02\x04\x04\x12\x04\xc2\x04\x02\n\n\r\n\x05\x04\n\x02\ - \x04\x06\x12\x04\xc2\x04\x0b\x18\n\r\n\x05\x04\n\x02\x04\x01\x12\x04\xc2\ - \x04\x19\x1d\n\r\n\x05\x04\n\x02\x04\x03\x12\x04\xc2\x04\x20!\n\x0c\n\ - \x02\x05\x04\x12\x06\xc5\x04\0\xcb\x04\x01\n\x0b\n\x03\x05\x04\x01\x12\ - \x04\xc5\x04\x05\r\n\x0c\n\x04\x05\x04\x02\0\x12\x04\xc6\x04\x02\x1a\n\r\ - \n\x05\x05\x04\x02\0\x01\x12\x04\xc6\x04\x02\x15\n\r\n\x05\x05\x04\x02\0\ - \x02\x12\x04\xc6\x04\x18\x19\n\x0c\n\x04\x05\x04\x02\x01\x12\x04\xc7\x04\ - \x02\x0c\n\r\n\x05\x05\x04\x02\x01\x01\x12\x04\xc7\x04\x02\x07\n\r\n\x05\ - \x05\x04\x02\x01\x02\x12\x04\xc7\x04\n\x0b\n\x0c\n\x04\x05\x04\x02\x02\ - \x12\x04\xc8\x04\x02\x0e\n\r\n\x05\x05\x04\x02\x02\x01\x12\x04\xc8\x04\ - \x02\t\n\r\n\x05\x05\x04\x02\x02\x02\x12\x04\xc8\x04\x0c\r\n\x0c\n\x04\ - \x05\x04\x02\x03\x12\x04\xc9\x04\x02\x12\n\r\n\x05\x05\x04\x02\x03\x01\ - \x12\x04\xc9\x04\x02\r\n\r\n\x05\x05\x04\x02\x03\x02\x12\x04\xc9\x04\x10\ - \x11\n\x0c\n\x04\x05\x04\x02\x04\x12\x04\xca\x04\x02\x0b\n\r\n\x05\x05\ - \x04\x02\x04\x01\x12\x04\xca\x04\x02\x06\n\r\n\x05\x05\x04\x02\x04\x02\ - \x12\x04\xca\x04\t\n\n\x0c\n\x02\x05\x05\x12\x06\xcd\x04\0\xd1\x04\x01\n\ - \x0b\n\x03\x05\x05\x01\x12\x04\xcd\x04\x05\x12\n\x0c\n\x04\x05\x05\x02\0\ - \x12\x04\xce\x04\x02\x1f\n\r\n\x05\x05\x05\x02\0\x01\x12\x04\xce\x04\x02\ - \x1a\n\r\n\x05\x05\x05\x02\0\x02\x12\x04\xce\x04\x1d\x1e\n\x0c\n\x04\x05\ - \x05\x02\x01\x12\x04\xcf\x04\x02\x12\n\r\n\x05\x05\x05\x02\x01\x01\x12\ - \x04\xcf\x04\x02\r\n\r\n\x05\x05\x05\x02\x01\x02\x12\x04\xcf\x04\x10\x11\ - \n\x0c\n\x04\x05\x05\x02\x02\x12\x04\xd0\x04\x02\x11\n\r\n\x05\x05\x05\ - \x02\x02\x01\x12\x04\xd0\x04\x02\x0c\n\r\n\x05\x05\x05\x02\x02\x02\x12\ - \x04\xd0\x04\x0f\x10\n\xd6\x03\n\x02\x05\x06\x12\x06\xd9\x04\0\xbf\x05\ - \x01\x1a\xc7\x03\x20Language\x20standardises\x20names\x20of\x20common\ - \x20programming\x20languages\x20that\x20can\x20be\x20used\n\x20for\x20th\ - e\x20`Document.language`\x20field.\x20The\x20primary\x20purpose\x20of\ - \x20this\x20enum\x20is\x20to\n\x20prevent\x20a\x20situation\x20where\x20\ - we\x20have\x20a\x20single\x20programming\x20language\x20ends\x20up\x20wi\ - th\n\x20multiple\x20string\x20representations.\x20For\x20example,\x20the\ - \x20C++\x20language\x20uses\x20the\x20name\n\x20\"CPlusPlus\"\x20in\x20t\ - his\x20enum\x20and\x20other\x20names\x20such\x20as\x20\"cpp\"\x20are\x20\ - incompatible.\n\x20Feel\x20free\x20to\x20send\x20a\x20pull-request\x20to\ - \x20add\x20missing\x20programming\x20languages.\n\n\x0b\n\x03\x05\x06\ - \x01\x12\x04\xd9\x04\x05\r\n\x0c\n\x04\x05\x06\x02\0\x12\x04\xda\x04\x02\ - \x1a\n\r\n\x05\x05\x06\x02\0\x01\x12\x04\xda\x04\x02\x15\n\r\n\x05\x05\ - \x06\x02\0\x02\x12\x04\xda\x04\x18\x19\n\x0c\n\x04\x05\x06\x02\x01\x12\ - \x04\xdb\x04\x02\x0c\n\r\n\x05\x05\x06\x02\x01\x01\x12\x04\xdb\x04\x02\ - \x06\n\r\n\x05\x05\x06\x02\x01\x02\x12\x04\xdb\x04\t\x0b\n\x0c\n\x04\x05\ - \x06\x02\x02\x12\x04\xdc\x04\x02\x0b\n\r\n\x05\x05\x06\x02\x02\x01\x12\ - \x04\xdc\x04\x02\x05\n\r\n\x05\x05\x06\x02\x02\x02\x12\x04\xdc\x04\x08\n\ - \n\x0c\n\x04\x05\x06\x02\x03\x12\x04\xdd\x04\x02\x0b\n\r\n\x05\x05\x06\ - \x02\x03\x01\x12\x04\xdd\x04\x02\x05\n\r\n\x05\x05\x06\x02\x03\x02\x12\ - \x04\xdd\x04\x08\n\n\x0c\n\x04\x05\x06\x02\x04\x12\x04\xde\x04\x02\x0c\n\ - \r\n\x05\x05\x06\x02\x04\x01\x12\x04\xde\x04\x02\x06\n\r\n\x05\x05\x06\ - \x02\x04\x02\x12\x04\xde\x04\t\x0b\n\x0c\n\x04\x05\x06\x02\x05\x12\x04\ - \xdf\x04\x02\x10\n\r\n\x05\x05\x06\x02\x05\x01\x12\x04\xdf\x04\x02\n\n\r\ - \n\x05\x05\x06\x02\x05\x02\x12\x04\xdf\x04\r\x0f\n\x0c\n\x04\x05\x06\x02\ - \x06\x12\x04\xe0\x04\x02\x10\n\r\n\x05\x05\x06\x02\x06\x01\x12\x04\xe0\ - \x04\x02\n\n\r\n\x05\x05\x06\x02\x06\x02\x12\x04\xe0\x04\r\x0f\n\x0c\n\ - \x04\x05\x06\x02\x07\x12\x04\xe1\x04\x02\x0b\n\r\n\x05\x05\x06\x02\x07\ - \x01\x12\x04\xe1\x04\x02\x05\n\r\n\x05\x05\x06\x02\x07\x02\x12\x04\xe1\ - \x04\x08\n\n\x0c\n\x04\x05\x06\x02\x08\x12\x04\xe2\x04\x02\x0b\n\r\n\x05\ - \x05\x06\x02\x08\x01\x12\x04\xe2\x04\x02\x05\n\r\n\x05\x05\x06\x02\x08\ - \x02\x12\x04\xe2\x04\x08\n\n\x0c\n\x04\x05\x06\x02\t\x12\x04\xe3\x04\x02\ - \x0e\n\r\n\x05\x05\x06\x02\t\x01\x12\x04\xe3\x04\x02\x08\n\r\n\x05\x05\ - \x06\x02\t\x02\x12\x04\xe3\x04\x0b\r\n\x0c\n\x04\x05\x06\x02\n\x12\x04\ - \xe4\x04\x02\t\n\r\n\x05\x05\x06\x02\n\x01\x12\x04\xe4\x04\x02\x03\n\r\n\ - \x05\x05\x06\x02\n\x02\x12\x04\xe4\x04\x06\x08\n\x0c\n\x04\x05\x06\x02\ - \x0b\x12\x04\xe5\x04\x02\r\n\r\n\x05\x05\x06\x02\x0b\x01\x12\x04\xe5\x04\ - \x02\x07\n\r\n\x05\x05\x06\x02\x0b\x02\x12\x04\xe5\x04\n\x0c\nH\n\x04\ - \x05\x06\x02\x0c\x12\x04\xe6\x04\x02\x0b\":\x20C++\x20(the\x20name\x20\"\ - CPP\"\x20was\x20chosen\x20for\x20consistency\x20with\x20LSP)\n\n\r\n\x05\ - \x05\x06\x02\x0c\x01\x12\x04\xe6\x04\x02\x05\n\r\n\x05\x05\x06\x02\x0c\ - \x02\x12\x04\xe6\x04\x08\n\n\x0c\n\x04\x05\x06\x02\r\x12\x04\xe7\x04\x02\ - \x0b\n\r\n\x05\x05\x06\x02\r\x01\x12\x04\xe7\x04\x02\x05\n\r\n\x05\x05\ - \x06\x02\r\x02\x12\x04\xe7\x04\x08\n\n\x0c\n\x04\x05\x06\x02\x0e\x12\x04\ - \xe8\x04\x02\r\n\r\n\x05\x05\x06\x02\x0e\x01\x12\x04\xe8\x04\x02\x08\n\r\ - \n\x05\x05\x06\x02\x0e\x02\x12\x04\xe8\x04\x0b\x0c\n\x0c\n\x04\x05\x06\ - \x02\x0f\x12\x04\xe9\x04\x02\x0e\n\r\n\x05\x05\x06\x02\x0f\x01\x12\x04\ - \xe9\x04\x02\t\n\r\n\x05\x05\x06\x02\x0f\x02\x12\x04\xe9\x04\x0c\r\n\x0c\ - \n\x04\x05\x06\x02\x10\x12\x04\xea\x04\x02\x14\n\r\n\x05\x05\x06\x02\x10\ - \x01\x12\x04\xea\x04\x02\x0e\n\r\n\x05\x05\x06\x02\x10\x02\x12\x04\xea\ - \x04\x11\x13\n\x0c\n\x04\x05\x06\x02\x11\x12\x04\xeb\x04\x02\x11\n\r\n\ - \x05\x05\x06\x02\x11\x01\x12\x04\xeb\x04\x02\x0c\n\r\n\x05\x05\x06\x02\ - \x11\x02\x12\x04\xeb\x04\x0f\x10\n\x0c\n\x04\x05\x06\x02\x12\x12\x04\xec\ - \x04\x02\x0b\n\r\n\x05\x05\x06\x02\x12\x01\x12\x04\xec\x04\x02\x05\n\r\n\ - \x05\x05\x06\x02\x12\x02\x12\x04\xec\x04\x08\n\n\x0c\n\x04\x05\x06\x02\ - \x13\x12\x04\xed\x04\x02\x0b\n\r\n\x05\x05\x06\x02\x13\x01\x12\x04\xed\ - \x04\x02\x06\n\r\n\x05\x05\x06\x02\x13\x02\x12\x04\xed\x04\t\n\n\x0c\n\ - \x04\x05\x06\x02\x14\x12\x04\xee\x04\x02\x0e\n\r\n\x05\x05\x06\x02\x14\ - \x01\x12\x04\xee\x04\x02\x08\n\r\n\x05\x05\x06\x02\x14\x02\x12\x04\xee\ - \x04\x0b\r\n\x0c\n\x04\x05\x06\x02\x15\x12\x04\xef\x04\x02\x0c\n\r\n\x05\ - \x05\x06\x02\x15\x01\x12\x04\xef\x04\x02\x06\n\r\n\x05\x05\x06\x02\x15\ - \x02\x12\x04\xef\x04\t\x0b\n\x0c\n\x04\x05\x06\x02\x16\x12\x04\xf0\x04\ - \x02\x12\n\r\n\x05\x05\x06\x02\x16\x01\x12\x04\xf0\x04\x02\x0c\n\r\n\x05\ - \x05\x06\x02\x16\x02\x12\x04\xf0\x04\x0f\x11\n\x0c\n\x04\x05\x06\x02\x17\ - \x12\x04\xf1\x04\x02\x0e\n\r\n\x05\x05\x06\x02\x17\x01\x12\x04\xf1\x04\ - \x02\x08\n\r\n\x05\x05\x06\x02\x17\x02\x12\x04\xf1\x04\x0b\r\n\x0c\n\x04\ - \x05\x06\x02\x18\x12\x04\xf2\x04\x02\x0e\n\r\n\x05\x05\x06\x02\x18\x01\ - \x12\x04\xf2\x04\x02\x08\n\r\n\x05\x05\x06\x02\x18\x02\x12\x04\xf2\x04\ - \x0b\r\n\x0c\n\x04\x05\x06\x02\x19\x12\x04\xf3\x04\x02\x0e\n\r\n\x05\x05\ - \x06\x02\x19\x01\x12\x04\xf3\x04\x02\x08\n\r\n\x05\x05\x06\x02\x19\x02\ - \x12\x04\xf3\x04\x0b\r\n\x0c\n\x04\x05\x06\x02\x1a\x12\x04\xf4\x04\x02\ - \x0e\n\r\n\x05\x05\x06\x02\x1a\x01\x12\x04\xf4\x04\x02\x08\n\r\n\x05\x05\ - \x06\x02\x1a\x02\x12\x04\xf4\x04\x0b\r\n\x0c\n\x04\x05\x06\x02\x1b\x12\ - \x04\xf5\x04\x02\x0c\n\r\n\x05\x05\x06\x02\x1b\x01\x12\x04\xf5\x04\x02\ - \x06\n\r\n\x05\x05\x06\x02\x1b\x02\x12\x04\xf5\x04\t\x0b\n\x0c\n\x04\x05\ - \x06\x02\x1c\x12\x04\xf6\x04\x02\x0c\n\r\n\x05\x05\x06\x02\x1c\x01\x12\ - \x04\xf6\x04\x02\x06\n\r\n\x05\x05\x06\x02\x1c\x02\x12\x04\xf6\x04\t\x0b\ - \n\x0c\n\x04\x05\x06\x02\x1d\x12\x04\xf7\x04\x02\x0f\n\r\n\x05\x05\x06\ - \x02\x1d\x01\x12\x04\xf7\x04\x02\t\n\r\n\x05\x05\x06\x02\x1d\x02\x12\x04\ - \xf7\x04\x0c\x0e\n\x0c\n\x04\x05\x06\x02\x1e\x12\x04\xf8\x04\x02\x12\n\r\ - \n\x05\x05\x06\x02\x1e\x01\x12\x04\xf8\x04\x02\x0c\n\r\n\x05\x05\x06\x02\ - \x1e\x02\x12\x04\xf8\x04\x0f\x11\n\x0c\n\x04\x05\x06\x02\x1f\x12\x04\xf9\ - \x04\x02\x12\n\r\n\x05\x05\x06\x02\x1f\x01\x12\x04\xf9\x04\x02\x0c\n\r\n\ - \x05\x05\x06\x02\x1f\x02\x12\x04\xf9\x04\x0f\x11\n\x0c\n\x04\x05\x06\x02\ - \x20\x12\x04\xfa\x04\x02\x12\n\r\n\x05\x05\x06\x02\x20\x01\x12\x04\xfa\ - \x04\x02\x0c\n\r\n\x05\x05\x06\x02\x20\x02\x12\x04\xfa\x04\x0f\x11\n\x0c\ - \n\x04\x05\x06\x02!\x12\x04\xfb\x04\x02\n\n\r\n\x05\x05\x06\x02!\x01\x12\ - \x04\xfb\x04\x02\x04\n\r\n\x05\x05\x06\x02!\x02\x12\x04\xfb\x04\x07\t\n\ - \x0c\n\x04\x05\x06\x02\"\x12\x04\xfc\x04\x02\r\n\r\n\x05\x05\x06\x02\"\ - \x01\x12\x04\xfc\x04\x02\x08\n\r\n\x05\x05\x06\x02\"\x02\x12\x04\xfc\x04\ - \x0b\x0c\n\x0c\n\x04\x05\x06\x02#\x12\x04\xfd\x04\x02\x0c\n\r\n\x05\x05\ - \x06\x02#\x01\x12\x04\xfd\x04\x02\x06\n\r\n\x05\x05\x06\x02#\x02\x12\x04\ - \xfd\x04\t\x0b\n\x0c\n\x04\x05\x06\x02$\x12\x04\xfe\x04\x02\x0c\n\r\n\ - \x05\x05\x06\x02$\x01\x12\x04\xfe\x04\x02\x06\n\r\n\x05\x05\x06\x02$\x02\ - \x12\x04\xfe\x04\t\x0b\n\x0c\n\x04\x05\x06\x02%\x12\x04\xff\x04\x02\x12\ - \n\r\n\x05\x05\x06\x02%\x01\x12\x04\xff\x04\x02\x0c\n\r\n\x05\x05\x06\ - \x02%\x02\x12\x04\xff\x04\x0f\x11\n\x0c\n\x04\x05\x06\x02&\x12\x04\x80\ - \x05\x02\x0f\n\r\n\x05\x05\x06\x02&\x01\x12\x04\x80\x05\x02\t\n\r\n\x05\ - \x05\x06\x02&\x02\x12\x04\x80\x05\x0c\x0e\n\x0c\n\x04\x05\x06\x02'\x12\ - \x04\x81\x05\x02\r\n\r\n\x05\x05\x06\x02'\x01\x12\x04\x81\x05\x02\x07\n\ - \r\n\x05\x05\x06\x02'\x02\x12\x04\x81\x05\n\x0c\n\x0c\n\x04\x05\x06\x02(\ - \x12\x04\x82\x05\x02\x0b\n\r\n\x05\x05\x06\x02(\x01\x12\x04\x82\x05\x02\ - \x05\n\r\n\x05\x05\x06\x02(\x02\x12\x04\x82\x05\x08\n\n\x0c\n\x04\x05\ - \x06\x02)\x12\x04\x83\x05\x02\t\n\r\n\x05\x05\x06\x02)\x01\x12\x04\x83\ - \x05\x02\x03\n\r\n\x05\x05\x06\x02)\x02\x12\x04\x83\x05\x06\x08\n\x0c\n\ - \x04\x05\x06\x02*\x12\x04\x84\x05\x02\x0c\n\r\n\x05\x05\x06\x02*\x01\x12\ - \x04\x84\x05\x02\x06\n\r\n\x05\x05\x06\x02*\x02\x12\x04\x84\x05\t\x0b\n\ - \x0c\n\x04\x05\x06\x02+\x12\x04\x85\x05\x02\x0b\n\r\n\x05\x05\x06\x02+\ - \x01\x12\x04\x85\x05\x02\x06\n\r\n\x05\x05\x06\x02+\x02\x12\x04\x85\x05\ - \t\n\n\x0c\n\x04\x05\x06\x02,\x12\x04\x86\x05\x02\x12\n\r\n\x05\x05\x06\ - \x02,\x01\x12\x04\x86\x05\x02\x0c\n\r\n\x05\x05\x06\x02,\x02\x12\x04\x86\ - \x05\x0f\x11\n\x0c\n\x04\x05\x06\x02-\x12\x04\x87\x05\x02\x17\n\r\n\x05\ - \x05\x06\x02-\x01\x12\x04\x87\x05\x02\x11\n\r\n\x05\x05\x06\x02-\x02\x12\ - \x04\x87\x05\x14\x16\n\x0c\n\x04\x05\x06\x02.\x12\x04\x88\x05\x02\x0f\n\ - \r\n\x05\x05\x06\x02.\x01\x12\x04\x88\x05\x02\t\n\r\n\x05\x05\x06\x02.\ - \x02\x12\x04\x88\x05\x0c\x0e\n\x0c\n\x04\x05\x06\x02/\x12\x04\x89\x05\ - \x02\x0e\n\r\n\x05\x05\x06\x02/\x01\x12\x04\x89\x05\x02\x07\n\r\n\x05\ - \x05\x06\x02/\x02\x12\x04\x89\x05\x0b\r\n\x0c\n\x04\x05\x06\x020\x12\x04\ - \x8a\x05\x02\r\n\r\n\x05\x05\x06\x020\x01\x12\x04\x8a\x05\x02\x08\n\r\n\ - \x05\x05\x06\x020\x02\x12\x04\x8a\x05\x0b\x0c\n\x0c\n\x04\x05\x06\x021\ - \x12\x04\x8b\x05\x02\r\n\r\n\x05\x05\x06\x021\x01\x12\x04\x8b\x05\x02\ - \x07\n\r\n\x05\x05\x06\x021\x02\x12\x04\x8b\x05\n\x0c\n\x0c\n\x04\x05\ - \x06\x022\x12\x04\x8c\x05\x02\x0c\n\r\n\x05\x05\x06\x022\x01\x12\x04\x8c\ - \x05\x02\x06\n\r\n\x05\x05\x06\x022\x02\x12\x04\x8c\x05\t\x0b\n\x0c\n\ - \x04\x05\x06\x023\x12\x04\x8d\x05\x02\x0c\n\r\n\x05\x05\x06\x023\x01\x12\ - \x04\x8d\x05\x02\x06\n\r\n\x05\x05\x06\x023\x02\x12\x04\x8d\x05\t\x0b\n\ - \x0c\n\x04\x05\x06\x024\x12\x04\x8e\x05\x02\x0b\n\r\n\x05\x05\x06\x024\ - \x01\x12\x04\x8e\x05\x02\x05\n\r\n\x05\x05\x06\x024\x02\x12\x04\x8e\x05\ - \x08\n\n\x0c\n\x04\x05\x06\x025\x12\x04\x8f\x05\x02\x10\n\r\n\x05\x05\ - \x06\x025\x01\x12\x04\x8f\x05\x02\n\n\r\n\x05\x05\x06\x025\x02\x12\x04\ - \x8f\x05\r\x0f\n\x0c\n\x04\x05\x06\x026\x12\x04\x90\x05\x02\x10\n\r\n\ - \x05\x05\x06\x026\x01\x12\x04\x90\x05\x02\n\n\r\n\x05\x05\x06\x026\x02\ - \x12\x04\x90\x05\r\x0f\n\x0c\n\x04\x05\x06\x027\x12\x04\x91\x05\x02\x0e\ - \n\r\n\x05\x05\x06\x027\x01\x12\x04\x91\x05\x02\x08\n\r\n\x05\x05\x06\ - \x027\x02\x12\x04\x91\x05\x0b\r\n\x0c\n\x04\x05\x06\x028\x12\x04\x92\x05\ - \x02\x0b\n\r\n\x05\x05\x06\x028\x01\x12\x04\x92\x05\x02\x05\n\r\n\x05\ - \x05\x06\x028\x02\x12\x04\x92\x05\x08\n\n\x0c\n\x04\x05\x06\x029\x12\x04\ - \x93\x05\x02\r\n\r\n\x05\x05\x06\x029\x01\x12\x04\x93\x05\x02\x07\n\r\n\ - \x05\x05\x06\x029\x02\x12\x04\x93\x05\n\x0c\n\x0c\n\x04\x05\x06\x02:\x12\ - \x04\x94\x05\x02\x13\n\r\n\x05\x05\x06\x02:\x01\x12\x04\x94\x05\x02\r\n\ - \r\n\x05\x05\x06\x02:\x02\x12\x04\x94\x05\x10\x12\n\x0c\n\x04\x05\x06\ - \x02;\x12\x04\x95\x05\x02\x15\n\r\n\x05\x05\x06\x02;\x01\x12\x04\x95\x05\ - \x02\x0f\n\r\n\x05\x05\x06\x02;\x02\x12\x04\x95\x05\x12\x14\n\x0c\n\x04\ - \x05\x06\x02<\x12\x04\x96\x05\x02\x0b\n\r\n\x05\x05\x06\x02<\x01\x12\x04\ - \x96\x05\x02\x05\n\r\n\x05\x05\x06\x02<\x02\x12\x04\x96\x05\x08\n\n\x0c\ - \n\x04\x05\x06\x02=\x12\x04\x97\x05\x02\r\n\r\n\x05\x05\x06\x02=\x01\x12\ - \x04\x97\x05\x02\x07\n\r\n\x05\x05\x06\x02=\x02\x12\x04\x97\x05\n\x0c\n\ - \x0c\n\x04\x05\x06\x02>\x12\x04\x98\x05\x02\x0c\n\r\n\x05\x05\x06\x02>\ - \x01\x12\x04\x98\x05\x02\x06\n\r\n\x05\x05\x06\x02>\x02\x12\x04\x98\x05\ - \t\x0b\n\x0c\n\x04\x05\x06\x02?\x12\x04\x99\x05\x02\x12\n\r\n\x05\x05\ - \x06\x02?\x01\x12\x04\x99\x05\x02\x0c\n\r\n\x05\x05\x06\x02?\x02\x12\x04\ - \x99\x05\x0f\x11\n\x0c\n\x04\x05\x06\x02@\x12\x04\x9a\x05\x02\x0e\n\r\n\ - \x05\x05\x06\x02@\x01\x12\x04\x9a\x05\x02\x08\n\r\n\x05\x05\x06\x02@\x02\ - \x12\x04\x9a\x05\x0b\r\n\x0c\n\x04\x05\x06\x02A\x12\x04\x9b\x05\x02\x0e\ - \n\r\n\x05\x05\x06\x02A\x01\x12\x04\x9b\x05\x02\x08\n\r\n\x05\x05\x06\ - \x02A\x02\x12\x04\x9b\x05\x0b\r\n\x0c\n\x04\x05\x06\x02B\x12\x04\x9c\x05\ - \x02\t\n\r\n\x05\x05\x06\x02B\x01\x12\x04\x9c\x05\x02\x03\n\r\n\x05\x05\ - \x06\x02B\x02\x12\x04\x9c\x05\x06\x08\n\x0c\n\x04\x05\x06\x02C\x12\x04\ - \x9d\x05\x02\x0e\n\r\n\x05\x05\x06\x02C\x01\x12\x04\x9d\x05\x02\x08\n\r\ - \n\x05\x05\x06\x02C\x02\x12\x04\x9d\x05\x0b\r\n\x0c\n\x04\x05\x06\x02D\ - \x12\x04\x9e\x05\x02\x0c\n\r\n\x05\x05\x06\x02D\x01\x12\x04\x9e\x05\x02\ - \x06\n\r\n\x05\x05\x06\x02D\x02\x12\x04\x9e\x05\t\x0b\n\x0c\n\x04\x05\ - \x06\x02E\x12\x04\x9f\x05\x02\r\n\r\n\x05\x05\x06\x02E\x01\x12\x04\x9f\ - \x05\x02\x07\n\r\n\x05\x05\x06\x02E\x02\x12\x04\x9f\x05\n\x0c\n\x0c\n\ - \x04\x05\x06\x02F\x12\x04\xa0\x05\x02\x0c\n\r\n\x05\x05\x06\x02F\x01\x12\ - \x04\xa0\x05\x02\x06\n\r\n\x05\x05\x06\x02F\x02\x12\x04\xa0\x05\t\x0b\n\ - \x0c\n\x04\x05\x06\x02G\x12\x04\xa1\x05\x02\x0c\n\r\n\x05\x05\x06\x02G\ - \x01\x12\x04\xa1\x05\x02\x06\n\r\n\x05\x05\x06\x02G\x02\x12\x04\xa1\x05\ - \t\x0b\n\x0c\n\x04\x05\x06\x02H\x12\x04\xa2\x05\x02\x0c\n\r\n\x05\x05\ - \x06\x02H\x01\x12\x04\xa2\x05\x02\x06\n\r\n\x05\x05\x06\x02H\x02\x12\x04\ - \xa2\x05\t\x0b\n\x0c\n\x04\x05\x06\x02I\x12\x04\xa3\x05\x02\x0b\n\r\n\ - \x05\x05\x06\x02I\x01\x12\x04\xa3\x05\x02\x05\n\r\n\x05\x05\x06\x02I\x02\ - \x12\x04\xa3\x05\x08\n\n\x0c\n\x04\x05\x06\x02J\x12\x04\xa4\x05\x02\x0c\ - \n\r\n\x05\x05\x06\x02J\x01\x12\x04\xa4\x05\x02\x06\n\r\n\x05\x05\x06\ - \x02J\x02\x12\x04\xa4\x05\t\x0b\n\x0c\n\x04\x05\x06\x02K\x12\x04\xa5\x05\ - \x02\x0b\n\r\n\x05\x05\x06\x02K\x01\x12\x04\xa5\x05\x02\x05\n\r\n\x05\ - \x05\x06\x02K\x02\x12\x04\xa5\x05\x08\n\n\x0c\n\x04\x05\x06\x02L\x12\x04\ - \xa6\x05\x02\x0b\n\r\n\x05\x05\x06\x02L\x01\x12\x04\xa6\x05\x02\x05\n\r\ - \n\x05\x05\x06\x02L\x02\x12\x04\xa6\x05\x08\n\n\x0c\n\x04\x05\x06\x02M\ - \x12\x04\xa7\x05\x02\x0c\n\r\n\x05\x05\x06\x02M\x01\x12\x04\xa7\x05\x02\ - \x06\n\r\n\x05\x05\x06\x02M\x02\x12\x04\xa7\x05\t\x0b\n\x0c\n\x04\x05\ - \x06\x02N\x12\x04\xa8\x05\x02\x0c\n\r\n\x05\x05\x06\x02N\x01\x12\x04\xa8\ - \x05\x02\x07\n\r\n\x05\x05\x06\x02N\x02\x12\x04\xa8\x05\n\x0b\n\x0c\n\ - \x04\x05\x06\x02O\x12\x04\xa9\x05\x02\x0e\n\r\n\x05\x05\x06\x02O\x01\x12\ - \x04\xa9\x05\x02\x08\n\r\n\x05\x05\x06\x02O\x02\x12\x04\xa9\x05\x0b\r\n\ - \x14\n\x04\x05\x06\x02P\x12\x04\xaa\x05\x02\x13\"\x06\x20Bash\n\n\r\n\ - \x05\x05\x06\x02P\x01\x12\x04\xaa\x05\x02\r\n\r\n\x05\x05\x06\x02P\x02\ - \x12\x04\xaa\x05\x10\x12\n\x0c\n\x04\x05\x06\x02Q\x12\x04\xab\x05\x02\ - \x0f\n\r\n\x05\x05\x06\x02Q\x01\x12\x04\xab\x05\x02\t\n\r\n\x05\x05\x06\ - \x02Q\x02\x12\x04\xab\x05\x0c\x0e\n\x0c\n\x04\x05\x06\x02R\x12\x04\xac\ - \x05\x02\x0c\n\r\n\x05\x05\x06\x02R\x01\x12\x04\xac\x05\x02\x07\n\r\n\ - \x05\x05\x06\x02R\x02\x12\x04\xac\x05\n\x0b\n\x0c\n\x04\x05\x06\x02S\x12\ - \x04\xad\x05\x02\x0c\n\r\n\x05\x05\x06\x02S\x01\x12\x04\xad\x05\x02\x06\ - \n\r\n\x05\x05\x06\x02S\x02\x12\x04\xad\x05\t\x0b\n\x0c\n\x04\x05\x06\ - \x02T\x12\x04\xae\x05\x02\x0b\n\r\n\x05\x05\x06\x02T\x01\x12\x04\xae\x05\ - \x02\x05\n\r\n\x05\x05\x06\x02T\x02\x12\x04\xae\x05\x08\n\n\x0c\n\x04\ - \x05\x06\x02U\x12\x04\xaf\x05\x02\x12\n\r\n\x05\x05\x06\x02U\x01\x12\x04\ - \xaf\x05\x02\x0c\n\r\n\x05\x05\x06\x02U\x02\x12\x04\xaf\x05\x0f\x11\n\ - \x0c\n\x04\x05\x06\x02V\x12\x04\xb0\x05\x02\x17\n\r\n\x05\x05\x06\x02V\ - \x01\x12\x04\xb0\x05\x02\x11\n\r\n\x05\x05\x06\x02V\x02\x12\x04\xb0\x05\ - \x14\x16\n\x0c\n\x04\x05\x06\x02W\x12\x04\xb1\x05\x02\x13\n\r\n\x05\x05\ - \x06\x02W\x01\x12\x04\xb1\x05\x02\r\n\r\n\x05\x05\x06\x02W\x02\x12\x04\ - \xb1\x05\x10\x12\n\x0c\n\x04\x05\x06\x02X\x12\x04\xb2\x05\x02\x0b\n\r\n\ - \x05\x05\x06\x02X\x01\x12\x04\xb2\x05\x02\x05\n\r\n\x05\x05\x06\x02X\x02\ - \x12\x04\xb2\x05\x08\n\n\x0c\n\x04\x05\x06\x02Y\x12\x04\xb3\x05\x02\x0f\ - \n\r\n\x05\x05\x06\x02Y\x01\x12\x04\xb3\x05\x02\t\n\r\n\x05\x05\x06\x02Y\ - \x02\x12\x04\xb3\x05\x0c\x0e\n\x0c\n\x04\x05\x06\x02Z\x12\x04\xb4\x05\ - \x02\x0b\n\r\n\x05\x05\x06\x02Z\x01\x12\x04\xb4\x05\x02\x05\n\r\n\x05\ - \x05\x06\x02Z\x02\x12\x04\xb4\x05\x08\n\n\x0c\n\x04\x05\x06\x02[\x12\x04\ - \xb5\x05\x02\x0b\n\r\n\x05\x05\x06\x02[\x01\x12\x04\xb5\x05\x02\x05\n\r\ - \n\x05\x05\x06\x02[\x02\x12\x04\xb5\x05\x08\n\n\x0c\n\x04\x05\x06\x02\\\ - \x12\x04\xb6\x05\x02\x0c\n\r\n\x05\x05\x06\x02\\\x01\x12\x04\xb6\x05\x02\ - \x06\n\r\n\x05\x05\x06\x02\\\x02\x12\x04\xb6\x05\t\x0b\n\x92\x03\n\x04\ - \x05\x06\x02]\x12\x04\xb7\x05\x02\x0b\"\x83\x03\x20NextLanguage\x20=\x20\ - 95;\n\x20Steps\x20add\x20a\x20new\x20language:\n\x201.\x20Copy-paste\x20\ - the\x20\"NextLanguage\x20=\x20N\"\x20line\x20above\n\x202.\x20Increment\ - \x20\"NextLanguage\x20=\x20N\"\x20to\x20\"NextLanguage\x20=\x20N+1\"\n\ - \x203.\x20Replace\x20\"NextLanguage\x20=\x20N\"\x20with\x20the\x20name\ - \x20of\x20the\x20new\x20language.\n\x204.\x20Move\x20the\x20new\x20langu\ - age\x20to\x20the\x20correct\x20line\x20above\x20using\x20alphabetical\ - \x20order\n\x205.\x20(optional)\x20Add\x20a\x20brief\x20comment\x20behin\ - d\x20the\x20language\x20if\x20the\x20name\x20is\x20not\x20self-explanato\ - ry\n\n\r\n\x05\x05\x06\x02]\x01\x12\x04\xb7\x05\x02\x05\n\r\n\x05\x05\ - \x06\x02]\x02\x12\x04\xb7\x05\x08\nb\x06proto3\ + \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20|\n\x20^\x20\ + enclosing_range\x20end\x20<---------------------------------------|\n\ + \x20```\n\x20For\x20reference\x20occurrences,\x20the\x20enclosing\x20ran\ + ge\x20should\x20indicate\x20the\x20start/end\n\x20bounds\x20of\x20the\ + \x20parent\x20expression.\n\x20```\n\x20const\x20a\x20=\x20a.b\n\x20\x20\ + \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20^\x20range\n\x20\x20\x20\x20\ + \x20\x20\x20\x20\x20\x20\x20^^^\x20enclosing_range\n\x20const\x20b\x20=\ + \x20a.b(41).f(42).g(43)\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ + \x20\x20\x20\x20\x20\x20\x20\x20^\x20range\n\x20\x20\x20\x20\x20\x20\x20\ + \x20\x20\x20\x20^^^^^^^^^^^^^\x20enclosing_range\n\x20```\n\n\r\n\x05\ + \x04\t\x02\x06\x04\x12\x04\xbb\x04\x02\n\n\r\n\x05\x04\t\x02\x06\x05\x12\ + \x04\xbb\x04\x0b\x10\n\r\n\x05\x04\t\x02\x06\x01\x12\x04\xbb\x04\x11\x20\ + \n\r\n\x05\x04\t\x02\x06\x03\x12\x04\xbb\x04#$\nw\n\x02\x04\n\x12\x06\ + \xc0\x04\0\xcb\x04\x01\x1ai\x20Represents\x20a\x20diagnostic,\x20such\ + \x20as\x20a\x20compiler\x20error\x20or\x20warning,\x20which\x20should\ + \x20be\n\x20reported\x20for\x20a\x20document.\n\n\x0b\n\x03\x04\n\x01\ + \x12\x04\xc0\x04\x08\x12\nW\n\x04\x04\n\x02\0\x12\x04\xc2\x04\x02\x18\ + \x1aI\x20Should\x20this\x20diagnostic\x20be\x20reported\x20as\x20an\x20e\ + rror,\x20warning,\x20info,\x20or\x20hint?\n\n\r\n\x05\x04\n\x02\0\x06\ + \x12\x04\xc2\x04\x02\n\n\r\n\x05\x04\n\x02\0\x01\x12\x04\xc2\x04\x0b\x13\ + \n\r\n\x05\x04\n\x02\0\x03\x12\x04\xc2\x04\x16\x17\n]\n\x04\x04\n\x02\ + \x01\x12\x04\xc4\x04\x02\x12\x1aO\x20(optional)\x20Code\x20of\x20this\ + \x20diagnostic,\x20which\x20might\x20appear\x20in\x20the\x20user\x20inte\ + rface.\n\n\r\n\x05\x04\n\x02\x01\x05\x12\x04\xc4\x04\x02\x08\n\r\n\x05\ + \x04\n\x02\x01\x01\x12\x04\xc4\x04\t\r\n\r\n\x05\x04\n\x02\x01\x03\x12\ + \x04\xc4\x04\x10\x11\n+\n\x04\x04\n\x02\x02\x12\x04\xc6\x04\x02\x15\x1a\ + \x1d\x20Message\x20of\x20this\x20diagnostic.\n\n\r\n\x05\x04\n\x02\x02\ + \x05\x12\x04\xc6\x04\x02\x08\n\r\n\x05\x04\n\x02\x02\x01\x12\x04\xc6\x04\ + \t\x10\n\r\n\x05\x04\n\x02\x02\x03\x12\x04\xc6\x04\x13\x14\n~\n\x04\x04\ + \n\x02\x03\x12\x04\xc9\x04\x02\x14\x1ap\x20(optional)\x20Human-readable\ + \x20string\x20describing\x20the\x20source\x20of\x20this\x20diagnostic,\ + \x20e.g.\n\x20'typescript'\x20or\x20'super\x20lint'.\n\n\r\n\x05\x04\n\ + \x02\x03\x05\x12\x04\xc9\x04\x02\x08\n\r\n\x05\x04\n\x02\x03\x01\x12\x04\ + \xc9\x04\t\x0f\n\r\n\x05\x04\n\x02\x03\x03\x12\x04\xc9\x04\x12\x13\n\x0c\ + \n\x04\x04\n\x02\x04\x12\x04\xca\x04\x02\"\n\r\n\x05\x04\n\x02\x04\x04\ + \x12\x04\xca\x04\x02\n\n\r\n\x05\x04\n\x02\x04\x06\x12\x04\xca\x04\x0b\ + \x18\n\r\n\x05\x04\n\x02\x04\x01\x12\x04\xca\x04\x19\x1d\n\r\n\x05\x04\n\ + \x02\x04\x03\x12\x04\xca\x04\x20!\n\x0c\n\x02\x05\x04\x12\x06\xcd\x04\0\ + \xd3\x04\x01\n\x0b\n\x03\x05\x04\x01\x12\x04\xcd\x04\x05\r\n\x0c\n\x04\ + \x05\x04\x02\0\x12\x04\xce\x04\x02\x1a\n\r\n\x05\x05\x04\x02\0\x01\x12\ + \x04\xce\x04\x02\x15\n\r\n\x05\x05\x04\x02\0\x02\x12\x04\xce\x04\x18\x19\ + \n\x0c\n\x04\x05\x04\x02\x01\x12\x04\xcf\x04\x02\x0c\n\r\n\x05\x05\x04\ + \x02\x01\x01\x12\x04\xcf\x04\x02\x07\n\r\n\x05\x05\x04\x02\x01\x02\x12\ + \x04\xcf\x04\n\x0b\n\x0c\n\x04\x05\x04\x02\x02\x12\x04\xd0\x04\x02\x0e\n\ + \r\n\x05\x05\x04\x02\x02\x01\x12\x04\xd0\x04\x02\t\n\r\n\x05\x05\x04\x02\ + \x02\x02\x12\x04\xd0\x04\x0c\r\n\x0c\n\x04\x05\x04\x02\x03\x12\x04\xd1\ + \x04\x02\x12\n\r\n\x05\x05\x04\x02\x03\x01\x12\x04\xd1\x04\x02\r\n\r\n\ + \x05\x05\x04\x02\x03\x02\x12\x04\xd1\x04\x10\x11\n\x0c\n\x04\x05\x04\x02\ + \x04\x12\x04\xd2\x04\x02\x0b\n\r\n\x05\x05\x04\x02\x04\x01\x12\x04\xd2\ + \x04\x02\x06\n\r\n\x05\x05\x04\x02\x04\x02\x12\x04\xd2\x04\t\n\n\x0c\n\ + \x02\x05\x05\x12\x06\xd5\x04\0\xd9\x04\x01\n\x0b\n\x03\x05\x05\x01\x12\ + \x04\xd5\x04\x05\x12\n\x0c\n\x04\x05\x05\x02\0\x12\x04\xd6\x04\x02\x1f\n\ + \r\n\x05\x05\x05\x02\0\x01\x12\x04\xd6\x04\x02\x1a\n\r\n\x05\x05\x05\x02\ + \0\x02\x12\x04\xd6\x04\x1d\x1e\n\x0c\n\x04\x05\x05\x02\x01\x12\x04\xd7\ + \x04\x02\x12\n\r\n\x05\x05\x05\x02\x01\x01\x12\x04\xd7\x04\x02\r\n\r\n\ + \x05\x05\x05\x02\x01\x02\x12\x04\xd7\x04\x10\x11\n\x0c\n\x04\x05\x05\x02\ + \x02\x12\x04\xd8\x04\x02\x11\n\r\n\x05\x05\x05\x02\x02\x01\x12\x04\xd8\ + \x04\x02\x0c\n\r\n\x05\x05\x05\x02\x02\x02\x12\x04\xd8\x04\x0f\x10\n\xd6\ + \x03\n\x02\x05\x06\x12\x06\xe1\x04\0\xc7\x05\x01\x1a\xc7\x03\x20Language\ + \x20standardises\x20names\x20of\x20common\x20programming\x20languages\ + \x20that\x20can\x20be\x20used\n\x20for\x20the\x20`Document.language`\x20\ + field.\x20The\x20primary\x20purpose\x20of\x20this\x20enum\x20is\x20to\n\ + \x20prevent\x20a\x20situation\x20where\x20we\x20have\x20a\x20single\x20p\ + rogramming\x20language\x20ends\x20up\x20with\n\x20multiple\x20string\x20\ + representations.\x20For\x20example,\x20the\x20C++\x20language\x20uses\ + \x20the\x20name\n\x20\"CPlusPlus\"\x20in\x20this\x20enum\x20and\x20other\ + \x20names\x20such\x20as\x20\"cpp\"\x20are\x20incompatible.\n\x20Feel\x20\ + free\x20to\x20send\x20a\x20pull-request\x20to\x20add\x20missing\x20progr\ + amming\x20languages.\n\n\x0b\n\x03\x05\x06\x01\x12\x04\xe1\x04\x05\r\n\ + \x0c\n\x04\x05\x06\x02\0\x12\x04\xe2\x04\x02\x1a\n\r\n\x05\x05\x06\x02\0\ + \x01\x12\x04\xe2\x04\x02\x15\n\r\n\x05\x05\x06\x02\0\x02\x12\x04\xe2\x04\ + \x18\x19\n\x0c\n\x04\x05\x06\x02\x01\x12\x04\xe3\x04\x02\x0c\n\r\n\x05\ + \x05\x06\x02\x01\x01\x12\x04\xe3\x04\x02\x06\n\r\n\x05\x05\x06\x02\x01\ + \x02\x12\x04\xe3\x04\t\x0b\n\x0c\n\x04\x05\x06\x02\x02\x12\x04\xe4\x04\ + \x02\x0b\n\r\n\x05\x05\x06\x02\x02\x01\x12\x04\xe4\x04\x02\x05\n\r\n\x05\ + \x05\x06\x02\x02\x02\x12\x04\xe4\x04\x08\n\n\x0c\n\x04\x05\x06\x02\x03\ + \x12\x04\xe5\x04\x02\x0b\n\r\n\x05\x05\x06\x02\x03\x01\x12\x04\xe5\x04\ + \x02\x05\n\r\n\x05\x05\x06\x02\x03\x02\x12\x04\xe5\x04\x08\n\n\x0c\n\x04\ + \x05\x06\x02\x04\x12\x04\xe6\x04\x02\x0c\n\r\n\x05\x05\x06\x02\x04\x01\ + \x12\x04\xe6\x04\x02\x06\n\r\n\x05\x05\x06\x02\x04\x02\x12\x04\xe6\x04\t\ + \x0b\n\x0c\n\x04\x05\x06\x02\x05\x12\x04\xe7\x04\x02\x10\n\r\n\x05\x05\ + \x06\x02\x05\x01\x12\x04\xe7\x04\x02\n\n\r\n\x05\x05\x06\x02\x05\x02\x12\ + \x04\xe7\x04\r\x0f\n\x0c\n\x04\x05\x06\x02\x06\x12\x04\xe8\x04\x02\x10\n\ + \r\n\x05\x05\x06\x02\x06\x01\x12\x04\xe8\x04\x02\n\n\r\n\x05\x05\x06\x02\ + \x06\x02\x12\x04\xe8\x04\r\x0f\n\x0c\n\x04\x05\x06\x02\x07\x12\x04\xe9\ + \x04\x02\x0b\n\r\n\x05\x05\x06\x02\x07\x01\x12\x04\xe9\x04\x02\x05\n\r\n\ + \x05\x05\x06\x02\x07\x02\x12\x04\xe9\x04\x08\n\n\x0c\n\x04\x05\x06\x02\ + \x08\x12\x04\xea\x04\x02\x0b\n\r\n\x05\x05\x06\x02\x08\x01\x12\x04\xea\ + \x04\x02\x05\n\r\n\x05\x05\x06\x02\x08\x02\x12\x04\xea\x04\x08\n\n\x0c\n\ + \x04\x05\x06\x02\t\x12\x04\xeb\x04\x02\x0e\n\r\n\x05\x05\x06\x02\t\x01\ + \x12\x04\xeb\x04\x02\x08\n\r\n\x05\x05\x06\x02\t\x02\x12\x04\xeb\x04\x0b\ + \r\n\x0c\n\x04\x05\x06\x02\n\x12\x04\xec\x04\x02\t\n\r\n\x05\x05\x06\x02\ + \n\x01\x12\x04\xec\x04\x02\x03\n\r\n\x05\x05\x06\x02\n\x02\x12\x04\xec\ + \x04\x06\x08\n\x0c\n\x04\x05\x06\x02\x0b\x12\x04\xed\x04\x02\r\n\r\n\x05\ + \x05\x06\x02\x0b\x01\x12\x04\xed\x04\x02\x07\n\r\n\x05\x05\x06\x02\x0b\ + \x02\x12\x04\xed\x04\n\x0c\nH\n\x04\x05\x06\x02\x0c\x12\x04\xee\x04\x02\ + \x0b\":\x20C++\x20(the\x20name\x20\"CPP\"\x20was\x20chosen\x20for\x20con\ + sistency\x20with\x20LSP)\n\n\r\n\x05\x05\x06\x02\x0c\x01\x12\x04\xee\x04\ + \x02\x05\n\r\n\x05\x05\x06\x02\x0c\x02\x12\x04\xee\x04\x08\n\n\x0c\n\x04\ + \x05\x06\x02\r\x12\x04\xef\x04\x02\x0b\n\r\n\x05\x05\x06\x02\r\x01\x12\ + \x04\xef\x04\x02\x05\n\r\n\x05\x05\x06\x02\r\x02\x12\x04\xef\x04\x08\n\n\ + \x0c\n\x04\x05\x06\x02\x0e\x12\x04\xf0\x04\x02\r\n\r\n\x05\x05\x06\x02\ + \x0e\x01\x12\x04\xf0\x04\x02\x08\n\r\n\x05\x05\x06\x02\x0e\x02\x12\x04\ + \xf0\x04\x0b\x0c\n\x0c\n\x04\x05\x06\x02\x0f\x12\x04\xf1\x04\x02\x0e\n\r\ + \n\x05\x05\x06\x02\x0f\x01\x12\x04\xf1\x04\x02\t\n\r\n\x05\x05\x06\x02\ + \x0f\x02\x12\x04\xf1\x04\x0c\r\n\x0c\n\x04\x05\x06\x02\x10\x12\x04\xf2\ + \x04\x02\x14\n\r\n\x05\x05\x06\x02\x10\x01\x12\x04\xf2\x04\x02\x0e\n\r\n\ + \x05\x05\x06\x02\x10\x02\x12\x04\xf2\x04\x11\x13\n\x0c\n\x04\x05\x06\x02\ + \x11\x12\x04\xf3\x04\x02\x11\n\r\n\x05\x05\x06\x02\x11\x01\x12\x04\xf3\ + \x04\x02\x0c\n\r\n\x05\x05\x06\x02\x11\x02\x12\x04\xf3\x04\x0f\x10\n\x0c\ + \n\x04\x05\x06\x02\x12\x12\x04\xf4\x04\x02\x0b\n\r\n\x05\x05\x06\x02\x12\ + \x01\x12\x04\xf4\x04\x02\x05\n\r\n\x05\x05\x06\x02\x12\x02\x12\x04\xf4\ + \x04\x08\n\n\x0c\n\x04\x05\x06\x02\x13\x12\x04\xf5\x04\x02\x0b\n\r\n\x05\ + \x05\x06\x02\x13\x01\x12\x04\xf5\x04\x02\x06\n\r\n\x05\x05\x06\x02\x13\ + \x02\x12\x04\xf5\x04\t\n\n\x0c\n\x04\x05\x06\x02\x14\x12\x04\xf6\x04\x02\ + \x0e\n\r\n\x05\x05\x06\x02\x14\x01\x12\x04\xf6\x04\x02\x08\n\r\n\x05\x05\ + \x06\x02\x14\x02\x12\x04\xf6\x04\x0b\r\n\x0c\n\x04\x05\x06\x02\x15\x12\ + \x04\xf7\x04\x02\x0c\n\r\n\x05\x05\x06\x02\x15\x01\x12\x04\xf7\x04\x02\ + \x06\n\r\n\x05\x05\x06\x02\x15\x02\x12\x04\xf7\x04\t\x0b\n\x0c\n\x04\x05\ + \x06\x02\x16\x12\x04\xf8\x04\x02\x12\n\r\n\x05\x05\x06\x02\x16\x01\x12\ + \x04\xf8\x04\x02\x0c\n\r\n\x05\x05\x06\x02\x16\x02\x12\x04\xf8\x04\x0f\ + \x11\n\x0c\n\x04\x05\x06\x02\x17\x12\x04\xf9\x04\x02\x0e\n\r\n\x05\x05\ + \x06\x02\x17\x01\x12\x04\xf9\x04\x02\x08\n\r\n\x05\x05\x06\x02\x17\x02\ + \x12\x04\xf9\x04\x0b\r\n\x0c\n\x04\x05\x06\x02\x18\x12\x04\xfa\x04\x02\ + \x0e\n\r\n\x05\x05\x06\x02\x18\x01\x12\x04\xfa\x04\x02\x08\n\r\n\x05\x05\ + \x06\x02\x18\x02\x12\x04\xfa\x04\x0b\r\n\x0c\n\x04\x05\x06\x02\x19\x12\ + \x04\xfb\x04\x02\x0e\n\r\n\x05\x05\x06\x02\x19\x01\x12\x04\xfb\x04\x02\ + \x08\n\r\n\x05\x05\x06\x02\x19\x02\x12\x04\xfb\x04\x0b\r\n\x0c\n\x04\x05\ + \x06\x02\x1a\x12\x04\xfc\x04\x02\x0e\n\r\n\x05\x05\x06\x02\x1a\x01\x12\ + \x04\xfc\x04\x02\x08\n\r\n\x05\x05\x06\x02\x1a\x02\x12\x04\xfc\x04\x0b\r\ + \n\x0c\n\x04\x05\x06\x02\x1b\x12\x04\xfd\x04\x02\x0c\n\r\n\x05\x05\x06\ + \x02\x1b\x01\x12\x04\xfd\x04\x02\x06\n\r\n\x05\x05\x06\x02\x1b\x02\x12\ + \x04\xfd\x04\t\x0b\n\x0c\n\x04\x05\x06\x02\x1c\x12\x04\xfe\x04\x02\x0c\n\ + \r\n\x05\x05\x06\x02\x1c\x01\x12\x04\xfe\x04\x02\x06\n\r\n\x05\x05\x06\ + \x02\x1c\x02\x12\x04\xfe\x04\t\x0b\n\x0c\n\x04\x05\x06\x02\x1d\x12\x04\ + \xff\x04\x02\x0f\n\r\n\x05\x05\x06\x02\x1d\x01\x12\x04\xff\x04\x02\t\n\r\ + \n\x05\x05\x06\x02\x1d\x02\x12\x04\xff\x04\x0c\x0e\n\x0c\n\x04\x05\x06\ + \x02\x1e\x12\x04\x80\x05\x02\x12\n\r\n\x05\x05\x06\x02\x1e\x01\x12\x04\ + \x80\x05\x02\x0c\n\r\n\x05\x05\x06\x02\x1e\x02\x12\x04\x80\x05\x0f\x11\n\ + \x0c\n\x04\x05\x06\x02\x1f\x12\x04\x81\x05\x02\x12\n\r\n\x05\x05\x06\x02\ + \x1f\x01\x12\x04\x81\x05\x02\x0c\n\r\n\x05\x05\x06\x02\x1f\x02\x12\x04\ + \x81\x05\x0f\x11\n\x0c\n\x04\x05\x06\x02\x20\x12\x04\x82\x05\x02\x12\n\r\ + \n\x05\x05\x06\x02\x20\x01\x12\x04\x82\x05\x02\x0c\n\r\n\x05\x05\x06\x02\ + \x20\x02\x12\x04\x82\x05\x0f\x11\n\x0c\n\x04\x05\x06\x02!\x12\x04\x83\ + \x05\x02\n\n\r\n\x05\x05\x06\x02!\x01\x12\x04\x83\x05\x02\x04\n\r\n\x05\ + \x05\x06\x02!\x02\x12\x04\x83\x05\x07\t\n\x0c\n\x04\x05\x06\x02\"\x12\ + \x04\x84\x05\x02\r\n\r\n\x05\x05\x06\x02\"\x01\x12\x04\x84\x05\x02\x08\n\ + \r\n\x05\x05\x06\x02\"\x02\x12\x04\x84\x05\x0b\x0c\n\x0c\n\x04\x05\x06\ + \x02#\x12\x04\x85\x05\x02\x0c\n\r\n\x05\x05\x06\x02#\x01\x12\x04\x85\x05\ + \x02\x06\n\r\n\x05\x05\x06\x02#\x02\x12\x04\x85\x05\t\x0b\n\x0c\n\x04\ + \x05\x06\x02$\x12\x04\x86\x05\x02\x0c\n\r\n\x05\x05\x06\x02$\x01\x12\x04\ + \x86\x05\x02\x06\n\r\n\x05\x05\x06\x02$\x02\x12\x04\x86\x05\t\x0b\n\x0c\ + \n\x04\x05\x06\x02%\x12\x04\x87\x05\x02\x12\n\r\n\x05\x05\x06\x02%\x01\ + \x12\x04\x87\x05\x02\x0c\n\r\n\x05\x05\x06\x02%\x02\x12\x04\x87\x05\x0f\ + \x11\n\x0c\n\x04\x05\x06\x02&\x12\x04\x88\x05\x02\x0f\n\r\n\x05\x05\x06\ + \x02&\x01\x12\x04\x88\x05\x02\t\n\r\n\x05\x05\x06\x02&\x02\x12\x04\x88\ + \x05\x0c\x0e\n\x0c\n\x04\x05\x06\x02'\x12\x04\x89\x05\x02\r\n\r\n\x05\ + \x05\x06\x02'\x01\x12\x04\x89\x05\x02\x07\n\r\n\x05\x05\x06\x02'\x02\x12\ + \x04\x89\x05\n\x0c\n\x0c\n\x04\x05\x06\x02(\x12\x04\x8a\x05\x02\x0b\n\r\ + \n\x05\x05\x06\x02(\x01\x12\x04\x8a\x05\x02\x05\n\r\n\x05\x05\x06\x02(\ + \x02\x12\x04\x8a\x05\x08\n\n\x0c\n\x04\x05\x06\x02)\x12\x04\x8b\x05\x02\ + \t\n\r\n\x05\x05\x06\x02)\x01\x12\x04\x8b\x05\x02\x03\n\r\n\x05\x05\x06\ + \x02)\x02\x12\x04\x8b\x05\x06\x08\n\x0c\n\x04\x05\x06\x02*\x12\x04\x8c\ + \x05\x02\x0c\n\r\n\x05\x05\x06\x02*\x01\x12\x04\x8c\x05\x02\x06\n\r\n\ + \x05\x05\x06\x02*\x02\x12\x04\x8c\x05\t\x0b\n\x0c\n\x04\x05\x06\x02+\x12\ + \x04\x8d\x05\x02\x0b\n\r\n\x05\x05\x06\x02+\x01\x12\x04\x8d\x05\x02\x06\ + \n\r\n\x05\x05\x06\x02+\x02\x12\x04\x8d\x05\t\n\n\x0c\n\x04\x05\x06\x02,\ + \x12\x04\x8e\x05\x02\x12\n\r\n\x05\x05\x06\x02,\x01\x12\x04\x8e\x05\x02\ + \x0c\n\r\n\x05\x05\x06\x02,\x02\x12\x04\x8e\x05\x0f\x11\n\x0c\n\x04\x05\ + \x06\x02-\x12\x04\x8f\x05\x02\x17\n\r\n\x05\x05\x06\x02-\x01\x12\x04\x8f\ + \x05\x02\x11\n\r\n\x05\x05\x06\x02-\x02\x12\x04\x8f\x05\x14\x16\n\x0c\n\ + \x04\x05\x06\x02.\x12\x04\x90\x05\x02\x0f\n\r\n\x05\x05\x06\x02.\x01\x12\ + \x04\x90\x05\x02\t\n\r\n\x05\x05\x06\x02.\x02\x12\x04\x90\x05\x0c\x0e\n\ + \x0c\n\x04\x05\x06\x02/\x12\x04\x91\x05\x02\x0e\n\r\n\x05\x05\x06\x02/\ + \x01\x12\x04\x91\x05\x02\x07\n\r\n\x05\x05\x06\x02/\x02\x12\x04\x91\x05\ + \x0b\r\n\x0c\n\x04\x05\x06\x020\x12\x04\x92\x05\x02\r\n\r\n\x05\x05\x06\ + \x020\x01\x12\x04\x92\x05\x02\x08\n\r\n\x05\x05\x06\x020\x02\x12\x04\x92\ + \x05\x0b\x0c\n\x0c\n\x04\x05\x06\x021\x12\x04\x93\x05\x02\r\n\r\n\x05\ + \x05\x06\x021\x01\x12\x04\x93\x05\x02\x07\n\r\n\x05\x05\x06\x021\x02\x12\ + \x04\x93\x05\n\x0c\n\x0c\n\x04\x05\x06\x022\x12\x04\x94\x05\x02\x0c\n\r\ + \n\x05\x05\x06\x022\x01\x12\x04\x94\x05\x02\x06\n\r\n\x05\x05\x06\x022\ + \x02\x12\x04\x94\x05\t\x0b\n\x0c\n\x04\x05\x06\x023\x12\x04\x95\x05\x02\ + \x0c\n\r\n\x05\x05\x06\x023\x01\x12\x04\x95\x05\x02\x06\n\r\n\x05\x05\ + \x06\x023\x02\x12\x04\x95\x05\t\x0b\n\x0c\n\x04\x05\x06\x024\x12\x04\x96\ + \x05\x02\x0b\n\r\n\x05\x05\x06\x024\x01\x12\x04\x96\x05\x02\x05\n\r\n\ + \x05\x05\x06\x024\x02\x12\x04\x96\x05\x08\n\n\x0c\n\x04\x05\x06\x025\x12\ + \x04\x97\x05\x02\x10\n\r\n\x05\x05\x06\x025\x01\x12\x04\x97\x05\x02\n\n\ + \r\n\x05\x05\x06\x025\x02\x12\x04\x97\x05\r\x0f\n\x0c\n\x04\x05\x06\x026\ + \x12\x04\x98\x05\x02\x10\n\r\n\x05\x05\x06\x026\x01\x12\x04\x98\x05\x02\ + \n\n\r\n\x05\x05\x06\x026\x02\x12\x04\x98\x05\r\x0f\n\x0c\n\x04\x05\x06\ + \x027\x12\x04\x99\x05\x02\x0e\n\r\n\x05\x05\x06\x027\x01\x12\x04\x99\x05\ + \x02\x08\n\r\n\x05\x05\x06\x027\x02\x12\x04\x99\x05\x0b\r\n\x0c\n\x04\ + \x05\x06\x028\x12\x04\x9a\x05\x02\x0b\n\r\n\x05\x05\x06\x028\x01\x12\x04\ + \x9a\x05\x02\x05\n\r\n\x05\x05\x06\x028\x02\x12\x04\x9a\x05\x08\n\n\x0c\ + \n\x04\x05\x06\x029\x12\x04\x9b\x05\x02\r\n\r\n\x05\x05\x06\x029\x01\x12\ + \x04\x9b\x05\x02\x07\n\r\n\x05\x05\x06\x029\x02\x12\x04\x9b\x05\n\x0c\n\ + \x0c\n\x04\x05\x06\x02:\x12\x04\x9c\x05\x02\x13\n\r\n\x05\x05\x06\x02:\ + \x01\x12\x04\x9c\x05\x02\r\n\r\n\x05\x05\x06\x02:\x02\x12\x04\x9c\x05\ + \x10\x12\n\x0c\n\x04\x05\x06\x02;\x12\x04\x9d\x05\x02\x15\n\r\n\x05\x05\ + \x06\x02;\x01\x12\x04\x9d\x05\x02\x0f\n\r\n\x05\x05\x06\x02;\x02\x12\x04\ + \x9d\x05\x12\x14\n\x0c\n\x04\x05\x06\x02<\x12\x04\x9e\x05\x02\x0b\n\r\n\ + \x05\x05\x06\x02<\x01\x12\x04\x9e\x05\x02\x05\n\r\n\x05\x05\x06\x02<\x02\ + \x12\x04\x9e\x05\x08\n\n\x0c\n\x04\x05\x06\x02=\x12\x04\x9f\x05\x02\r\n\ + \r\n\x05\x05\x06\x02=\x01\x12\x04\x9f\x05\x02\x07\n\r\n\x05\x05\x06\x02=\ + \x02\x12\x04\x9f\x05\n\x0c\n\x0c\n\x04\x05\x06\x02>\x12\x04\xa0\x05\x02\ + \x0c\n\r\n\x05\x05\x06\x02>\x01\x12\x04\xa0\x05\x02\x06\n\r\n\x05\x05\ + \x06\x02>\x02\x12\x04\xa0\x05\t\x0b\n\x0c\n\x04\x05\x06\x02?\x12\x04\xa1\ + \x05\x02\x12\n\r\n\x05\x05\x06\x02?\x01\x12\x04\xa1\x05\x02\x0c\n\r\n\ + \x05\x05\x06\x02?\x02\x12\x04\xa1\x05\x0f\x11\n\x0c\n\x04\x05\x06\x02@\ + \x12\x04\xa2\x05\x02\x0e\n\r\n\x05\x05\x06\x02@\x01\x12\x04\xa2\x05\x02\ + \x08\n\r\n\x05\x05\x06\x02@\x02\x12\x04\xa2\x05\x0b\r\n\x0c\n\x04\x05\ + \x06\x02A\x12\x04\xa3\x05\x02\x0e\n\r\n\x05\x05\x06\x02A\x01\x12\x04\xa3\ + \x05\x02\x08\n\r\n\x05\x05\x06\x02A\x02\x12\x04\xa3\x05\x0b\r\n\x0c\n\ + \x04\x05\x06\x02B\x12\x04\xa4\x05\x02\t\n\r\n\x05\x05\x06\x02B\x01\x12\ + \x04\xa4\x05\x02\x03\n\r\n\x05\x05\x06\x02B\x02\x12\x04\xa4\x05\x06\x08\ + \n\x0c\n\x04\x05\x06\x02C\x12\x04\xa5\x05\x02\x0e\n\r\n\x05\x05\x06\x02C\ + \x01\x12\x04\xa5\x05\x02\x08\n\r\n\x05\x05\x06\x02C\x02\x12\x04\xa5\x05\ + \x0b\r\n\x0c\n\x04\x05\x06\x02D\x12\x04\xa6\x05\x02\x0c\n\r\n\x05\x05\ + \x06\x02D\x01\x12\x04\xa6\x05\x02\x06\n\r\n\x05\x05\x06\x02D\x02\x12\x04\ + \xa6\x05\t\x0b\n\x0c\n\x04\x05\x06\x02E\x12\x04\xa7\x05\x02\r\n\r\n\x05\ + \x05\x06\x02E\x01\x12\x04\xa7\x05\x02\x07\n\r\n\x05\x05\x06\x02E\x02\x12\ + \x04\xa7\x05\n\x0c\n\x0c\n\x04\x05\x06\x02F\x12\x04\xa8\x05\x02\x0c\n\r\ + \n\x05\x05\x06\x02F\x01\x12\x04\xa8\x05\x02\x06\n\r\n\x05\x05\x06\x02F\ + \x02\x12\x04\xa8\x05\t\x0b\n\x0c\n\x04\x05\x06\x02G\x12\x04\xa9\x05\x02\ + \x0c\n\r\n\x05\x05\x06\x02G\x01\x12\x04\xa9\x05\x02\x06\n\r\n\x05\x05\ + \x06\x02G\x02\x12\x04\xa9\x05\t\x0b\n\x0c\n\x04\x05\x06\x02H\x12\x04\xaa\ + \x05\x02\x0c\n\r\n\x05\x05\x06\x02H\x01\x12\x04\xaa\x05\x02\x06\n\r\n\ + \x05\x05\x06\x02H\x02\x12\x04\xaa\x05\t\x0b\n\x0c\n\x04\x05\x06\x02I\x12\ + \x04\xab\x05\x02\x0b\n\r\n\x05\x05\x06\x02I\x01\x12\x04\xab\x05\x02\x05\ + \n\r\n\x05\x05\x06\x02I\x02\x12\x04\xab\x05\x08\n\n\x0c\n\x04\x05\x06\ + \x02J\x12\x04\xac\x05\x02\x0c\n\r\n\x05\x05\x06\x02J\x01\x12\x04\xac\x05\ + \x02\x06\n\r\n\x05\x05\x06\x02J\x02\x12\x04\xac\x05\t\x0b\n\x0c\n\x04\ + \x05\x06\x02K\x12\x04\xad\x05\x02\x0b\n\r\n\x05\x05\x06\x02K\x01\x12\x04\ + \xad\x05\x02\x05\n\r\n\x05\x05\x06\x02K\x02\x12\x04\xad\x05\x08\n\n\x0c\ + \n\x04\x05\x06\x02L\x12\x04\xae\x05\x02\x0b\n\r\n\x05\x05\x06\x02L\x01\ + \x12\x04\xae\x05\x02\x05\n\r\n\x05\x05\x06\x02L\x02\x12\x04\xae\x05\x08\ + \n\n\x0c\n\x04\x05\x06\x02M\x12\x04\xaf\x05\x02\x0c\n\r\n\x05\x05\x06\ + \x02M\x01\x12\x04\xaf\x05\x02\x06\n\r\n\x05\x05\x06\x02M\x02\x12\x04\xaf\ + \x05\t\x0b\n\x0c\n\x04\x05\x06\x02N\x12\x04\xb0\x05\x02\x0c\n\r\n\x05\ + \x05\x06\x02N\x01\x12\x04\xb0\x05\x02\x07\n\r\n\x05\x05\x06\x02N\x02\x12\ + \x04\xb0\x05\n\x0b\n\x0c\n\x04\x05\x06\x02O\x12\x04\xb1\x05\x02\x0e\n\r\ + \n\x05\x05\x06\x02O\x01\x12\x04\xb1\x05\x02\x08\n\r\n\x05\x05\x06\x02O\ + \x02\x12\x04\xb1\x05\x0b\r\n\x14\n\x04\x05\x06\x02P\x12\x04\xb2\x05\x02\ + \x13\"\x06\x20Bash\n\n\r\n\x05\x05\x06\x02P\x01\x12\x04\xb2\x05\x02\r\n\ + \r\n\x05\x05\x06\x02P\x02\x12\x04\xb2\x05\x10\x12\n\x0c\n\x04\x05\x06\ + \x02Q\x12\x04\xb3\x05\x02\x0f\n\r\n\x05\x05\x06\x02Q\x01\x12\x04\xb3\x05\ + \x02\t\n\r\n\x05\x05\x06\x02Q\x02\x12\x04\xb3\x05\x0c\x0e\n\x0c\n\x04\ + \x05\x06\x02R\x12\x04\xb4\x05\x02\x0c\n\r\n\x05\x05\x06\x02R\x01\x12\x04\ + \xb4\x05\x02\x07\n\r\n\x05\x05\x06\x02R\x02\x12\x04\xb4\x05\n\x0b\n\x0c\ + \n\x04\x05\x06\x02S\x12\x04\xb5\x05\x02\x0c\n\r\n\x05\x05\x06\x02S\x01\ + \x12\x04\xb5\x05\x02\x06\n\r\n\x05\x05\x06\x02S\x02\x12\x04\xb5\x05\t\ + \x0b\n\x0c\n\x04\x05\x06\x02T\x12\x04\xb6\x05\x02\x0b\n\r\n\x05\x05\x06\ + \x02T\x01\x12\x04\xb6\x05\x02\x05\n\r\n\x05\x05\x06\x02T\x02\x12\x04\xb6\ + \x05\x08\n\n\x0c\n\x04\x05\x06\x02U\x12\x04\xb7\x05\x02\x12\n\r\n\x05\ + \x05\x06\x02U\x01\x12\x04\xb7\x05\x02\x0c\n\r\n\x05\x05\x06\x02U\x02\x12\ + \x04\xb7\x05\x0f\x11\n\x0c\n\x04\x05\x06\x02V\x12\x04\xb8\x05\x02\x17\n\ + \r\n\x05\x05\x06\x02V\x01\x12\x04\xb8\x05\x02\x11\n\r\n\x05\x05\x06\x02V\ + \x02\x12\x04\xb8\x05\x14\x16\n\x0c\n\x04\x05\x06\x02W\x12\x04\xb9\x05\ + \x02\x13\n\r\n\x05\x05\x06\x02W\x01\x12\x04\xb9\x05\x02\r\n\r\n\x05\x05\ + \x06\x02W\x02\x12\x04\xb9\x05\x10\x12\n\x0c\n\x04\x05\x06\x02X\x12\x04\ + \xba\x05\x02\x0b\n\r\n\x05\x05\x06\x02X\x01\x12\x04\xba\x05\x02\x05\n\r\ + \n\x05\x05\x06\x02X\x02\x12\x04\xba\x05\x08\n\n\x0c\n\x04\x05\x06\x02Y\ + \x12\x04\xbb\x05\x02\x0f\n\r\n\x05\x05\x06\x02Y\x01\x12\x04\xbb\x05\x02\ + \t\n\r\n\x05\x05\x06\x02Y\x02\x12\x04\xbb\x05\x0c\x0e\n\x0c\n\x04\x05\ + \x06\x02Z\x12\x04\xbc\x05\x02\x0b\n\r\n\x05\x05\x06\x02Z\x01\x12\x04\xbc\ + \x05\x02\x05\n\r\n\x05\x05\x06\x02Z\x02\x12\x04\xbc\x05\x08\n\n\x0c\n\ + \x04\x05\x06\x02[\x12\x04\xbd\x05\x02\x0b\n\r\n\x05\x05\x06\x02[\x01\x12\ + \x04\xbd\x05\x02\x05\n\r\n\x05\x05\x06\x02[\x02\x12\x04\xbd\x05\x08\n\n\ + \x0c\n\x04\x05\x06\x02\\\x12\x04\xbe\x05\x02\x0c\n\r\n\x05\x05\x06\x02\\\ + \x01\x12\x04\xbe\x05\x02\x06\n\r\n\x05\x05\x06\x02\\\x02\x12\x04\xbe\x05\ + \t\x0b\n\x92\x03\n\x04\x05\x06\x02]\x12\x04\xbf\x05\x02\x0b\"\x83\x03\ + \x20NextLanguage\x20=\x2095;\n\x20Steps\x20add\x20a\x20new\x20language:\ + \n\x201.\x20Copy-paste\x20the\x20\"NextLanguage\x20=\x20N\"\x20line\x20a\ + bove\n\x202.\x20Increment\x20\"NextLanguage\x20=\x20N\"\x20to\x20\"NextL\ + anguage\x20=\x20N+1\"\n\x203.\x20Replace\x20\"NextLanguage\x20=\x20N\"\ + \x20with\x20the\x20name\x20of\x20the\x20new\x20language.\n\x204.\x20Move\ + \x20the\x20new\x20language\x20to\x20the\x20correct\x20line\x20above\x20u\ + sing\x20alphabetical\x20order\n\x205.\x20(optional)\x20Add\x20a\x20brief\ + \x20comment\x20behind\x20the\x20language\x20if\x20the\x20name\x20is\x20n\ + ot\x20self-explanatory\n\n\r\n\x05\x05\x06\x02]\x01\x12\x04\xbf\x05\x02\ + \x05\n\r\n\x05\x05\x06\x02]\x02\x12\x04\xbf\x05\x08\nb\x06proto3\ "; /// `FileDescriptorProto` object which was a source for this generated file diff --git a/bindings/typescript/scip.ts b/bindings/typescript/scip.ts index 825990be..1138ea62 100644 --- a/bindings/typescript/scip.ts +++ b/bindings/typescript/scip.ts @@ -1042,6 +1042,7 @@ export namespace scip { documentation?: string[]; relationships?: Relationship[]; kind?: SymbolInformation.Kind; + display_name?: string; }) { super(); pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [3, 4], this.#one_of_decls); @@ -1058,6 +1059,9 @@ export namespace scip { if ("kind" in data && data.kind != undefined) { this.kind = data.kind; } + if ("display_name" in data && data.display_name != undefined) { + this.display_name = data.display_name; + } } } get symbol() { @@ -1084,11 +1088,18 @@ export namespace scip { set kind(value: SymbolInformation.Kind) { pb_1.Message.setField(this, 5, value); } + get display_name() { + return pb_1.Message.getFieldWithDefault(this, 6, "") as string; + } + set display_name(value: string) { + pb_1.Message.setField(this, 6, value); + } static fromObject(data: { symbol?: string; documentation?: string[]; relationships?: ReturnType[]; kind?: SymbolInformation.Kind; + display_name?: string; }): SymbolInformation { const message = new SymbolInformation({}); if (data.symbol != null) { @@ -1103,6 +1114,9 @@ export namespace scip { if (data.kind != null) { message.kind = data.kind; } + if (data.display_name != null) { + message.display_name = data.display_name; + } return message; } toObject() { @@ -1111,6 +1125,7 @@ export namespace scip { documentation?: string[]; relationships?: ReturnType[]; kind?: SymbolInformation.Kind; + display_name?: string; } = {}; if (this.symbol != null) { data.symbol = this.symbol; @@ -1124,6 +1139,9 @@ export namespace scip { if (this.kind != null) { data.kind = this.kind; } + if (this.display_name != null) { + data.display_name = this.display_name; + } return data; } serialize(): Uint8Array; @@ -1138,6 +1156,8 @@ export namespace scip { writer.writeRepeatedMessage(4, this.relationships, (item: Relationship) => item.serialize(writer)); if (this.kind != SymbolInformation.Kind.UnspecifiedKind) writer.writeEnum(5, this.kind); + if (this.display_name.length) + writer.writeString(6, this.display_name); if (!w) return writer.getResultBuffer(); } @@ -1159,6 +1179,9 @@ export namespace scip { case 5: message.kind = reader.readEnum(); break; + case 6: + message.display_name = reader.readString(); + break; default: reader.skipField(); } } diff --git a/docs/scip.md b/docs/scip.md index 76d8d996..63909833 100644 --- a/docs/scip.md +++ b/docs/scip.md @@ -297,10 +297,21 @@ docstring or what package it's defined it. | repeated **documentation** | string | (optional, but strongly recommended) The markdown-formatted documentation for this symbol. This field is repeated to allow different kinds of documentation. For example, it's nice to include both the signature of a method (parameters and return type) along with the accompanying docstring. | | repeated **relationships** | Relationship | (optional) Relationships to other symbols (e.g., implements, type definition). | | **kind** | Kind | The kind of this symbol. Use this field instead of `SymbolDescriptor.Suffix` to determine whether something is, for example, a class or a method. | +| **display_name** | string | (optional) The name of this symbol as it should be displayed to the user. The `symbol` field is not a reliable source of the display name for several reasons: | + +Additional notes on **display_name**: + +(optional) The name of this symbol as it should be displayed to the user. The `symbol` field +is not a reliable source of the display name for several reasons: + +- Local symbols don't encode the name. +- Some languages have case-insensitive names, so the symbol is all-lowercase. +- The symbol may encode names with special characters that should not be + displayed to the user. #### Kind -Kind represents the fine-grained category of a symbol, suitable for presenting +(optional) Kind represents the fine-grained category of a symbol, suitable for presenting information about the symbol's meaning in the language. For example: diff --git a/scip.proto b/scip.proto index a5515526..e5336cb7 100644 --- a/scip.proto +++ b/scip.proto @@ -188,7 +188,7 @@ message SymbolInformation { // `SymbolDescriptor.Suffix` to determine whether something is, for example, a // class or a method. Kind kind = 5; - // Kind represents the fine-grained category of a symbol, suitable for presenting + // (optional) Kind represents the fine-grained category of a symbol, suitable for presenting // information about the symbol's meaning in the language. // // For example: @@ -299,6 +299,14 @@ message SymbolInformation { // Next = 62; // Feel free to open a PR proposing new language-specific kinds. } + // (optional) The name of this symbol as it should be displayed to the user. The `symbol` field + // is not a reliable source of the display name for several reasons: + // + // - Local symbols don't encode the name. + // - Some languages have case-insensitive names, so the symbol is all-lowercase. + // - The symbol may encode names with special characters that should not be + // displayed to the user. + string display_name = 6; } From cb68323a4c29fcd75e724489d1417804331fdf5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93lafur=20P=C3=A1ll=20Geirsson?= Date: Thu, 25 May 2023 08:00:00 +0200 Subject: [PATCH 2/2] Add example for `display_name`. --- bindings/go/scip/scip.pb.go | 6 +- bindings/rust/src/generated/scip.rs | 846 ++++++++++++++-------------- docs/scip.md | 8 +- scip.proto | 6 +- 4 files changed, 438 insertions(+), 428 deletions(-) diff --git a/bindings/go/scip/scip.pb.go b/bindings/go/scip/scip.pb.go index d52e092f..65a8cc43 100644 --- a/bindings/go/scip/scip.pb.go +++ b/bindings/go/scip/scip.pb.go @@ -1739,8 +1739,10 @@ type SymbolInformation struct { // `SymbolDescriptor.Suffix` to determine whether something is, for example, a // class or a method. Kind SymbolInformation_Kind `protobuf:"varint,5,opt,name=kind,proto3,enum=scip.SymbolInformation_Kind" json:"kind,omitempty"` - // (optional) The name of this symbol as it should be displayed to the user. The `symbol` field - // is not a reliable source of the display name for several reasons: + // (optional) The name of this symbol as it should be displayed to the user. + // For example, the symbol "com/example/MyClass#myMethod(+1)." should have the + // display name "myMethod". The `symbol` field is not a reliable source of + // the display name for several reasons: // // - Local symbols don't encode the name. // - Some languages have case-insensitive names, so the symbol is all-lowercase. diff --git a/bindings/rust/src/generated/scip.rs b/bindings/rust/src/generated/scip.rs index 6e4de644..8278d59e 100644 --- a/bindings/rust/src/generated/scip.rs +++ b/bindings/rust/src/generated/scip.rs @@ -1402,8 +1402,10 @@ pub struct SymbolInformation { /// class or a method. // @@protoc_insertion_point(field:scip.SymbolInformation.kind) pub kind: ::protobuf::EnumOrUnknown, - /// (optional) The name of this symbol as it should be displayed to the user. The `symbol` field - /// is not a reliable source of the display name for several reasons: + /// (optional) The name of this symbol as it should be displayed to the user. + /// For example, the symbol "com/example/MyClass#myMethod(+1)." should have the + /// display name "myMethod". The `symbol` field is not a reliable source of + /// the display name for several reasons: /// /// - Local symbols don't encode the name. /// - Some languages have case-insensitive names, so the symbol is all-lowercase. @@ -3874,7 +3876,7 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \x0fTypeScriptReact\x10^\x12\x0f\n\x0bVisualBasic\x10?\x12\x07\n\x03Vue\ \x10\x19\x12\x0b\n\x07Wolfram\x105\x12\x07\n\x03XML\x10\x1f\x12\x07\n\ \x03XSL\x10\x20\x12\x08\n\x04YAML\x10J\x12\x07\n\x03Zig\x10&B/Z-github.c\ - om/sourcegraph/scip/bindings/go/scip/J\x81\xf9\x01\n\x07\x12\x05\n\0\xc7\ + om/sourcegraph/scip/bindings/go/scip/J\xe8\xf9\x01\n\x07\x12\x05\n\0\xc9\ \x05\x01\n\x82\x04\n\x01\x0c\x12\x03\n\0\x122\xf7\x03\x20An\x20index\x20\ contains\x20one\x20or\x20more\x20pieces\x20of\x20information\x20about\ \x20a\x20given\x20piece\x20of\n\x20source\x20code\x20or\x20software\x20a\ @@ -4113,7 +4115,7 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \x12\x04\xa9\x01\x19\x1a\n\x0c\n\x04\x04\x06\x02\x02\x12\x04\xaa\x01\x02\ \x14\n\r\n\x05\x04\x06\x02\x02\x06\x12\x04\xaa\x01\x02\x08\n\r\n\x05\x04\ \x06\x02\x02\x01\x12\x04\xaa\x01\t\x0f\n\r\n\x05\x04\x06\x02\x02\x03\x12\ - \x04\xaa\x01\x12\x13\n\x83\x01\n\x02\x04\x07\x12\x06\xaf\x01\0\xb5\x02\ + \x04\xaa\x01\x12\x13\n\x83\x01\n\x02\x04\x07\x12\x06\xaf\x01\0\xb7\x02\ \x01\x1au\x20SymbolInformation\x20defines\x20metadata\x20about\x20a\x20s\ ymbol,\x20such\x20as\x20the\x20symbol's\n\x20docstring\x20or\x20what\x20\ package\x20it's\x20defined\x20it.\n\n\x0b\n\x03\x04\x07\x01\x12\x04\xaf\ @@ -4338,24 +4340,26 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \x07\x04\0\x02=\x12\x04\xa9\x02\x06\x14\"K\x20Next\x20=\x2062;\n\x20Feel\ \x20free\x20to\x20open\x20a\x20PR\x20proposing\x20new\x20language-specif\ ic\x20kinds.\n\n\x0f\n\x07\x04\x07\x04\0\x02=\x01\x12\x04\xa9\x02\x06\ - \x0e\n\x0f\n\x07\x04\x07\x04\0\x02=\x02\x12\x04\xa9\x02\x11\x13\n\x8c\ - \x03\n\x04\x04\x07\x02\x04\x12\x04\xb4\x02\x02\x1a\x1a\xfd\x02\x20(optio\ + \x0e\n\x0f\n\x07\x04\x07\x04\0\x02=\x02\x12\x04\xa9\x02\x11\x13\n\xf3\ + \x03\n\x04\x04\x07\x02\x04\x12\x04\xb6\x02\x02\x1a\x1a\xe4\x03\x20(optio\ nal)\x20The\x20name\x20of\x20this\x20symbol\x20as\x20it\x20should\x20be\ - \x20displayed\x20to\x20the\x20user.\x20The\x20`symbol`\x20field\n\x20is\ - \x20not\x20a\x20reliable\x20source\x20of\x20the\x20display\x20name\x20fo\ - r\x20several\x20reasons:\n\n\x20-\x20Local\x20symbols\x20don't\x20encode\ - \x20the\x20name.\n\x20-\x20Some\x20languages\x20have\x20case-insensitive\ - \x20names,\x20so\x20the\x20symbol\x20is\x20all-lowercase.\n\x20-\x20The\ - \x20symbol\x20may\x20encode\x20names\x20with\x20special\x20characters\ + \x20displayed\x20to\x20the\x20user.\n\x20For\x20example,\x20the\x20symbo\ + l\x20\"com/example/MyClass#myMethod(+1).\"\x20should\x20have\x20the\n\ + \x20display\x20name\x20\"myMethod\".\x20The\x20`symbol`\x20field\x20is\ + \x20not\x20a\x20reliable\x20source\x20of\n\x20the\x20display\x20name\x20\ + for\x20several\x20reasons:\n\n\x20-\x20Local\x20symbols\x20don't\x20enco\ + de\x20the\x20name.\n\x20-\x20Some\x20languages\x20have\x20case-insensiti\ + ve\x20names,\x20so\x20the\x20symbol\x20is\x20all-lowercase.\n\x20-\x20Th\ + e\x20symbol\x20may\x20encode\x20names\x20with\x20special\x20characters\ \x20that\x20should\x20not\x20be\n\x20\x20\x20displayed\x20to\x20the\x20u\ - ser.\n\n\r\n\x05\x04\x07\x02\x04\x05\x12\x04\xb4\x02\x02\x08\n\r\n\x05\ - \x04\x07\x02\x04\x01\x12\x04\xb4\x02\t\x15\n\r\n\x05\x04\x07\x02\x04\x03\ - \x12\x04\xb4\x02\x18\x19\n\x0c\n\x02\x04\x08\x12\x06\xb8\x02\0\xf0\x02\ - \x01\n\x0b\n\x03\x04\x08\x01\x12\x04\xb8\x02\x08\x14\n\x0c\n\x04\x04\x08\ - \x02\0\x12\x04\xb9\x02\x02\x14\n\r\n\x05\x04\x08\x02\0\x05\x12\x04\xb9\ - \x02\x02\x08\n\r\n\x05\x04\x08\x02\0\x01\x12\x04\xb9\x02\t\x0f\n\r\n\x05\ - \x04\x08\x02\0\x03\x12\x04\xb9\x02\x12\x13\n\xde\x08\n\x04\x04\x08\x02\ - \x01\x12\x04\xd2\x02\x02\x18\x1a\xcf\x08\x20When\x20resolving\x20\"Find\ + ser.\n\n\r\n\x05\x04\x07\x02\x04\x05\x12\x04\xb6\x02\x02\x08\n\r\n\x05\ + \x04\x07\x02\x04\x01\x12\x04\xb6\x02\t\x15\n\r\n\x05\x04\x07\x02\x04\x03\ + \x12\x04\xb6\x02\x18\x19\n\x0c\n\x02\x04\x08\x12\x06\xba\x02\0\xf2\x02\ + \x01\n\x0b\n\x03\x04\x08\x01\x12\x04\xba\x02\x08\x14\n\x0c\n\x04\x04\x08\ + \x02\0\x12\x04\xbb\x02\x02\x14\n\r\n\x05\x04\x08\x02\0\x05\x12\x04\xbb\ + \x02\x02\x08\n\r\n\x05\x04\x08\x02\0\x01\x12\x04\xbb\x02\t\x0f\n\r\n\x05\ + \x04\x08\x02\0\x03\x12\x04\xbb\x02\x12\x13\n\xde\x08\n\x04\x04\x08\x02\ + \x01\x12\x04\xd4\x02\x02\x18\x1a\xcf\x08\x20When\x20resolving\x20\"Find\ \x20references\",\x20this\x20field\x20documents\x20what\x20other\x20symb\ ols\n\x20should\x20be\x20included\x20together\x20with\x20this\x20symbol.\ \x20For\x20example,\x20consider\x20the\n\x20following\x20TypeScript\x20c\ @@ -4380,9 +4384,9 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \x20Vice-versa,\x20doing\x20\"Find\n\x20references\"\x20on\x20the\x20`Do\ g#sound()`\x20method\x20should\x20include\x20references\x20to\x20the\n\ \x20`Animal#sound()`\x20method\x20as\x20well.\n\n\r\n\x05\x04\x08\x02\ - \x01\x05\x12\x04\xd2\x02\x02\x06\n\r\n\x05\x04\x08\x02\x01\x01\x12\x04\ - \xd2\x02\x07\x13\n\r\n\x05\x04\x08\x02\x01\x03\x12\x04\xd2\x02\x16\x17\n\ - \xee\x03\n\x04\x04\x08\x02\x02\x12\x04\xdb\x02\x02\x1d\x1a\xdf\x03\x20Si\ + \x01\x05\x12\x04\xd4\x02\x02\x06\n\r\n\x05\x04\x08\x02\x01\x01\x12\x04\ + \xd4\x02\x07\x13\n\r\n\x05\x04\x08\x02\x01\x03\x12\x04\xd4\x02\x16\x17\n\ + \xee\x03\n\x04\x04\x08\x02\x02\x12\x04\xdd\x02\x02\x1d\x1a\xdf\x03\x20Si\ milar\x20to\x20`is_reference`\x20but\x20for\x20\"Find\x20implementations\ \".\n\x20It's\x20common\x20for\x20`is_implementation`\x20and\x20`is_refe\ rence`\x20to\x20both\x20be\x20true\x20but\n\x20it's\x20not\x20always\x20\ @@ -4393,14 +4397,14 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \x20symbol\x20should\x20not\x20return\n\x20\"Dog#\".\x20We\x20only\x20wa\ nt\x20\"Dog#\"\x20to\x20return\x20as\x20a\x20result\x20for\x20\"Find\n\ \x20implementations\"\x20on\x20the\x20\"Animal#\"\x20symbol.\n\n\r\n\x05\ - \x04\x08\x02\x02\x05\x12\x04\xdb\x02\x02\x06\n\r\n\x05\x04\x08\x02\x02\ - \x01\x12\x04\xdb\x02\x07\x18\n\r\n\x05\x04\x08\x02\x02\x03\x12\x04\xdb\ - \x02\x1b\x1c\nP\n\x04\x04\x08\x02\x03\x12\x04\xdd\x02\x02\x1e\x1aB\x20Si\ + \x04\x08\x02\x02\x05\x12\x04\xdd\x02\x02\x06\n\r\n\x05\x04\x08\x02\x02\ + \x01\x12\x04\xdd\x02\x07\x18\n\r\n\x05\x04\x08\x02\x02\x03\x12\x04\xdd\ + \x02\x1b\x1c\nP\n\x04\x04\x08\x02\x03\x12\x04\xdf\x02\x02\x1e\x1aB\x20Si\ milar\x20to\x20`references_symbols`\x20but\x20for\x20\"Go\x20to\x20type\ - \x20definition\".\n\n\r\n\x05\x04\x08\x02\x03\x05\x12\x04\xdd\x02\x02\ - \x06\n\r\n\x05\x04\x08\x02\x03\x01\x12\x04\xdd\x02\x07\x19\n\r\n\x05\x04\ - \x08\x02\x03\x03\x12\x04\xdd\x02\x1c\x1d\n\xa7\x07\n\x04\x04\x08\x02\x04\ - \x12\x04\xee\x02\x02\x19\x1a\xd5\x06\x20Allows\x20overriding\x20the\x20b\ + \x20definition\".\n\n\r\n\x05\x04\x08\x02\x03\x05\x12\x04\xdf\x02\x02\ + \x06\n\r\n\x05\x04\x08\x02\x03\x01\x12\x04\xdf\x02\x07\x19\n\r\n\x05\x04\ + \x08\x02\x03\x03\x12\x04\xdf\x02\x1c\x1d\n\xa7\x07\n\x04\x04\x08\x02\x04\ + \x12\x04\xf0\x02\x02\x19\x1a\xd5\x06\x20Allows\x20overriding\x20the\x20b\ ehavior\x20of\x20\"Go\x20to\x20definition\"\x20and\x20\"Find\x20referenc\ es\"\n\x20for\x20symbols\x20which\x20do\x20not\x20have\x20a\x20definitio\ n\x20of\x20their\x20own\x20or\x20could\n\x20potentially\x20have\x20multi\ @@ -4420,9 +4424,9 @@ static file_descriptor_proto_data: &'static [u8] = b"\ n.\n\x20The\x20relationship\x20may\x20not\x20get\x20recorded\x20if\x20ei\ ther\x20symbol\x20is\x20local.\n\"A\x20Update\x20registerInverseRelation\ ships\x20on\x20adding\x20a\x20new\x20field\x20here.\n\n\r\n\x05\x04\x08\ - \x02\x04\x05\x12\x04\xee\x02\x02\x06\n\r\n\x05\x04\x08\x02\x04\x01\x12\ - \x04\xee\x02\x07\x14\n\r\n\x05\x04\x08\x02\x04\x03\x12\x04\xee\x02\x17\ - \x18\n\x88\x03\n\x02\x05\x02\x12\x06\xf7\x02\0\x87\x03\x01\x1a\xf9\x02\ + \x02\x04\x05\x12\x04\xf0\x02\x02\x06\n\r\n\x05\x04\x08\x02\x04\x01\x12\ + \x04\xf0\x02\x07\x14\n\r\n\x05\x04\x08\x02\x04\x03\x12\x04\xf0\x02\x17\ + \x18\n\x88\x03\n\x02\x05\x02\x12\x06\xf9\x02\0\x89\x03\x01\x1a\xf9\x02\ \x20SymbolRole\x20declares\x20what\x20\"role\"\x20a\x20symbol\x20has\x20\ in\x20an\x20occurrence.\x20A\x20role\x20is\n\x20encoded\x20as\x20a\x20bi\ tset\x20where\x20each\x20bit\x20represents\x20a\x20different\x20role.\ @@ -4431,163 +4435,163 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \n\x20enum\x20value\x20is\x20defined.\x20In\x20pseudocode,\x20this\x20ca\ n\x20be\x20implemented\x20with\x20the\n\x20logic:\x20`const\x20isImportR\ ole\x20=\x20(role.value\x20&\x20SymbolRole.Import.value)\x20>\x200`.\n\n\ - \x0b\n\x03\x05\x02\x01\x12\x04\xf7\x02\x05\x0f\nv\n\x04\x05\x02\x02\0\ - \x12\x04\xfa\x02\x02\x1c\x1ah\x20This\x20case\x20is\x20not\x20meant\x20t\ + \x0b\n\x03\x05\x02\x01\x12\x04\xf9\x02\x05\x0f\nv\n\x04\x05\x02\x02\0\ + \x12\x04\xfc\x02\x02\x1c\x1ah\x20This\x20case\x20is\x20not\x20meant\x20t\ o\x20be\x20used;\x20it\x20only\x20exists\x20to\x20avoid\x20an\x20error\n\ \x20from\x20the\x20Protobuf\x20code\x20generator.\n\n\r\n\x05\x05\x02\ - \x02\0\x01\x12\x04\xfa\x02\x02\x17\n\r\n\x05\x05\x02\x02\0\x02\x12\x04\ - \xfa\x02\x1a\x1b\nT\n\x04\x05\x02\x02\x01\x12\x04\xfc\x02\x02\x13\x1aF\ + \x02\0\x01\x12\x04\xfc\x02\x02\x17\n\r\n\x05\x05\x02\x02\0\x02\x12\x04\ + \xfc\x02\x1a\x1b\nT\n\x04\x05\x02\x02\x01\x12\x04\xfe\x02\x02\x13\x1aF\ \x20Is\x20the\x20symbol\x20defined\x20here?\x20If\x20not,\x20then\x20thi\ s\x20is\x20a\x20symbol\x20reference.\n\n\r\n\x05\x05\x02\x02\x01\x01\x12\ - \x04\xfc\x02\x02\x0c\n\r\n\x05\x05\x02\x02\x01\x02\x12\x04\xfc\x02\x0f\ - \x12\n,\n\x04\x05\x02\x02\x02\x12\x04\xfe\x02\x02\x0f\x1a\x1e\x20Is\x20t\ + \x04\xfe\x02\x02\x0c\n\r\n\x05\x05\x02\x02\x01\x02\x12\x04\xfe\x02\x0f\ + \x12\n,\n\x04\x05\x02\x02\x02\x12\x04\x80\x03\x02\x0f\x1a\x1e\x20Is\x20t\ he\x20symbol\x20imported\x20here?\n\n\r\n\x05\x05\x02\x02\x02\x01\x12\ - \x04\xfe\x02\x02\x08\n\r\n\x05\x05\x02\x02\x02\x02\x12\x04\xfe\x02\x0b\ - \x0e\n+\n\x04\x05\x02\x02\x03\x12\x04\x80\x03\x02\x14\x1a\x1d\x20Is\x20t\ + \x04\x80\x03\x02\x08\n\r\n\x05\x05\x02\x02\x02\x02\x12\x04\x80\x03\x0b\ + \x0e\n+\n\x04\x05\x02\x02\x03\x12\x04\x82\x03\x02\x14\x1a\x1d\x20Is\x20t\ he\x20symbol\x20written\x20here?\n\n\r\n\x05\x05\x02\x02\x03\x01\x12\x04\ - \x80\x03\x02\r\n\r\n\x05\x05\x02\x02\x03\x02\x12\x04\x80\x03\x10\x13\n(\ - \n\x04\x05\x02\x02\x04\x12\x04\x82\x03\x02\x13\x1a\x1a\x20Is\x20the\x20s\ - ymbol\x20read\x20here?\n\n\r\n\x05\x05\x02\x02\x04\x01\x12\x04\x82\x03\ - \x02\x0c\n\r\n\x05\x05\x02\x02\x04\x02\x12\x04\x82\x03\x0f\x12\n0\n\x04\ - \x05\x02\x02\x05\x12\x04\x84\x03\x02\x13\x1a\"\x20Is\x20the\x20symbol\ - \x20in\x20generated\x20code?\n\n\r\n\x05\x05\x02\x02\x05\x01\x12\x04\x84\ - \x03\x02\x0b\n\r\n\x05\x05\x02\x02\x05\x02\x12\x04\x84\x03\x0e\x12\n+\n\ - \x04\x05\x02\x02\x06\x12\x04\x86\x03\x02\x0e\x1a\x1d\x20Is\x20the\x20sym\ - bol\x20in\x20test\x20code?\n\n\r\n\x05\x05\x02\x02\x06\x01\x12\x04\x86\ - \x03\x02\x06\n\r\n\x05\x05\x02\x02\x06\x02\x12\x04\x86\x03\t\r\n\x0c\n\ - \x02\x05\x03\x12\x06\x89\x03\0\xe6\x03\x01\n\x0b\n\x03\x05\x03\x01\x12\ - \x04\x89\x03\x05\x0f\n\x0b\n\x03\x05\x03\x03\x12\x04\x8a\x03\x02\x1c\n\ - \x0c\n\x04\x05\x03\x03\x02\x12\x04\x8a\x03\x02\x1c\n\x0c\n\x04\x05\x03\ - \x02\0\x12\x04\x8c\x03\x02\x1c\n\r\n\x05\x05\x03\x02\0\x01\x12\x04\x8c\ - \x03\x02\x17\n\r\n\x05\x05\x03\x02\0\x02\x12\x04\x8c\x03\x1a\x1b\n;\n\ - \x04\x05\x03\x02\x01\x12\x04\x8f\x03\x02\x0e\x1a-\x20Comment,\x20includi\ + \x82\x03\x02\r\n\r\n\x05\x05\x02\x02\x03\x02\x12\x04\x82\x03\x10\x13\n(\ + \n\x04\x05\x02\x02\x04\x12\x04\x84\x03\x02\x13\x1a\x1a\x20Is\x20the\x20s\ + ymbol\x20read\x20here?\n\n\r\n\x05\x05\x02\x02\x04\x01\x12\x04\x84\x03\ + \x02\x0c\n\r\n\x05\x05\x02\x02\x04\x02\x12\x04\x84\x03\x0f\x12\n0\n\x04\ + \x05\x02\x02\x05\x12\x04\x86\x03\x02\x13\x1a\"\x20Is\x20the\x20symbol\ + \x20in\x20generated\x20code?\n\n\r\n\x05\x05\x02\x02\x05\x01\x12\x04\x86\ + \x03\x02\x0b\n\r\n\x05\x05\x02\x02\x05\x02\x12\x04\x86\x03\x0e\x12\n+\n\ + \x04\x05\x02\x02\x06\x12\x04\x88\x03\x02\x0e\x1a\x1d\x20Is\x20the\x20sym\ + bol\x20in\x20test\x20code?\n\n\r\n\x05\x05\x02\x02\x06\x01\x12\x04\x88\ + \x03\x02\x06\n\r\n\x05\x05\x02\x02\x06\x02\x12\x04\x88\x03\t\r\n\x0c\n\ + \x02\x05\x03\x12\x06\x8b\x03\0\xe8\x03\x01\n\x0b\n\x03\x05\x03\x01\x12\ + \x04\x8b\x03\x05\x0f\n\x0b\n\x03\x05\x03\x03\x12\x04\x8c\x03\x02\x1c\n\ + \x0c\n\x04\x05\x03\x03\x02\x12\x04\x8c\x03\x02\x1c\n\x0c\n\x04\x05\x03\ + \x02\0\x12\x04\x8e\x03\x02\x1c\n\r\n\x05\x05\x03\x02\0\x01\x12\x04\x8e\ + \x03\x02\x17\n\r\n\x05\x05\x03\x02\0\x02\x12\x04\x8e\x03\x1a\x1b\n;\n\ + \x04\x05\x03\x02\x01\x12\x04\x91\x03\x02\x0e\x1a-\x20Comment,\x20includi\ ng\x20comment\x20markers\x20and\x20text\n\n\r\n\x05\x05\x03\x02\x01\x01\ - \x12\x04\x8f\x03\x02\t\n\r\n\x05\x05\x03\x02\x01\x02\x12\x04\x8f\x03\x0c\ - \r\n\x1b\n\x04\x05\x03\x02\x02\x12\x04\x92\x03\x02\x1b\x1a\r\x20`;`\x20`\ - .`\x20`,`\n\n\r\n\x05\x05\x03\x02\x02\x01\x12\x04\x92\x03\x02\x16\n\r\n\ - \x05\x05\x03\x02\x02\x02\x12\x04\x92\x03\x19\x1a\n2\n\x04\x05\x03\x02\ - \x03\x12\x04\x94\x03\x02\x19\x1a$\x20(),\x20{},\x20[]\x20when\x20used\ - \x20syntactically\n\n\r\n\x05\x05\x03\x02\x03\x01\x12\x04\x94\x03\x02\ - \x14\n\r\n\x05\x05\x03\x02\x03\x02\x12\x04\x94\x03\x17\x18\n5\n\x04\x05\ - \x03\x02\x04\x12\x04\x97\x03\x02\x0e\x1a'\x20`if`,\x20`else`,\x20`return\ - `,\x20`class`,\x20etc.\n\n\r\n\x05\x05\x03\x02\x04\x01\x12\x04\x97\x03\ - \x02\t\n\r\n\x05\x05\x03\x02\x04\x02\x12\x04\x97\x03\x0c\r\n\x0c\n\x04\ - \x05\x03\x02\x05\x12\x04\x98\x03\x02*\n\r\n\x05\x05\x03\x02\x05\x01\x12\ - \x04\x98\x03\x02\x13\n\r\n\x05\x05\x03\x02\x05\x02\x12\x04\x98\x03\x16\ - \x17\n\r\n\x05\x05\x03\x02\x05\x03\x12\x04\x98\x03\x18)\n\x0e\n\x06\x05\ - \x03\x02\x05\x03\x01\x12\x04\x98\x03\x19(\n\x1e\n\x04\x05\x03\x02\x06\ - \x12\x04\x9b\x03\x02\x19\x1a\x10\x20`+`,\x20`*`,\x20etc.\n\n\r\n\x05\x05\ - \x03\x02\x06\x01\x12\x04\x9b\x03\x02\x14\n\r\n\x05\x05\x03\x02\x06\x02\ - \x12\x04\x9b\x03\x17\x18\nX\n\x04\x05\x03\x02\x07\x12\x04\x9e\x03\x02\ + \x12\x04\x91\x03\x02\t\n\r\n\x05\x05\x03\x02\x01\x02\x12\x04\x91\x03\x0c\ + \r\n\x1b\n\x04\x05\x03\x02\x02\x12\x04\x94\x03\x02\x1b\x1a\r\x20`;`\x20`\ + .`\x20`,`\n\n\r\n\x05\x05\x03\x02\x02\x01\x12\x04\x94\x03\x02\x16\n\r\n\ + \x05\x05\x03\x02\x02\x02\x12\x04\x94\x03\x19\x1a\n2\n\x04\x05\x03\x02\ + \x03\x12\x04\x96\x03\x02\x19\x1a$\x20(),\x20{},\x20[]\x20when\x20used\ + \x20syntactically\n\n\r\n\x05\x05\x03\x02\x03\x01\x12\x04\x96\x03\x02\ + \x14\n\r\n\x05\x05\x03\x02\x03\x02\x12\x04\x96\x03\x17\x18\n5\n\x04\x05\ + \x03\x02\x04\x12\x04\x99\x03\x02\x0e\x1a'\x20`if`,\x20`else`,\x20`return\ + `,\x20`class`,\x20etc.\n\n\r\n\x05\x05\x03\x02\x04\x01\x12\x04\x99\x03\ + \x02\t\n\r\n\x05\x05\x03\x02\x04\x02\x12\x04\x99\x03\x0c\r\n\x0c\n\x04\ + \x05\x03\x02\x05\x12\x04\x9a\x03\x02*\n\r\n\x05\x05\x03\x02\x05\x01\x12\ + \x04\x9a\x03\x02\x13\n\r\n\x05\x05\x03\x02\x05\x02\x12\x04\x9a\x03\x16\ + \x17\n\r\n\x05\x05\x03\x02\x05\x03\x12\x04\x9a\x03\x18)\n\x0e\n\x06\x05\ + \x03\x02\x05\x03\x01\x12\x04\x9a\x03\x19(\n\x1e\n\x04\x05\x03\x02\x06\ + \x12\x04\x9d\x03\x02\x19\x1a\x10\x20`+`,\x20`*`,\x20etc.\n\n\r\n\x05\x05\ + \x03\x02\x06\x01\x12\x04\x9d\x03\x02\x14\n\r\n\x05\x05\x03\x02\x06\x02\ + \x12\x04\x9d\x03\x17\x18\nX\n\x04\x05\x03\x02\x07\x12\x04\xa0\x03\x02\ \x11\x1aJ\x20non-specific\x20catch-all\x20for\x20any\x20identifier\x20no\ t\x20better\x20described\x20elsewhere\n\n\r\n\x05\x05\x03\x02\x07\x01\ - \x12\x04\x9e\x03\x02\x0c\n\r\n\x05\x05\x03\x02\x07\x02\x12\x04\x9e\x03\ - \x0f\x10\nN\n\x04\x05\x03\x02\x08\x12\x04\xa0\x03\x02\x18\x1a@\x20Identi\ + \x12\x04\xa0\x03\x02\x0c\n\r\n\x05\x05\x03\x02\x07\x02\x12\x04\xa0\x03\ + \x0f\x10\nN\n\x04\x05\x03\x02\x08\x12\x04\xa2\x03\x02\x18\x1a@\x20Identi\ fiers\x20builtin\x20to\x20the\x20language:\x20`min`,\x20`print`\x20in\ - \x20Python.\n\n\r\n\x05\x05\x03\x02\x08\x01\x12\x04\xa0\x03\x02\x13\n\r\ - \n\x05\x05\x03\x02\x08\x02\x12\x04\xa0\x03\x16\x17\n[\n\x04\x05\x03\x02\ - \t\x12\x04\xa2\x03\x02\x15\x1aM\x20Identifiers\x20representing\x20`null`\ + \x20Python.\n\n\r\n\x05\x05\x03\x02\x08\x01\x12\x04\xa2\x03\x02\x13\n\r\ + \n\x05\x05\x03\x02\x08\x02\x12\x04\xa2\x03\x16\x17\n[\n\x04\x05\x03\x02\ + \t\x12\x04\xa4\x03\x02\x15\x1aM\x20Identifiers\x20representing\x20`null`\ -like\x20values:\x20`None`\x20in\x20Python,\x20`nil`\x20in\x20Go.\n\n\r\ - \n\x05\x05\x03\x02\t\x01\x12\x04\xa2\x03\x02\x10\n\r\n\x05\x05\x03\x02\t\ - \x02\x12\x04\xa2\x03\x13\x14\n.\n\x04\x05\x03\x02\n\x12\x04\xa4\x03\x02\ + \n\x05\x05\x03\x02\t\x01\x12\x04\xa4\x03\x02\x10\n\r\n\x05\x05\x03\x02\t\ + \x02\x12\x04\xa4\x03\x13\x14\n.\n\x04\x05\x03\x02\n\x12\x04\xa6\x03\x02\ \x19\x1a\x20\x20`xyz`\x20in\x20`const\x20xyz\x20=\x20\"hello\"`\n\n\r\n\ - \x05\x05\x03\x02\n\x01\x12\x04\xa4\x03\x02\x14\n\r\n\x05\x05\x03\x02\n\ - \x02\x12\x04\xa4\x03\x17\x18\n'\n\x04\x05\x03\x02\x0b\x12\x04\xa6\x03\ + \x05\x05\x03\x02\n\x01\x12\x04\xa6\x03\x02\x14\n\r\n\x05\x05\x03\x02\n\ + \x02\x12\x04\xa6\x03\x17\x18\n'\n\x04\x05\x03\x02\x0b\x12\x04\xa8\x03\ \x02\x1f\x1a\x19\x20`var\x20X\x20=\x20\"hello\"`\x20in\x20Go\n\n\r\n\x05\ - \x05\x03\x02\x0b\x01\x12\x04\xa6\x03\x02\x19\n\r\n\x05\x05\x03\x02\x0b\ - \x02\x12\x04\xa6\x03\x1c\x1e\n3\n\x04\x05\x03\x02\x0c\x12\x04\xa8\x03\ + \x05\x03\x02\x0b\x01\x12\x04\xa8\x03\x02\x19\n\r\n\x05\x05\x03\x02\x0b\ + \x02\x12\x04\xa8\x03\x1c\x1e\n3\n\x04\x05\x03\x02\x0c\x12\x04\xaa\x03\ \x02\x1b\x1a%\x20Parameter\x20definition\x20and\x20references\n\n\r\n\ - \x05\x05\x03\x02\x0c\x01\x12\x04\xa8\x03\x02\x15\n\r\n\x05\x05\x03\x02\ - \x0c\x02\x12\x04\xa8\x03\x18\x1a\nX\n\x04\x05\x03\x02\r\x12\x04\xaa\x03\ + \x05\x05\x03\x02\x0c\x01\x12\x04\xaa\x03\x02\x15\n\r\n\x05\x05\x03\x02\ + \x0c\x02\x12\x04\xaa\x03\x18\x1a\nX\n\x04\x05\x03\x02\r\x12\x04\xac\x03\ \x02\x17\x1aJ\x20Identifiers\x20for\x20variable\x20definitions\x20and\ \x20references\x20within\x20a\x20local\x20scope\n\n\r\n\x05\x05\x03\x02\ - \r\x01\x12\x04\xaa\x03\x02\x11\n\r\n\x05\x05\x03\x02\r\x02\x12\x04\xaa\ - \x03\x14\x16\nK\n\x04\x05\x03\x02\x0e\x12\x04\xac\x03\x02\x1a\x1a=\x20Id\ + \r\x01\x12\x04\xac\x03\x02\x11\n\r\n\x05\x05\x03\x02\r\x02\x12\x04\xac\ + \x03\x14\x16\nK\n\x04\x05\x03\x02\x0e\x12\x04\xae\x03\x02\x1a\x1a=\x20Id\ entifiers\x20that\x20shadow\x20other\x20identifiers\x20in\x20an\x20outer\ - \x20scope\n\n\r\n\x05\x05\x03\x02\x0e\x01\x12\x04\xac\x03\x02\x14\n\r\n\ - \x05\x05\x03\x02\x0e\x02\x12\x04\xac\x03\x17\x19\n\xcd\x01\n\x04\x05\x03\ - \x02\x0f\x12\x04\xb1\x03\x02\x1b\x1a\xbe\x01\x20Identifier\x20representi\ + \x20scope\n\n\r\n\x05\x05\x03\x02\x0e\x01\x12\x04\xae\x03\x02\x14\n\r\n\ + \x05\x05\x03\x02\x0e\x02\x12\x04\xae\x03\x17\x19\n\xcd\x01\n\x04\x05\x03\ + \x02\x0f\x12\x04\xb3\x03\x02\x1b\x1a\xbe\x01\x20Identifier\x20representi\ ng\x20a\x20unit\x20of\x20code\x20abstraction\x20and/or\x20namespacing.\n\ \n\x20NOTE:\x20This\x20corresponds\x20to\x20a\x20package\x20in\x20Go\x20\ and\x20JVM\x20languages,\n\x20and\x20a\x20module\x20in\x20languages\x20l\ ike\x20Python\x20and\x20JavaScript.\n\n\r\n\x05\x05\x03\x02\x0f\x01\x12\ - \x04\xb1\x03\x02\x15\n\r\n\x05\x05\x03\x02\x0f\x02\x12\x04\xb1\x03\x18\ - \x1a\n\x0c\n\x04\x05\x03\x02\x10\x12\x04\xb2\x03\x02*\n\r\n\x05\x05\x03\ - \x02\x10\x01\x12\x04\xb2\x03\x02\x12\n\r\n\x05\x05\x03\x02\x10\x02\x12\ - \x04\xb2\x03\x15\x17\n\r\n\x05\x05\x03\x02\x10\x03\x12\x04\xb2\x03\x18)\ - \n\x0e\n\x06\x05\x03\x02\x10\x03\x01\x12\x04\xb2\x03\x19(\n4\n\x04\x05\ - \x03\x02\x11\x12\x04\xb5\x03\x02\x1a\x1a&\x20Function\x20references,\x20\ - including\x20calls\n\n\r\n\x05\x05\x03\x02\x11\x01\x12\x04\xb5\x03\x02\ - \x14\n\r\n\x05\x05\x03\x02\x11\x02\x12\x04\xb5\x03\x17\x19\n(\n\x04\x05\ - \x03\x02\x12\x12\x04\xb7\x03\x02$\x1a\x1a\x20Function\x20definition\x20o\ - nly\n\n\r\n\x05\x05\x03\x02\x12\x01\x12\x04\xb7\x03\x02\x1e\n\r\n\x05\ - \x05\x03\x02\x12\x02\x12\x04\xb7\x03!#\n7\n\x04\x05\x03\x02\x13\x12\x04\ - \xba\x03\x02\x17\x1a)\x20Macro\x20references,\x20including\x20invocation\ - s\n\n\r\n\x05\x05\x03\x02\x13\x01\x12\x04\xba\x03\x02\x11\n\r\n\x05\x05\ - \x03\x02\x13\x02\x12\x04\xba\x03\x14\x16\n%\n\x04\x05\x03\x02\x14\x12\ - \x04\xbc\x03\x02!\x1a\x17\x20Macro\x20definition\x20only\n\n\r\n\x05\x05\ - \x03\x02\x14\x01\x12\x04\xbc\x03\x02\x1b\n\r\n\x05\x05\x03\x02\x14\x02\ - \x12\x04\xbc\x03\x1e\x20\n!\n\x04\x05\x03\x02\x15\x12\x04\xbf\x03\x02\ + \x04\xb3\x03\x02\x15\n\r\n\x05\x05\x03\x02\x0f\x02\x12\x04\xb3\x03\x18\ + \x1a\n\x0c\n\x04\x05\x03\x02\x10\x12\x04\xb4\x03\x02*\n\r\n\x05\x05\x03\ + \x02\x10\x01\x12\x04\xb4\x03\x02\x12\n\r\n\x05\x05\x03\x02\x10\x02\x12\ + \x04\xb4\x03\x15\x17\n\r\n\x05\x05\x03\x02\x10\x03\x12\x04\xb4\x03\x18)\ + \n\x0e\n\x06\x05\x03\x02\x10\x03\x01\x12\x04\xb4\x03\x19(\n4\n\x04\x05\ + \x03\x02\x11\x12\x04\xb7\x03\x02\x1a\x1a&\x20Function\x20references,\x20\ + including\x20calls\n\n\r\n\x05\x05\x03\x02\x11\x01\x12\x04\xb7\x03\x02\ + \x14\n\r\n\x05\x05\x03\x02\x11\x02\x12\x04\xb7\x03\x17\x19\n(\n\x04\x05\ + \x03\x02\x12\x12\x04\xb9\x03\x02$\x1a\x1a\x20Function\x20definition\x20o\ + nly\n\n\r\n\x05\x05\x03\x02\x12\x01\x12\x04\xb9\x03\x02\x1e\n\r\n\x05\ + \x05\x03\x02\x12\x02\x12\x04\xb9\x03!#\n7\n\x04\x05\x03\x02\x13\x12\x04\ + \xbc\x03\x02\x17\x1a)\x20Macro\x20references,\x20including\x20invocation\ + s\n\n\r\n\x05\x05\x03\x02\x13\x01\x12\x04\xbc\x03\x02\x11\n\r\n\x05\x05\ + \x03\x02\x13\x02\x12\x04\xbc\x03\x14\x16\n%\n\x04\x05\x03\x02\x14\x12\ + \x04\xbe\x03\x02!\x1a\x17\x20Macro\x20definition\x20only\n\n\r\n\x05\x05\ + \x03\x02\x14\x01\x12\x04\xbe\x03\x02\x1b\n\r\n\x05\x05\x03\x02\x14\x02\ + \x12\x04\xbe\x03\x1e\x20\n!\n\x04\x05\x03\x02\x15\x12\x04\xc1\x03\x02\ \x16\x1a\x13\x20non-builtin\x20types\n\n\r\n\x05\x05\x03\x02\x15\x01\x12\ - \x04\xbf\x03\x02\x10\n\r\n\x05\x05\x03\x02\x15\x02\x12\x04\xbf\x03\x13\ - \x15\nK\n\x04\x05\x03\x02\x16\x12\x04\xc1\x03\x02\x1d\x1a=\x20builtin\ + \x04\xc1\x03\x02\x10\n\r\n\x05\x05\x03\x02\x15\x02\x12\x04\xc1\x03\x13\ + \x15\nK\n\x04\x05\x03\x02\x16\x12\x04\xc3\x03\x02\x1d\x1a=\x20builtin\ \x20types\x20only,\x20such\x20as\x20`str`\x20for\x20Python\x20or\x20`int\ - `\x20in\x20Go\n\n\r\n\x05\x05\x03\x02\x16\x01\x12\x04\xc1\x03\x02\x17\n\ - \r\n\x05\x05\x03\x02\x16\x02\x12\x04\xc1\x03\x1a\x1c\n7\n\x04\x05\x03\ - \x02\x17\x12\x04\xc4\x03\x02\x1b\x1a)\x20Python\x20decorators,\x20c-like\ - \x20__attribute__\n\n\r\n\x05\x05\x03\x02\x17\x01\x12\x04\xc4\x03\x02\ - \x15\n\r\n\x05\x05\x03\x02\x17\x02\x12\x04\xc4\x03\x18\x1a\n\x14\n\x04\ - \x05\x03\x02\x18\x12\x04\xc7\x03\x02\x13\x1a\x06\x20`\\b`\n\n\r\n\x05\ - \x05\x03\x02\x18\x01\x12\x04\xc7\x03\x02\r\n\r\n\x05\x05\x03\x02\x18\x02\ - \x12\x04\xc7\x03\x10\x12\n\x18\n\x04\x05\x03\x02\x19\x12\x04\xc9\x03\x02\ - \x15\x1a\n\x20`*`,\x20`+`\n\n\r\n\x05\x05\x03\x02\x19\x01\x12\x04\xc9\ - \x03\x02\x0f\n\r\n\x05\x05\x03\x02\x19\x02\x12\x04\xc9\x03\x12\x14\n\x13\ - \n\x04\x05\x03\x02\x1a\x12\x04\xcb\x03\x02\x15\x1a\x05\x20`.`\n\n\r\n\ - \x05\x05\x03\x02\x1a\x01\x12\x04\xcb\x03\x02\x0f\n\r\n\x05\x05\x03\x02\ - \x1a\x02\x12\x04\xcb\x03\x12\x14\n\"\n\x04\x05\x03\x02\x1b\x12\x04\xcd\ + `\x20in\x20Go\n\n\r\n\x05\x05\x03\x02\x16\x01\x12\x04\xc3\x03\x02\x17\n\ + \r\n\x05\x05\x03\x02\x16\x02\x12\x04\xc3\x03\x1a\x1c\n7\n\x04\x05\x03\ + \x02\x17\x12\x04\xc6\x03\x02\x1b\x1a)\x20Python\x20decorators,\x20c-like\ + \x20__attribute__\n\n\r\n\x05\x05\x03\x02\x17\x01\x12\x04\xc6\x03\x02\ + \x15\n\r\n\x05\x05\x03\x02\x17\x02\x12\x04\xc6\x03\x18\x1a\n\x14\n\x04\ + \x05\x03\x02\x18\x12\x04\xc9\x03\x02\x13\x1a\x06\x20`\\b`\n\n\r\n\x05\ + \x05\x03\x02\x18\x01\x12\x04\xc9\x03\x02\r\n\r\n\x05\x05\x03\x02\x18\x02\ + \x12\x04\xc9\x03\x10\x12\n\x18\n\x04\x05\x03\x02\x19\x12\x04\xcb\x03\x02\ + \x15\x1a\n\x20`*`,\x20`+`\n\n\r\n\x05\x05\x03\x02\x19\x01\x12\x04\xcb\ + \x03\x02\x0f\n\r\n\x05\x05\x03\x02\x19\x02\x12\x04\xcb\x03\x12\x14\n\x13\ + \n\x04\x05\x03\x02\x1a\x12\x04\xcd\x03\x02\x15\x1a\x05\x20`.`\n\n\r\n\ + \x05\x05\x03\x02\x1a\x01\x12\x04\xcd\x03\x02\x0f\n\r\n\x05\x05\x03\x02\ + \x1a\x02\x12\x04\xcd\x03\x12\x14\n\"\n\x04\x05\x03\x02\x1b\x12\x04\xcf\ \x03\x02\x16\x1a\x14\x20`(`,\x20`)`,\x20`[`,\x20`]`\n\n\r\n\x05\x05\x03\ - \x02\x1b\x01\x12\x04\xcd\x03\x02\x10\n\r\n\x05\x05\x03\x02\x1b\x02\x12\ - \x04\xcd\x03\x13\x15\n\x18\n\x04\x05\x03\x02\x1c\x12\x04\xcf\x03\x02\x11\ - \x1a\n\x20`|`,\x20`-`\n\n\r\n\x05\x05\x03\x02\x1c\x01\x12\x04\xcf\x03\ - \x02\x0b\n\r\n\x05\x05\x03\x02\x1c\x02\x12\x04\xcf\x03\x0e\x10\n0\n\x04\ - \x05\x03\x02\x1d\x12\x04\xd2\x03\x02\x15\x1a\"\x20Literal\x20strings:\ - \x20\"Hello,\x20world!\"\n\n\r\n\x05\x05\x03\x02\x1d\x01\x12\x04\xd2\x03\ - \x02\x0f\n\r\n\x05\x05\x03\x02\x1d\x02\x12\x04\xd2\x03\x12\x14\n-\n\x04\ - \x05\x03\x02\x1e\x12\x04\xd4\x03\x02\x1b\x1a\x1f\x20non-regex\x20escapes\ - :\x20\"\\t\",\x20\"\\n\"\n\n\r\n\x05\x05\x03\x02\x1e\x01\x12\x04\xd4\x03\ - \x02\x15\n\r\n\x05\x05\x03\x02\x1e\x02\x12\x04\xd4\x03\x18\x1a\n_\n\x04\ - \x05\x03\x02\x1f\x12\x04\xd6\x03\x02\x1c\x1aQ\x20datetimes\x20within\x20\ + \x02\x1b\x01\x12\x04\xcf\x03\x02\x10\n\r\n\x05\x05\x03\x02\x1b\x02\x12\ + \x04\xcf\x03\x13\x15\n\x18\n\x04\x05\x03\x02\x1c\x12\x04\xd1\x03\x02\x11\ + \x1a\n\x20`|`,\x20`-`\n\n\r\n\x05\x05\x03\x02\x1c\x01\x12\x04\xd1\x03\ + \x02\x0b\n\r\n\x05\x05\x03\x02\x1c\x02\x12\x04\xd1\x03\x0e\x10\n0\n\x04\ + \x05\x03\x02\x1d\x12\x04\xd4\x03\x02\x15\x1a\"\x20Literal\x20strings:\ + \x20\"Hello,\x20world!\"\n\n\r\n\x05\x05\x03\x02\x1d\x01\x12\x04\xd4\x03\ + \x02\x0f\n\r\n\x05\x05\x03\x02\x1d\x02\x12\x04\xd4\x03\x12\x14\n-\n\x04\ + \x05\x03\x02\x1e\x12\x04\xd6\x03\x02\x1b\x1a\x1f\x20non-regex\x20escapes\ + :\x20\"\\t\",\x20\"\\n\"\n\n\r\n\x05\x05\x03\x02\x1e\x01\x12\x04\xd6\x03\ + \x02\x15\n\r\n\x05\x05\x03\x02\x1e\x02\x12\x04\xd6\x03\x18\x1a\n_\n\x04\ + \x05\x03\x02\x1f\x12\x04\xd8\x03\x02\x1c\x1aQ\x20datetimes\x20within\x20\ strings,\x20special\x20words\x20within\x20a\x20string,\x20`{}`\x20in\x20\ - format\x20strings\n\n\r\n\x05\x05\x03\x02\x1f\x01\x12\x04\xd6\x03\x02\ - \x16\n\r\n\x05\x05\x03\x02\x1f\x02\x12\x04\xd6\x03\x19\x1b\nG\n\x04\x05\ - \x03\x02\x20\x12\x04\xd8\x03\x02\x18\x1a9\x20\"key\"\x20in\x20{\x20\"key\ + format\x20strings\n\n\r\n\x05\x05\x03\x02\x1f\x01\x12\x04\xd8\x03\x02\ + \x16\n\r\n\x05\x05\x03\x02\x1f\x02\x12\x04\xd8\x03\x19\x1b\nG\n\x04\x05\ + \x03\x02\x20\x12\x04\xda\x03\x02\x18\x1a9\x20\"key\"\x20in\x20{\x20\"key\ \":\x20\"value\"\x20},\x20useful\x20for\x20example\x20in\x20JSON\n\n\r\n\ - \x05\x05\x03\x02\x20\x01\x12\x04\xd8\x03\x02\x12\n\r\n\x05\x05\x03\x02\ - \x20\x02\x12\x04\xd8\x03\x15\x17\nV\n\x04\x05\x03\x02!\x12\x04\xda\x03\ + \x05\x05\x03\x02\x20\x01\x12\x04\xda\x03\x02\x12\n\r\n\x05\x05\x03\x02\ + \x20\x02\x12\x04\xda\x03\x15\x17\nV\n\x04\x05\x03\x02!\x12\x04\xdc\x03\ \x02\x18\x1aH\x20'c'\x20or\x20similar,\x20in\x20languages\x20that\x20dif\ ferentiate\x20strings\x20and\x20characters\n\n\r\n\x05\x05\x03\x02!\x01\ - \x12\x04\xda\x03\x02\x12\n\r\n\x05\x05\x03\x02!\x02\x12\x04\xda\x03\x15\ - \x17\n9\n\x04\x05\x03\x02\"\x12\x04\xdc\x03\x02\x16\x1a+\x20Literal\x20n\ + \x12\x04\xdc\x03\x02\x12\n\r\n\x05\x05\x03\x02!\x02\x12\x04\xdc\x03\x15\ + \x17\n9\n\x04\x05\x03\x02\"\x12\x04\xde\x03\x02\x16\x1a+\x20Literal\x20n\ umbers,\x20both\x20floats\x20and\x20integers\n\n\r\n\x05\x05\x03\x02\"\ - \x01\x12\x04\xdc\x03\x02\x10\n\r\n\x05\x05\x03\x02\"\x02\x12\x04\xdc\x03\ - \x13\x15\n\x1f\n\x04\x05\x03\x02#\x12\x04\xde\x03\x02\x16\x1a\x11\x20`tr\ - ue`,\x20`false`\n\n\r\n\x05\x05\x03\x02#\x01\x12\x04\xde\x03\x02\x10\n\r\ - \n\x05\x05\x03\x02#\x02\x12\x04\xde\x03\x13\x15\n&\n\x04\x05\x03\x02$\ - \x12\x04\xe1\x03\x02\x0b\x1a\x18\x20Used\x20for\x20XML-like\x20tags\n\n\ - \r\n\x05\x05\x03\x02$\x01\x12\x04\xe1\x03\x02\x05\n\r\n\x05\x05\x03\x02$\ - \x02\x12\x04\xe1\x03\x08\n\n/\n\x04\x05\x03\x02%\x12\x04\xe3\x03\x02\x14\ + \x01\x12\x04\xde\x03\x02\x10\n\r\n\x05\x05\x03\x02\"\x02\x12\x04\xde\x03\ + \x13\x15\n\x1f\n\x04\x05\x03\x02#\x12\x04\xe0\x03\x02\x16\x1a\x11\x20`tr\ + ue`,\x20`false`\n\n\r\n\x05\x05\x03\x02#\x01\x12\x04\xe0\x03\x02\x10\n\r\ + \n\x05\x05\x03\x02#\x02\x12\x04\xe0\x03\x13\x15\n&\n\x04\x05\x03\x02$\ + \x12\x04\xe3\x03\x02\x0b\x1a\x18\x20Used\x20for\x20XML-like\x20tags\n\n\ + \r\n\x05\x05\x03\x02$\x01\x12\x04\xe3\x03\x02\x05\n\r\n\x05\x05\x03\x02$\ + \x02\x12\x04\xe3\x03\x08\n\n/\n\x04\x05\x03\x02%\x12\x04\xe5\x03\x02\x14\ \x1a!\x20Attribute\x20name\x20in\x20XML-like\x20tags\n\n\r\n\x05\x05\x03\ - \x02%\x01\x12\x04\xe3\x03\x02\x0e\n\r\n\x05\x05\x03\x02%\x02\x12\x04\xe3\ - \x03\x11\x13\n,\n\x04\x05\x03\x02&\x12\x04\xe5\x03\x02\x14\x1a\x1e\x20De\ + \x02%\x01\x12\x04\xe5\x03\x02\x0e\n\r\n\x05\x05\x03\x02%\x02\x12\x04\xe5\ + \x03\x11\x13\n,\n\x04\x05\x03\x02&\x12\x04\xe7\x03\x02\x14\x1a\x1e\x20De\ limiters\x20for\x20XML-like\x20tags\n\n\r\n\x05\x05\x03\x02&\x01\x12\x04\ - \xe5\x03\x02\x0e\n\r\n\x05\x05\x03\x02&\x02\x12\x04\xe5\x03\x11\x13\n\ - \xf9\x01\n\x02\x04\t\x12\x06\xed\x03\0\xbc\x04\x01\x1a\xea\x01\x20Occurr\ + \xe7\x03\x02\x0e\n\r\n\x05\x05\x03\x02&\x02\x12\x04\xe7\x03\x11\x13\n\ + \xf9\x01\n\x02\x04\t\x12\x06\xef\x03\0\xbe\x04\x01\x1a\xea\x01\x20Occurr\ ence\x20associates\x20a\x20source\x20position\x20with\x20a\x20symbol\x20\ and/or\x20highlighting\n\x20information.\n\n\x20If\x20possible,\x20index\ ers\x20should\x20try\x20to\x20bundle\x20logically\x20related\x20informat\ ion\n\x20across\x20occurrences\x20into\x20a\x20single\x20occurrence\x20t\ - o\x20reduce\x20payload\x20sizes.\n\n\x0b\n\x03\x04\t\x01\x12\x04\xed\x03\ - \x08\x12\n\xc6\x07\n\x04\x04\t\x02\0\x12\x04\x80\x04\x02\x1b\x1a\xb7\x07\ + o\x20reduce\x20payload\x20sizes.\n\n\x0b\n\x03\x04\t\x01\x12\x04\xef\x03\ + \x08\x12\n\xc6\x07\n\x04\x04\t\x02\0\x12\x04\x82\x04\x02\x1b\x1a\xb7\x07\ \x20Source\x20position\x20of\x20this\x20occurrence.\x20Must\x20be\x20exa\ ctly\x20three\x20or\x20four\n\x20elements:\n\n\x20-\x20Four\x20elements:\ \x20`[startLine,\x20startCharacter,\x20endLine,\x20endCharacter]`\n\x20-\ @@ -4607,22 +4611,22 @@ static file_descriptor_proto_data: &'static [u8] = b"\ ead.\x20The\x20`repeated\x20int32`\x20encoding\x20is\x20admittedly\x20mo\ re\x20embarrassing\x20to\n\x20work\x20with\x20in\x20some\x20programming\ \x20languages\x20but\x20we\x20hope\x20the\x20performance\n\x20improvemen\ - ts\x20make\x20up\x20for\x20it.\n\n\r\n\x05\x04\t\x02\0\x04\x12\x04\x80\ - \x04\x02\n\n\r\n\x05\x04\t\x02\0\x05\x12\x04\x80\x04\x0b\x10\n\r\n\x05\ - \x04\t\x02\0\x01\x12\x04\x80\x04\x11\x16\n\r\n\x05\x04\t\x02\0\x03\x12\ - \x04\x80\x04\x19\x1a\n\x8a\x01\n\x04\x04\t\x02\x01\x12\x04\x83\x04\x02\ + ts\x20make\x20up\x20for\x20it.\n\n\r\n\x05\x04\t\x02\0\x04\x12\x04\x82\ + \x04\x02\n\n\r\n\x05\x04\t\x02\0\x05\x12\x04\x82\x04\x0b\x10\n\r\n\x05\ + \x04\t\x02\0\x01\x12\x04\x82\x04\x11\x16\n\r\n\x05\x04\t\x02\0\x03\x12\ + \x04\x82\x04\x19\x1a\n\x8a\x01\n\x04\x04\t\x02\x01\x12\x04\x85\x04\x02\ \x14\x1a|\x20(optional)\x20The\x20symbol\x20that\x20appears\x20at\x20thi\ s\x20position.\x20See\n\x20`SymbolInformation.symbol`\x20for\x20how\x20t\ o\x20format\x20symbols\x20as\x20strings.\n\n\r\n\x05\x04\t\x02\x01\x05\ - \x12\x04\x83\x04\x02\x08\n\r\n\x05\x04\t\x02\x01\x01\x12\x04\x83\x04\t\ - \x0f\n\r\n\x05\x04\t\x02\x01\x03\x12\x04\x83\x04\x12\x13\n\x97\x01\n\x04\ - \x04\t\x02\x02\x12\x04\x86\x04\x02\x19\x1a\x88\x01\x20(optional)\x20Bits\ + \x12\x04\x85\x04\x02\x08\n\r\n\x05\x04\t\x02\x01\x01\x12\x04\x85\x04\t\ + \x0f\n\r\n\x05\x04\t\x02\x01\x03\x12\x04\x85\x04\x12\x13\n\x97\x01\n\x04\ + \x04\t\x02\x02\x12\x04\x88\x04\x02\x19\x1a\x88\x01\x20(optional)\x20Bits\ et\x20containing\x20`SymbolRole`s\x20in\x20this\x20occurrence.\n\x20See\ \x20`SymbolRole`'s\x20documentation\x20for\x20how\x20to\x20read\x20and\ - \x20write\x20this\x20field.\n\n\r\n\x05\x04\t\x02\x02\x05\x12\x04\x86\ - \x04\x02\x07\n\r\n\x05\x04\t\x02\x02\x01\x12\x04\x86\x04\x08\x14\n\r\n\ - \x05\x04\t\x02\x02\x03\x12\x04\x86\x04\x17\x18\n\xf1\x03\n\x04\x04\t\x02\ - \x03\x12\x04\x8f\x04\x02-\x1a\xe2\x03\x20(optional)\x20CommonMark-format\ + \x20write\x20this\x20field.\n\n\r\n\x05\x04\t\x02\x02\x05\x12\x04\x88\ + \x04\x02\x07\n\r\n\x05\x04\t\x02\x02\x01\x12\x04\x88\x04\x08\x14\n\r\n\ + \x05\x04\t\x02\x02\x03\x12\x04\x88\x04\x17\x18\n\xf1\x03\n\x04\x04\t\x02\ + \x03\x12\x04\x91\x04\x02-\x1a\xe2\x03\x20(optional)\x20CommonMark-format\ ted\x20documentation\x20for\x20this\x20specific\x20range.\x20If\n\x20emp\ ty,\x20the\x20`Symbol.documentation`\x20field\x20is\x20used\x20instead.\ \x20One\x20example\n\x20where\x20this\x20field\x20might\x20be\x20useful\ @@ -4632,19 +4636,19 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \x20values\x20(such\x20as\x20`List`).\n\n\x20This\x20field\x20ca\ n\x20also\x20be\x20used\x20for\x20dynamically\x20or\x20gradually\x20type\ d\x20languages,\n\x20which\x20commonly\x20allow\x20for\x20type-changing\ - \x20assignment.\n\n\r\n\x05\x04\t\x02\x03\x04\x12\x04\x8f\x04\x02\n\n\r\ - \n\x05\x04\t\x02\x03\x05\x12\x04\x8f\x04\x0b\x11\n\r\n\x05\x04\t\x02\x03\ - \x01\x12\x04\x8f\x04\x12(\n\r\n\x05\x04\t\x02\x03\x03\x12\x04\x8f\x04+,\ - \nX\n\x04\x04\t\x02\x04\x12\x04\x91\x04\x02\x1d\x1aJ\x20(optional)\x20Wh\ + \x20assignment.\n\n\r\n\x05\x04\t\x02\x03\x04\x12\x04\x91\x04\x02\n\n\r\ + \n\x05\x04\t\x02\x03\x05\x12\x04\x91\x04\x0b\x11\n\r\n\x05\x04\t\x02\x03\ + \x01\x12\x04\x91\x04\x12(\n\r\n\x05\x04\t\x02\x03\x03\x12\x04\x91\x04+,\ + \nX\n\x04\x04\t\x02\x04\x12\x04\x93\x04\x02\x1d\x1aJ\x20(optional)\x20Wh\ at\x20syntax\x20highlighting\x20class\x20should\x20be\x20used\x20for\x20\ - this\x20range?\n\n\r\n\x05\x04\t\x02\x04\x06\x12\x04\x91\x04\x02\x0c\n\r\ - \n\x05\x04\t\x02\x04\x01\x12\x04\x91\x04\r\x18\n\r\n\x05\x04\t\x02\x04\ - \x03\x12\x04\x91\x04\x1b\x1c\nW\n\x04\x04\t\x02\x05\x12\x04\x93\x04\x02&\ + this\x20range?\n\n\r\n\x05\x04\t\x02\x04\x06\x12\x04\x93\x04\x02\x0c\n\r\ + \n\x05\x04\t\x02\x04\x01\x12\x04\x93\x04\r\x18\n\r\n\x05\x04\t\x02\x04\ + \x03\x12\x04\x93\x04\x1b\x1c\nW\n\x04\x04\t\x02\x05\x12\x04\x95\x04\x02&\ \x1aI\x20(optional)\x20Diagnostics\x20that\x20have\x20been\x20reported\ \x20for\x20this\x20specific\x20range.\n\n\r\n\x05\x04\t\x02\x05\x04\x12\ - \x04\x93\x04\x02\n\n\r\n\x05\x04\t\x02\x05\x06\x12\x04\x93\x04\x0b\x15\n\ - \r\n\x05\x04\t\x02\x05\x01\x12\x04\x93\x04\x16!\n\r\n\x05\x04\t\x02\x05\ - \x03\x12\x04\x93\x04$%\n\x80\x0c\n\x04\x04\t\x02\x06\x12\x04\xbb\x04\x02\ + \x04\x95\x04\x02\n\n\r\n\x05\x04\t\x02\x05\x06\x12\x04\x95\x04\x0b\x15\n\ + \r\n\x05\x04\t\x02\x05\x01\x12\x04\x95\x04\x16!\n\r\n\x05\x04\t\x02\x05\ + \x03\x12\x04\x95\x04$%\n\x80\x0c\n\x04\x04\t\x02\x06\x12\x04\xbd\x04\x02\ %\x1a\xf1\x0b\x20(optional)\x20Using\x20the\x20same\x20encoding\x20as\ \x20the\x20sibling\x20`range`\x20field,\x20source\n\x20position\x20of\ \x20the\x20nearest\x20non-trivial\x20enclosing\x20AST\x20node.\x20This\ @@ -4685,55 +4689,55 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \x20a.b(41).f(42).g(43)\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20\x20\x20\x20\x20^\x20range\n\x20\x20\x20\x20\x20\x20\x20\ \x20\x20\x20\x20^^^^^^^^^^^^^\x20enclosing_range\n\x20```\n\n\r\n\x05\ - \x04\t\x02\x06\x04\x12\x04\xbb\x04\x02\n\n\r\n\x05\x04\t\x02\x06\x05\x12\ - \x04\xbb\x04\x0b\x10\n\r\n\x05\x04\t\x02\x06\x01\x12\x04\xbb\x04\x11\x20\ - \n\r\n\x05\x04\t\x02\x06\x03\x12\x04\xbb\x04#$\nw\n\x02\x04\n\x12\x06\ - \xc0\x04\0\xcb\x04\x01\x1ai\x20Represents\x20a\x20diagnostic,\x20such\ + \x04\t\x02\x06\x04\x12\x04\xbd\x04\x02\n\n\r\n\x05\x04\t\x02\x06\x05\x12\ + \x04\xbd\x04\x0b\x10\n\r\n\x05\x04\t\x02\x06\x01\x12\x04\xbd\x04\x11\x20\ + \n\r\n\x05\x04\t\x02\x06\x03\x12\x04\xbd\x04#$\nw\n\x02\x04\n\x12\x06\ + \xc2\x04\0\xcd\x04\x01\x1ai\x20Represents\x20a\x20diagnostic,\x20such\ \x20as\x20a\x20compiler\x20error\x20or\x20warning,\x20which\x20should\ \x20be\n\x20reported\x20for\x20a\x20document.\n\n\x0b\n\x03\x04\n\x01\ - \x12\x04\xc0\x04\x08\x12\nW\n\x04\x04\n\x02\0\x12\x04\xc2\x04\x02\x18\ + \x12\x04\xc2\x04\x08\x12\nW\n\x04\x04\n\x02\0\x12\x04\xc4\x04\x02\x18\ \x1aI\x20Should\x20this\x20diagnostic\x20be\x20reported\x20as\x20an\x20e\ rror,\x20warning,\x20info,\x20or\x20hint?\n\n\r\n\x05\x04\n\x02\0\x06\ - \x12\x04\xc2\x04\x02\n\n\r\n\x05\x04\n\x02\0\x01\x12\x04\xc2\x04\x0b\x13\ - \n\r\n\x05\x04\n\x02\0\x03\x12\x04\xc2\x04\x16\x17\n]\n\x04\x04\n\x02\ - \x01\x12\x04\xc4\x04\x02\x12\x1aO\x20(optional)\x20Code\x20of\x20this\ + \x12\x04\xc4\x04\x02\n\n\r\n\x05\x04\n\x02\0\x01\x12\x04\xc4\x04\x0b\x13\ + \n\r\n\x05\x04\n\x02\0\x03\x12\x04\xc4\x04\x16\x17\n]\n\x04\x04\n\x02\ + \x01\x12\x04\xc6\x04\x02\x12\x1aO\x20(optional)\x20Code\x20of\x20this\ \x20diagnostic,\x20which\x20might\x20appear\x20in\x20the\x20user\x20inte\ - rface.\n\n\r\n\x05\x04\n\x02\x01\x05\x12\x04\xc4\x04\x02\x08\n\r\n\x05\ - \x04\n\x02\x01\x01\x12\x04\xc4\x04\t\r\n\r\n\x05\x04\n\x02\x01\x03\x12\ - \x04\xc4\x04\x10\x11\n+\n\x04\x04\n\x02\x02\x12\x04\xc6\x04\x02\x15\x1a\ + rface.\n\n\r\n\x05\x04\n\x02\x01\x05\x12\x04\xc6\x04\x02\x08\n\r\n\x05\ + \x04\n\x02\x01\x01\x12\x04\xc6\x04\t\r\n\r\n\x05\x04\n\x02\x01\x03\x12\ + \x04\xc6\x04\x10\x11\n+\n\x04\x04\n\x02\x02\x12\x04\xc8\x04\x02\x15\x1a\ \x1d\x20Message\x20of\x20this\x20diagnostic.\n\n\r\n\x05\x04\n\x02\x02\ - \x05\x12\x04\xc6\x04\x02\x08\n\r\n\x05\x04\n\x02\x02\x01\x12\x04\xc6\x04\ - \t\x10\n\r\n\x05\x04\n\x02\x02\x03\x12\x04\xc6\x04\x13\x14\n~\n\x04\x04\ - \n\x02\x03\x12\x04\xc9\x04\x02\x14\x1ap\x20(optional)\x20Human-readable\ + \x05\x12\x04\xc8\x04\x02\x08\n\r\n\x05\x04\n\x02\x02\x01\x12\x04\xc8\x04\ + \t\x10\n\r\n\x05\x04\n\x02\x02\x03\x12\x04\xc8\x04\x13\x14\n~\n\x04\x04\ + \n\x02\x03\x12\x04\xcb\x04\x02\x14\x1ap\x20(optional)\x20Human-readable\ \x20string\x20describing\x20the\x20source\x20of\x20this\x20diagnostic,\ \x20e.g.\n\x20'typescript'\x20or\x20'super\x20lint'.\n\n\r\n\x05\x04\n\ - \x02\x03\x05\x12\x04\xc9\x04\x02\x08\n\r\n\x05\x04\n\x02\x03\x01\x12\x04\ - \xc9\x04\t\x0f\n\r\n\x05\x04\n\x02\x03\x03\x12\x04\xc9\x04\x12\x13\n\x0c\ - \n\x04\x04\n\x02\x04\x12\x04\xca\x04\x02\"\n\r\n\x05\x04\n\x02\x04\x04\ - \x12\x04\xca\x04\x02\n\n\r\n\x05\x04\n\x02\x04\x06\x12\x04\xca\x04\x0b\ - \x18\n\r\n\x05\x04\n\x02\x04\x01\x12\x04\xca\x04\x19\x1d\n\r\n\x05\x04\n\ - \x02\x04\x03\x12\x04\xca\x04\x20!\n\x0c\n\x02\x05\x04\x12\x06\xcd\x04\0\ - \xd3\x04\x01\n\x0b\n\x03\x05\x04\x01\x12\x04\xcd\x04\x05\r\n\x0c\n\x04\ - \x05\x04\x02\0\x12\x04\xce\x04\x02\x1a\n\r\n\x05\x05\x04\x02\0\x01\x12\ - \x04\xce\x04\x02\x15\n\r\n\x05\x05\x04\x02\0\x02\x12\x04\xce\x04\x18\x19\ - \n\x0c\n\x04\x05\x04\x02\x01\x12\x04\xcf\x04\x02\x0c\n\r\n\x05\x05\x04\ - \x02\x01\x01\x12\x04\xcf\x04\x02\x07\n\r\n\x05\x05\x04\x02\x01\x02\x12\ - \x04\xcf\x04\n\x0b\n\x0c\n\x04\x05\x04\x02\x02\x12\x04\xd0\x04\x02\x0e\n\ - \r\n\x05\x05\x04\x02\x02\x01\x12\x04\xd0\x04\x02\t\n\r\n\x05\x05\x04\x02\ - \x02\x02\x12\x04\xd0\x04\x0c\r\n\x0c\n\x04\x05\x04\x02\x03\x12\x04\xd1\ - \x04\x02\x12\n\r\n\x05\x05\x04\x02\x03\x01\x12\x04\xd1\x04\x02\r\n\r\n\ - \x05\x05\x04\x02\x03\x02\x12\x04\xd1\x04\x10\x11\n\x0c\n\x04\x05\x04\x02\ - \x04\x12\x04\xd2\x04\x02\x0b\n\r\n\x05\x05\x04\x02\x04\x01\x12\x04\xd2\ - \x04\x02\x06\n\r\n\x05\x05\x04\x02\x04\x02\x12\x04\xd2\x04\t\n\n\x0c\n\ - \x02\x05\x05\x12\x06\xd5\x04\0\xd9\x04\x01\n\x0b\n\x03\x05\x05\x01\x12\ - \x04\xd5\x04\x05\x12\n\x0c\n\x04\x05\x05\x02\0\x12\x04\xd6\x04\x02\x1f\n\ - \r\n\x05\x05\x05\x02\0\x01\x12\x04\xd6\x04\x02\x1a\n\r\n\x05\x05\x05\x02\ - \0\x02\x12\x04\xd6\x04\x1d\x1e\n\x0c\n\x04\x05\x05\x02\x01\x12\x04\xd7\ - \x04\x02\x12\n\r\n\x05\x05\x05\x02\x01\x01\x12\x04\xd7\x04\x02\r\n\r\n\ - \x05\x05\x05\x02\x01\x02\x12\x04\xd7\x04\x10\x11\n\x0c\n\x04\x05\x05\x02\ - \x02\x12\x04\xd8\x04\x02\x11\n\r\n\x05\x05\x05\x02\x02\x01\x12\x04\xd8\ - \x04\x02\x0c\n\r\n\x05\x05\x05\x02\x02\x02\x12\x04\xd8\x04\x0f\x10\n\xd6\ - \x03\n\x02\x05\x06\x12\x06\xe1\x04\0\xc7\x05\x01\x1a\xc7\x03\x20Language\ + \x02\x03\x05\x12\x04\xcb\x04\x02\x08\n\r\n\x05\x04\n\x02\x03\x01\x12\x04\ + \xcb\x04\t\x0f\n\r\n\x05\x04\n\x02\x03\x03\x12\x04\xcb\x04\x12\x13\n\x0c\ + \n\x04\x04\n\x02\x04\x12\x04\xcc\x04\x02\"\n\r\n\x05\x04\n\x02\x04\x04\ + \x12\x04\xcc\x04\x02\n\n\r\n\x05\x04\n\x02\x04\x06\x12\x04\xcc\x04\x0b\ + \x18\n\r\n\x05\x04\n\x02\x04\x01\x12\x04\xcc\x04\x19\x1d\n\r\n\x05\x04\n\ + \x02\x04\x03\x12\x04\xcc\x04\x20!\n\x0c\n\x02\x05\x04\x12\x06\xcf\x04\0\ + \xd5\x04\x01\n\x0b\n\x03\x05\x04\x01\x12\x04\xcf\x04\x05\r\n\x0c\n\x04\ + \x05\x04\x02\0\x12\x04\xd0\x04\x02\x1a\n\r\n\x05\x05\x04\x02\0\x01\x12\ + \x04\xd0\x04\x02\x15\n\r\n\x05\x05\x04\x02\0\x02\x12\x04\xd0\x04\x18\x19\ + \n\x0c\n\x04\x05\x04\x02\x01\x12\x04\xd1\x04\x02\x0c\n\r\n\x05\x05\x04\ + \x02\x01\x01\x12\x04\xd1\x04\x02\x07\n\r\n\x05\x05\x04\x02\x01\x02\x12\ + \x04\xd1\x04\n\x0b\n\x0c\n\x04\x05\x04\x02\x02\x12\x04\xd2\x04\x02\x0e\n\ + \r\n\x05\x05\x04\x02\x02\x01\x12\x04\xd2\x04\x02\t\n\r\n\x05\x05\x04\x02\ + \x02\x02\x12\x04\xd2\x04\x0c\r\n\x0c\n\x04\x05\x04\x02\x03\x12\x04\xd3\ + \x04\x02\x12\n\r\n\x05\x05\x04\x02\x03\x01\x12\x04\xd3\x04\x02\r\n\r\n\ + \x05\x05\x04\x02\x03\x02\x12\x04\xd3\x04\x10\x11\n\x0c\n\x04\x05\x04\x02\ + \x04\x12\x04\xd4\x04\x02\x0b\n\r\n\x05\x05\x04\x02\x04\x01\x12\x04\xd4\ + \x04\x02\x06\n\r\n\x05\x05\x04\x02\x04\x02\x12\x04\xd4\x04\t\n\n\x0c\n\ + \x02\x05\x05\x12\x06\xd7\x04\0\xdb\x04\x01\n\x0b\n\x03\x05\x05\x01\x12\ + \x04\xd7\x04\x05\x12\n\x0c\n\x04\x05\x05\x02\0\x12\x04\xd8\x04\x02\x1f\n\ + \r\n\x05\x05\x05\x02\0\x01\x12\x04\xd8\x04\x02\x1a\n\r\n\x05\x05\x05\x02\ + \0\x02\x12\x04\xd8\x04\x1d\x1e\n\x0c\n\x04\x05\x05\x02\x01\x12\x04\xd9\ + \x04\x02\x12\n\r\n\x05\x05\x05\x02\x01\x01\x12\x04\xd9\x04\x02\r\n\r\n\ + \x05\x05\x05\x02\x01\x02\x12\x04\xd9\x04\x10\x11\n\x0c\n\x04\x05\x05\x02\ + \x02\x12\x04\xda\x04\x02\x11\n\r\n\x05\x05\x05\x02\x02\x01\x12\x04\xda\ + \x04\x02\x0c\n\r\n\x05\x05\x05\x02\x02\x02\x12\x04\xda\x04\x0f\x10\n\xd6\ + \x03\n\x02\x05\x06\x12\x06\xe3\x04\0\xc9\x05\x01\x1a\xc7\x03\x20Language\ \x20standardises\x20names\x20of\x20common\x20programming\x20languages\ \x20that\x20can\x20be\x20used\n\x20for\x20the\x20`Document.language`\x20\ field.\x20The\x20primary\x20purpose\x20of\x20this\x20enum\x20is\x20to\n\ @@ -4743,209 +4747,209 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \x20the\x20name\n\x20\"CPlusPlus\"\x20in\x20this\x20enum\x20and\x20other\ \x20names\x20such\x20as\x20\"cpp\"\x20are\x20incompatible.\n\x20Feel\x20\ free\x20to\x20send\x20a\x20pull-request\x20to\x20add\x20missing\x20progr\ - amming\x20languages.\n\n\x0b\n\x03\x05\x06\x01\x12\x04\xe1\x04\x05\r\n\ - \x0c\n\x04\x05\x06\x02\0\x12\x04\xe2\x04\x02\x1a\n\r\n\x05\x05\x06\x02\0\ - \x01\x12\x04\xe2\x04\x02\x15\n\r\n\x05\x05\x06\x02\0\x02\x12\x04\xe2\x04\ - \x18\x19\n\x0c\n\x04\x05\x06\x02\x01\x12\x04\xe3\x04\x02\x0c\n\r\n\x05\ - \x05\x06\x02\x01\x01\x12\x04\xe3\x04\x02\x06\n\r\n\x05\x05\x06\x02\x01\ - \x02\x12\x04\xe3\x04\t\x0b\n\x0c\n\x04\x05\x06\x02\x02\x12\x04\xe4\x04\ - \x02\x0b\n\r\n\x05\x05\x06\x02\x02\x01\x12\x04\xe4\x04\x02\x05\n\r\n\x05\ - \x05\x06\x02\x02\x02\x12\x04\xe4\x04\x08\n\n\x0c\n\x04\x05\x06\x02\x03\ - \x12\x04\xe5\x04\x02\x0b\n\r\n\x05\x05\x06\x02\x03\x01\x12\x04\xe5\x04\ - \x02\x05\n\r\n\x05\x05\x06\x02\x03\x02\x12\x04\xe5\x04\x08\n\n\x0c\n\x04\ - \x05\x06\x02\x04\x12\x04\xe6\x04\x02\x0c\n\r\n\x05\x05\x06\x02\x04\x01\ - \x12\x04\xe6\x04\x02\x06\n\r\n\x05\x05\x06\x02\x04\x02\x12\x04\xe6\x04\t\ - \x0b\n\x0c\n\x04\x05\x06\x02\x05\x12\x04\xe7\x04\x02\x10\n\r\n\x05\x05\ - \x06\x02\x05\x01\x12\x04\xe7\x04\x02\n\n\r\n\x05\x05\x06\x02\x05\x02\x12\ - \x04\xe7\x04\r\x0f\n\x0c\n\x04\x05\x06\x02\x06\x12\x04\xe8\x04\x02\x10\n\ - \r\n\x05\x05\x06\x02\x06\x01\x12\x04\xe8\x04\x02\n\n\r\n\x05\x05\x06\x02\ - \x06\x02\x12\x04\xe8\x04\r\x0f\n\x0c\n\x04\x05\x06\x02\x07\x12\x04\xe9\ - \x04\x02\x0b\n\r\n\x05\x05\x06\x02\x07\x01\x12\x04\xe9\x04\x02\x05\n\r\n\ - \x05\x05\x06\x02\x07\x02\x12\x04\xe9\x04\x08\n\n\x0c\n\x04\x05\x06\x02\ - \x08\x12\x04\xea\x04\x02\x0b\n\r\n\x05\x05\x06\x02\x08\x01\x12\x04\xea\ - \x04\x02\x05\n\r\n\x05\x05\x06\x02\x08\x02\x12\x04\xea\x04\x08\n\n\x0c\n\ - \x04\x05\x06\x02\t\x12\x04\xeb\x04\x02\x0e\n\r\n\x05\x05\x06\x02\t\x01\ - \x12\x04\xeb\x04\x02\x08\n\r\n\x05\x05\x06\x02\t\x02\x12\x04\xeb\x04\x0b\ - \r\n\x0c\n\x04\x05\x06\x02\n\x12\x04\xec\x04\x02\t\n\r\n\x05\x05\x06\x02\ - \n\x01\x12\x04\xec\x04\x02\x03\n\r\n\x05\x05\x06\x02\n\x02\x12\x04\xec\ - \x04\x06\x08\n\x0c\n\x04\x05\x06\x02\x0b\x12\x04\xed\x04\x02\r\n\r\n\x05\ - \x05\x06\x02\x0b\x01\x12\x04\xed\x04\x02\x07\n\r\n\x05\x05\x06\x02\x0b\ - \x02\x12\x04\xed\x04\n\x0c\nH\n\x04\x05\x06\x02\x0c\x12\x04\xee\x04\x02\ + amming\x20languages.\n\n\x0b\n\x03\x05\x06\x01\x12\x04\xe3\x04\x05\r\n\ + \x0c\n\x04\x05\x06\x02\0\x12\x04\xe4\x04\x02\x1a\n\r\n\x05\x05\x06\x02\0\ + \x01\x12\x04\xe4\x04\x02\x15\n\r\n\x05\x05\x06\x02\0\x02\x12\x04\xe4\x04\ + \x18\x19\n\x0c\n\x04\x05\x06\x02\x01\x12\x04\xe5\x04\x02\x0c\n\r\n\x05\ + \x05\x06\x02\x01\x01\x12\x04\xe5\x04\x02\x06\n\r\n\x05\x05\x06\x02\x01\ + \x02\x12\x04\xe5\x04\t\x0b\n\x0c\n\x04\x05\x06\x02\x02\x12\x04\xe6\x04\ + \x02\x0b\n\r\n\x05\x05\x06\x02\x02\x01\x12\x04\xe6\x04\x02\x05\n\r\n\x05\ + \x05\x06\x02\x02\x02\x12\x04\xe6\x04\x08\n\n\x0c\n\x04\x05\x06\x02\x03\ + \x12\x04\xe7\x04\x02\x0b\n\r\n\x05\x05\x06\x02\x03\x01\x12\x04\xe7\x04\ + \x02\x05\n\r\n\x05\x05\x06\x02\x03\x02\x12\x04\xe7\x04\x08\n\n\x0c\n\x04\ + \x05\x06\x02\x04\x12\x04\xe8\x04\x02\x0c\n\r\n\x05\x05\x06\x02\x04\x01\ + \x12\x04\xe8\x04\x02\x06\n\r\n\x05\x05\x06\x02\x04\x02\x12\x04\xe8\x04\t\ + \x0b\n\x0c\n\x04\x05\x06\x02\x05\x12\x04\xe9\x04\x02\x10\n\r\n\x05\x05\ + \x06\x02\x05\x01\x12\x04\xe9\x04\x02\n\n\r\n\x05\x05\x06\x02\x05\x02\x12\ + \x04\xe9\x04\r\x0f\n\x0c\n\x04\x05\x06\x02\x06\x12\x04\xea\x04\x02\x10\n\ + \r\n\x05\x05\x06\x02\x06\x01\x12\x04\xea\x04\x02\n\n\r\n\x05\x05\x06\x02\ + \x06\x02\x12\x04\xea\x04\r\x0f\n\x0c\n\x04\x05\x06\x02\x07\x12\x04\xeb\ + \x04\x02\x0b\n\r\n\x05\x05\x06\x02\x07\x01\x12\x04\xeb\x04\x02\x05\n\r\n\ + \x05\x05\x06\x02\x07\x02\x12\x04\xeb\x04\x08\n\n\x0c\n\x04\x05\x06\x02\ + \x08\x12\x04\xec\x04\x02\x0b\n\r\n\x05\x05\x06\x02\x08\x01\x12\x04\xec\ + \x04\x02\x05\n\r\n\x05\x05\x06\x02\x08\x02\x12\x04\xec\x04\x08\n\n\x0c\n\ + \x04\x05\x06\x02\t\x12\x04\xed\x04\x02\x0e\n\r\n\x05\x05\x06\x02\t\x01\ + \x12\x04\xed\x04\x02\x08\n\r\n\x05\x05\x06\x02\t\x02\x12\x04\xed\x04\x0b\ + \r\n\x0c\n\x04\x05\x06\x02\n\x12\x04\xee\x04\x02\t\n\r\n\x05\x05\x06\x02\ + \n\x01\x12\x04\xee\x04\x02\x03\n\r\n\x05\x05\x06\x02\n\x02\x12\x04\xee\ + \x04\x06\x08\n\x0c\n\x04\x05\x06\x02\x0b\x12\x04\xef\x04\x02\r\n\r\n\x05\ + \x05\x06\x02\x0b\x01\x12\x04\xef\x04\x02\x07\n\r\n\x05\x05\x06\x02\x0b\ + \x02\x12\x04\xef\x04\n\x0c\nH\n\x04\x05\x06\x02\x0c\x12\x04\xf0\x04\x02\ \x0b\":\x20C++\x20(the\x20name\x20\"CPP\"\x20was\x20chosen\x20for\x20con\ - sistency\x20with\x20LSP)\n\n\r\n\x05\x05\x06\x02\x0c\x01\x12\x04\xee\x04\ - \x02\x05\n\r\n\x05\x05\x06\x02\x0c\x02\x12\x04\xee\x04\x08\n\n\x0c\n\x04\ - \x05\x06\x02\r\x12\x04\xef\x04\x02\x0b\n\r\n\x05\x05\x06\x02\r\x01\x12\ - \x04\xef\x04\x02\x05\n\r\n\x05\x05\x06\x02\r\x02\x12\x04\xef\x04\x08\n\n\ - \x0c\n\x04\x05\x06\x02\x0e\x12\x04\xf0\x04\x02\r\n\r\n\x05\x05\x06\x02\ - \x0e\x01\x12\x04\xf0\x04\x02\x08\n\r\n\x05\x05\x06\x02\x0e\x02\x12\x04\ - \xf0\x04\x0b\x0c\n\x0c\n\x04\x05\x06\x02\x0f\x12\x04\xf1\x04\x02\x0e\n\r\ - \n\x05\x05\x06\x02\x0f\x01\x12\x04\xf1\x04\x02\t\n\r\n\x05\x05\x06\x02\ - \x0f\x02\x12\x04\xf1\x04\x0c\r\n\x0c\n\x04\x05\x06\x02\x10\x12\x04\xf2\ - \x04\x02\x14\n\r\n\x05\x05\x06\x02\x10\x01\x12\x04\xf2\x04\x02\x0e\n\r\n\ - \x05\x05\x06\x02\x10\x02\x12\x04\xf2\x04\x11\x13\n\x0c\n\x04\x05\x06\x02\ - \x11\x12\x04\xf3\x04\x02\x11\n\r\n\x05\x05\x06\x02\x11\x01\x12\x04\xf3\ - \x04\x02\x0c\n\r\n\x05\x05\x06\x02\x11\x02\x12\x04\xf3\x04\x0f\x10\n\x0c\ - \n\x04\x05\x06\x02\x12\x12\x04\xf4\x04\x02\x0b\n\r\n\x05\x05\x06\x02\x12\ - \x01\x12\x04\xf4\x04\x02\x05\n\r\n\x05\x05\x06\x02\x12\x02\x12\x04\xf4\ - \x04\x08\n\n\x0c\n\x04\x05\x06\x02\x13\x12\x04\xf5\x04\x02\x0b\n\r\n\x05\ - \x05\x06\x02\x13\x01\x12\x04\xf5\x04\x02\x06\n\r\n\x05\x05\x06\x02\x13\ - \x02\x12\x04\xf5\x04\t\n\n\x0c\n\x04\x05\x06\x02\x14\x12\x04\xf6\x04\x02\ - \x0e\n\r\n\x05\x05\x06\x02\x14\x01\x12\x04\xf6\x04\x02\x08\n\r\n\x05\x05\ - \x06\x02\x14\x02\x12\x04\xf6\x04\x0b\r\n\x0c\n\x04\x05\x06\x02\x15\x12\ - \x04\xf7\x04\x02\x0c\n\r\n\x05\x05\x06\x02\x15\x01\x12\x04\xf7\x04\x02\ - \x06\n\r\n\x05\x05\x06\x02\x15\x02\x12\x04\xf7\x04\t\x0b\n\x0c\n\x04\x05\ - \x06\x02\x16\x12\x04\xf8\x04\x02\x12\n\r\n\x05\x05\x06\x02\x16\x01\x12\ - \x04\xf8\x04\x02\x0c\n\r\n\x05\x05\x06\x02\x16\x02\x12\x04\xf8\x04\x0f\ - \x11\n\x0c\n\x04\x05\x06\x02\x17\x12\x04\xf9\x04\x02\x0e\n\r\n\x05\x05\ - \x06\x02\x17\x01\x12\x04\xf9\x04\x02\x08\n\r\n\x05\x05\x06\x02\x17\x02\ - \x12\x04\xf9\x04\x0b\r\n\x0c\n\x04\x05\x06\x02\x18\x12\x04\xfa\x04\x02\ - \x0e\n\r\n\x05\x05\x06\x02\x18\x01\x12\x04\xfa\x04\x02\x08\n\r\n\x05\x05\ - \x06\x02\x18\x02\x12\x04\xfa\x04\x0b\r\n\x0c\n\x04\x05\x06\x02\x19\x12\ - \x04\xfb\x04\x02\x0e\n\r\n\x05\x05\x06\x02\x19\x01\x12\x04\xfb\x04\x02\ - \x08\n\r\n\x05\x05\x06\x02\x19\x02\x12\x04\xfb\x04\x0b\r\n\x0c\n\x04\x05\ - \x06\x02\x1a\x12\x04\xfc\x04\x02\x0e\n\r\n\x05\x05\x06\x02\x1a\x01\x12\ - \x04\xfc\x04\x02\x08\n\r\n\x05\x05\x06\x02\x1a\x02\x12\x04\xfc\x04\x0b\r\ - \n\x0c\n\x04\x05\x06\x02\x1b\x12\x04\xfd\x04\x02\x0c\n\r\n\x05\x05\x06\ - \x02\x1b\x01\x12\x04\xfd\x04\x02\x06\n\r\n\x05\x05\x06\x02\x1b\x02\x12\ - \x04\xfd\x04\t\x0b\n\x0c\n\x04\x05\x06\x02\x1c\x12\x04\xfe\x04\x02\x0c\n\ - \r\n\x05\x05\x06\x02\x1c\x01\x12\x04\xfe\x04\x02\x06\n\r\n\x05\x05\x06\ - \x02\x1c\x02\x12\x04\xfe\x04\t\x0b\n\x0c\n\x04\x05\x06\x02\x1d\x12\x04\ - \xff\x04\x02\x0f\n\r\n\x05\x05\x06\x02\x1d\x01\x12\x04\xff\x04\x02\t\n\r\ - \n\x05\x05\x06\x02\x1d\x02\x12\x04\xff\x04\x0c\x0e\n\x0c\n\x04\x05\x06\ - \x02\x1e\x12\x04\x80\x05\x02\x12\n\r\n\x05\x05\x06\x02\x1e\x01\x12\x04\ - \x80\x05\x02\x0c\n\r\n\x05\x05\x06\x02\x1e\x02\x12\x04\x80\x05\x0f\x11\n\ - \x0c\n\x04\x05\x06\x02\x1f\x12\x04\x81\x05\x02\x12\n\r\n\x05\x05\x06\x02\ - \x1f\x01\x12\x04\x81\x05\x02\x0c\n\r\n\x05\x05\x06\x02\x1f\x02\x12\x04\ - \x81\x05\x0f\x11\n\x0c\n\x04\x05\x06\x02\x20\x12\x04\x82\x05\x02\x12\n\r\ - \n\x05\x05\x06\x02\x20\x01\x12\x04\x82\x05\x02\x0c\n\r\n\x05\x05\x06\x02\ - \x20\x02\x12\x04\x82\x05\x0f\x11\n\x0c\n\x04\x05\x06\x02!\x12\x04\x83\ - \x05\x02\n\n\r\n\x05\x05\x06\x02!\x01\x12\x04\x83\x05\x02\x04\n\r\n\x05\ - \x05\x06\x02!\x02\x12\x04\x83\x05\x07\t\n\x0c\n\x04\x05\x06\x02\"\x12\ - \x04\x84\x05\x02\r\n\r\n\x05\x05\x06\x02\"\x01\x12\x04\x84\x05\x02\x08\n\ - \r\n\x05\x05\x06\x02\"\x02\x12\x04\x84\x05\x0b\x0c\n\x0c\n\x04\x05\x06\ - \x02#\x12\x04\x85\x05\x02\x0c\n\r\n\x05\x05\x06\x02#\x01\x12\x04\x85\x05\ - \x02\x06\n\r\n\x05\x05\x06\x02#\x02\x12\x04\x85\x05\t\x0b\n\x0c\n\x04\ - \x05\x06\x02$\x12\x04\x86\x05\x02\x0c\n\r\n\x05\x05\x06\x02$\x01\x12\x04\ - \x86\x05\x02\x06\n\r\n\x05\x05\x06\x02$\x02\x12\x04\x86\x05\t\x0b\n\x0c\ - \n\x04\x05\x06\x02%\x12\x04\x87\x05\x02\x12\n\r\n\x05\x05\x06\x02%\x01\ - \x12\x04\x87\x05\x02\x0c\n\r\n\x05\x05\x06\x02%\x02\x12\x04\x87\x05\x0f\ - \x11\n\x0c\n\x04\x05\x06\x02&\x12\x04\x88\x05\x02\x0f\n\r\n\x05\x05\x06\ - \x02&\x01\x12\x04\x88\x05\x02\t\n\r\n\x05\x05\x06\x02&\x02\x12\x04\x88\ - \x05\x0c\x0e\n\x0c\n\x04\x05\x06\x02'\x12\x04\x89\x05\x02\r\n\r\n\x05\ - \x05\x06\x02'\x01\x12\x04\x89\x05\x02\x07\n\r\n\x05\x05\x06\x02'\x02\x12\ - \x04\x89\x05\n\x0c\n\x0c\n\x04\x05\x06\x02(\x12\x04\x8a\x05\x02\x0b\n\r\ - \n\x05\x05\x06\x02(\x01\x12\x04\x8a\x05\x02\x05\n\r\n\x05\x05\x06\x02(\ - \x02\x12\x04\x8a\x05\x08\n\n\x0c\n\x04\x05\x06\x02)\x12\x04\x8b\x05\x02\ - \t\n\r\n\x05\x05\x06\x02)\x01\x12\x04\x8b\x05\x02\x03\n\r\n\x05\x05\x06\ - \x02)\x02\x12\x04\x8b\x05\x06\x08\n\x0c\n\x04\x05\x06\x02*\x12\x04\x8c\ - \x05\x02\x0c\n\r\n\x05\x05\x06\x02*\x01\x12\x04\x8c\x05\x02\x06\n\r\n\ - \x05\x05\x06\x02*\x02\x12\x04\x8c\x05\t\x0b\n\x0c\n\x04\x05\x06\x02+\x12\ - \x04\x8d\x05\x02\x0b\n\r\n\x05\x05\x06\x02+\x01\x12\x04\x8d\x05\x02\x06\ - \n\r\n\x05\x05\x06\x02+\x02\x12\x04\x8d\x05\t\n\n\x0c\n\x04\x05\x06\x02,\ - \x12\x04\x8e\x05\x02\x12\n\r\n\x05\x05\x06\x02,\x01\x12\x04\x8e\x05\x02\ - \x0c\n\r\n\x05\x05\x06\x02,\x02\x12\x04\x8e\x05\x0f\x11\n\x0c\n\x04\x05\ - \x06\x02-\x12\x04\x8f\x05\x02\x17\n\r\n\x05\x05\x06\x02-\x01\x12\x04\x8f\ - \x05\x02\x11\n\r\n\x05\x05\x06\x02-\x02\x12\x04\x8f\x05\x14\x16\n\x0c\n\ - \x04\x05\x06\x02.\x12\x04\x90\x05\x02\x0f\n\r\n\x05\x05\x06\x02.\x01\x12\ - \x04\x90\x05\x02\t\n\r\n\x05\x05\x06\x02.\x02\x12\x04\x90\x05\x0c\x0e\n\ - \x0c\n\x04\x05\x06\x02/\x12\x04\x91\x05\x02\x0e\n\r\n\x05\x05\x06\x02/\ - \x01\x12\x04\x91\x05\x02\x07\n\r\n\x05\x05\x06\x02/\x02\x12\x04\x91\x05\ - \x0b\r\n\x0c\n\x04\x05\x06\x020\x12\x04\x92\x05\x02\r\n\r\n\x05\x05\x06\ - \x020\x01\x12\x04\x92\x05\x02\x08\n\r\n\x05\x05\x06\x020\x02\x12\x04\x92\ - \x05\x0b\x0c\n\x0c\n\x04\x05\x06\x021\x12\x04\x93\x05\x02\r\n\r\n\x05\ - \x05\x06\x021\x01\x12\x04\x93\x05\x02\x07\n\r\n\x05\x05\x06\x021\x02\x12\ - \x04\x93\x05\n\x0c\n\x0c\n\x04\x05\x06\x022\x12\x04\x94\x05\x02\x0c\n\r\ - \n\x05\x05\x06\x022\x01\x12\x04\x94\x05\x02\x06\n\r\n\x05\x05\x06\x022\ - \x02\x12\x04\x94\x05\t\x0b\n\x0c\n\x04\x05\x06\x023\x12\x04\x95\x05\x02\ - \x0c\n\r\n\x05\x05\x06\x023\x01\x12\x04\x95\x05\x02\x06\n\r\n\x05\x05\ - \x06\x023\x02\x12\x04\x95\x05\t\x0b\n\x0c\n\x04\x05\x06\x024\x12\x04\x96\ - \x05\x02\x0b\n\r\n\x05\x05\x06\x024\x01\x12\x04\x96\x05\x02\x05\n\r\n\ - \x05\x05\x06\x024\x02\x12\x04\x96\x05\x08\n\n\x0c\n\x04\x05\x06\x025\x12\ - \x04\x97\x05\x02\x10\n\r\n\x05\x05\x06\x025\x01\x12\x04\x97\x05\x02\n\n\ - \r\n\x05\x05\x06\x025\x02\x12\x04\x97\x05\r\x0f\n\x0c\n\x04\x05\x06\x026\ - \x12\x04\x98\x05\x02\x10\n\r\n\x05\x05\x06\x026\x01\x12\x04\x98\x05\x02\ - \n\n\r\n\x05\x05\x06\x026\x02\x12\x04\x98\x05\r\x0f\n\x0c\n\x04\x05\x06\ - \x027\x12\x04\x99\x05\x02\x0e\n\r\n\x05\x05\x06\x027\x01\x12\x04\x99\x05\ - \x02\x08\n\r\n\x05\x05\x06\x027\x02\x12\x04\x99\x05\x0b\r\n\x0c\n\x04\ - \x05\x06\x028\x12\x04\x9a\x05\x02\x0b\n\r\n\x05\x05\x06\x028\x01\x12\x04\ - \x9a\x05\x02\x05\n\r\n\x05\x05\x06\x028\x02\x12\x04\x9a\x05\x08\n\n\x0c\ - \n\x04\x05\x06\x029\x12\x04\x9b\x05\x02\r\n\r\n\x05\x05\x06\x029\x01\x12\ - \x04\x9b\x05\x02\x07\n\r\n\x05\x05\x06\x029\x02\x12\x04\x9b\x05\n\x0c\n\ - \x0c\n\x04\x05\x06\x02:\x12\x04\x9c\x05\x02\x13\n\r\n\x05\x05\x06\x02:\ - \x01\x12\x04\x9c\x05\x02\r\n\r\n\x05\x05\x06\x02:\x02\x12\x04\x9c\x05\ - \x10\x12\n\x0c\n\x04\x05\x06\x02;\x12\x04\x9d\x05\x02\x15\n\r\n\x05\x05\ - \x06\x02;\x01\x12\x04\x9d\x05\x02\x0f\n\r\n\x05\x05\x06\x02;\x02\x12\x04\ - \x9d\x05\x12\x14\n\x0c\n\x04\x05\x06\x02<\x12\x04\x9e\x05\x02\x0b\n\r\n\ - \x05\x05\x06\x02<\x01\x12\x04\x9e\x05\x02\x05\n\r\n\x05\x05\x06\x02<\x02\ - \x12\x04\x9e\x05\x08\n\n\x0c\n\x04\x05\x06\x02=\x12\x04\x9f\x05\x02\r\n\ - \r\n\x05\x05\x06\x02=\x01\x12\x04\x9f\x05\x02\x07\n\r\n\x05\x05\x06\x02=\ - \x02\x12\x04\x9f\x05\n\x0c\n\x0c\n\x04\x05\x06\x02>\x12\x04\xa0\x05\x02\ - \x0c\n\r\n\x05\x05\x06\x02>\x01\x12\x04\xa0\x05\x02\x06\n\r\n\x05\x05\ - \x06\x02>\x02\x12\x04\xa0\x05\t\x0b\n\x0c\n\x04\x05\x06\x02?\x12\x04\xa1\ - \x05\x02\x12\n\r\n\x05\x05\x06\x02?\x01\x12\x04\xa1\x05\x02\x0c\n\r\n\ - \x05\x05\x06\x02?\x02\x12\x04\xa1\x05\x0f\x11\n\x0c\n\x04\x05\x06\x02@\ - \x12\x04\xa2\x05\x02\x0e\n\r\n\x05\x05\x06\x02@\x01\x12\x04\xa2\x05\x02\ - \x08\n\r\n\x05\x05\x06\x02@\x02\x12\x04\xa2\x05\x0b\r\n\x0c\n\x04\x05\ - \x06\x02A\x12\x04\xa3\x05\x02\x0e\n\r\n\x05\x05\x06\x02A\x01\x12\x04\xa3\ - \x05\x02\x08\n\r\n\x05\x05\x06\x02A\x02\x12\x04\xa3\x05\x0b\r\n\x0c\n\ - \x04\x05\x06\x02B\x12\x04\xa4\x05\x02\t\n\r\n\x05\x05\x06\x02B\x01\x12\ - \x04\xa4\x05\x02\x03\n\r\n\x05\x05\x06\x02B\x02\x12\x04\xa4\x05\x06\x08\ - \n\x0c\n\x04\x05\x06\x02C\x12\x04\xa5\x05\x02\x0e\n\r\n\x05\x05\x06\x02C\ - \x01\x12\x04\xa5\x05\x02\x08\n\r\n\x05\x05\x06\x02C\x02\x12\x04\xa5\x05\ - \x0b\r\n\x0c\n\x04\x05\x06\x02D\x12\x04\xa6\x05\x02\x0c\n\r\n\x05\x05\ - \x06\x02D\x01\x12\x04\xa6\x05\x02\x06\n\r\n\x05\x05\x06\x02D\x02\x12\x04\ - \xa6\x05\t\x0b\n\x0c\n\x04\x05\x06\x02E\x12\x04\xa7\x05\x02\r\n\r\n\x05\ - \x05\x06\x02E\x01\x12\x04\xa7\x05\x02\x07\n\r\n\x05\x05\x06\x02E\x02\x12\ - \x04\xa7\x05\n\x0c\n\x0c\n\x04\x05\x06\x02F\x12\x04\xa8\x05\x02\x0c\n\r\ - \n\x05\x05\x06\x02F\x01\x12\x04\xa8\x05\x02\x06\n\r\n\x05\x05\x06\x02F\ - \x02\x12\x04\xa8\x05\t\x0b\n\x0c\n\x04\x05\x06\x02G\x12\x04\xa9\x05\x02\ - \x0c\n\r\n\x05\x05\x06\x02G\x01\x12\x04\xa9\x05\x02\x06\n\r\n\x05\x05\ - \x06\x02G\x02\x12\x04\xa9\x05\t\x0b\n\x0c\n\x04\x05\x06\x02H\x12\x04\xaa\ - \x05\x02\x0c\n\r\n\x05\x05\x06\x02H\x01\x12\x04\xaa\x05\x02\x06\n\r\n\ - \x05\x05\x06\x02H\x02\x12\x04\xaa\x05\t\x0b\n\x0c\n\x04\x05\x06\x02I\x12\ - \x04\xab\x05\x02\x0b\n\r\n\x05\x05\x06\x02I\x01\x12\x04\xab\x05\x02\x05\ - \n\r\n\x05\x05\x06\x02I\x02\x12\x04\xab\x05\x08\n\n\x0c\n\x04\x05\x06\ - \x02J\x12\x04\xac\x05\x02\x0c\n\r\n\x05\x05\x06\x02J\x01\x12\x04\xac\x05\ - \x02\x06\n\r\n\x05\x05\x06\x02J\x02\x12\x04\xac\x05\t\x0b\n\x0c\n\x04\ - \x05\x06\x02K\x12\x04\xad\x05\x02\x0b\n\r\n\x05\x05\x06\x02K\x01\x12\x04\ - \xad\x05\x02\x05\n\r\n\x05\x05\x06\x02K\x02\x12\x04\xad\x05\x08\n\n\x0c\ - \n\x04\x05\x06\x02L\x12\x04\xae\x05\x02\x0b\n\r\n\x05\x05\x06\x02L\x01\ - \x12\x04\xae\x05\x02\x05\n\r\n\x05\x05\x06\x02L\x02\x12\x04\xae\x05\x08\ - \n\n\x0c\n\x04\x05\x06\x02M\x12\x04\xaf\x05\x02\x0c\n\r\n\x05\x05\x06\ - \x02M\x01\x12\x04\xaf\x05\x02\x06\n\r\n\x05\x05\x06\x02M\x02\x12\x04\xaf\ - \x05\t\x0b\n\x0c\n\x04\x05\x06\x02N\x12\x04\xb0\x05\x02\x0c\n\r\n\x05\ - \x05\x06\x02N\x01\x12\x04\xb0\x05\x02\x07\n\r\n\x05\x05\x06\x02N\x02\x12\ - \x04\xb0\x05\n\x0b\n\x0c\n\x04\x05\x06\x02O\x12\x04\xb1\x05\x02\x0e\n\r\ - \n\x05\x05\x06\x02O\x01\x12\x04\xb1\x05\x02\x08\n\r\n\x05\x05\x06\x02O\ - \x02\x12\x04\xb1\x05\x0b\r\n\x14\n\x04\x05\x06\x02P\x12\x04\xb2\x05\x02\ - \x13\"\x06\x20Bash\n\n\r\n\x05\x05\x06\x02P\x01\x12\x04\xb2\x05\x02\r\n\ - \r\n\x05\x05\x06\x02P\x02\x12\x04\xb2\x05\x10\x12\n\x0c\n\x04\x05\x06\ - \x02Q\x12\x04\xb3\x05\x02\x0f\n\r\n\x05\x05\x06\x02Q\x01\x12\x04\xb3\x05\ - \x02\t\n\r\n\x05\x05\x06\x02Q\x02\x12\x04\xb3\x05\x0c\x0e\n\x0c\n\x04\ - \x05\x06\x02R\x12\x04\xb4\x05\x02\x0c\n\r\n\x05\x05\x06\x02R\x01\x12\x04\ - \xb4\x05\x02\x07\n\r\n\x05\x05\x06\x02R\x02\x12\x04\xb4\x05\n\x0b\n\x0c\ - \n\x04\x05\x06\x02S\x12\x04\xb5\x05\x02\x0c\n\r\n\x05\x05\x06\x02S\x01\ - \x12\x04\xb5\x05\x02\x06\n\r\n\x05\x05\x06\x02S\x02\x12\x04\xb5\x05\t\ - \x0b\n\x0c\n\x04\x05\x06\x02T\x12\x04\xb6\x05\x02\x0b\n\r\n\x05\x05\x06\ - \x02T\x01\x12\x04\xb6\x05\x02\x05\n\r\n\x05\x05\x06\x02T\x02\x12\x04\xb6\ - \x05\x08\n\n\x0c\n\x04\x05\x06\x02U\x12\x04\xb7\x05\x02\x12\n\r\n\x05\ - \x05\x06\x02U\x01\x12\x04\xb7\x05\x02\x0c\n\r\n\x05\x05\x06\x02U\x02\x12\ - \x04\xb7\x05\x0f\x11\n\x0c\n\x04\x05\x06\x02V\x12\x04\xb8\x05\x02\x17\n\ - \r\n\x05\x05\x06\x02V\x01\x12\x04\xb8\x05\x02\x11\n\r\n\x05\x05\x06\x02V\ - \x02\x12\x04\xb8\x05\x14\x16\n\x0c\n\x04\x05\x06\x02W\x12\x04\xb9\x05\ - \x02\x13\n\r\n\x05\x05\x06\x02W\x01\x12\x04\xb9\x05\x02\r\n\r\n\x05\x05\ - \x06\x02W\x02\x12\x04\xb9\x05\x10\x12\n\x0c\n\x04\x05\x06\x02X\x12\x04\ - \xba\x05\x02\x0b\n\r\n\x05\x05\x06\x02X\x01\x12\x04\xba\x05\x02\x05\n\r\ - \n\x05\x05\x06\x02X\x02\x12\x04\xba\x05\x08\n\n\x0c\n\x04\x05\x06\x02Y\ - \x12\x04\xbb\x05\x02\x0f\n\r\n\x05\x05\x06\x02Y\x01\x12\x04\xbb\x05\x02\ - \t\n\r\n\x05\x05\x06\x02Y\x02\x12\x04\xbb\x05\x0c\x0e\n\x0c\n\x04\x05\ - \x06\x02Z\x12\x04\xbc\x05\x02\x0b\n\r\n\x05\x05\x06\x02Z\x01\x12\x04\xbc\ - \x05\x02\x05\n\r\n\x05\x05\x06\x02Z\x02\x12\x04\xbc\x05\x08\n\n\x0c\n\ - \x04\x05\x06\x02[\x12\x04\xbd\x05\x02\x0b\n\r\n\x05\x05\x06\x02[\x01\x12\ - \x04\xbd\x05\x02\x05\n\r\n\x05\x05\x06\x02[\x02\x12\x04\xbd\x05\x08\n\n\ - \x0c\n\x04\x05\x06\x02\\\x12\x04\xbe\x05\x02\x0c\n\r\n\x05\x05\x06\x02\\\ - \x01\x12\x04\xbe\x05\x02\x06\n\r\n\x05\x05\x06\x02\\\x02\x12\x04\xbe\x05\ - \t\x0b\n\x92\x03\n\x04\x05\x06\x02]\x12\x04\xbf\x05\x02\x0b\"\x83\x03\ + sistency\x20with\x20LSP)\n\n\r\n\x05\x05\x06\x02\x0c\x01\x12\x04\xf0\x04\ + \x02\x05\n\r\n\x05\x05\x06\x02\x0c\x02\x12\x04\xf0\x04\x08\n\n\x0c\n\x04\ + \x05\x06\x02\r\x12\x04\xf1\x04\x02\x0b\n\r\n\x05\x05\x06\x02\r\x01\x12\ + \x04\xf1\x04\x02\x05\n\r\n\x05\x05\x06\x02\r\x02\x12\x04\xf1\x04\x08\n\n\ + \x0c\n\x04\x05\x06\x02\x0e\x12\x04\xf2\x04\x02\r\n\r\n\x05\x05\x06\x02\ + \x0e\x01\x12\x04\xf2\x04\x02\x08\n\r\n\x05\x05\x06\x02\x0e\x02\x12\x04\ + \xf2\x04\x0b\x0c\n\x0c\n\x04\x05\x06\x02\x0f\x12\x04\xf3\x04\x02\x0e\n\r\ + \n\x05\x05\x06\x02\x0f\x01\x12\x04\xf3\x04\x02\t\n\r\n\x05\x05\x06\x02\ + \x0f\x02\x12\x04\xf3\x04\x0c\r\n\x0c\n\x04\x05\x06\x02\x10\x12\x04\xf4\ + \x04\x02\x14\n\r\n\x05\x05\x06\x02\x10\x01\x12\x04\xf4\x04\x02\x0e\n\r\n\ + \x05\x05\x06\x02\x10\x02\x12\x04\xf4\x04\x11\x13\n\x0c\n\x04\x05\x06\x02\ + \x11\x12\x04\xf5\x04\x02\x11\n\r\n\x05\x05\x06\x02\x11\x01\x12\x04\xf5\ + \x04\x02\x0c\n\r\n\x05\x05\x06\x02\x11\x02\x12\x04\xf5\x04\x0f\x10\n\x0c\ + \n\x04\x05\x06\x02\x12\x12\x04\xf6\x04\x02\x0b\n\r\n\x05\x05\x06\x02\x12\ + \x01\x12\x04\xf6\x04\x02\x05\n\r\n\x05\x05\x06\x02\x12\x02\x12\x04\xf6\ + \x04\x08\n\n\x0c\n\x04\x05\x06\x02\x13\x12\x04\xf7\x04\x02\x0b\n\r\n\x05\ + \x05\x06\x02\x13\x01\x12\x04\xf7\x04\x02\x06\n\r\n\x05\x05\x06\x02\x13\ + \x02\x12\x04\xf7\x04\t\n\n\x0c\n\x04\x05\x06\x02\x14\x12\x04\xf8\x04\x02\ + \x0e\n\r\n\x05\x05\x06\x02\x14\x01\x12\x04\xf8\x04\x02\x08\n\r\n\x05\x05\ + \x06\x02\x14\x02\x12\x04\xf8\x04\x0b\r\n\x0c\n\x04\x05\x06\x02\x15\x12\ + \x04\xf9\x04\x02\x0c\n\r\n\x05\x05\x06\x02\x15\x01\x12\x04\xf9\x04\x02\ + \x06\n\r\n\x05\x05\x06\x02\x15\x02\x12\x04\xf9\x04\t\x0b\n\x0c\n\x04\x05\ + \x06\x02\x16\x12\x04\xfa\x04\x02\x12\n\r\n\x05\x05\x06\x02\x16\x01\x12\ + \x04\xfa\x04\x02\x0c\n\r\n\x05\x05\x06\x02\x16\x02\x12\x04\xfa\x04\x0f\ + \x11\n\x0c\n\x04\x05\x06\x02\x17\x12\x04\xfb\x04\x02\x0e\n\r\n\x05\x05\ + \x06\x02\x17\x01\x12\x04\xfb\x04\x02\x08\n\r\n\x05\x05\x06\x02\x17\x02\ + \x12\x04\xfb\x04\x0b\r\n\x0c\n\x04\x05\x06\x02\x18\x12\x04\xfc\x04\x02\ + \x0e\n\r\n\x05\x05\x06\x02\x18\x01\x12\x04\xfc\x04\x02\x08\n\r\n\x05\x05\ + \x06\x02\x18\x02\x12\x04\xfc\x04\x0b\r\n\x0c\n\x04\x05\x06\x02\x19\x12\ + \x04\xfd\x04\x02\x0e\n\r\n\x05\x05\x06\x02\x19\x01\x12\x04\xfd\x04\x02\ + \x08\n\r\n\x05\x05\x06\x02\x19\x02\x12\x04\xfd\x04\x0b\r\n\x0c\n\x04\x05\ + \x06\x02\x1a\x12\x04\xfe\x04\x02\x0e\n\r\n\x05\x05\x06\x02\x1a\x01\x12\ + \x04\xfe\x04\x02\x08\n\r\n\x05\x05\x06\x02\x1a\x02\x12\x04\xfe\x04\x0b\r\ + \n\x0c\n\x04\x05\x06\x02\x1b\x12\x04\xff\x04\x02\x0c\n\r\n\x05\x05\x06\ + \x02\x1b\x01\x12\x04\xff\x04\x02\x06\n\r\n\x05\x05\x06\x02\x1b\x02\x12\ + \x04\xff\x04\t\x0b\n\x0c\n\x04\x05\x06\x02\x1c\x12\x04\x80\x05\x02\x0c\n\ + \r\n\x05\x05\x06\x02\x1c\x01\x12\x04\x80\x05\x02\x06\n\r\n\x05\x05\x06\ + \x02\x1c\x02\x12\x04\x80\x05\t\x0b\n\x0c\n\x04\x05\x06\x02\x1d\x12\x04\ + \x81\x05\x02\x0f\n\r\n\x05\x05\x06\x02\x1d\x01\x12\x04\x81\x05\x02\t\n\r\ + \n\x05\x05\x06\x02\x1d\x02\x12\x04\x81\x05\x0c\x0e\n\x0c\n\x04\x05\x06\ + \x02\x1e\x12\x04\x82\x05\x02\x12\n\r\n\x05\x05\x06\x02\x1e\x01\x12\x04\ + \x82\x05\x02\x0c\n\r\n\x05\x05\x06\x02\x1e\x02\x12\x04\x82\x05\x0f\x11\n\ + \x0c\n\x04\x05\x06\x02\x1f\x12\x04\x83\x05\x02\x12\n\r\n\x05\x05\x06\x02\ + \x1f\x01\x12\x04\x83\x05\x02\x0c\n\r\n\x05\x05\x06\x02\x1f\x02\x12\x04\ + \x83\x05\x0f\x11\n\x0c\n\x04\x05\x06\x02\x20\x12\x04\x84\x05\x02\x12\n\r\ + \n\x05\x05\x06\x02\x20\x01\x12\x04\x84\x05\x02\x0c\n\r\n\x05\x05\x06\x02\ + \x20\x02\x12\x04\x84\x05\x0f\x11\n\x0c\n\x04\x05\x06\x02!\x12\x04\x85\ + \x05\x02\n\n\r\n\x05\x05\x06\x02!\x01\x12\x04\x85\x05\x02\x04\n\r\n\x05\ + \x05\x06\x02!\x02\x12\x04\x85\x05\x07\t\n\x0c\n\x04\x05\x06\x02\"\x12\ + \x04\x86\x05\x02\r\n\r\n\x05\x05\x06\x02\"\x01\x12\x04\x86\x05\x02\x08\n\ + \r\n\x05\x05\x06\x02\"\x02\x12\x04\x86\x05\x0b\x0c\n\x0c\n\x04\x05\x06\ + \x02#\x12\x04\x87\x05\x02\x0c\n\r\n\x05\x05\x06\x02#\x01\x12\x04\x87\x05\ + \x02\x06\n\r\n\x05\x05\x06\x02#\x02\x12\x04\x87\x05\t\x0b\n\x0c\n\x04\ + \x05\x06\x02$\x12\x04\x88\x05\x02\x0c\n\r\n\x05\x05\x06\x02$\x01\x12\x04\ + \x88\x05\x02\x06\n\r\n\x05\x05\x06\x02$\x02\x12\x04\x88\x05\t\x0b\n\x0c\ + \n\x04\x05\x06\x02%\x12\x04\x89\x05\x02\x12\n\r\n\x05\x05\x06\x02%\x01\ + \x12\x04\x89\x05\x02\x0c\n\r\n\x05\x05\x06\x02%\x02\x12\x04\x89\x05\x0f\ + \x11\n\x0c\n\x04\x05\x06\x02&\x12\x04\x8a\x05\x02\x0f\n\r\n\x05\x05\x06\ + \x02&\x01\x12\x04\x8a\x05\x02\t\n\r\n\x05\x05\x06\x02&\x02\x12\x04\x8a\ + \x05\x0c\x0e\n\x0c\n\x04\x05\x06\x02'\x12\x04\x8b\x05\x02\r\n\r\n\x05\ + \x05\x06\x02'\x01\x12\x04\x8b\x05\x02\x07\n\r\n\x05\x05\x06\x02'\x02\x12\ + \x04\x8b\x05\n\x0c\n\x0c\n\x04\x05\x06\x02(\x12\x04\x8c\x05\x02\x0b\n\r\ + \n\x05\x05\x06\x02(\x01\x12\x04\x8c\x05\x02\x05\n\r\n\x05\x05\x06\x02(\ + \x02\x12\x04\x8c\x05\x08\n\n\x0c\n\x04\x05\x06\x02)\x12\x04\x8d\x05\x02\ + \t\n\r\n\x05\x05\x06\x02)\x01\x12\x04\x8d\x05\x02\x03\n\r\n\x05\x05\x06\ + \x02)\x02\x12\x04\x8d\x05\x06\x08\n\x0c\n\x04\x05\x06\x02*\x12\x04\x8e\ + \x05\x02\x0c\n\r\n\x05\x05\x06\x02*\x01\x12\x04\x8e\x05\x02\x06\n\r\n\ + \x05\x05\x06\x02*\x02\x12\x04\x8e\x05\t\x0b\n\x0c\n\x04\x05\x06\x02+\x12\ + \x04\x8f\x05\x02\x0b\n\r\n\x05\x05\x06\x02+\x01\x12\x04\x8f\x05\x02\x06\ + \n\r\n\x05\x05\x06\x02+\x02\x12\x04\x8f\x05\t\n\n\x0c\n\x04\x05\x06\x02,\ + \x12\x04\x90\x05\x02\x12\n\r\n\x05\x05\x06\x02,\x01\x12\x04\x90\x05\x02\ + \x0c\n\r\n\x05\x05\x06\x02,\x02\x12\x04\x90\x05\x0f\x11\n\x0c\n\x04\x05\ + \x06\x02-\x12\x04\x91\x05\x02\x17\n\r\n\x05\x05\x06\x02-\x01\x12\x04\x91\ + \x05\x02\x11\n\r\n\x05\x05\x06\x02-\x02\x12\x04\x91\x05\x14\x16\n\x0c\n\ + \x04\x05\x06\x02.\x12\x04\x92\x05\x02\x0f\n\r\n\x05\x05\x06\x02.\x01\x12\ + \x04\x92\x05\x02\t\n\r\n\x05\x05\x06\x02.\x02\x12\x04\x92\x05\x0c\x0e\n\ + \x0c\n\x04\x05\x06\x02/\x12\x04\x93\x05\x02\x0e\n\r\n\x05\x05\x06\x02/\ + \x01\x12\x04\x93\x05\x02\x07\n\r\n\x05\x05\x06\x02/\x02\x12\x04\x93\x05\ + \x0b\r\n\x0c\n\x04\x05\x06\x020\x12\x04\x94\x05\x02\r\n\r\n\x05\x05\x06\ + \x020\x01\x12\x04\x94\x05\x02\x08\n\r\n\x05\x05\x06\x020\x02\x12\x04\x94\ + \x05\x0b\x0c\n\x0c\n\x04\x05\x06\x021\x12\x04\x95\x05\x02\r\n\r\n\x05\ + \x05\x06\x021\x01\x12\x04\x95\x05\x02\x07\n\r\n\x05\x05\x06\x021\x02\x12\ + \x04\x95\x05\n\x0c\n\x0c\n\x04\x05\x06\x022\x12\x04\x96\x05\x02\x0c\n\r\ + \n\x05\x05\x06\x022\x01\x12\x04\x96\x05\x02\x06\n\r\n\x05\x05\x06\x022\ + \x02\x12\x04\x96\x05\t\x0b\n\x0c\n\x04\x05\x06\x023\x12\x04\x97\x05\x02\ + \x0c\n\r\n\x05\x05\x06\x023\x01\x12\x04\x97\x05\x02\x06\n\r\n\x05\x05\ + \x06\x023\x02\x12\x04\x97\x05\t\x0b\n\x0c\n\x04\x05\x06\x024\x12\x04\x98\ + \x05\x02\x0b\n\r\n\x05\x05\x06\x024\x01\x12\x04\x98\x05\x02\x05\n\r\n\ + \x05\x05\x06\x024\x02\x12\x04\x98\x05\x08\n\n\x0c\n\x04\x05\x06\x025\x12\ + \x04\x99\x05\x02\x10\n\r\n\x05\x05\x06\x025\x01\x12\x04\x99\x05\x02\n\n\ + \r\n\x05\x05\x06\x025\x02\x12\x04\x99\x05\r\x0f\n\x0c\n\x04\x05\x06\x026\ + \x12\x04\x9a\x05\x02\x10\n\r\n\x05\x05\x06\x026\x01\x12\x04\x9a\x05\x02\ + \n\n\r\n\x05\x05\x06\x026\x02\x12\x04\x9a\x05\r\x0f\n\x0c\n\x04\x05\x06\ + \x027\x12\x04\x9b\x05\x02\x0e\n\r\n\x05\x05\x06\x027\x01\x12\x04\x9b\x05\ + \x02\x08\n\r\n\x05\x05\x06\x027\x02\x12\x04\x9b\x05\x0b\r\n\x0c\n\x04\ + \x05\x06\x028\x12\x04\x9c\x05\x02\x0b\n\r\n\x05\x05\x06\x028\x01\x12\x04\ + \x9c\x05\x02\x05\n\r\n\x05\x05\x06\x028\x02\x12\x04\x9c\x05\x08\n\n\x0c\ + \n\x04\x05\x06\x029\x12\x04\x9d\x05\x02\r\n\r\n\x05\x05\x06\x029\x01\x12\ + \x04\x9d\x05\x02\x07\n\r\n\x05\x05\x06\x029\x02\x12\x04\x9d\x05\n\x0c\n\ + \x0c\n\x04\x05\x06\x02:\x12\x04\x9e\x05\x02\x13\n\r\n\x05\x05\x06\x02:\ + \x01\x12\x04\x9e\x05\x02\r\n\r\n\x05\x05\x06\x02:\x02\x12\x04\x9e\x05\ + \x10\x12\n\x0c\n\x04\x05\x06\x02;\x12\x04\x9f\x05\x02\x15\n\r\n\x05\x05\ + \x06\x02;\x01\x12\x04\x9f\x05\x02\x0f\n\r\n\x05\x05\x06\x02;\x02\x12\x04\ + \x9f\x05\x12\x14\n\x0c\n\x04\x05\x06\x02<\x12\x04\xa0\x05\x02\x0b\n\r\n\ + \x05\x05\x06\x02<\x01\x12\x04\xa0\x05\x02\x05\n\r\n\x05\x05\x06\x02<\x02\ + \x12\x04\xa0\x05\x08\n\n\x0c\n\x04\x05\x06\x02=\x12\x04\xa1\x05\x02\r\n\ + \r\n\x05\x05\x06\x02=\x01\x12\x04\xa1\x05\x02\x07\n\r\n\x05\x05\x06\x02=\ + \x02\x12\x04\xa1\x05\n\x0c\n\x0c\n\x04\x05\x06\x02>\x12\x04\xa2\x05\x02\ + \x0c\n\r\n\x05\x05\x06\x02>\x01\x12\x04\xa2\x05\x02\x06\n\r\n\x05\x05\ + \x06\x02>\x02\x12\x04\xa2\x05\t\x0b\n\x0c\n\x04\x05\x06\x02?\x12\x04\xa3\ + \x05\x02\x12\n\r\n\x05\x05\x06\x02?\x01\x12\x04\xa3\x05\x02\x0c\n\r\n\ + \x05\x05\x06\x02?\x02\x12\x04\xa3\x05\x0f\x11\n\x0c\n\x04\x05\x06\x02@\ + \x12\x04\xa4\x05\x02\x0e\n\r\n\x05\x05\x06\x02@\x01\x12\x04\xa4\x05\x02\ + \x08\n\r\n\x05\x05\x06\x02@\x02\x12\x04\xa4\x05\x0b\r\n\x0c\n\x04\x05\ + \x06\x02A\x12\x04\xa5\x05\x02\x0e\n\r\n\x05\x05\x06\x02A\x01\x12\x04\xa5\ + \x05\x02\x08\n\r\n\x05\x05\x06\x02A\x02\x12\x04\xa5\x05\x0b\r\n\x0c\n\ + \x04\x05\x06\x02B\x12\x04\xa6\x05\x02\t\n\r\n\x05\x05\x06\x02B\x01\x12\ + \x04\xa6\x05\x02\x03\n\r\n\x05\x05\x06\x02B\x02\x12\x04\xa6\x05\x06\x08\ + \n\x0c\n\x04\x05\x06\x02C\x12\x04\xa7\x05\x02\x0e\n\r\n\x05\x05\x06\x02C\ + \x01\x12\x04\xa7\x05\x02\x08\n\r\n\x05\x05\x06\x02C\x02\x12\x04\xa7\x05\ + \x0b\r\n\x0c\n\x04\x05\x06\x02D\x12\x04\xa8\x05\x02\x0c\n\r\n\x05\x05\ + \x06\x02D\x01\x12\x04\xa8\x05\x02\x06\n\r\n\x05\x05\x06\x02D\x02\x12\x04\ + \xa8\x05\t\x0b\n\x0c\n\x04\x05\x06\x02E\x12\x04\xa9\x05\x02\r\n\r\n\x05\ + \x05\x06\x02E\x01\x12\x04\xa9\x05\x02\x07\n\r\n\x05\x05\x06\x02E\x02\x12\ + \x04\xa9\x05\n\x0c\n\x0c\n\x04\x05\x06\x02F\x12\x04\xaa\x05\x02\x0c\n\r\ + \n\x05\x05\x06\x02F\x01\x12\x04\xaa\x05\x02\x06\n\r\n\x05\x05\x06\x02F\ + \x02\x12\x04\xaa\x05\t\x0b\n\x0c\n\x04\x05\x06\x02G\x12\x04\xab\x05\x02\ + \x0c\n\r\n\x05\x05\x06\x02G\x01\x12\x04\xab\x05\x02\x06\n\r\n\x05\x05\ + \x06\x02G\x02\x12\x04\xab\x05\t\x0b\n\x0c\n\x04\x05\x06\x02H\x12\x04\xac\ + \x05\x02\x0c\n\r\n\x05\x05\x06\x02H\x01\x12\x04\xac\x05\x02\x06\n\r\n\ + \x05\x05\x06\x02H\x02\x12\x04\xac\x05\t\x0b\n\x0c\n\x04\x05\x06\x02I\x12\ + \x04\xad\x05\x02\x0b\n\r\n\x05\x05\x06\x02I\x01\x12\x04\xad\x05\x02\x05\ + \n\r\n\x05\x05\x06\x02I\x02\x12\x04\xad\x05\x08\n\n\x0c\n\x04\x05\x06\ + \x02J\x12\x04\xae\x05\x02\x0c\n\r\n\x05\x05\x06\x02J\x01\x12\x04\xae\x05\ + \x02\x06\n\r\n\x05\x05\x06\x02J\x02\x12\x04\xae\x05\t\x0b\n\x0c\n\x04\ + \x05\x06\x02K\x12\x04\xaf\x05\x02\x0b\n\r\n\x05\x05\x06\x02K\x01\x12\x04\ + \xaf\x05\x02\x05\n\r\n\x05\x05\x06\x02K\x02\x12\x04\xaf\x05\x08\n\n\x0c\ + \n\x04\x05\x06\x02L\x12\x04\xb0\x05\x02\x0b\n\r\n\x05\x05\x06\x02L\x01\ + \x12\x04\xb0\x05\x02\x05\n\r\n\x05\x05\x06\x02L\x02\x12\x04\xb0\x05\x08\ + \n\n\x0c\n\x04\x05\x06\x02M\x12\x04\xb1\x05\x02\x0c\n\r\n\x05\x05\x06\ + \x02M\x01\x12\x04\xb1\x05\x02\x06\n\r\n\x05\x05\x06\x02M\x02\x12\x04\xb1\ + \x05\t\x0b\n\x0c\n\x04\x05\x06\x02N\x12\x04\xb2\x05\x02\x0c\n\r\n\x05\ + \x05\x06\x02N\x01\x12\x04\xb2\x05\x02\x07\n\r\n\x05\x05\x06\x02N\x02\x12\ + \x04\xb2\x05\n\x0b\n\x0c\n\x04\x05\x06\x02O\x12\x04\xb3\x05\x02\x0e\n\r\ + \n\x05\x05\x06\x02O\x01\x12\x04\xb3\x05\x02\x08\n\r\n\x05\x05\x06\x02O\ + \x02\x12\x04\xb3\x05\x0b\r\n\x14\n\x04\x05\x06\x02P\x12\x04\xb4\x05\x02\ + \x13\"\x06\x20Bash\n\n\r\n\x05\x05\x06\x02P\x01\x12\x04\xb4\x05\x02\r\n\ + \r\n\x05\x05\x06\x02P\x02\x12\x04\xb4\x05\x10\x12\n\x0c\n\x04\x05\x06\ + \x02Q\x12\x04\xb5\x05\x02\x0f\n\r\n\x05\x05\x06\x02Q\x01\x12\x04\xb5\x05\ + \x02\t\n\r\n\x05\x05\x06\x02Q\x02\x12\x04\xb5\x05\x0c\x0e\n\x0c\n\x04\ + \x05\x06\x02R\x12\x04\xb6\x05\x02\x0c\n\r\n\x05\x05\x06\x02R\x01\x12\x04\ + \xb6\x05\x02\x07\n\r\n\x05\x05\x06\x02R\x02\x12\x04\xb6\x05\n\x0b\n\x0c\ + \n\x04\x05\x06\x02S\x12\x04\xb7\x05\x02\x0c\n\r\n\x05\x05\x06\x02S\x01\ + \x12\x04\xb7\x05\x02\x06\n\r\n\x05\x05\x06\x02S\x02\x12\x04\xb7\x05\t\ + \x0b\n\x0c\n\x04\x05\x06\x02T\x12\x04\xb8\x05\x02\x0b\n\r\n\x05\x05\x06\ + \x02T\x01\x12\x04\xb8\x05\x02\x05\n\r\n\x05\x05\x06\x02T\x02\x12\x04\xb8\ + \x05\x08\n\n\x0c\n\x04\x05\x06\x02U\x12\x04\xb9\x05\x02\x12\n\r\n\x05\ + \x05\x06\x02U\x01\x12\x04\xb9\x05\x02\x0c\n\r\n\x05\x05\x06\x02U\x02\x12\ + \x04\xb9\x05\x0f\x11\n\x0c\n\x04\x05\x06\x02V\x12\x04\xba\x05\x02\x17\n\ + \r\n\x05\x05\x06\x02V\x01\x12\x04\xba\x05\x02\x11\n\r\n\x05\x05\x06\x02V\ + \x02\x12\x04\xba\x05\x14\x16\n\x0c\n\x04\x05\x06\x02W\x12\x04\xbb\x05\ + \x02\x13\n\r\n\x05\x05\x06\x02W\x01\x12\x04\xbb\x05\x02\r\n\r\n\x05\x05\ + \x06\x02W\x02\x12\x04\xbb\x05\x10\x12\n\x0c\n\x04\x05\x06\x02X\x12\x04\ + \xbc\x05\x02\x0b\n\r\n\x05\x05\x06\x02X\x01\x12\x04\xbc\x05\x02\x05\n\r\ + \n\x05\x05\x06\x02X\x02\x12\x04\xbc\x05\x08\n\n\x0c\n\x04\x05\x06\x02Y\ + \x12\x04\xbd\x05\x02\x0f\n\r\n\x05\x05\x06\x02Y\x01\x12\x04\xbd\x05\x02\ + \t\n\r\n\x05\x05\x06\x02Y\x02\x12\x04\xbd\x05\x0c\x0e\n\x0c\n\x04\x05\ + \x06\x02Z\x12\x04\xbe\x05\x02\x0b\n\r\n\x05\x05\x06\x02Z\x01\x12\x04\xbe\ + \x05\x02\x05\n\r\n\x05\x05\x06\x02Z\x02\x12\x04\xbe\x05\x08\n\n\x0c\n\ + \x04\x05\x06\x02[\x12\x04\xbf\x05\x02\x0b\n\r\n\x05\x05\x06\x02[\x01\x12\ + \x04\xbf\x05\x02\x05\n\r\n\x05\x05\x06\x02[\x02\x12\x04\xbf\x05\x08\n\n\ + \x0c\n\x04\x05\x06\x02\\\x12\x04\xc0\x05\x02\x0c\n\r\n\x05\x05\x06\x02\\\ + \x01\x12\x04\xc0\x05\x02\x06\n\r\n\x05\x05\x06\x02\\\x02\x12\x04\xc0\x05\ + \t\x0b\n\x92\x03\n\x04\x05\x06\x02]\x12\x04\xc1\x05\x02\x0b\"\x83\x03\ \x20NextLanguage\x20=\x2095;\n\x20Steps\x20add\x20a\x20new\x20language:\ \n\x201.\x20Copy-paste\x20the\x20\"NextLanguage\x20=\x20N\"\x20line\x20a\ bove\n\x202.\x20Increment\x20\"NextLanguage\x20=\x20N\"\x20to\x20\"NextL\ @@ -4954,8 +4958,8 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \x20the\x20new\x20language\x20to\x20the\x20correct\x20line\x20above\x20u\ sing\x20alphabetical\x20order\n\x205.\x20(optional)\x20Add\x20a\x20brief\ \x20comment\x20behind\x20the\x20language\x20if\x20the\x20name\x20is\x20n\ - ot\x20self-explanatory\n\n\r\n\x05\x05\x06\x02]\x01\x12\x04\xbf\x05\x02\ - \x05\n\r\n\x05\x05\x06\x02]\x02\x12\x04\xbf\x05\x08\nb\x06proto3\ + ot\x20self-explanatory\n\n\r\n\x05\x05\x06\x02]\x01\x12\x04\xc1\x05\x02\ + \x05\n\r\n\x05\x05\x06\x02]\x02\x12\x04\xc1\x05\x08\nb\x06proto3\ "; /// `FileDescriptorProto` object which was a source for this generated file diff --git a/docs/scip.md b/docs/scip.md index 63909833..ece7dd5e 100644 --- a/docs/scip.md +++ b/docs/scip.md @@ -297,12 +297,14 @@ docstring or what package it's defined it. | repeated **documentation** | string | (optional, but strongly recommended) The markdown-formatted documentation for this symbol. This field is repeated to allow different kinds of documentation. For example, it's nice to include both the signature of a method (parameters and return type) along with the accompanying docstring. | | repeated **relationships** | Relationship | (optional) Relationships to other symbols (e.g., implements, type definition). | | **kind** | Kind | The kind of this symbol. Use this field instead of `SymbolDescriptor.Suffix` to determine whether something is, for example, a class or a method. | -| **display_name** | string | (optional) The name of this symbol as it should be displayed to the user. The `symbol` field is not a reliable source of the display name for several reasons: | +| **display_name** | string | (optional) The name of this symbol as it should be displayed to the user. For example, the symbol "com/example/MyClass#myMethod(+1)." should have the display name "myMethod". The `symbol` field is not a reliable source of the display name for several reasons: | Additional notes on **display_name**: -(optional) The name of this symbol as it should be displayed to the user. The `symbol` field -is not a reliable source of the display name for several reasons: +(optional) The name of this symbol as it should be displayed to the user. +For example, the symbol "com/example/MyClass#myMethod(+1)." should have the +display name "myMethod". The `symbol` field is not a reliable source of +the display name for several reasons: - Local symbols don't encode the name. - Some languages have case-insensitive names, so the symbol is all-lowercase. diff --git a/scip.proto b/scip.proto index e5336cb7..741221f6 100644 --- a/scip.proto +++ b/scip.proto @@ -299,8 +299,10 @@ message SymbolInformation { // Next = 62; // Feel free to open a PR proposing new language-specific kinds. } - // (optional) The name of this symbol as it should be displayed to the user. The `symbol` field - // is not a reliable source of the display name for several reasons: + // (optional) The name of this symbol as it should be displayed to the user. + // For example, the symbol "com/example/MyClass#myMethod(+1)." should have the + // display name "myMethod". The `symbol` field is not a reliable source of + // the display name for several reasons: // // - Local symbols don't encode the name. // - Some languages have case-insensitive names, so the symbol is all-lowercase.