From e39f28827bb69366bac8481099b53d4049e49928 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93lafur=20P=C3=A1ll=20Geirsson?= Date: Tue, 30 May 2023 14:40:00 +0200 Subject: [PATCH] Add `SymbolInformation.enclosing_symbol` Towards https://github.com/sourcegraph/scip/issues/154 Previously, it was not possible to determine the enclosing symbol of a local because the syntax for local symbols has no hierarchy (unlike global symbols). This PR closes the gap by adding a field `SymbolInformation.enclosing_symbol` to allow documenting the "parent" or "owner" of a local symbol. --- bindings/go/scip/scip.pb.go | 524 +++++++-------- bindings/rust/src/generated/scip.rs | 953 +++++++++++++++------------- bindings/typescript/scip.ts | 23 + docs/scip.md | 14 + scip.proto | 11 + 5 files changed, 819 insertions(+), 706 deletions(-) diff --git a/bindings/go/scip/scip.pb.go b/bindings/go/scip/scip.pb.go index a0bf18d3..a91c2447 100644 --- a/bindings/go/scip/scip.pb.go +++ b/bindings/go/scip/scip.pb.go @@ -1773,6 +1773,17 @@ type SymbolInformation struct { // while other fields such as `Documentation.occurrences` can be optionally // included to support hyperlinking referenced symbols in the signature. SignatureDocumentation *Document `protobuf:"bytes,7,opt,name=signature_documentation,json=signatureDocumentation,proto3" json:"signature_documentation,omitempty"` + // (optional) The enclosing symbol if this is a local symbol. For non-local + // symbols, the enclosing symbol should be parsed from the `symbol` field + // using the `Descriptor` grammar. + // + // The primary use-case for this field is to allow local symbol to be displayed + // in a symbol hierarchy for API documentation. It's OK to leave this field + // empty for local variables since local variables usually don't belong in API + // documentation. However, in the situation that you wish to include a local + // symbol in the hierarchy, then you can use `enclosing_symbol` to locate the + // "parent" or "owner" of this local symbol. + EnclosingSymbol string `protobuf:"bytes,8,opt,name=enclosing_symbol,json=enclosingSymbol,proto3" json:"enclosing_symbol,omitempty"` } func (x *SymbolInformation) Reset() { @@ -1849,6 +1860,13 @@ func (x *SymbolInformation) GetSignatureDocumentation() *Document { return nil } +func (x *SymbolInformation) GetEnclosingSymbol() string { + if x != nil { + return x.EnclosingSymbol + } + return "" +} + type Relationship struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2311,7 +2329,7 @@ var file_scip_proto_rawDesc = []byte{ 0x65, 0x72, 0x10, 0x05, 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, 0x86, 0x09, 0x0a, 0x11, 0x53, 0x79, 0x6d, 0x62, + 0x6f, 0x10, 0x09, 0x1a, 0x02, 0x10, 0x01, 0x22, 0xb1, 0x09, 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, @@ -2330,257 +2348,259 @@ var file_scip_proto_rawDesc = []byte{ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x63, 0x69, 0x70, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x16, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 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, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x6e, 0x63, 0x6c, 0x6f, 0x73, 0x69, 0x6e, 0x67, + 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x65, + 0x6e, 0x63, 0x6c, 0x6f, 0x73, 0x69, 0x6e, 0x67, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 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 cb2152d4..5481cbc1 100644 --- a/bindings/rust/src/generated/scip.rs +++ b/bindings/rust/src/generated/scip.rs @@ -1448,6 +1448,18 @@ pub struct SymbolInformation { /// included to support hyperlinking referenced symbols in the signature. // @@protoc_insertion_point(field:scip.SymbolInformation.signature_documentation) pub signature_documentation: ::protobuf::MessageField, + /// (optional) The enclosing symbol if this is a local symbol. For non-local + /// symbols, the enclosing symbol should be parsed from the `symbol` field + /// using the `Descriptor` grammar. + /// + /// The primary use-case for this field is to allow local symbol to be displayed + /// in a symbol hierarchy for API documentation. It's OK to leave this field + /// empty for local variables since local variables usually don't belong in API + /// documentation. However, in the situation that you wish to include a local + /// symbol in the hierarchy, then you can use `enclosing_symbol` to locate the + /// "parent" or "owner" of this local symbol. + // @@protoc_insertion_point(field:scip.SymbolInformation.enclosing_symbol) + pub enclosing_symbol: ::std::string::String, // special fields // @@protoc_insertion_point(special_field:scip.SymbolInformation.special_fields) pub special_fields: ::protobuf::SpecialFields, @@ -1465,7 +1477,7 @@ impl SymbolInformation { } fn generated_message_descriptor_data() -> ::protobuf::reflect::GeneratedMessageDescriptorData { - let mut fields = ::std::vec::Vec::with_capacity(6); + let mut fields = ::std::vec::Vec::with_capacity(7); let mut oneofs = ::std::vec::Vec::with_capacity(0); fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>( "symbol", @@ -1497,6 +1509,11 @@ impl SymbolInformation { |m: &SymbolInformation| { &m.signature_documentation }, |m: &mut SymbolInformation| { &mut m.signature_documentation }, )); + fields.push(::protobuf::reflect::rt::v2::make_simpler_field_accessor::<_, _>( + "enclosing_symbol", + |m: &SymbolInformation| { &m.enclosing_symbol }, + |m: &mut SymbolInformation| { &mut m.enclosing_symbol }, + )); ::protobuf::reflect::GeneratedMessageDescriptorData::new_2::( "SymbolInformation", fields, @@ -1533,6 +1550,9 @@ impl ::protobuf::Message for SymbolInformation { 58 => { ::protobuf::rt::read_singular_message_into_field(is, &mut self.signature_documentation)?; }, + 66 => { + self.enclosing_symbol = is.read_string()?; + }, tag => { ::protobuf::rt::read_unknown_or_skip_group(tag, is, self.special_fields.mut_unknown_fields())?; }, @@ -1565,6 +1585,9 @@ impl ::protobuf::Message for SymbolInformation { let len = v.compute_size(); my_size += 1 + ::protobuf::rt::compute_raw_varint64_size(len) + len; } + if !self.enclosing_symbol.is_empty() { + my_size += ::protobuf::rt::string_size(8, &self.enclosing_symbol); + } my_size += ::protobuf::rt::unknown_fields_size(self.special_fields.unknown_fields()); self.special_fields.cached_size().set(my_size as u32); my_size @@ -1589,6 +1612,9 @@ impl ::protobuf::Message for SymbolInformation { if let Some(v) = self.signature_documentation.as_ref() { ::protobuf::rt::write_message_field_with_cached_size(7, v, os)?; } + if !self.enclosing_symbol.is_empty() { + os.write_string(8, &self.enclosing_symbol)?; + } os.write_unknown_fields(self.special_fields.unknown_fields())?; ::std::result::Result::Ok(()) } @@ -1612,6 +1638,7 @@ impl ::protobuf::Message for SymbolInformation { self.kind = ::protobuf::EnumOrUnknown::new(symbol_information::Kind::UnspecifiedKind); self.display_name.clear(); self.signature_documentation.clear(); + self.enclosing_symbol.clear(); self.special_fields.clear(); } @@ -1623,6 +1650,7 @@ impl ::protobuf::Message for SymbolInformation { kind: ::protobuf::EnumOrUnknown::from_i32(0), display_name: ::std::string::String::new(), signature_documentation: ::protobuf::MessageField::none(), + enclosing_symbol: ::std::string::String::new(), special_fields: ::protobuf::SpecialFields::new(), }; &instance @@ -3819,54 +3847,55 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \x04Type\x10\x02\x12\x08\n\x04Term\x10\x03\x12\n\n\x06Method\x10\x04\x12\ \x11\n\rTypeParameter\x10\x05\x12\r\n\tParameter\x10\x06\x12\x08\n\x04Me\ ta\x10\x07\x12\t\n\x05Local\x10\x08\x12\t\n\x05Macro\x10\t\x1a\x02\x10\ - \x01\"\x86\t\n\x11SymbolInformation\x12\x16\n\x06symbol\x18\x01\x20\x01(\ + \x01\"\xb1\t\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\rrel\ ationships\x120\n\x04kind\x18\x05\x20\x01(\x0e2\x1c.scip.SymbolInformati\ on.KindR\x04kind\x12!\n\x0cdisplay_name\x18\x06\x20\x01(\tR\x0bdisplayNa\ me\x12G\n\x17signature_documentation\x18\x07\x20\x01(\x0b2\x0e.scip.Docu\ - mentR\x16signatureDocumentation\"\xda\x06\n\x04Kind\x12\x13\n\x0fUnspeci\ - fiedKind\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\x05A\ - xiom\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\nDat\ - aFamily\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\x06\ - Getter\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\x04La\ - ng\x10\x17\x12\t\n\x05Lemma\x10\x18\x12\t\n\x05Macro\x10\x19\x12\n\n\x06\ - Method\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\x06Object\x10!\x12\ - \x0c\n\x08Operator\x10\"\x12\x0b\n\x07Package\x10#\x12\x11\n\rPackageObj\ - ect\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\rSe\ - lfParameter\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\x104\ - \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\ + mentR\x16signatureDocumentation\x12)\n\x10enclosing_symbol\x18\x08\x20\ + \x01(\tR\x0fenclosingSymbol\"\xda\x06\n\x04Kind\x12\x13\n\x0fUnspecified\ + Kind\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\nDataFamil\ + y\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\x07Message\x10\ + \x1c\x12\n\n\x06Module\x10\x1d\x12\r\n\tNamespace\x10\x1e\x12\x08\n\x04N\ + ull\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\rPackageObject\ + \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\rSelfPar\ + ameter\x10,\x12\n\n\x06Setter\x10-\x12\r\n\tSignature\x10.\x12\r\n\tSubs\ + cript\x10/\x12\n\n\x06String\x100\x12\n\n\x06Struct\x101\x12\n\n\x06Tact\ + ic\x102\x12\x0b\n\x07Theorem\x103\x12\x11\n\rThisParameter\x104\x12\t\n\ + \x05Trait\x105\x12\x08\n\x04Type\x106\x12\r\n\tTypeAlias\x107\x12\r\n\tT\ + ypeClass\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\x06\ + symbol\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\x0cisDefinition\"\xa4\x02\n\nOccur\ + rence\x12\x14\n\x05range\x18\x01\x20\x03(\x05R\x05range\x12\x16\n\x06sym\ + bol\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\x0fenclosing_range\x18\ + \x07\x20\x03(\x05R\x0eenclosingRange\"\xa7\x01\n\nDiagnostic\x12*\n\x08s\ + everity\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\x06source\ + \x12'\n\x04tags\x18\x05\x20\x03(\x0e2\x13.scip.DiagnosticTagR\x04tags*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\ @@ -3930,7 +3959,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\xff\x82\x02\n\x07\x12\x05\n\0\xdb\ + om/sourcegraph/scip/bindings/go/scip/J\x9a\x88\x02\n\x07\x12\x05\n\0\xe6\ \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\ @@ -4182,7 +4211,7 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \x02\x12\x04\xb3\x01\x02\x14\n\r\n\x05\x04\x06\x02\x02\x06\x12\x04\xb3\ \x01\x02\x08\n\r\n\x05\x04\x06\x02\x02\x01\x12\x04\xb3\x01\t\x0f\n\r\n\ \x05\x04\x06\x02\x02\x03\x12\x04\xb3\x01\x12\x13\n\x83\x01\n\x02\x04\x07\ - \x12\x06\xb8\x01\0\xc9\x02\x01\x1au\x20SymbolInformation\x20defines\x20m\ + \x12\x06\xb8\x01\0\xd4\x02\x01\x1au\x20SymbolInformation\x20defines\x20m\ etadata\x20about\x20a\x20symbol,\x20such\x20as\x20the\x20symbol's\n\x20d\ ocstring\x20or\x20what\x20package\x20it's\x20defined\x20it.\n\n\x0b\n\ \x03\x04\x07\x01\x12\x04\xb8\x01\x08\x19\n\xa0\x01\n\x04\x04\x07\x02\0\ @@ -4435,12 +4464,28 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \x20support\x20hyperlinking\x20referenced\x20symbols\x20in\x20the\x20sig\ nature.\n\n\r\n\x05\x04\x07\x02\x05\x06\x12\x04\xc8\x02\x02\n\n\r\n\x05\ \x04\x07\x02\x05\x01\x12\x04\xc8\x02\x0b\"\n\r\n\x05\x04\x07\x02\x05\x03\ - \x12\x04\xc8\x02%&\n\x0c\n\x02\x04\x08\x12\x06\xcc\x02\0\x84\x03\x01\n\ - \x0b\n\x03\x04\x08\x01\x12\x04\xcc\x02\x08\x14\n\x0c\n\x04\x04\x08\x02\0\ - \x12\x04\xcd\x02\x02\x14\n\r\n\x05\x04\x08\x02\0\x05\x12\x04\xcd\x02\x02\ - \x08\n\r\n\x05\x04\x08\x02\0\x01\x12\x04\xcd\x02\t\x0f\n\r\n\x05\x04\x08\ - \x02\0\x03\x12\x04\xcd\x02\x12\x13\n\xde\x08\n\x04\x04\x08\x02\x01\x12\ - \x04\xe6\x02\x02\x18\x1a\xcf\x08\x20When\x20resolving\x20\"Find\x20refer\ + \x12\x04\xc8\x02%&\n\xeb\x04\n\x04\x04\x07\x02\x06\x12\x04\xd3\x02\x02\ + \x1e\x1a\xdc\x04\x20(optional)\x20The\x20enclosing\x20symbol\x20if\x20th\ + is\x20is\x20a\x20local\x20symbol.\x20\x20For\x20non-local\n\x20symbols,\ + \x20the\x20enclosing\x20symbol\x20should\x20be\x20parsed\x20from\x20the\ + \x20`symbol`\x20field\n\x20using\x20the\x20`Descriptor`\x20grammar.\n\n\ + \x20The\x20primary\x20use-case\x20for\x20this\x20field\x20is\x20to\x20al\ + low\x20local\x20symbol\x20to\x20be\x20displayed\n\x20in\x20a\x20symbol\ + \x20hierarchy\x20for\x20API\x20documentation.\x20It's\x20OK\x20to\x20lea\ + ve\x20this\x20field\n\x20empty\x20for\x20local\x20variables\x20since\x20\ + local\x20variables\x20usually\x20don't\x20belong\x20in\x20API\n\x20docum\ + entation.\x20However,\x20in\x20the\x20situation\x20that\x20you\x20wish\ + \x20to\x20include\x20a\x20local\n\x20symbol\x20in\x20the\x20hierarchy,\ + \x20then\x20you\x20can\x20use\x20`enclosing_symbol`\x20to\x20locate\x20t\ + he\n\x20\"parent\"\x20or\x20\"owner\"\x20of\x20this\x20local\x20symbol.\ + \n\n\r\n\x05\x04\x07\x02\x06\x05\x12\x04\xd3\x02\x02\x08\n\r\n\x05\x04\ + \x07\x02\x06\x01\x12\x04\xd3\x02\t\x19\n\r\n\x05\x04\x07\x02\x06\x03\x12\ + \x04\xd3\x02\x1c\x1d\n\x0c\n\x02\x04\x08\x12\x06\xd7\x02\0\x8f\x03\x01\n\ + \x0b\n\x03\x04\x08\x01\x12\x04\xd7\x02\x08\x14\n\x0c\n\x04\x04\x08\x02\0\ + \x12\x04\xd8\x02\x02\x14\n\r\n\x05\x04\x08\x02\0\x05\x12\x04\xd8\x02\x02\ + \x08\n\r\n\x05\x04\x08\x02\0\x01\x12\x04\xd8\x02\t\x0f\n\r\n\x05\x04\x08\ + \x02\0\x03\x12\x04\xd8\x02\x12\x13\n\xde\x08\n\x04\x04\x08\x02\x01\x12\ + \x04\xf1\x02\x02\x18\x1a\xcf\x08\x20When\x20resolving\x20\"Find\x20refer\ ences\",\x20this\x20field\x20documents\x20what\x20other\x20symbols\n\x20\ should\x20be\x20included\x20together\x20with\x20this\x20symbol.\x20For\ \x20example,\x20consider\x20the\n\x20following\x20TypeScript\x20code\x20\ @@ -4464,10 +4509,10 @@ static file_descriptor_proto_data: &'static [u8] = b"\ s\x20to\x20the\x20`Dog#sound()`\x20method\x20as\x20well.\x20Vice-versa,\ \x20doing\x20\"Find\n\x20references\"\x20on\x20the\x20`Dog#sound()`\x20m\ ethod\x20should\x20include\x20references\x20to\x20the\n\x20`Animal#sound\ - ()`\x20method\x20as\x20well.\n\n\r\n\x05\x04\x08\x02\x01\x05\x12\x04\xe6\ - \x02\x02\x06\n\r\n\x05\x04\x08\x02\x01\x01\x12\x04\xe6\x02\x07\x13\n\r\n\ - \x05\x04\x08\x02\x01\x03\x12\x04\xe6\x02\x16\x17\n\xee\x03\n\x04\x04\x08\ - \x02\x02\x12\x04\xef\x02\x02\x1d\x1a\xdf\x03\x20Similar\x20to\x20`is_ref\ + ()`\x20method\x20as\x20well.\n\n\r\n\x05\x04\x08\x02\x01\x05\x12\x04\xf1\ + \x02\x02\x06\n\r\n\x05\x04\x08\x02\x01\x01\x12\x04\xf1\x02\x07\x13\n\r\n\ + \x05\x04\x08\x02\x01\x03\x12\x04\xf1\x02\x16\x17\n\xee\x03\n\x04\x04\x08\ + \x02\x02\x12\x04\xfa\x02\x02\x1d\x1a\xdf\x03\x20Similar\x20to\x20`is_ref\ erence`\x20but\x20for\x20\"Find\x20implementations\".\n\x20It's\x20commo\ n\x20for\x20`is_implementation`\x20and\x20`is_reference`\x20to\x20both\ \x20be\x20true\x20but\n\x20it's\x20not\x20always\x20the\x20case.\n\x20In\ @@ -4478,13 +4523,13 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \x20not\x20return\n\x20\"Dog#\".\x20We\x20only\x20want\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\xef\x02\x02\x06\n\r\n\x05\x04\x08\x02\x02\x01\x12\x04\xef\x02\ - \x07\x18\n\r\n\x05\x04\x08\x02\x02\x03\x12\x04\xef\x02\x1b\x1c\nP\n\x04\ - \x04\x08\x02\x03\x12\x04\xf1\x02\x02\x1e\x1aB\x20Similar\x20to\x20`refer\ + \x12\x04\xfa\x02\x02\x06\n\r\n\x05\x04\x08\x02\x02\x01\x12\x04\xfa\x02\ + \x07\x18\n\r\n\x05\x04\x08\x02\x02\x03\x12\x04\xfa\x02\x1b\x1c\nP\n\x04\ + \x04\x08\x02\x03\x12\x04\xfc\x02\x02\x1e\x1aB\x20Similar\x20to\x20`refer\ ences_symbols`\x20but\x20for\x20\"Go\x20to\x20type\x20definition\".\n\n\ - \r\n\x05\x04\x08\x02\x03\x05\x12\x04\xf1\x02\x02\x06\n\r\n\x05\x04\x08\ - \x02\x03\x01\x12\x04\xf1\x02\x07\x19\n\r\n\x05\x04\x08\x02\x03\x03\x12\ - \x04\xf1\x02\x1c\x1d\n\xa7\x07\n\x04\x04\x08\x02\x04\x12\x04\x82\x03\x02\ + \r\n\x05\x04\x08\x02\x03\x05\x12\x04\xfc\x02\x02\x06\n\r\n\x05\x04\x08\ + \x02\x03\x01\x12\x04\xfc\x02\x07\x19\n\r\n\x05\x04\x08\x02\x03\x03\x12\ + \x04\xfc\x02\x1c\x1d\n\xa7\x07\n\x04\x04\x08\x02\x04\x12\x04\x8d\x03\x02\ \x19\x1a\xd5\x06\x20Allows\x20overriding\x20the\x20behavior\x20of\x20\"G\ o\x20to\x20definition\"\x20and\x20\"Find\x20references\"\n\x20for\x20sym\ bols\x20which\x20do\x20not\x20have\x20a\x20definition\x20of\x20their\x20\ @@ -4505,9 +4550,9 @@ static file_descriptor_proto_data: &'static [u8] = b"\ ionship\x20may\x20not\x20get\x20recorded\x20if\x20either\x20symbol\x20is\ \x20local.\n\"A\x20Update\x20registerInverseRelationships\x20on\x20addin\ g\x20a\x20new\x20field\x20here.\n\n\r\n\x05\x04\x08\x02\x04\x05\x12\x04\ - \x82\x03\x02\x06\n\r\n\x05\x04\x08\x02\x04\x01\x12\x04\x82\x03\x07\x14\n\ - \r\n\x05\x04\x08\x02\x04\x03\x12\x04\x82\x03\x17\x18\n\x88\x03\n\x02\x05\ - \x02\x12\x06\x8b\x03\0\x9b\x03\x01\x1a\xf9\x02\x20SymbolRole\x20declares\ + \x8d\x03\x02\x06\n\r\n\x05\x04\x08\x02\x04\x01\x12\x04\x8d\x03\x07\x14\n\ + \r\n\x05\x04\x08\x02\x04\x03\x12\x04\x8d\x03\x17\x18\n\x88\x03\n\x02\x05\ + \x02\x12\x06\x96\x03\0\xa6\x03\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\ @@ -4516,163 +4561,163 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \x20is\x20defined.\x20In\x20pseudocode,\x20this\x20can\x20be\x20implemen\ ted\x20with\x20the\n\x20logic:\x20`const\x20isImportRole\x20=\x20(role.v\ alue\x20&\x20SymbolRole.Import.value)\x20>\x200`.\n\n\x0b\n\x03\x05\x02\ - \x01\x12\x04\x8b\x03\x05\x0f\nv\n\x04\x05\x02\x02\0\x12\x04\x8e\x03\x02\ + \x01\x12\x04\x96\x03\x05\x0f\nv\n\x04\x05\x02\x02\0\x12\x04\x99\x03\x02\ \x1c\x1ah\x20This\x20case\x20is\x20not\x20meant\x20to\x20be\x20used;\x20\ it\x20only\x20exists\x20to\x20avoid\x20an\x20error\n\x20from\x20the\x20P\ - rotobuf\x20code\x20generator.\n\n\r\n\x05\x05\x02\x02\0\x01\x12\x04\x8e\ - \x03\x02\x17\n\r\n\x05\x05\x02\x02\0\x02\x12\x04\x8e\x03\x1a\x1b\nT\n\ - \x04\x05\x02\x02\x01\x12\x04\x90\x03\x02\x13\x1aF\x20Is\x20the\x20symbol\ + rotobuf\x20code\x20generator.\n\n\r\n\x05\x05\x02\x02\0\x01\x12\x04\x99\ + \x03\x02\x17\n\r\n\x05\x05\x02\x02\0\x02\x12\x04\x99\x03\x1a\x1b\nT\n\ + \x04\x05\x02\x02\x01\x12\x04\x9b\x03\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\x90\x03\x02\x0c\n\ - \r\n\x05\x05\x02\x02\x01\x02\x12\x04\x90\x03\x0f\x12\n,\n\x04\x05\x02\ - \x02\x02\x12\x04\x92\x03\x02\x0f\x1a\x1e\x20Is\x20the\x20symbol\x20impor\ - ted\x20here?\n\n\r\n\x05\x05\x02\x02\x02\x01\x12\x04\x92\x03\x02\x08\n\r\ - \n\x05\x05\x02\x02\x02\x02\x12\x04\x92\x03\x0b\x0e\n+\n\x04\x05\x02\x02\ - \x03\x12\x04\x94\x03\x02\x14\x1a\x1d\x20Is\x20the\x20symbol\x20written\ - \x20here?\n\n\r\n\x05\x05\x02\x02\x03\x01\x12\x04\x94\x03\x02\r\n\r\n\ - \x05\x05\x02\x02\x03\x02\x12\x04\x94\x03\x10\x13\n(\n\x04\x05\x02\x02\ - \x04\x12\x04\x96\x03\x02\x13\x1a\x1a\x20Is\x20the\x20symbol\x20read\x20h\ - ere?\n\n\r\n\x05\x05\x02\x02\x04\x01\x12\x04\x96\x03\x02\x0c\n\r\n\x05\ - \x05\x02\x02\x04\x02\x12\x04\x96\x03\x0f\x12\n0\n\x04\x05\x02\x02\x05\ - \x12\x04\x98\x03\x02\x13\x1a\"\x20Is\x20the\x20symbol\x20in\x20generated\ - \x20code?\n\n\r\n\x05\x05\x02\x02\x05\x01\x12\x04\x98\x03\x02\x0b\n\r\n\ - \x05\x05\x02\x02\x05\x02\x12\x04\x98\x03\x0e\x12\n+\n\x04\x05\x02\x02\ - \x06\x12\x04\x9a\x03\x02\x0e\x1a\x1d\x20Is\x20the\x20symbol\x20in\x20tes\ - t\x20code?\n\n\r\n\x05\x05\x02\x02\x06\x01\x12\x04\x9a\x03\x02\x06\n\r\n\ - \x05\x05\x02\x02\x06\x02\x12\x04\x9a\x03\t\r\n\x0c\n\x02\x05\x03\x12\x06\ - \x9d\x03\0\xfa\x03\x01\n\x0b\n\x03\x05\x03\x01\x12\x04\x9d\x03\x05\x0f\n\ - \x0b\n\x03\x05\x03\x03\x12\x04\x9e\x03\x02\x1c\n\x0c\n\x04\x05\x03\x03\ - \x02\x12\x04\x9e\x03\x02\x1c\n\x0c\n\x04\x05\x03\x02\0\x12\x04\xa0\x03\ - \x02\x1c\n\r\n\x05\x05\x03\x02\0\x01\x12\x04\xa0\x03\x02\x17\n\r\n\x05\ - \x05\x03\x02\0\x02\x12\x04\xa0\x03\x1a\x1b\n;\n\x04\x05\x03\x02\x01\x12\ - \x04\xa3\x03\x02\x0e\x1a-\x20Comment,\x20including\x20comment\x20markers\ - \x20and\x20text\n\n\r\n\x05\x05\x03\x02\x01\x01\x12\x04\xa3\x03\x02\t\n\ - \r\n\x05\x05\x03\x02\x01\x02\x12\x04\xa3\x03\x0c\r\n\x1b\n\x04\x05\x03\ - \x02\x02\x12\x04\xa6\x03\x02\x1b\x1a\r\x20`;`\x20`.`\x20`,`\n\n\r\n\x05\ - \x05\x03\x02\x02\x01\x12\x04\xa6\x03\x02\x16\n\r\n\x05\x05\x03\x02\x02\ - \x02\x12\x04\xa6\x03\x19\x1a\n2\n\x04\x05\x03\x02\x03\x12\x04\xa8\x03\ + \x20reference.\n\n\r\n\x05\x05\x02\x02\x01\x01\x12\x04\x9b\x03\x02\x0c\n\ + \r\n\x05\x05\x02\x02\x01\x02\x12\x04\x9b\x03\x0f\x12\n,\n\x04\x05\x02\ + \x02\x02\x12\x04\x9d\x03\x02\x0f\x1a\x1e\x20Is\x20the\x20symbol\x20impor\ + ted\x20here?\n\n\r\n\x05\x05\x02\x02\x02\x01\x12\x04\x9d\x03\x02\x08\n\r\ + \n\x05\x05\x02\x02\x02\x02\x12\x04\x9d\x03\x0b\x0e\n+\n\x04\x05\x02\x02\ + \x03\x12\x04\x9f\x03\x02\x14\x1a\x1d\x20Is\x20the\x20symbol\x20written\ + \x20here?\n\n\r\n\x05\x05\x02\x02\x03\x01\x12\x04\x9f\x03\x02\r\n\r\n\ + \x05\x05\x02\x02\x03\x02\x12\x04\x9f\x03\x10\x13\n(\n\x04\x05\x02\x02\ + \x04\x12\x04\xa1\x03\x02\x13\x1a\x1a\x20Is\x20the\x20symbol\x20read\x20h\ + ere?\n\n\r\n\x05\x05\x02\x02\x04\x01\x12\x04\xa1\x03\x02\x0c\n\r\n\x05\ + \x05\x02\x02\x04\x02\x12\x04\xa1\x03\x0f\x12\n0\n\x04\x05\x02\x02\x05\ + \x12\x04\xa3\x03\x02\x13\x1a\"\x20Is\x20the\x20symbol\x20in\x20generated\ + \x20code?\n\n\r\n\x05\x05\x02\x02\x05\x01\x12\x04\xa3\x03\x02\x0b\n\r\n\ + \x05\x05\x02\x02\x05\x02\x12\x04\xa3\x03\x0e\x12\n+\n\x04\x05\x02\x02\ + \x06\x12\x04\xa5\x03\x02\x0e\x1a\x1d\x20Is\x20the\x20symbol\x20in\x20tes\ + t\x20code?\n\n\r\n\x05\x05\x02\x02\x06\x01\x12\x04\xa5\x03\x02\x06\n\r\n\ + \x05\x05\x02\x02\x06\x02\x12\x04\xa5\x03\t\r\n\x0c\n\x02\x05\x03\x12\x06\ + \xa8\x03\0\x85\x04\x01\n\x0b\n\x03\x05\x03\x01\x12\x04\xa8\x03\x05\x0f\n\ + \x0b\n\x03\x05\x03\x03\x12\x04\xa9\x03\x02\x1c\n\x0c\n\x04\x05\x03\x03\ + \x02\x12\x04\xa9\x03\x02\x1c\n\x0c\n\x04\x05\x03\x02\0\x12\x04\xab\x03\ + \x02\x1c\n\r\n\x05\x05\x03\x02\0\x01\x12\x04\xab\x03\x02\x17\n\r\n\x05\ + \x05\x03\x02\0\x02\x12\x04\xab\x03\x1a\x1b\n;\n\x04\x05\x03\x02\x01\x12\ + \x04\xae\x03\x02\x0e\x1a-\x20Comment,\x20including\x20comment\x20markers\ + \x20and\x20text\n\n\r\n\x05\x05\x03\x02\x01\x01\x12\x04\xae\x03\x02\t\n\ + \r\n\x05\x05\x03\x02\x01\x02\x12\x04\xae\x03\x0c\r\n\x1b\n\x04\x05\x03\ + \x02\x02\x12\x04\xb1\x03\x02\x1b\x1a\r\x20`;`\x20`.`\x20`,`\n\n\r\n\x05\ + \x05\x03\x02\x02\x01\x12\x04\xb1\x03\x02\x16\n\r\n\x05\x05\x03\x02\x02\ + \x02\x12\x04\xb1\x03\x19\x1a\n2\n\x04\x05\x03\x02\x03\x12\x04\xb3\x03\ \x02\x19\x1a$\x20(),\x20{},\x20[]\x20when\x20used\x20syntactically\n\n\r\ - \n\x05\x05\x03\x02\x03\x01\x12\x04\xa8\x03\x02\x14\n\r\n\x05\x05\x03\x02\ - \x03\x02\x12\x04\xa8\x03\x17\x18\n5\n\x04\x05\x03\x02\x04\x12\x04\xab\ + \n\x05\x05\x03\x02\x03\x01\x12\x04\xb3\x03\x02\x14\n\r\n\x05\x05\x03\x02\ + \x03\x02\x12\x04\xb3\x03\x17\x18\n5\n\x04\x05\x03\x02\x04\x12\x04\xb6\ \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\xab\x03\x02\t\n\r\n\x05\x05\x03\ - \x02\x04\x02\x12\x04\xab\x03\x0c\r\n\x0c\n\x04\x05\x03\x02\x05\x12\x04\ - \xac\x03\x02*\n\r\n\x05\x05\x03\x02\x05\x01\x12\x04\xac\x03\x02\x13\n\r\ - \n\x05\x05\x03\x02\x05\x02\x12\x04\xac\x03\x16\x17\n\r\n\x05\x05\x03\x02\ - \x05\x03\x12\x04\xac\x03\x18)\n\x0e\n\x06\x05\x03\x02\x05\x03\x01\x12\ - \x04\xac\x03\x19(\n\x1e\n\x04\x05\x03\x02\x06\x12\x04\xaf\x03\x02\x19\ + \n\r\n\x05\x05\x03\x02\x04\x01\x12\x04\xb6\x03\x02\t\n\r\n\x05\x05\x03\ + \x02\x04\x02\x12\x04\xb6\x03\x0c\r\n\x0c\n\x04\x05\x03\x02\x05\x12\x04\ + \xb7\x03\x02*\n\r\n\x05\x05\x03\x02\x05\x01\x12\x04\xb7\x03\x02\x13\n\r\ + \n\x05\x05\x03\x02\x05\x02\x12\x04\xb7\x03\x16\x17\n\r\n\x05\x05\x03\x02\ + \x05\x03\x12\x04\xb7\x03\x18)\n\x0e\n\x06\x05\x03\x02\x05\x03\x01\x12\ + \x04\xb7\x03\x19(\n\x1e\n\x04\x05\x03\x02\x06\x12\x04\xba\x03\x02\x19\ \x1a\x10\x20`+`,\x20`*`,\x20etc.\n\n\r\n\x05\x05\x03\x02\x06\x01\x12\x04\ - \xaf\x03\x02\x14\n\r\n\x05\x05\x03\x02\x06\x02\x12\x04\xaf\x03\x17\x18\n\ - X\n\x04\x05\x03\x02\x07\x12\x04\xb2\x03\x02\x11\x1aJ\x20non-specific\x20\ + \xba\x03\x02\x14\n\r\n\x05\x05\x03\x02\x06\x02\x12\x04\xba\x03\x17\x18\n\ + X\n\x04\x05\x03\x02\x07\x12\x04\xbd\x03\x02\x11\x1aJ\x20non-specific\x20\ catch-all\x20for\x20any\x20identifier\x20not\x20better\x20described\x20e\ - lsewhere\n\n\r\n\x05\x05\x03\x02\x07\x01\x12\x04\xb2\x03\x02\x0c\n\r\n\ - \x05\x05\x03\x02\x07\x02\x12\x04\xb2\x03\x0f\x10\nN\n\x04\x05\x03\x02\ - \x08\x12\x04\xb4\x03\x02\x18\x1a@\x20Identifiers\x20builtin\x20to\x20the\ + lsewhere\n\n\r\n\x05\x05\x03\x02\x07\x01\x12\x04\xbd\x03\x02\x0c\n\r\n\ + \x05\x05\x03\x02\x07\x02\x12\x04\xbd\x03\x0f\x10\nN\n\x04\x05\x03\x02\ + \x08\x12\x04\xbf\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\xb4\x03\x02\x13\n\r\n\x05\x05\x03\x02\x08\x02\x12\ - \x04\xb4\x03\x16\x17\n[\n\x04\x05\x03\x02\t\x12\x04\xb6\x03\x02\x15\x1aM\ + \x02\x08\x01\x12\x04\xbf\x03\x02\x13\n\r\n\x05\x05\x03\x02\x08\x02\x12\ + \x04\xbf\x03\x16\x17\n[\n\x04\x05\x03\x02\t\x12\x04\xc1\x03\x02\x15\x1aM\ \x20Identifiers\x20representing\x20`null`-like\x20values:\x20`None`\x20i\ n\x20Python,\x20`nil`\x20in\x20Go.\n\n\r\n\x05\x05\x03\x02\t\x01\x12\x04\ - \xb6\x03\x02\x10\n\r\n\x05\x05\x03\x02\t\x02\x12\x04\xb6\x03\x13\x14\n.\ - \n\x04\x05\x03\x02\n\x12\x04\xb8\x03\x02\x19\x1a\x20\x20`xyz`\x20in\x20`\ + \xc1\x03\x02\x10\n\r\n\x05\x05\x03\x02\t\x02\x12\x04\xc1\x03\x13\x14\n.\ + \n\x04\x05\x03\x02\n\x12\x04\xc3\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\ - \xb8\x03\x02\x14\n\r\n\x05\x05\x03\x02\n\x02\x12\x04\xb8\x03\x17\x18\n'\ - \n\x04\x05\x03\x02\x0b\x12\x04\xba\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\xba\ - \x03\x02\x19\n\r\n\x05\x05\x03\x02\x0b\x02\x12\x04\xba\x03\x1c\x1e\n3\n\ - \x04\x05\x03\x02\x0c\x12\x04\xbc\x03\x02\x1b\x1a%\x20Parameter\x20defini\ - tion\x20and\x20references\n\n\r\n\x05\x05\x03\x02\x0c\x01\x12\x04\xbc\ - \x03\x02\x15\n\r\n\x05\x05\x03\x02\x0c\x02\x12\x04\xbc\x03\x18\x1a\nX\n\ - \x04\x05\x03\x02\r\x12\x04\xbe\x03\x02\x17\x1aJ\x20Identifiers\x20for\ + \xc3\x03\x02\x14\n\r\n\x05\x05\x03\x02\n\x02\x12\x04\xc3\x03\x17\x18\n'\ + \n\x04\x05\x03\x02\x0b\x12\x04\xc5\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\xc5\ + \x03\x02\x19\n\r\n\x05\x05\x03\x02\x0b\x02\x12\x04\xc5\x03\x1c\x1e\n3\n\ + \x04\x05\x03\x02\x0c\x12\x04\xc7\x03\x02\x1b\x1a%\x20Parameter\x20defini\ + tion\x20and\x20references\n\n\r\n\x05\x05\x03\x02\x0c\x01\x12\x04\xc7\ + \x03\x02\x15\n\r\n\x05\x05\x03\x02\x0c\x02\x12\x04\xc7\x03\x18\x1a\nX\n\ + \x04\x05\x03\x02\r\x12\x04\xc9\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\xbe\x03\x02\x11\n\r\n\ - \x05\x05\x03\x02\r\x02\x12\x04\xbe\x03\x14\x16\nK\n\x04\x05\x03\x02\x0e\ - \x12\x04\xc0\x03\x02\x1a\x1a=\x20Identifiers\x20that\x20shadow\x20other\ + \x20scope\n\n\r\n\x05\x05\x03\x02\r\x01\x12\x04\xc9\x03\x02\x11\n\r\n\ + \x05\x05\x03\x02\r\x02\x12\x04\xc9\x03\x14\x16\nK\n\x04\x05\x03\x02\x0e\ + \x12\x04\xcb\x03\x02\x1a\x1a=\x20Identifiers\x20that\x20shadow\x20other\ \x20identifiers\x20in\x20an\x20outer\x20scope\n\n\r\n\x05\x05\x03\x02\ - \x0e\x01\x12\x04\xc0\x03\x02\x14\n\r\n\x05\x05\x03\x02\x0e\x02\x12\x04\ - \xc0\x03\x17\x19\n\xcd\x01\n\x04\x05\x03\x02\x0f\x12\x04\xc5\x03\x02\x1b\ + \x0e\x01\x12\x04\xcb\x03\x02\x14\n\r\n\x05\x05\x03\x02\x0e\x02\x12\x04\ + \xcb\x03\x17\x19\n\xcd\x01\n\x04\x05\x03\x02\x0f\x12\x04\xd0\x03\x02\x1b\ \x1a\xbe\x01\x20Identifier\x20representing\x20a\x20unit\x20of\x20code\ \x20abstraction\x20and/or\x20namespacing.\n\n\x20NOTE:\x20This\x20corres\ ponds\x20to\x20a\x20package\x20in\x20Go\x20and\x20JVM\x20languages,\n\ \x20and\x20a\x20module\x20in\x20languages\x20like\x20Python\x20and\x20Ja\ - vaScript.\n\n\r\n\x05\x05\x03\x02\x0f\x01\x12\x04\xc5\x03\x02\x15\n\r\n\ - \x05\x05\x03\x02\x0f\x02\x12\x04\xc5\x03\x18\x1a\n\x0c\n\x04\x05\x03\x02\ - \x10\x12\x04\xc6\x03\x02*\n\r\n\x05\x05\x03\x02\x10\x01\x12\x04\xc6\x03\ - \x02\x12\n\r\n\x05\x05\x03\x02\x10\x02\x12\x04\xc6\x03\x15\x17\n\r\n\x05\ - \x05\x03\x02\x10\x03\x12\x04\xc6\x03\x18)\n\x0e\n\x06\x05\x03\x02\x10\ - \x03\x01\x12\x04\xc6\x03\x19(\n4\n\x04\x05\x03\x02\x11\x12\x04\xc9\x03\ + vaScript.\n\n\r\n\x05\x05\x03\x02\x0f\x01\x12\x04\xd0\x03\x02\x15\n\r\n\ + \x05\x05\x03\x02\x0f\x02\x12\x04\xd0\x03\x18\x1a\n\x0c\n\x04\x05\x03\x02\ + \x10\x12\x04\xd1\x03\x02*\n\r\n\x05\x05\x03\x02\x10\x01\x12\x04\xd1\x03\ + \x02\x12\n\r\n\x05\x05\x03\x02\x10\x02\x12\x04\xd1\x03\x15\x17\n\r\n\x05\ + \x05\x03\x02\x10\x03\x12\x04\xd1\x03\x18)\n\x0e\n\x06\x05\x03\x02\x10\ + \x03\x01\x12\x04\xd1\x03\x19(\n4\n\x04\x05\x03\x02\x11\x12\x04\xd4\x03\ \x02\x1a\x1a&\x20Function\x20references,\x20including\x20calls\n\n\r\n\ - \x05\x05\x03\x02\x11\x01\x12\x04\xc9\x03\x02\x14\n\r\n\x05\x05\x03\x02\ - \x11\x02\x12\x04\xc9\x03\x17\x19\n(\n\x04\x05\x03\x02\x12\x12\x04\xcb\ + \x05\x05\x03\x02\x11\x01\x12\x04\xd4\x03\x02\x14\n\r\n\x05\x05\x03\x02\ + \x11\x02\x12\x04\xd4\x03\x17\x19\n(\n\x04\x05\x03\x02\x12\x12\x04\xd6\ \x03\x02$\x1a\x1a\x20Function\x20definition\x20only\n\n\r\n\x05\x05\x03\ - \x02\x12\x01\x12\x04\xcb\x03\x02\x1e\n\r\n\x05\x05\x03\x02\x12\x02\x12\ - \x04\xcb\x03!#\n7\n\x04\x05\x03\x02\x13\x12\x04\xce\x03\x02\x17\x1a)\x20\ + \x02\x12\x01\x12\x04\xd6\x03\x02\x1e\n\r\n\x05\x05\x03\x02\x12\x02\x12\ + \x04\xd6\x03!#\n7\n\x04\x05\x03\x02\x13\x12\x04\xd9\x03\x02\x17\x1a)\x20\ Macro\x20references,\x20including\x20invocations\n\n\r\n\x05\x05\x03\x02\ - \x13\x01\x12\x04\xce\x03\x02\x11\n\r\n\x05\x05\x03\x02\x13\x02\x12\x04\ - \xce\x03\x14\x16\n%\n\x04\x05\x03\x02\x14\x12\x04\xd0\x03\x02!\x1a\x17\ + \x13\x01\x12\x04\xd9\x03\x02\x11\n\r\n\x05\x05\x03\x02\x13\x02\x12\x04\ + \xd9\x03\x14\x16\n%\n\x04\x05\x03\x02\x14\x12\x04\xdb\x03\x02!\x1a\x17\ \x20Macro\x20definition\x20only\n\n\r\n\x05\x05\x03\x02\x14\x01\x12\x04\ - \xd0\x03\x02\x1b\n\r\n\x05\x05\x03\x02\x14\x02\x12\x04\xd0\x03\x1e\x20\n\ - !\n\x04\x05\x03\x02\x15\x12\x04\xd3\x03\x02\x16\x1a\x13\x20non-builtin\ - \x20types\n\n\r\n\x05\x05\x03\x02\x15\x01\x12\x04\xd3\x03\x02\x10\n\r\n\ - \x05\x05\x03\x02\x15\x02\x12\x04\xd3\x03\x13\x15\nK\n\x04\x05\x03\x02\ - \x16\x12\x04\xd5\x03\x02\x1d\x1a=\x20builtin\x20types\x20only,\x20such\ + \xdb\x03\x02\x1b\n\r\n\x05\x05\x03\x02\x14\x02\x12\x04\xdb\x03\x1e\x20\n\ + !\n\x04\x05\x03\x02\x15\x12\x04\xde\x03\x02\x16\x1a\x13\x20non-builtin\ + \x20types\n\n\r\n\x05\x05\x03\x02\x15\x01\x12\x04\xde\x03\x02\x10\n\r\n\ + \x05\x05\x03\x02\x15\x02\x12\x04\xde\x03\x13\x15\nK\n\x04\x05\x03\x02\ + \x16\x12\x04\xe0\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\xd5\x03\x02\x17\n\r\n\x05\x05\x03\x02\x16\ - \x02\x12\x04\xd5\x03\x1a\x1c\n7\n\x04\x05\x03\x02\x17\x12\x04\xd8\x03\ + \x05\x03\x02\x16\x01\x12\x04\xe0\x03\x02\x17\n\r\n\x05\x05\x03\x02\x16\ + \x02\x12\x04\xe0\x03\x1a\x1c\n7\n\x04\x05\x03\x02\x17\x12\x04\xe3\x03\ \x02\x1b\x1a)\x20Python\x20decorators,\x20c-like\x20__attribute__\n\n\r\ - \n\x05\x05\x03\x02\x17\x01\x12\x04\xd8\x03\x02\x15\n\r\n\x05\x05\x03\x02\ - \x17\x02\x12\x04\xd8\x03\x18\x1a\n\x14\n\x04\x05\x03\x02\x18\x12\x04\xdb\ + \n\x05\x05\x03\x02\x17\x01\x12\x04\xe3\x03\x02\x15\n\r\n\x05\x05\x03\x02\ + \x17\x02\x12\x04\xe3\x03\x18\x1a\n\x14\n\x04\x05\x03\x02\x18\x12\x04\xe6\ \x03\x02\x13\x1a\x06\x20`\\b`\n\n\r\n\x05\x05\x03\x02\x18\x01\x12\x04\ - \xdb\x03\x02\r\n\r\n\x05\x05\x03\x02\x18\x02\x12\x04\xdb\x03\x10\x12\n\ - \x18\n\x04\x05\x03\x02\x19\x12\x04\xdd\x03\x02\x15\x1a\n\x20`*`,\x20`+`\ - \n\n\r\n\x05\x05\x03\x02\x19\x01\x12\x04\xdd\x03\x02\x0f\n\r\n\x05\x05\ - \x03\x02\x19\x02\x12\x04\xdd\x03\x12\x14\n\x13\n\x04\x05\x03\x02\x1a\x12\ - \x04\xdf\x03\x02\x15\x1a\x05\x20`.`\n\n\r\n\x05\x05\x03\x02\x1a\x01\x12\ - \x04\xdf\x03\x02\x0f\n\r\n\x05\x05\x03\x02\x1a\x02\x12\x04\xdf\x03\x12\ - \x14\n\"\n\x04\x05\x03\x02\x1b\x12\x04\xe1\x03\x02\x16\x1a\x14\x20`(`,\ - \x20`)`,\x20`[`,\x20`]`\n\n\r\n\x05\x05\x03\x02\x1b\x01\x12\x04\xe1\x03\ - \x02\x10\n\r\n\x05\x05\x03\x02\x1b\x02\x12\x04\xe1\x03\x13\x15\n\x18\n\ - \x04\x05\x03\x02\x1c\x12\x04\xe3\x03\x02\x11\x1a\n\x20`|`,\x20`-`\n\n\r\ - \n\x05\x05\x03\x02\x1c\x01\x12\x04\xe3\x03\x02\x0b\n\r\n\x05\x05\x03\x02\ - \x1c\x02\x12\x04\xe3\x03\x0e\x10\n0\n\x04\x05\x03\x02\x1d\x12\x04\xe6\ + \xe6\x03\x02\r\n\r\n\x05\x05\x03\x02\x18\x02\x12\x04\xe6\x03\x10\x12\n\ + \x18\n\x04\x05\x03\x02\x19\x12\x04\xe8\x03\x02\x15\x1a\n\x20`*`,\x20`+`\ + \n\n\r\n\x05\x05\x03\x02\x19\x01\x12\x04\xe8\x03\x02\x0f\n\r\n\x05\x05\ + \x03\x02\x19\x02\x12\x04\xe8\x03\x12\x14\n\x13\n\x04\x05\x03\x02\x1a\x12\ + \x04\xea\x03\x02\x15\x1a\x05\x20`.`\n\n\r\n\x05\x05\x03\x02\x1a\x01\x12\ + \x04\xea\x03\x02\x0f\n\r\n\x05\x05\x03\x02\x1a\x02\x12\x04\xea\x03\x12\ + \x14\n\"\n\x04\x05\x03\x02\x1b\x12\x04\xec\x03\x02\x16\x1a\x14\x20`(`,\ + \x20`)`,\x20`[`,\x20`]`\n\n\r\n\x05\x05\x03\x02\x1b\x01\x12\x04\xec\x03\ + \x02\x10\n\r\n\x05\x05\x03\x02\x1b\x02\x12\x04\xec\x03\x13\x15\n\x18\n\ + \x04\x05\x03\x02\x1c\x12\x04\xee\x03\x02\x11\x1a\n\x20`|`,\x20`-`\n\n\r\ + \n\x05\x05\x03\x02\x1c\x01\x12\x04\xee\x03\x02\x0b\n\r\n\x05\x05\x03\x02\ + \x1c\x02\x12\x04\xee\x03\x0e\x10\n0\n\x04\x05\x03\x02\x1d\x12\x04\xf1\ \x03\x02\x15\x1a\"\x20Literal\x20strings:\x20\"Hello,\x20world!\"\n\n\r\ - \n\x05\x05\x03\x02\x1d\x01\x12\x04\xe6\x03\x02\x0f\n\r\n\x05\x05\x03\x02\ - \x1d\x02\x12\x04\xe6\x03\x12\x14\n-\n\x04\x05\x03\x02\x1e\x12\x04\xe8\ + \n\x05\x05\x03\x02\x1d\x01\x12\x04\xf1\x03\x02\x0f\n\r\n\x05\x05\x03\x02\ + \x1d\x02\x12\x04\xf1\x03\x12\x14\n-\n\x04\x05\x03\x02\x1e\x12\x04\xf3\ \x03\x02\x1b\x1a\x1f\x20non-regex\x20escapes:\x20\"\\t\",\x20\"\\n\"\n\n\ - \r\n\x05\x05\x03\x02\x1e\x01\x12\x04\xe8\x03\x02\x15\n\r\n\x05\x05\x03\ - \x02\x1e\x02\x12\x04\xe8\x03\x18\x1a\n_\n\x04\x05\x03\x02\x1f\x12\x04\ - \xea\x03\x02\x1c\x1aQ\x20datetimes\x20within\x20strings,\x20special\x20w\ + \r\n\x05\x05\x03\x02\x1e\x01\x12\x04\xf3\x03\x02\x15\n\r\n\x05\x05\x03\ + \x02\x1e\x02\x12\x04\xf3\x03\x18\x1a\n_\n\x04\x05\x03\x02\x1f\x12\x04\ + \xf5\x03\x02\x1c\x1aQ\x20datetimes\x20within\x20strings,\x20special\x20w\ ords\x20within\x20a\x20string,\x20`{}`\x20in\x20format\x20strings\n\n\r\ - \n\x05\x05\x03\x02\x1f\x01\x12\x04\xea\x03\x02\x16\n\r\n\x05\x05\x03\x02\ - \x1f\x02\x12\x04\xea\x03\x19\x1b\nG\n\x04\x05\x03\x02\x20\x12\x04\xec\ + \n\x05\x05\x03\x02\x1f\x01\x12\x04\xf5\x03\x02\x16\n\r\n\x05\x05\x03\x02\ + \x1f\x02\x12\x04\xf5\x03\x19\x1b\nG\n\x04\x05\x03\x02\x20\x12\x04\xf7\ \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\xec\x03\x02\x12\n\r\n\x05\x05\x03\x02\x20\x02\x12\x04\xec\ - \x03\x15\x17\nV\n\x04\x05\x03\x02!\x12\x04\xee\x03\x02\x18\x1aH\x20'c'\ + \x01\x12\x04\xf7\x03\x02\x12\n\r\n\x05\x05\x03\x02\x20\x02\x12\x04\xf7\ + \x03\x15\x17\nV\n\x04\x05\x03\x02!\x12\x04\xf9\x03\x02\x18\x1aH\x20'c'\ \x20or\x20similar,\x20in\x20languages\x20that\x20differentiate\x20string\ - s\x20and\x20characters\n\n\r\n\x05\x05\x03\x02!\x01\x12\x04\xee\x03\x02\ - \x12\n\r\n\x05\x05\x03\x02!\x02\x12\x04\xee\x03\x15\x17\n9\n\x04\x05\x03\ - \x02\"\x12\x04\xf0\x03\x02\x16\x1a+\x20Literal\x20numbers,\x20both\x20fl\ - oats\x20and\x20integers\n\n\r\n\x05\x05\x03\x02\"\x01\x12\x04\xf0\x03\ - \x02\x10\n\r\n\x05\x05\x03\x02\"\x02\x12\x04\xf0\x03\x13\x15\n\x1f\n\x04\ - \x05\x03\x02#\x12\x04\xf2\x03\x02\x16\x1a\x11\x20`true`,\x20`false`\n\n\ - \r\n\x05\x05\x03\x02#\x01\x12\x04\xf2\x03\x02\x10\n\r\n\x05\x05\x03\x02#\ - \x02\x12\x04\xf2\x03\x13\x15\n&\n\x04\x05\x03\x02$\x12\x04\xf5\x03\x02\ + s\x20and\x20characters\n\n\r\n\x05\x05\x03\x02!\x01\x12\x04\xf9\x03\x02\ + \x12\n\r\n\x05\x05\x03\x02!\x02\x12\x04\xf9\x03\x15\x17\n9\n\x04\x05\x03\ + \x02\"\x12\x04\xfb\x03\x02\x16\x1a+\x20Literal\x20numbers,\x20both\x20fl\ + oats\x20and\x20integers\n\n\r\n\x05\x05\x03\x02\"\x01\x12\x04\xfb\x03\ + \x02\x10\n\r\n\x05\x05\x03\x02\"\x02\x12\x04\xfb\x03\x13\x15\n\x1f\n\x04\ + \x05\x03\x02#\x12\x04\xfd\x03\x02\x16\x1a\x11\x20`true`,\x20`false`\n\n\ + \r\n\x05\x05\x03\x02#\x01\x12\x04\xfd\x03\x02\x10\n\r\n\x05\x05\x03\x02#\ + \x02\x12\x04\xfd\x03\x13\x15\n&\n\x04\x05\x03\x02$\x12\x04\x80\x04\x02\ \x0b\x1a\x18\x20Used\x20for\x20XML-like\x20tags\n\n\r\n\x05\x05\x03\x02$\ - \x01\x12\x04\xf5\x03\x02\x05\n\r\n\x05\x05\x03\x02$\x02\x12\x04\xf5\x03\ - \x08\n\n/\n\x04\x05\x03\x02%\x12\x04\xf7\x03\x02\x14\x1a!\x20Attribute\ + \x01\x12\x04\x80\x04\x02\x05\n\r\n\x05\x05\x03\x02$\x02\x12\x04\x80\x04\ + \x08\n\n/\n\x04\x05\x03\x02%\x12\x04\x82\x04\x02\x14\x1a!\x20Attribute\ \x20name\x20in\x20XML-like\x20tags\n\n\r\n\x05\x05\x03\x02%\x01\x12\x04\ - \xf7\x03\x02\x0e\n\r\n\x05\x05\x03\x02%\x02\x12\x04\xf7\x03\x11\x13\n,\n\ - \x04\x05\x03\x02&\x12\x04\xf9\x03\x02\x14\x1a\x1e\x20Delimiters\x20for\ - \x20XML-like\x20tags\n\n\r\n\x05\x05\x03\x02&\x01\x12\x04\xf9\x03\x02\ - \x0e\n\r\n\x05\x05\x03\x02&\x02\x12\x04\xf9\x03\x11\x13\n\xf9\x01\n\x02\ - \x04\t\x12\x06\x81\x04\0\xd0\x04\x01\x1a\xea\x01\x20Occurrence\x20associ\ + \x82\x04\x02\x0e\n\r\n\x05\x05\x03\x02%\x02\x12\x04\x82\x04\x11\x13\n,\n\ + \x04\x05\x03\x02&\x12\x04\x84\x04\x02\x14\x1a\x1e\x20Delimiters\x20for\ + \x20XML-like\x20tags\n\n\r\n\x05\x05\x03\x02&\x01\x12\x04\x84\x04\x02\ + \x0e\n\r\n\x05\x05\x03\x02&\x02\x12\x04\x84\x04\x11\x13\n\xf9\x01\n\x02\ + \x04\t\x12\x06\x8c\x04\0\xdb\x04\x01\x1a\xea\x01\x20Occurrence\x20associ\ ates\x20a\x20source\x20position\x20with\x20a\x20symbol\x20and/or\x20high\ lighting\n\x20information.\n\n\x20If\x20possible,\x20indexers\x20should\ \x20try\x20to\x20bundle\x20logically\x20related\x20information\n\x20acro\ ss\x20occurrences\x20into\x20a\x20single\x20occurrence\x20to\x20reduce\ - \x20payload\x20sizes.\n\n\x0b\n\x03\x04\t\x01\x12\x04\x81\x04\x08\x12\n\ - \xc6\x07\n\x04\x04\t\x02\0\x12\x04\x94\x04\x02\x1b\x1a\xb7\x07\x20Source\ + \x20payload\x20sizes.\n\n\x0b\n\x03\x04\t\x01\x12\x04\x8c\x04\x08\x12\n\ + \xc6\x07\n\x04\x04\t\x02\0\x12\x04\x9f\x04\x02\x1b\x1a\xb7\x07\x20Source\ \x20position\x20of\x20this\x20occurrence.\x20Must\x20be\x20exactly\x20th\ ree\x20or\x20four\n\x20elements:\n\n\x20-\x20Four\x20elements:\x20`[star\ tLine,\x20startCharacter,\x20endLine,\x20endCharacter]`\n\x20-\x20Three\ @@ -4692,21 +4737,21 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \x20`repeated\x20int32`\x20encoding\x20is\x20admittedly\x20more\x20embar\ rassing\x20to\n\x20work\x20with\x20in\x20some\x20programming\x20language\ s\x20but\x20we\x20hope\x20the\x20performance\n\x20improvements\x20make\ - \x20up\x20for\x20it.\n\n\r\n\x05\x04\t\x02\0\x04\x12\x04\x94\x04\x02\n\n\ - \r\n\x05\x04\t\x02\0\x05\x12\x04\x94\x04\x0b\x10\n\r\n\x05\x04\t\x02\0\ - \x01\x12\x04\x94\x04\x11\x16\n\r\n\x05\x04\t\x02\0\x03\x12\x04\x94\x04\ - \x19\x1a\n\x8a\x01\n\x04\x04\t\x02\x01\x12\x04\x97\x04\x02\x14\x1a|\x20(\ + \x20up\x20for\x20it.\n\n\r\n\x05\x04\t\x02\0\x04\x12\x04\x9f\x04\x02\n\n\ + \r\n\x05\x04\t\x02\0\x05\x12\x04\x9f\x04\x0b\x10\n\r\n\x05\x04\t\x02\0\ + \x01\x12\x04\x9f\x04\x11\x16\n\r\n\x05\x04\t\x02\0\x03\x12\x04\x9f\x04\ + \x19\x1a\n\x8a\x01\n\x04\x04\t\x02\x01\x12\x04\xa2\x04\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\x97\ - \x04\x02\x08\n\r\n\x05\x04\t\x02\x01\x01\x12\x04\x97\x04\t\x0f\n\r\n\x05\ - \x04\t\x02\x01\x03\x12\x04\x97\x04\x12\x13\n\x97\x01\n\x04\x04\t\x02\x02\ - \x12\x04\x9a\x04\x02\x19\x1a\x88\x01\x20(optional)\x20Bitset\x20containi\ + \x20symbols\x20as\x20strings.\n\n\r\n\x05\x04\t\x02\x01\x05\x12\x04\xa2\ + \x04\x02\x08\n\r\n\x05\x04\t\x02\x01\x01\x12\x04\xa2\x04\t\x0f\n\r\n\x05\ + \x04\t\x02\x01\x03\x12\x04\xa2\x04\x12\x13\n\x97\x01\n\x04\x04\t\x02\x02\ + \x12\x04\xa5\x04\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\x9a\x04\x02\x07\n\r\n\ - \x05\x04\t\x02\x02\x01\x12\x04\x9a\x04\x08\x14\n\r\n\x05\x04\t\x02\x02\ - \x03\x12\x04\x9a\x04\x17\x18\n\xf1\x03\n\x04\x04\t\x02\x03\x12\x04\xa3\ + \x20field.\n\n\r\n\x05\x04\t\x02\x02\x05\x12\x04\xa5\x04\x02\x07\n\r\n\ + \x05\x04\t\x02\x02\x01\x12\x04\xa5\x04\x08\x14\n\r\n\x05\x04\t\x02\x02\ + \x03\x12\x04\xa5\x04\x17\x18\n\xf1\x03\n\x04\x04\t\x02\x03\x12\x04\xae\ \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\ @@ -4717,19 +4762,19 @@ static file_descriptor_proto_data: &'static [u8] = b"\ 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\xa3\x04\x02\n\n\r\n\x05\x04\t\x02\ - \x03\x05\x12\x04\xa3\x04\x0b\x11\n\r\n\x05\x04\t\x02\x03\x01\x12\x04\xa3\ - \x04\x12(\n\r\n\x05\x04\t\x02\x03\x03\x12\x04\xa3\x04+,\nX\n\x04\x04\t\ - \x02\x04\x12\x04\xa5\x04\x02\x1d\x1aJ\x20(optional)\x20What\x20syntax\ + \n\n\r\n\x05\x04\t\x02\x03\x04\x12\x04\xae\x04\x02\n\n\r\n\x05\x04\t\x02\ + \x03\x05\x12\x04\xae\x04\x0b\x11\n\r\n\x05\x04\t\x02\x03\x01\x12\x04\xae\ + \x04\x12(\n\r\n\x05\x04\t\x02\x03\x03\x12\x04\xae\x04+,\nX\n\x04\x04\t\ + \x02\x04\x12\x04\xb0\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\xa5\x04\x02\x0c\n\r\n\x05\x04\t\ - \x02\x04\x01\x12\x04\xa5\x04\r\x18\n\r\n\x05\x04\t\x02\x04\x03\x12\x04\ - \xa5\x04\x1b\x1c\nW\n\x04\x04\t\x02\x05\x12\x04\xa7\x04\x02&\x1aI\x20(op\ + e?\n\n\r\n\x05\x04\t\x02\x04\x06\x12\x04\xb0\x04\x02\x0c\n\r\n\x05\x04\t\ + \x02\x04\x01\x12\x04\xb0\x04\r\x18\n\r\n\x05\x04\t\x02\x04\x03\x12\x04\ + \xb0\x04\x1b\x1c\nW\n\x04\x04\t\x02\x05\x12\x04\xb2\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\xa7\x04\ - \x02\n\n\r\n\x05\x04\t\x02\x05\x06\x12\x04\xa7\x04\x0b\x15\n\r\n\x05\x04\ - \t\x02\x05\x01\x12\x04\xa7\x04\x16!\n\r\n\x05\x04\t\x02\x05\x03\x12\x04\ - \xa7\x04$%\n\x80\x0c\n\x04\x04\t\x02\x06\x12\x04\xcf\x04\x02%\x1a\xf1\ + s\x20specific\x20range.\n\n\r\n\x05\x04\t\x02\x05\x04\x12\x04\xb2\x04\ + \x02\n\n\r\n\x05\x04\t\x02\x05\x06\x12\x04\xb2\x04\x0b\x15\n\r\n\x05\x04\ + \t\x02\x05\x01\x12\x04\xb2\x04\x16!\n\r\n\x05\x04\t\x02\x05\x03\x12\x04\ + \xb2\x04$%\n\x80\x0c\n\x04\x04\t\x02\x06\x12\x04\xda\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\ @@ -4769,55 +4814,55 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \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\xcf\ - \x04\x02\n\n\r\n\x05\x04\t\x02\x06\x05\x12\x04\xcf\x04\x0b\x10\n\r\n\x05\ - \x04\t\x02\x06\x01\x12\x04\xcf\x04\x11\x20\n\r\n\x05\x04\t\x02\x06\x03\ - \x12\x04\xcf\x04#$\nw\n\x02\x04\n\x12\x06\xd4\x04\0\xdf\x04\x01\x1ai\x20\ + ^\x20enclosing_range\n\x20```\n\n\r\n\x05\x04\t\x02\x06\x04\x12\x04\xda\ + \x04\x02\n\n\r\n\x05\x04\t\x02\x06\x05\x12\x04\xda\x04\x0b\x10\n\r\n\x05\ + \x04\t\x02\x06\x01\x12\x04\xda\x04\x11\x20\n\r\n\x05\x04\t\x02\x06\x03\ + \x12\x04\xda\x04#$\nw\n\x02\x04\n\x12\x06\xdf\x04\0\xea\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\xd4\x04\x08\x12\nW\n\x04\ - \x04\n\x02\0\x12\x04\xd6\x04\x02\x18\x1aI\x20Should\x20this\x20diagnosti\ + \x20document.\n\n\x0b\n\x03\x04\n\x01\x12\x04\xdf\x04\x08\x12\nW\n\x04\ + \x04\n\x02\0\x12\x04\xe1\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\xd6\x04\x02\n\n\r\n\x05\x04\n\ - \x02\0\x01\x12\x04\xd6\x04\x0b\x13\n\r\n\x05\x04\n\x02\0\x03\x12\x04\xd6\ - \x04\x16\x17\n]\n\x04\x04\n\x02\x01\x12\x04\xd8\x04\x02\x12\x1aO\x20(opt\ + hint?\n\n\r\n\x05\x04\n\x02\0\x06\x12\x04\xe1\x04\x02\n\n\r\n\x05\x04\n\ + \x02\0\x01\x12\x04\xe1\x04\x0b\x13\n\r\n\x05\x04\n\x02\0\x03\x12\x04\xe1\ + \x04\x16\x17\n]\n\x04\x04\n\x02\x01\x12\x04\xe3\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\xd8\x04\x02\x08\n\r\n\x05\x04\n\x02\x01\x01\x12\x04\xd8\x04\t\r\n\r\ - \n\x05\x04\n\x02\x01\x03\x12\x04\xd8\x04\x10\x11\n+\n\x04\x04\n\x02\x02\ - \x12\x04\xda\x04\x02\x15\x1a\x1d\x20Message\x20of\x20this\x20diagnostic.\ - \n\n\r\n\x05\x04\n\x02\x02\x05\x12\x04\xda\x04\x02\x08\n\r\n\x05\x04\n\ - \x02\x02\x01\x12\x04\xda\x04\t\x10\n\r\n\x05\x04\n\x02\x02\x03\x12\x04\ - \xda\x04\x13\x14\n~\n\x04\x04\n\x02\x03\x12\x04\xdd\x04\x02\x14\x1ap\x20\ + \x04\xe3\x04\x02\x08\n\r\n\x05\x04\n\x02\x01\x01\x12\x04\xe3\x04\t\r\n\r\ + \n\x05\x04\n\x02\x01\x03\x12\x04\xe3\x04\x10\x11\n+\n\x04\x04\n\x02\x02\ + \x12\x04\xe5\x04\x02\x15\x1a\x1d\x20Message\x20of\x20this\x20diagnostic.\ + \n\n\r\n\x05\x04\n\x02\x02\x05\x12\x04\xe5\x04\x02\x08\n\r\n\x05\x04\n\ + \x02\x02\x01\x12\x04\xe5\x04\t\x10\n\r\n\x05\x04\n\x02\x02\x03\x12\x04\ + \xe5\x04\x13\x14\n~\n\x04\x04\n\x02\x03\x12\x04\xe8\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\xdd\x04\x02\x08\n\r\n\ - \x05\x04\n\x02\x03\x01\x12\x04\xdd\x04\t\x0f\n\r\n\x05\x04\n\x02\x03\x03\ - \x12\x04\xdd\x04\x12\x13\n\x0c\n\x04\x04\n\x02\x04\x12\x04\xde\x04\x02\"\ - \n\r\n\x05\x04\n\x02\x04\x04\x12\x04\xde\x04\x02\n\n\r\n\x05\x04\n\x02\ - \x04\x06\x12\x04\xde\x04\x0b\x18\n\r\n\x05\x04\n\x02\x04\x01\x12\x04\xde\ - \x04\x19\x1d\n\r\n\x05\x04\n\x02\x04\x03\x12\x04\xde\x04\x20!\n\x0c\n\ - \x02\x05\x04\x12\x06\xe1\x04\0\xe7\x04\x01\n\x0b\n\x03\x05\x04\x01\x12\ - \x04\xe1\x04\x05\r\n\x0c\n\x04\x05\x04\x02\0\x12\x04\xe2\x04\x02\x1a\n\r\ - \n\x05\x05\x04\x02\0\x01\x12\x04\xe2\x04\x02\x15\n\r\n\x05\x05\x04\x02\0\ - \x02\x12\x04\xe2\x04\x18\x19\n\x0c\n\x04\x05\x04\x02\x01\x12\x04\xe3\x04\ - \x02\x0c\n\r\n\x05\x05\x04\x02\x01\x01\x12\x04\xe3\x04\x02\x07\n\r\n\x05\ - \x05\x04\x02\x01\x02\x12\x04\xe3\x04\n\x0b\n\x0c\n\x04\x05\x04\x02\x02\ - \x12\x04\xe4\x04\x02\x0e\n\r\n\x05\x05\x04\x02\x02\x01\x12\x04\xe4\x04\ - \x02\t\n\r\n\x05\x05\x04\x02\x02\x02\x12\x04\xe4\x04\x0c\r\n\x0c\n\x04\ - \x05\x04\x02\x03\x12\x04\xe5\x04\x02\x12\n\r\n\x05\x05\x04\x02\x03\x01\ - \x12\x04\xe5\x04\x02\r\n\r\n\x05\x05\x04\x02\x03\x02\x12\x04\xe5\x04\x10\ - \x11\n\x0c\n\x04\x05\x04\x02\x04\x12\x04\xe6\x04\x02\x0b\n\r\n\x05\x05\ - \x04\x02\x04\x01\x12\x04\xe6\x04\x02\x06\n\r\n\x05\x05\x04\x02\x04\x02\ - \x12\x04\xe6\x04\t\n\n\x0c\n\x02\x05\x05\x12\x06\xe9\x04\0\xed\x04\x01\n\ - \x0b\n\x03\x05\x05\x01\x12\x04\xe9\x04\x05\x12\n\x0c\n\x04\x05\x05\x02\0\ - \x12\x04\xea\x04\x02\x1f\n\r\n\x05\x05\x05\x02\0\x01\x12\x04\xea\x04\x02\ - \x1a\n\r\n\x05\x05\x05\x02\0\x02\x12\x04\xea\x04\x1d\x1e\n\x0c\n\x04\x05\ - \x05\x02\x01\x12\x04\xeb\x04\x02\x12\n\r\n\x05\x05\x05\x02\x01\x01\x12\ - \x04\xeb\x04\x02\r\n\r\n\x05\x05\x05\x02\x01\x02\x12\x04\xeb\x04\x10\x11\ - \n\x0c\n\x04\x05\x05\x02\x02\x12\x04\xec\x04\x02\x11\n\r\n\x05\x05\x05\ - \x02\x02\x01\x12\x04\xec\x04\x02\x0c\n\r\n\x05\x05\x05\x02\x02\x02\x12\ - \x04\xec\x04\x0f\x10\n\xd6\x03\n\x02\x05\x06\x12\x06\xf5\x04\0\xdb\x05\ + \x20lint'.\n\n\r\n\x05\x04\n\x02\x03\x05\x12\x04\xe8\x04\x02\x08\n\r\n\ + \x05\x04\n\x02\x03\x01\x12\x04\xe8\x04\t\x0f\n\r\n\x05\x04\n\x02\x03\x03\ + \x12\x04\xe8\x04\x12\x13\n\x0c\n\x04\x04\n\x02\x04\x12\x04\xe9\x04\x02\"\ + \n\r\n\x05\x04\n\x02\x04\x04\x12\x04\xe9\x04\x02\n\n\r\n\x05\x04\n\x02\ + \x04\x06\x12\x04\xe9\x04\x0b\x18\n\r\n\x05\x04\n\x02\x04\x01\x12\x04\xe9\ + \x04\x19\x1d\n\r\n\x05\x04\n\x02\x04\x03\x12\x04\xe9\x04\x20!\n\x0c\n\ + \x02\x05\x04\x12\x06\xec\x04\0\xf2\x04\x01\n\x0b\n\x03\x05\x04\x01\x12\ + \x04\xec\x04\x05\r\n\x0c\n\x04\x05\x04\x02\0\x12\x04\xed\x04\x02\x1a\n\r\ + \n\x05\x05\x04\x02\0\x01\x12\x04\xed\x04\x02\x15\n\r\n\x05\x05\x04\x02\0\ + \x02\x12\x04\xed\x04\x18\x19\n\x0c\n\x04\x05\x04\x02\x01\x12\x04\xee\x04\ + \x02\x0c\n\r\n\x05\x05\x04\x02\x01\x01\x12\x04\xee\x04\x02\x07\n\r\n\x05\ + \x05\x04\x02\x01\x02\x12\x04\xee\x04\n\x0b\n\x0c\n\x04\x05\x04\x02\x02\ + \x12\x04\xef\x04\x02\x0e\n\r\n\x05\x05\x04\x02\x02\x01\x12\x04\xef\x04\ + \x02\t\n\r\n\x05\x05\x04\x02\x02\x02\x12\x04\xef\x04\x0c\r\n\x0c\n\x04\ + \x05\x04\x02\x03\x12\x04\xf0\x04\x02\x12\n\r\n\x05\x05\x04\x02\x03\x01\ + \x12\x04\xf0\x04\x02\r\n\r\n\x05\x05\x04\x02\x03\x02\x12\x04\xf0\x04\x10\ + \x11\n\x0c\n\x04\x05\x04\x02\x04\x12\x04\xf1\x04\x02\x0b\n\r\n\x05\x05\ + \x04\x02\x04\x01\x12\x04\xf1\x04\x02\x06\n\r\n\x05\x05\x04\x02\x04\x02\ + \x12\x04\xf1\x04\t\n\n\x0c\n\x02\x05\x05\x12\x06\xf4\x04\0\xf8\x04\x01\n\ + \x0b\n\x03\x05\x05\x01\x12\x04\xf4\x04\x05\x12\n\x0c\n\x04\x05\x05\x02\0\ + \x12\x04\xf5\x04\x02\x1f\n\r\n\x05\x05\x05\x02\0\x01\x12\x04\xf5\x04\x02\ + \x1a\n\r\n\x05\x05\x05\x02\0\x02\x12\x04\xf5\x04\x1d\x1e\n\x0c\n\x04\x05\ + \x05\x02\x01\x12\x04\xf6\x04\x02\x12\n\r\n\x05\x05\x05\x02\x01\x01\x12\ + \x04\xf6\x04\x02\r\n\r\n\x05\x05\x05\x02\x01\x02\x12\x04\xf6\x04\x10\x11\ + \n\x0c\n\x04\x05\x05\x02\x02\x12\x04\xf7\x04\x02\x11\n\r\n\x05\x05\x05\ + \x02\x02\x01\x12\x04\xf7\x04\x02\x0c\n\r\n\x05\x05\x05\x02\x02\x02\x12\ + \x04\xf7\x04\x0f\x10\n\xd6\x03\n\x02\x05\x06\x12\x06\x80\x05\0\xe6\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\ @@ -4828,209 +4873,209 @@ static file_descriptor_proto_data: &'static [u8] = b"\ 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\xf5\x04\x05\r\n\x0c\n\x04\x05\x06\x02\0\x12\x04\xf6\x04\x02\ - \x1a\n\r\n\x05\x05\x06\x02\0\x01\x12\x04\xf6\x04\x02\x15\n\r\n\x05\x05\ - \x06\x02\0\x02\x12\x04\xf6\x04\x18\x19\n\x0c\n\x04\x05\x06\x02\x01\x12\ - \x04\xf7\x04\x02\x0c\n\r\n\x05\x05\x06\x02\x01\x01\x12\x04\xf7\x04\x02\ - \x06\n\r\n\x05\x05\x06\x02\x01\x02\x12\x04\xf7\x04\t\x0b\n\x0c\n\x04\x05\ - \x06\x02\x02\x12\x04\xf8\x04\x02\x0b\n\r\n\x05\x05\x06\x02\x02\x01\x12\ - \x04\xf8\x04\x02\x05\n\r\n\x05\x05\x06\x02\x02\x02\x12\x04\xf8\x04\x08\n\ - \n\x0c\n\x04\x05\x06\x02\x03\x12\x04\xf9\x04\x02\x0b\n\r\n\x05\x05\x06\ - \x02\x03\x01\x12\x04\xf9\x04\x02\x05\n\r\n\x05\x05\x06\x02\x03\x02\x12\ - \x04\xf9\x04\x08\n\n\x0c\n\x04\x05\x06\x02\x04\x12\x04\xfa\x04\x02\x0c\n\ - \r\n\x05\x05\x06\x02\x04\x01\x12\x04\xfa\x04\x02\x06\n\r\n\x05\x05\x06\ - \x02\x04\x02\x12\x04\xfa\x04\t\x0b\n\x0c\n\x04\x05\x06\x02\x05\x12\x04\ - \xfb\x04\x02\x10\n\r\n\x05\x05\x06\x02\x05\x01\x12\x04\xfb\x04\x02\n\n\r\ - \n\x05\x05\x06\x02\x05\x02\x12\x04\xfb\x04\r\x0f\n\x0c\n\x04\x05\x06\x02\ - \x06\x12\x04\xfc\x04\x02\x10\n\r\n\x05\x05\x06\x02\x06\x01\x12\x04\xfc\ - \x04\x02\n\n\r\n\x05\x05\x06\x02\x06\x02\x12\x04\xfc\x04\r\x0f\n\x0c\n\ - \x04\x05\x06\x02\x07\x12\x04\xfd\x04\x02\x0b\n\r\n\x05\x05\x06\x02\x07\ - \x01\x12\x04\xfd\x04\x02\x05\n\r\n\x05\x05\x06\x02\x07\x02\x12\x04\xfd\ - \x04\x08\n\n\x0c\n\x04\x05\x06\x02\x08\x12\x04\xfe\x04\x02\x0b\n\r\n\x05\ - \x05\x06\x02\x08\x01\x12\x04\xfe\x04\x02\x05\n\r\n\x05\x05\x06\x02\x08\ - \x02\x12\x04\xfe\x04\x08\n\n\x0c\n\x04\x05\x06\x02\t\x12\x04\xff\x04\x02\ - \x0e\n\r\n\x05\x05\x06\x02\t\x01\x12\x04\xff\x04\x02\x08\n\r\n\x05\x05\ - \x06\x02\t\x02\x12\x04\xff\x04\x0b\r\n\x0c\n\x04\x05\x06\x02\n\x12\x04\ - \x80\x05\x02\t\n\r\n\x05\x05\x06\x02\n\x01\x12\x04\x80\x05\x02\x03\n\r\n\ - \x05\x05\x06\x02\n\x02\x12\x04\x80\x05\x06\x08\n\x0c\n\x04\x05\x06\x02\ - \x0b\x12\x04\x81\x05\x02\r\n\r\n\x05\x05\x06\x02\x0b\x01\x12\x04\x81\x05\ - \x02\x07\n\r\n\x05\x05\x06\x02\x0b\x02\x12\x04\x81\x05\n\x0c\nH\n\x04\ - \x05\x06\x02\x0c\x12\x04\x82\x05\x02\x0b\":\x20C++\x20(the\x20name\x20\"\ + \x01\x12\x04\x80\x05\x05\r\n\x0c\n\x04\x05\x06\x02\0\x12\x04\x81\x05\x02\ + \x1a\n\r\n\x05\x05\x06\x02\0\x01\x12\x04\x81\x05\x02\x15\n\r\n\x05\x05\ + \x06\x02\0\x02\x12\x04\x81\x05\x18\x19\n\x0c\n\x04\x05\x06\x02\x01\x12\ + \x04\x82\x05\x02\x0c\n\r\n\x05\x05\x06\x02\x01\x01\x12\x04\x82\x05\x02\ + \x06\n\r\n\x05\x05\x06\x02\x01\x02\x12\x04\x82\x05\t\x0b\n\x0c\n\x04\x05\ + \x06\x02\x02\x12\x04\x83\x05\x02\x0b\n\r\n\x05\x05\x06\x02\x02\x01\x12\ + \x04\x83\x05\x02\x05\n\r\n\x05\x05\x06\x02\x02\x02\x12\x04\x83\x05\x08\n\ + \n\x0c\n\x04\x05\x06\x02\x03\x12\x04\x84\x05\x02\x0b\n\r\n\x05\x05\x06\ + \x02\x03\x01\x12\x04\x84\x05\x02\x05\n\r\n\x05\x05\x06\x02\x03\x02\x12\ + \x04\x84\x05\x08\n\n\x0c\n\x04\x05\x06\x02\x04\x12\x04\x85\x05\x02\x0c\n\ + \r\n\x05\x05\x06\x02\x04\x01\x12\x04\x85\x05\x02\x06\n\r\n\x05\x05\x06\ + \x02\x04\x02\x12\x04\x85\x05\t\x0b\n\x0c\n\x04\x05\x06\x02\x05\x12\x04\ + \x86\x05\x02\x10\n\r\n\x05\x05\x06\x02\x05\x01\x12\x04\x86\x05\x02\n\n\r\ + \n\x05\x05\x06\x02\x05\x02\x12\x04\x86\x05\r\x0f\n\x0c\n\x04\x05\x06\x02\ + \x06\x12\x04\x87\x05\x02\x10\n\r\n\x05\x05\x06\x02\x06\x01\x12\x04\x87\ + \x05\x02\n\n\r\n\x05\x05\x06\x02\x06\x02\x12\x04\x87\x05\r\x0f\n\x0c\n\ + \x04\x05\x06\x02\x07\x12\x04\x88\x05\x02\x0b\n\r\n\x05\x05\x06\x02\x07\ + \x01\x12\x04\x88\x05\x02\x05\n\r\n\x05\x05\x06\x02\x07\x02\x12\x04\x88\ + \x05\x08\n\n\x0c\n\x04\x05\x06\x02\x08\x12\x04\x89\x05\x02\x0b\n\r\n\x05\ + \x05\x06\x02\x08\x01\x12\x04\x89\x05\x02\x05\n\r\n\x05\x05\x06\x02\x08\ + \x02\x12\x04\x89\x05\x08\n\n\x0c\n\x04\x05\x06\x02\t\x12\x04\x8a\x05\x02\ + \x0e\n\r\n\x05\x05\x06\x02\t\x01\x12\x04\x8a\x05\x02\x08\n\r\n\x05\x05\ + \x06\x02\t\x02\x12\x04\x8a\x05\x0b\r\n\x0c\n\x04\x05\x06\x02\n\x12\x04\ + \x8b\x05\x02\t\n\r\n\x05\x05\x06\x02\n\x01\x12\x04\x8b\x05\x02\x03\n\r\n\ + \x05\x05\x06\x02\n\x02\x12\x04\x8b\x05\x06\x08\n\x0c\n\x04\x05\x06\x02\ + \x0b\x12\x04\x8c\x05\x02\r\n\r\n\x05\x05\x06\x02\x0b\x01\x12\x04\x8c\x05\ + \x02\x07\n\r\n\x05\x05\x06\x02\x0b\x02\x12\x04\x8c\x05\n\x0c\nH\n\x04\ + \x05\x06\x02\x0c\x12\x04\x8d\x05\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\x82\x05\x02\x05\n\r\n\x05\x05\x06\x02\x0c\ - \x02\x12\x04\x82\x05\x08\n\n\x0c\n\x04\x05\x06\x02\r\x12\x04\x83\x05\x02\ - \x0b\n\r\n\x05\x05\x06\x02\r\x01\x12\x04\x83\x05\x02\x05\n\r\n\x05\x05\ - \x06\x02\r\x02\x12\x04\x83\x05\x08\n\n\x0c\n\x04\x05\x06\x02\x0e\x12\x04\ - \x84\x05\x02\r\n\r\n\x05\x05\x06\x02\x0e\x01\x12\x04\x84\x05\x02\x08\n\r\ - \n\x05\x05\x06\x02\x0e\x02\x12\x04\x84\x05\x0b\x0c\n\x0c\n\x04\x05\x06\ - \x02\x0f\x12\x04\x85\x05\x02\x0e\n\r\n\x05\x05\x06\x02\x0f\x01\x12\x04\ - \x85\x05\x02\t\n\r\n\x05\x05\x06\x02\x0f\x02\x12\x04\x85\x05\x0c\r\n\x0c\ - \n\x04\x05\x06\x02\x10\x12\x04\x86\x05\x02\x14\n\r\n\x05\x05\x06\x02\x10\ - \x01\x12\x04\x86\x05\x02\x0e\n\r\n\x05\x05\x06\x02\x10\x02\x12\x04\x86\ - \x05\x11\x13\n\x0c\n\x04\x05\x06\x02\x11\x12\x04\x87\x05\x02\x11\n\r\n\ - \x05\x05\x06\x02\x11\x01\x12\x04\x87\x05\x02\x0c\n\r\n\x05\x05\x06\x02\ - \x11\x02\x12\x04\x87\x05\x0f\x10\n\x0c\n\x04\x05\x06\x02\x12\x12\x04\x88\ - \x05\x02\x0b\n\r\n\x05\x05\x06\x02\x12\x01\x12\x04\x88\x05\x02\x05\n\r\n\ - \x05\x05\x06\x02\x12\x02\x12\x04\x88\x05\x08\n\n\x0c\n\x04\x05\x06\x02\ - \x13\x12\x04\x89\x05\x02\x0b\n\r\n\x05\x05\x06\x02\x13\x01\x12\x04\x89\ - \x05\x02\x06\n\r\n\x05\x05\x06\x02\x13\x02\x12\x04\x89\x05\t\n\n\x0c\n\ - \x04\x05\x06\x02\x14\x12\x04\x8a\x05\x02\x0e\n\r\n\x05\x05\x06\x02\x14\ - \x01\x12\x04\x8a\x05\x02\x08\n\r\n\x05\x05\x06\x02\x14\x02\x12\x04\x8a\ - \x05\x0b\r\n\x0c\n\x04\x05\x06\x02\x15\x12\x04\x8b\x05\x02\x0c\n\r\n\x05\ - \x05\x06\x02\x15\x01\x12\x04\x8b\x05\x02\x06\n\r\n\x05\x05\x06\x02\x15\ - \x02\x12\x04\x8b\x05\t\x0b\n\x0c\n\x04\x05\x06\x02\x16\x12\x04\x8c\x05\ - \x02\x12\n\r\n\x05\x05\x06\x02\x16\x01\x12\x04\x8c\x05\x02\x0c\n\r\n\x05\ - \x05\x06\x02\x16\x02\x12\x04\x8c\x05\x0f\x11\n\x0c\n\x04\x05\x06\x02\x17\ - \x12\x04\x8d\x05\x02\x0e\n\r\n\x05\x05\x06\x02\x17\x01\x12\x04\x8d\x05\ - \x02\x08\n\r\n\x05\x05\x06\x02\x17\x02\x12\x04\x8d\x05\x0b\r\n\x0c\n\x04\ - \x05\x06\x02\x18\x12\x04\x8e\x05\x02\x0e\n\r\n\x05\x05\x06\x02\x18\x01\ - \x12\x04\x8e\x05\x02\x08\n\r\n\x05\x05\x06\x02\x18\x02\x12\x04\x8e\x05\ - \x0b\r\n\x0c\n\x04\x05\x06\x02\x19\x12\x04\x8f\x05\x02\x0e\n\r\n\x05\x05\ - \x06\x02\x19\x01\x12\x04\x8f\x05\x02\x08\n\r\n\x05\x05\x06\x02\x19\x02\ - \x12\x04\x8f\x05\x0b\r\n\x0c\n\x04\x05\x06\x02\x1a\x12\x04\x90\x05\x02\ - \x0e\n\r\n\x05\x05\x06\x02\x1a\x01\x12\x04\x90\x05\x02\x08\n\r\n\x05\x05\ - \x06\x02\x1a\x02\x12\x04\x90\x05\x0b\r\n\x0c\n\x04\x05\x06\x02\x1b\x12\ - \x04\x91\x05\x02\x0c\n\r\n\x05\x05\x06\x02\x1b\x01\x12\x04\x91\x05\x02\ - \x06\n\r\n\x05\x05\x06\x02\x1b\x02\x12\x04\x91\x05\t\x0b\n\x0c\n\x04\x05\ - \x06\x02\x1c\x12\x04\x92\x05\x02\x0c\n\r\n\x05\x05\x06\x02\x1c\x01\x12\ - \x04\x92\x05\x02\x06\n\r\n\x05\x05\x06\x02\x1c\x02\x12\x04\x92\x05\t\x0b\ - \n\x0c\n\x04\x05\x06\x02\x1d\x12\x04\x93\x05\x02\x0f\n\r\n\x05\x05\x06\ - \x02\x1d\x01\x12\x04\x93\x05\x02\t\n\r\n\x05\x05\x06\x02\x1d\x02\x12\x04\ - \x93\x05\x0c\x0e\n\x0c\n\x04\x05\x06\x02\x1e\x12\x04\x94\x05\x02\x12\n\r\ - \n\x05\x05\x06\x02\x1e\x01\x12\x04\x94\x05\x02\x0c\n\r\n\x05\x05\x06\x02\ - \x1e\x02\x12\x04\x94\x05\x0f\x11\n\x0c\n\x04\x05\x06\x02\x1f\x12\x04\x95\ - \x05\x02\x12\n\r\n\x05\x05\x06\x02\x1f\x01\x12\x04\x95\x05\x02\x0c\n\r\n\ - \x05\x05\x06\x02\x1f\x02\x12\x04\x95\x05\x0f\x11\n\x0c\n\x04\x05\x06\x02\ - \x20\x12\x04\x96\x05\x02\x12\n\r\n\x05\x05\x06\x02\x20\x01\x12\x04\x96\ - \x05\x02\x0c\n\r\n\x05\x05\x06\x02\x20\x02\x12\x04\x96\x05\x0f\x11\n\x0c\ - \n\x04\x05\x06\x02!\x12\x04\x97\x05\x02\n\n\r\n\x05\x05\x06\x02!\x01\x12\ - \x04\x97\x05\x02\x04\n\r\n\x05\x05\x06\x02!\x02\x12\x04\x97\x05\x07\t\n\ - \x0c\n\x04\x05\x06\x02\"\x12\x04\x98\x05\x02\r\n\r\n\x05\x05\x06\x02\"\ - \x01\x12\x04\x98\x05\x02\x08\n\r\n\x05\x05\x06\x02\"\x02\x12\x04\x98\x05\ - \x0b\x0c\n\x0c\n\x04\x05\x06\x02#\x12\x04\x99\x05\x02\x0c\n\r\n\x05\x05\ - \x06\x02#\x01\x12\x04\x99\x05\x02\x06\n\r\n\x05\x05\x06\x02#\x02\x12\x04\ - \x99\x05\t\x0b\n\x0c\n\x04\x05\x06\x02$\x12\x04\x9a\x05\x02\x0c\n\r\n\ - \x05\x05\x06\x02$\x01\x12\x04\x9a\x05\x02\x06\n\r\n\x05\x05\x06\x02$\x02\ - \x12\x04\x9a\x05\t\x0b\n\x0c\n\x04\x05\x06\x02%\x12\x04\x9b\x05\x02\x12\ - \n\r\n\x05\x05\x06\x02%\x01\x12\x04\x9b\x05\x02\x0c\n\r\n\x05\x05\x06\ - \x02%\x02\x12\x04\x9b\x05\x0f\x11\n\x0c\n\x04\x05\x06\x02&\x12\x04\x9c\ - \x05\x02\x0f\n\r\n\x05\x05\x06\x02&\x01\x12\x04\x9c\x05\x02\t\n\r\n\x05\ - \x05\x06\x02&\x02\x12\x04\x9c\x05\x0c\x0e\n\x0c\n\x04\x05\x06\x02'\x12\ - \x04\x9d\x05\x02\r\n\r\n\x05\x05\x06\x02'\x01\x12\x04\x9d\x05\x02\x07\n\ - \r\n\x05\x05\x06\x02'\x02\x12\x04\x9d\x05\n\x0c\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\t\n\r\n\x05\x05\x06\x02)\x01\x12\x04\x9f\ - \x05\x02\x03\n\r\n\x05\x05\x06\x02)\x02\x12\x04\x9f\x05\x06\x08\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\x0b\n\r\n\x05\x05\x06\x02+\ - \x01\x12\x04\xa1\x05\x02\x06\n\r\n\x05\x05\x06\x02+\x02\x12\x04\xa1\x05\ - \t\n\n\x0c\n\x04\x05\x06\x02,\x12\x04\xa2\x05\x02\x12\n\r\n\x05\x05\x06\ - \x02,\x01\x12\x04\xa2\x05\x02\x0c\n\r\n\x05\x05\x06\x02,\x02\x12\x04\xa2\ - \x05\x0f\x11\n\x0c\n\x04\x05\x06\x02-\x12\x04\xa3\x05\x02\x17\n\r\n\x05\ - \x05\x06\x02-\x01\x12\x04\xa3\x05\x02\x11\n\r\n\x05\x05\x06\x02-\x02\x12\ - \x04\xa3\x05\x14\x16\n\x0c\n\x04\x05\x06\x02.\x12\x04\xa4\x05\x02\x0f\n\ - \r\n\x05\x05\x06\x02.\x01\x12\x04\xa4\x05\x02\t\n\r\n\x05\x05\x06\x02.\ - \x02\x12\x04\xa4\x05\x0c\x0e\n\x0c\n\x04\x05\x06\x02/\x12\x04\xa5\x05\ - \x02\x0e\n\r\n\x05\x05\x06\x02/\x01\x12\x04\xa5\x05\x02\x07\n\r\n\x05\ - \x05\x06\x02/\x02\x12\x04\xa5\x05\x0b\r\n\x0c\n\x04\x05\x06\x020\x12\x04\ - \xa6\x05\x02\r\n\r\n\x05\x05\x06\x020\x01\x12\x04\xa6\x05\x02\x08\n\r\n\ - \x05\x05\x06\x020\x02\x12\x04\xa6\x05\x0b\x0c\n\x0c\n\x04\x05\x06\x021\ - \x12\x04\xa7\x05\x02\r\n\r\n\x05\x05\x06\x021\x01\x12\x04\xa7\x05\x02\ - \x07\n\r\n\x05\x05\x06\x021\x02\x12\x04\xa7\x05\n\x0c\n\x0c\n\x04\x05\ - \x06\x022\x12\x04\xa8\x05\x02\x0c\n\r\n\x05\x05\x06\x022\x01\x12\x04\xa8\ - \x05\x02\x06\n\r\n\x05\x05\x06\x022\x02\x12\x04\xa8\x05\t\x0b\n\x0c\n\ - \x04\x05\x06\x023\x12\x04\xa9\x05\x02\x0c\n\r\n\x05\x05\x06\x023\x01\x12\ - \x04\xa9\x05\x02\x06\n\r\n\x05\x05\x06\x023\x02\x12\x04\xa9\x05\t\x0b\n\ - \x0c\n\x04\x05\x06\x024\x12\x04\xaa\x05\x02\x0b\n\r\n\x05\x05\x06\x024\ - \x01\x12\x04\xaa\x05\x02\x05\n\r\n\x05\x05\x06\x024\x02\x12\x04\xaa\x05\ - \x08\n\n\x0c\n\x04\x05\x06\x025\x12\x04\xab\x05\x02\x10\n\r\n\x05\x05\ - \x06\x025\x01\x12\x04\xab\x05\x02\n\n\r\n\x05\x05\x06\x025\x02\x12\x04\ - \xab\x05\r\x0f\n\x0c\n\x04\x05\x06\x026\x12\x04\xac\x05\x02\x10\n\r\n\ - \x05\x05\x06\x026\x01\x12\x04\xac\x05\x02\n\n\r\n\x05\x05\x06\x026\x02\ - \x12\x04\xac\x05\r\x0f\n\x0c\n\x04\x05\x06\x027\x12\x04\xad\x05\x02\x0e\ - \n\r\n\x05\x05\x06\x027\x01\x12\x04\xad\x05\x02\x08\n\r\n\x05\x05\x06\ - \x027\x02\x12\x04\xad\x05\x0b\r\n\x0c\n\x04\x05\x06\x028\x12\x04\xae\x05\ - \x02\x0b\n\r\n\x05\x05\x06\x028\x01\x12\x04\xae\x05\x02\x05\n\r\n\x05\ - \x05\x06\x028\x02\x12\x04\xae\x05\x08\n\n\x0c\n\x04\x05\x06\x029\x12\x04\ - \xaf\x05\x02\r\n\r\n\x05\x05\x06\x029\x01\x12\x04\xaf\x05\x02\x07\n\r\n\ - \x05\x05\x06\x029\x02\x12\x04\xaf\x05\n\x0c\n\x0c\n\x04\x05\x06\x02:\x12\ - \x04\xb0\x05\x02\x13\n\r\n\x05\x05\x06\x02:\x01\x12\x04\xb0\x05\x02\r\n\ - \r\n\x05\x05\x06\x02:\x02\x12\x04\xb0\x05\x10\x12\n\x0c\n\x04\x05\x06\ - \x02;\x12\x04\xb1\x05\x02\x15\n\r\n\x05\x05\x06\x02;\x01\x12\x04\xb1\x05\ - \x02\x0f\n\r\n\x05\x05\x06\x02;\x02\x12\x04\xb1\x05\x12\x14\n\x0c\n\x04\ - \x05\x06\x02<\x12\x04\xb2\x05\x02\x0b\n\r\n\x05\x05\x06\x02<\x01\x12\x04\ - \xb2\x05\x02\x05\n\r\n\x05\x05\x06\x02<\x02\x12\x04\xb2\x05\x08\n\n\x0c\ - \n\x04\x05\x06\x02=\x12\x04\xb3\x05\x02\r\n\r\n\x05\x05\x06\x02=\x01\x12\ - \x04\xb3\x05\x02\x07\n\r\n\x05\x05\x06\x02=\x02\x12\x04\xb3\x05\n\x0c\n\ - \x0c\n\x04\x05\x06\x02>\x12\x04\xb4\x05\x02\x0c\n\r\n\x05\x05\x06\x02>\ - \x01\x12\x04\xb4\x05\x02\x06\n\r\n\x05\x05\x06\x02>\x02\x12\x04\xb4\x05\ - \t\x0b\n\x0c\n\x04\x05\x06\x02?\x12\x04\xb5\x05\x02\x12\n\r\n\x05\x05\ - \x06\x02?\x01\x12\x04\xb5\x05\x02\x0c\n\r\n\x05\x05\x06\x02?\x02\x12\x04\ - \xb5\x05\x0f\x11\n\x0c\n\x04\x05\x06\x02@\x12\x04\xb6\x05\x02\x0e\n\r\n\ - \x05\x05\x06\x02@\x01\x12\x04\xb6\x05\x02\x08\n\r\n\x05\x05\x06\x02@\x02\ - \x12\x04\xb6\x05\x0b\r\n\x0c\n\x04\x05\x06\x02A\x12\x04\xb7\x05\x02\x0e\ - \n\r\n\x05\x05\x06\x02A\x01\x12\x04\xb7\x05\x02\x08\n\r\n\x05\x05\x06\ - \x02A\x02\x12\x04\xb7\x05\x0b\r\n\x0c\n\x04\x05\x06\x02B\x12\x04\xb8\x05\ - \x02\t\n\r\n\x05\x05\x06\x02B\x01\x12\x04\xb8\x05\x02\x03\n\r\n\x05\x05\ - \x06\x02B\x02\x12\x04\xb8\x05\x06\x08\n\x0c\n\x04\x05\x06\x02C\x12\x04\ - \xb9\x05\x02\x0e\n\r\n\x05\x05\x06\x02C\x01\x12\x04\xb9\x05\x02\x08\n\r\ - \n\x05\x05\x06\x02C\x02\x12\x04\xb9\x05\x0b\r\n\x0c\n\x04\x05\x06\x02D\ - \x12\x04\xba\x05\x02\x0c\n\r\n\x05\x05\x06\x02D\x01\x12\x04\xba\x05\x02\ - \x06\n\r\n\x05\x05\x06\x02D\x02\x12\x04\xba\x05\t\x0b\n\x0c\n\x04\x05\ - \x06\x02E\x12\x04\xbb\x05\x02\r\n\r\n\x05\x05\x06\x02E\x01\x12\x04\xbb\ - \x05\x02\x07\n\r\n\x05\x05\x06\x02E\x02\x12\x04\xbb\x05\n\x0c\n\x0c\n\ - \x04\x05\x06\x02F\x12\x04\xbc\x05\x02\x0c\n\r\n\x05\x05\x06\x02F\x01\x12\ - \x04\xbc\x05\x02\x06\n\r\n\x05\x05\x06\x02F\x02\x12\x04\xbc\x05\t\x0b\n\ - \x0c\n\x04\x05\x06\x02G\x12\x04\xbd\x05\x02\x0c\n\r\n\x05\x05\x06\x02G\ - \x01\x12\x04\xbd\x05\x02\x06\n\r\n\x05\x05\x06\x02G\x02\x12\x04\xbd\x05\ - \t\x0b\n\x0c\n\x04\x05\x06\x02H\x12\x04\xbe\x05\x02\x0c\n\r\n\x05\x05\ - \x06\x02H\x01\x12\x04\xbe\x05\x02\x06\n\r\n\x05\x05\x06\x02H\x02\x12\x04\ - \xbe\x05\t\x0b\n\x0c\n\x04\x05\x06\x02I\x12\x04\xbf\x05\x02\x0b\n\r\n\ - \x05\x05\x06\x02I\x01\x12\x04\xbf\x05\x02\x05\n\r\n\x05\x05\x06\x02I\x02\ - \x12\x04\xbf\x05\x08\n\n\x0c\n\x04\x05\x06\x02J\x12\x04\xc0\x05\x02\x0c\ - \n\r\n\x05\x05\x06\x02J\x01\x12\x04\xc0\x05\x02\x06\n\r\n\x05\x05\x06\ - \x02J\x02\x12\x04\xc0\x05\t\x0b\n\x0c\n\x04\x05\x06\x02K\x12\x04\xc1\x05\ - \x02\x0b\n\r\n\x05\x05\x06\x02K\x01\x12\x04\xc1\x05\x02\x05\n\r\n\x05\ - \x05\x06\x02K\x02\x12\x04\xc1\x05\x08\n\n\x0c\n\x04\x05\x06\x02L\x12\x04\ - \xc2\x05\x02\x0b\n\r\n\x05\x05\x06\x02L\x01\x12\x04\xc2\x05\x02\x05\n\r\ - \n\x05\x05\x06\x02L\x02\x12\x04\xc2\x05\x08\n\n\x0c\n\x04\x05\x06\x02M\ - \x12\x04\xc3\x05\x02\x0c\n\r\n\x05\x05\x06\x02M\x01\x12\x04\xc3\x05\x02\ - \x06\n\r\n\x05\x05\x06\x02M\x02\x12\x04\xc3\x05\t\x0b\n\x0c\n\x04\x05\ - \x06\x02N\x12\x04\xc4\x05\x02\x0c\n\r\n\x05\x05\x06\x02N\x01\x12\x04\xc4\ - \x05\x02\x07\n\r\n\x05\x05\x06\x02N\x02\x12\x04\xc4\x05\n\x0b\n\x0c\n\ - \x04\x05\x06\x02O\x12\x04\xc5\x05\x02\x0e\n\r\n\x05\x05\x06\x02O\x01\x12\ - \x04\xc5\x05\x02\x08\n\r\n\x05\x05\x06\x02O\x02\x12\x04\xc5\x05\x0b\r\n\ - \x14\n\x04\x05\x06\x02P\x12\x04\xc6\x05\x02\x13\"\x06\x20Bash\n\n\r\n\ - \x05\x05\x06\x02P\x01\x12\x04\xc6\x05\x02\r\n\r\n\x05\x05\x06\x02P\x02\ - \x12\x04\xc6\x05\x10\x12\n\x0c\n\x04\x05\x06\x02Q\x12\x04\xc7\x05\x02\ - \x0f\n\r\n\x05\x05\x06\x02Q\x01\x12\x04\xc7\x05\x02\t\n\r\n\x05\x05\x06\ - \x02Q\x02\x12\x04\xc7\x05\x0c\x0e\n\x0c\n\x04\x05\x06\x02R\x12\x04\xc8\ - \x05\x02\x0c\n\r\n\x05\x05\x06\x02R\x01\x12\x04\xc8\x05\x02\x07\n\r\n\ - \x05\x05\x06\x02R\x02\x12\x04\xc8\x05\n\x0b\n\x0c\n\x04\x05\x06\x02S\x12\ - \x04\xc9\x05\x02\x0c\n\r\n\x05\x05\x06\x02S\x01\x12\x04\xc9\x05\x02\x06\ - \n\r\n\x05\x05\x06\x02S\x02\x12\x04\xc9\x05\t\x0b\n\x0c\n\x04\x05\x06\ - \x02T\x12\x04\xca\x05\x02\x0b\n\r\n\x05\x05\x06\x02T\x01\x12\x04\xca\x05\ - \x02\x05\n\r\n\x05\x05\x06\x02T\x02\x12\x04\xca\x05\x08\n\n\x0c\n\x04\ - \x05\x06\x02U\x12\x04\xcb\x05\x02\x12\n\r\n\x05\x05\x06\x02U\x01\x12\x04\ - \xcb\x05\x02\x0c\n\r\n\x05\x05\x06\x02U\x02\x12\x04\xcb\x05\x0f\x11\n\ - \x0c\n\x04\x05\x06\x02V\x12\x04\xcc\x05\x02\x17\n\r\n\x05\x05\x06\x02V\ - \x01\x12\x04\xcc\x05\x02\x11\n\r\n\x05\x05\x06\x02V\x02\x12\x04\xcc\x05\ - \x14\x16\n\x0c\n\x04\x05\x06\x02W\x12\x04\xcd\x05\x02\x13\n\r\n\x05\x05\ - \x06\x02W\x01\x12\x04\xcd\x05\x02\r\n\r\n\x05\x05\x06\x02W\x02\x12\x04\ - \xcd\x05\x10\x12\n\x0c\n\x04\x05\x06\x02X\x12\x04\xce\x05\x02\x0b\n\r\n\ - \x05\x05\x06\x02X\x01\x12\x04\xce\x05\x02\x05\n\r\n\x05\x05\x06\x02X\x02\ - \x12\x04\xce\x05\x08\n\n\x0c\n\x04\x05\x06\x02Y\x12\x04\xcf\x05\x02\x0f\ - \n\r\n\x05\x05\x06\x02Y\x01\x12\x04\xcf\x05\x02\t\n\r\n\x05\x05\x06\x02Y\ - \x02\x12\x04\xcf\x05\x0c\x0e\n\x0c\n\x04\x05\x06\x02Z\x12\x04\xd0\x05\ - \x02\x0b\n\r\n\x05\x05\x06\x02Z\x01\x12\x04\xd0\x05\x02\x05\n\r\n\x05\ - \x05\x06\x02Z\x02\x12\x04\xd0\x05\x08\n\n\x0c\n\x04\x05\x06\x02[\x12\x04\ - \xd1\x05\x02\x0b\n\r\n\x05\x05\x06\x02[\x01\x12\x04\xd1\x05\x02\x05\n\r\ - \n\x05\x05\x06\x02[\x02\x12\x04\xd1\x05\x08\n\n\x0c\n\x04\x05\x06\x02\\\ - \x12\x04\xd2\x05\x02\x0c\n\r\n\x05\x05\x06\x02\\\x01\x12\x04\xd2\x05\x02\ - \x06\n\r\n\x05\x05\x06\x02\\\x02\x12\x04\xd2\x05\t\x0b\n\x92\x03\n\x04\ - \x05\x06\x02]\x12\x04\xd3\x05\x02\x0b\"\x83\x03\x20NextLanguage\x20=\x20\ + \x05\x06\x02\x0c\x01\x12\x04\x8d\x05\x02\x05\n\r\n\x05\x05\x06\x02\x0c\ + \x02\x12\x04\x8d\x05\x08\n\n\x0c\n\x04\x05\x06\x02\r\x12\x04\x8e\x05\x02\ + \x0b\n\r\n\x05\x05\x06\x02\r\x01\x12\x04\x8e\x05\x02\x05\n\r\n\x05\x05\ + \x06\x02\r\x02\x12\x04\x8e\x05\x08\n\n\x0c\n\x04\x05\x06\x02\x0e\x12\x04\ + \x8f\x05\x02\r\n\r\n\x05\x05\x06\x02\x0e\x01\x12\x04\x8f\x05\x02\x08\n\r\ + \n\x05\x05\x06\x02\x0e\x02\x12\x04\x8f\x05\x0b\x0c\n\x0c\n\x04\x05\x06\ + \x02\x0f\x12\x04\x90\x05\x02\x0e\n\r\n\x05\x05\x06\x02\x0f\x01\x12\x04\ + \x90\x05\x02\t\n\r\n\x05\x05\x06\x02\x0f\x02\x12\x04\x90\x05\x0c\r\n\x0c\ + \n\x04\x05\x06\x02\x10\x12\x04\x91\x05\x02\x14\n\r\n\x05\x05\x06\x02\x10\ + \x01\x12\x04\x91\x05\x02\x0e\n\r\n\x05\x05\x06\x02\x10\x02\x12\x04\x91\ + \x05\x11\x13\n\x0c\n\x04\x05\x06\x02\x11\x12\x04\x92\x05\x02\x11\n\r\n\ + \x05\x05\x06\x02\x11\x01\x12\x04\x92\x05\x02\x0c\n\r\n\x05\x05\x06\x02\ + \x11\x02\x12\x04\x92\x05\x0f\x10\n\x0c\n\x04\x05\x06\x02\x12\x12\x04\x93\ + \x05\x02\x0b\n\r\n\x05\x05\x06\x02\x12\x01\x12\x04\x93\x05\x02\x05\n\r\n\ + \x05\x05\x06\x02\x12\x02\x12\x04\x93\x05\x08\n\n\x0c\n\x04\x05\x06\x02\ + \x13\x12\x04\x94\x05\x02\x0b\n\r\n\x05\x05\x06\x02\x13\x01\x12\x04\x94\ + \x05\x02\x06\n\r\n\x05\x05\x06\x02\x13\x02\x12\x04\x94\x05\t\n\n\x0c\n\ + \x04\x05\x06\x02\x14\x12\x04\x95\x05\x02\x0e\n\r\n\x05\x05\x06\x02\x14\ + \x01\x12\x04\x95\x05\x02\x08\n\r\n\x05\x05\x06\x02\x14\x02\x12\x04\x95\ + \x05\x0b\r\n\x0c\n\x04\x05\x06\x02\x15\x12\x04\x96\x05\x02\x0c\n\r\n\x05\ + \x05\x06\x02\x15\x01\x12\x04\x96\x05\x02\x06\n\r\n\x05\x05\x06\x02\x15\ + \x02\x12\x04\x96\x05\t\x0b\n\x0c\n\x04\x05\x06\x02\x16\x12\x04\x97\x05\ + \x02\x12\n\r\n\x05\x05\x06\x02\x16\x01\x12\x04\x97\x05\x02\x0c\n\r\n\x05\ + \x05\x06\x02\x16\x02\x12\x04\x97\x05\x0f\x11\n\x0c\n\x04\x05\x06\x02\x17\ + \x12\x04\x98\x05\x02\x0e\n\r\n\x05\x05\x06\x02\x17\x01\x12\x04\x98\x05\ + \x02\x08\n\r\n\x05\x05\x06\x02\x17\x02\x12\x04\x98\x05\x0b\r\n\x0c\n\x04\ + \x05\x06\x02\x18\x12\x04\x99\x05\x02\x0e\n\r\n\x05\x05\x06\x02\x18\x01\ + \x12\x04\x99\x05\x02\x08\n\r\n\x05\x05\x06\x02\x18\x02\x12\x04\x99\x05\ + \x0b\r\n\x0c\n\x04\x05\x06\x02\x19\x12\x04\x9a\x05\x02\x0e\n\r\n\x05\x05\ + \x06\x02\x19\x01\x12\x04\x9a\x05\x02\x08\n\r\n\x05\x05\x06\x02\x19\x02\ + \x12\x04\x9a\x05\x0b\r\n\x0c\n\x04\x05\x06\x02\x1a\x12\x04\x9b\x05\x02\ + \x0e\n\r\n\x05\x05\x06\x02\x1a\x01\x12\x04\x9b\x05\x02\x08\n\r\n\x05\x05\ + \x06\x02\x1a\x02\x12\x04\x9b\x05\x0b\r\n\x0c\n\x04\x05\x06\x02\x1b\x12\ + \x04\x9c\x05\x02\x0c\n\r\n\x05\x05\x06\x02\x1b\x01\x12\x04\x9c\x05\x02\ + \x06\n\r\n\x05\x05\x06\x02\x1b\x02\x12\x04\x9c\x05\t\x0b\n\x0c\n\x04\x05\ + \x06\x02\x1c\x12\x04\x9d\x05\x02\x0c\n\r\n\x05\x05\x06\x02\x1c\x01\x12\ + \x04\x9d\x05\x02\x06\n\r\n\x05\x05\x06\x02\x1c\x02\x12\x04\x9d\x05\t\x0b\ + \n\x0c\n\x04\x05\x06\x02\x1d\x12\x04\x9e\x05\x02\x0f\n\r\n\x05\x05\x06\ + \x02\x1d\x01\x12\x04\x9e\x05\x02\t\n\r\n\x05\x05\x06\x02\x1d\x02\x12\x04\ + \x9e\x05\x0c\x0e\n\x0c\n\x04\x05\x06\x02\x1e\x12\x04\x9f\x05\x02\x12\n\r\ + \n\x05\x05\x06\x02\x1e\x01\x12\x04\x9f\x05\x02\x0c\n\r\n\x05\x05\x06\x02\ + \x1e\x02\x12\x04\x9f\x05\x0f\x11\n\x0c\n\x04\x05\x06\x02\x1f\x12\x04\xa0\ + \x05\x02\x12\n\r\n\x05\x05\x06\x02\x1f\x01\x12\x04\xa0\x05\x02\x0c\n\r\n\ + \x05\x05\x06\x02\x1f\x02\x12\x04\xa0\x05\x0f\x11\n\x0c\n\x04\x05\x06\x02\ + \x20\x12\x04\xa1\x05\x02\x12\n\r\n\x05\x05\x06\x02\x20\x01\x12\x04\xa1\ + \x05\x02\x0c\n\r\n\x05\x05\x06\x02\x20\x02\x12\x04\xa1\x05\x0f\x11\n\x0c\ + \n\x04\x05\x06\x02!\x12\x04\xa2\x05\x02\n\n\r\n\x05\x05\x06\x02!\x01\x12\ + \x04\xa2\x05\x02\x04\n\r\n\x05\x05\x06\x02!\x02\x12\x04\xa2\x05\x07\t\n\ + \x0c\n\x04\x05\x06\x02\"\x12\x04\xa3\x05\x02\r\n\r\n\x05\x05\x06\x02\"\ + \x01\x12\x04\xa3\x05\x02\x08\n\r\n\x05\x05\x06\x02\"\x02\x12\x04\xa3\x05\ + \x0b\x0c\n\x0c\n\x04\x05\x06\x02#\x12\x04\xa4\x05\x02\x0c\n\r\n\x05\x05\ + \x06\x02#\x01\x12\x04\xa4\x05\x02\x06\n\r\n\x05\x05\x06\x02#\x02\x12\x04\ + \xa4\x05\t\x0b\n\x0c\n\x04\x05\x06\x02$\x12\x04\xa5\x05\x02\x0c\n\r\n\ + \x05\x05\x06\x02$\x01\x12\x04\xa5\x05\x02\x06\n\r\n\x05\x05\x06\x02$\x02\ + \x12\x04\xa5\x05\t\x0b\n\x0c\n\x04\x05\x06\x02%\x12\x04\xa6\x05\x02\x12\ + \n\r\n\x05\x05\x06\x02%\x01\x12\x04\xa6\x05\x02\x0c\n\r\n\x05\x05\x06\ + \x02%\x02\x12\x04\xa6\x05\x0f\x11\n\x0c\n\x04\x05\x06\x02&\x12\x04\xa7\ + \x05\x02\x0f\n\r\n\x05\x05\x06\x02&\x01\x12\x04\xa7\x05\x02\t\n\r\n\x05\ + \x05\x06\x02&\x02\x12\x04\xa7\x05\x0c\x0e\n\x0c\n\x04\x05\x06\x02'\x12\ + \x04\xa8\x05\x02\r\n\r\n\x05\x05\x06\x02'\x01\x12\x04\xa8\x05\x02\x07\n\ + \r\n\x05\x05\x06\x02'\x02\x12\x04\xa8\x05\n\x0c\n\x0c\n\x04\x05\x06\x02(\ + \x12\x04\xa9\x05\x02\x0b\n\r\n\x05\x05\x06\x02(\x01\x12\x04\xa9\x05\x02\ + \x05\n\r\n\x05\x05\x06\x02(\x02\x12\x04\xa9\x05\x08\n\n\x0c\n\x04\x05\ + \x06\x02)\x12\x04\xaa\x05\x02\t\n\r\n\x05\x05\x06\x02)\x01\x12\x04\xaa\ + \x05\x02\x03\n\r\n\x05\x05\x06\x02)\x02\x12\x04\xaa\x05\x06\x08\n\x0c\n\ + \x04\x05\x06\x02*\x12\x04\xab\x05\x02\x0c\n\r\n\x05\x05\x06\x02*\x01\x12\ + \x04\xab\x05\x02\x06\n\r\n\x05\x05\x06\x02*\x02\x12\x04\xab\x05\t\x0b\n\ + \x0c\n\x04\x05\x06\x02+\x12\x04\xac\x05\x02\x0b\n\r\n\x05\x05\x06\x02+\ + \x01\x12\x04\xac\x05\x02\x06\n\r\n\x05\x05\x06\x02+\x02\x12\x04\xac\x05\ + \t\n\n\x0c\n\x04\x05\x06\x02,\x12\x04\xad\x05\x02\x12\n\r\n\x05\x05\x06\ + \x02,\x01\x12\x04\xad\x05\x02\x0c\n\r\n\x05\x05\x06\x02,\x02\x12\x04\xad\ + \x05\x0f\x11\n\x0c\n\x04\x05\x06\x02-\x12\x04\xae\x05\x02\x17\n\r\n\x05\ + \x05\x06\x02-\x01\x12\x04\xae\x05\x02\x11\n\r\n\x05\x05\x06\x02-\x02\x12\ + \x04\xae\x05\x14\x16\n\x0c\n\x04\x05\x06\x02.\x12\x04\xaf\x05\x02\x0f\n\ + \r\n\x05\x05\x06\x02.\x01\x12\x04\xaf\x05\x02\t\n\r\n\x05\x05\x06\x02.\ + \x02\x12\x04\xaf\x05\x0c\x0e\n\x0c\n\x04\x05\x06\x02/\x12\x04\xb0\x05\ + \x02\x0e\n\r\n\x05\x05\x06\x02/\x01\x12\x04\xb0\x05\x02\x07\n\r\n\x05\ + \x05\x06\x02/\x02\x12\x04\xb0\x05\x0b\r\n\x0c\n\x04\x05\x06\x020\x12\x04\ + \xb1\x05\x02\r\n\r\n\x05\x05\x06\x020\x01\x12\x04\xb1\x05\x02\x08\n\r\n\ + \x05\x05\x06\x020\x02\x12\x04\xb1\x05\x0b\x0c\n\x0c\n\x04\x05\x06\x021\ + \x12\x04\xb2\x05\x02\r\n\r\n\x05\x05\x06\x021\x01\x12\x04\xb2\x05\x02\ + \x07\n\r\n\x05\x05\x06\x021\x02\x12\x04\xb2\x05\n\x0c\n\x0c\n\x04\x05\ + \x06\x022\x12\x04\xb3\x05\x02\x0c\n\r\n\x05\x05\x06\x022\x01\x12\x04\xb3\ + \x05\x02\x06\n\r\n\x05\x05\x06\x022\x02\x12\x04\xb3\x05\t\x0b\n\x0c\n\ + \x04\x05\x06\x023\x12\x04\xb4\x05\x02\x0c\n\r\n\x05\x05\x06\x023\x01\x12\ + \x04\xb4\x05\x02\x06\n\r\n\x05\x05\x06\x023\x02\x12\x04\xb4\x05\t\x0b\n\ + \x0c\n\x04\x05\x06\x024\x12\x04\xb5\x05\x02\x0b\n\r\n\x05\x05\x06\x024\ + \x01\x12\x04\xb5\x05\x02\x05\n\r\n\x05\x05\x06\x024\x02\x12\x04\xb5\x05\ + \x08\n\n\x0c\n\x04\x05\x06\x025\x12\x04\xb6\x05\x02\x10\n\r\n\x05\x05\ + \x06\x025\x01\x12\x04\xb6\x05\x02\n\n\r\n\x05\x05\x06\x025\x02\x12\x04\ + \xb6\x05\r\x0f\n\x0c\n\x04\x05\x06\x026\x12\x04\xb7\x05\x02\x10\n\r\n\ + \x05\x05\x06\x026\x01\x12\x04\xb7\x05\x02\n\n\r\n\x05\x05\x06\x026\x02\ + \x12\x04\xb7\x05\r\x0f\n\x0c\n\x04\x05\x06\x027\x12\x04\xb8\x05\x02\x0e\ + \n\r\n\x05\x05\x06\x027\x01\x12\x04\xb8\x05\x02\x08\n\r\n\x05\x05\x06\ + \x027\x02\x12\x04\xb8\x05\x0b\r\n\x0c\n\x04\x05\x06\x028\x12\x04\xb9\x05\ + \x02\x0b\n\r\n\x05\x05\x06\x028\x01\x12\x04\xb9\x05\x02\x05\n\r\n\x05\ + \x05\x06\x028\x02\x12\x04\xb9\x05\x08\n\n\x0c\n\x04\x05\x06\x029\x12\x04\ + \xba\x05\x02\r\n\r\n\x05\x05\x06\x029\x01\x12\x04\xba\x05\x02\x07\n\r\n\ + \x05\x05\x06\x029\x02\x12\x04\xba\x05\n\x0c\n\x0c\n\x04\x05\x06\x02:\x12\ + \x04\xbb\x05\x02\x13\n\r\n\x05\x05\x06\x02:\x01\x12\x04\xbb\x05\x02\r\n\ + \r\n\x05\x05\x06\x02:\x02\x12\x04\xbb\x05\x10\x12\n\x0c\n\x04\x05\x06\ + \x02;\x12\x04\xbc\x05\x02\x15\n\r\n\x05\x05\x06\x02;\x01\x12\x04\xbc\x05\ + \x02\x0f\n\r\n\x05\x05\x06\x02;\x02\x12\x04\xbc\x05\x12\x14\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\r\n\r\n\x05\x05\x06\x02=\x01\x12\ + \x04\xbe\x05\x02\x07\n\r\n\x05\x05\x06\x02=\x02\x12\x04\xbe\x05\n\x0c\n\ + \x0c\n\x04\x05\x06\x02>\x12\x04\xbf\x05\x02\x0c\n\r\n\x05\x05\x06\x02>\ + \x01\x12\x04\xbf\x05\x02\x06\n\r\n\x05\x05\x06\x02>\x02\x12\x04\xbf\x05\ + \t\x0b\n\x0c\n\x04\x05\x06\x02?\x12\x04\xc0\x05\x02\x12\n\r\n\x05\x05\ + \x06\x02?\x01\x12\x04\xc0\x05\x02\x0c\n\r\n\x05\x05\x06\x02?\x02\x12\x04\ + \xc0\x05\x0f\x11\n\x0c\n\x04\x05\x06\x02@\x12\x04\xc1\x05\x02\x0e\n\r\n\ + \x05\x05\x06\x02@\x01\x12\x04\xc1\x05\x02\x08\n\r\n\x05\x05\x06\x02@\x02\ + \x12\x04\xc1\x05\x0b\r\n\x0c\n\x04\x05\x06\x02A\x12\x04\xc2\x05\x02\x0e\ + \n\r\n\x05\x05\x06\x02A\x01\x12\x04\xc2\x05\x02\x08\n\r\n\x05\x05\x06\ + \x02A\x02\x12\x04\xc2\x05\x0b\r\n\x0c\n\x04\x05\x06\x02B\x12\x04\xc3\x05\ + \x02\t\n\r\n\x05\x05\x06\x02B\x01\x12\x04\xc3\x05\x02\x03\n\r\n\x05\x05\ + \x06\x02B\x02\x12\x04\xc3\x05\x06\x08\n\x0c\n\x04\x05\x06\x02C\x12\x04\ + \xc4\x05\x02\x0e\n\r\n\x05\x05\x06\x02C\x01\x12\x04\xc4\x05\x02\x08\n\r\ + \n\x05\x05\x06\x02C\x02\x12\x04\xc4\x05\x0b\r\n\x0c\n\x04\x05\x06\x02D\ + \x12\x04\xc5\x05\x02\x0c\n\r\n\x05\x05\x06\x02D\x01\x12\x04\xc5\x05\x02\ + \x06\n\r\n\x05\x05\x06\x02D\x02\x12\x04\xc5\x05\t\x0b\n\x0c\n\x04\x05\ + \x06\x02E\x12\x04\xc6\x05\x02\r\n\r\n\x05\x05\x06\x02E\x01\x12\x04\xc6\ + \x05\x02\x07\n\r\n\x05\x05\x06\x02E\x02\x12\x04\xc6\x05\n\x0c\n\x0c\n\ + \x04\x05\x06\x02F\x12\x04\xc7\x05\x02\x0c\n\r\n\x05\x05\x06\x02F\x01\x12\ + \x04\xc7\x05\x02\x06\n\r\n\x05\x05\x06\x02F\x02\x12\x04\xc7\x05\t\x0b\n\ + \x0c\n\x04\x05\x06\x02G\x12\x04\xc8\x05\x02\x0c\n\r\n\x05\x05\x06\x02G\ + \x01\x12\x04\xc8\x05\x02\x06\n\r\n\x05\x05\x06\x02G\x02\x12\x04\xc8\x05\ + \t\x0b\n\x0c\n\x04\x05\x06\x02H\x12\x04\xc9\x05\x02\x0c\n\r\n\x05\x05\ + \x06\x02H\x01\x12\x04\xc9\x05\x02\x06\n\r\n\x05\x05\x06\x02H\x02\x12\x04\ + \xc9\x05\t\x0b\n\x0c\n\x04\x05\x06\x02I\x12\x04\xca\x05\x02\x0b\n\r\n\ + \x05\x05\x06\x02I\x01\x12\x04\xca\x05\x02\x05\n\r\n\x05\x05\x06\x02I\x02\ + \x12\x04\xca\x05\x08\n\n\x0c\n\x04\x05\x06\x02J\x12\x04\xcb\x05\x02\x0c\ + \n\r\n\x05\x05\x06\x02J\x01\x12\x04\xcb\x05\x02\x06\n\r\n\x05\x05\x06\ + \x02J\x02\x12\x04\xcb\x05\t\x0b\n\x0c\n\x04\x05\x06\x02K\x12\x04\xcc\x05\ + \x02\x0b\n\r\n\x05\x05\x06\x02K\x01\x12\x04\xcc\x05\x02\x05\n\r\n\x05\ + \x05\x06\x02K\x02\x12\x04\xcc\x05\x08\n\n\x0c\n\x04\x05\x06\x02L\x12\x04\ + \xcd\x05\x02\x0b\n\r\n\x05\x05\x06\x02L\x01\x12\x04\xcd\x05\x02\x05\n\r\ + \n\x05\x05\x06\x02L\x02\x12\x04\xcd\x05\x08\n\n\x0c\n\x04\x05\x06\x02M\ + \x12\x04\xce\x05\x02\x0c\n\r\n\x05\x05\x06\x02M\x01\x12\x04\xce\x05\x02\ + \x06\n\r\n\x05\x05\x06\x02M\x02\x12\x04\xce\x05\t\x0b\n\x0c\n\x04\x05\ + \x06\x02N\x12\x04\xcf\x05\x02\x0c\n\r\n\x05\x05\x06\x02N\x01\x12\x04\xcf\ + \x05\x02\x07\n\r\n\x05\x05\x06\x02N\x02\x12\x04\xcf\x05\n\x0b\n\x0c\n\ + \x04\x05\x06\x02O\x12\x04\xd0\x05\x02\x0e\n\r\n\x05\x05\x06\x02O\x01\x12\ + \x04\xd0\x05\x02\x08\n\r\n\x05\x05\x06\x02O\x02\x12\x04\xd0\x05\x0b\r\n\ + \x14\n\x04\x05\x06\x02P\x12\x04\xd1\x05\x02\x13\"\x06\x20Bash\n\n\r\n\ + \x05\x05\x06\x02P\x01\x12\x04\xd1\x05\x02\r\n\r\n\x05\x05\x06\x02P\x02\ + \x12\x04\xd1\x05\x10\x12\n\x0c\n\x04\x05\x06\x02Q\x12\x04\xd2\x05\x02\ + \x0f\n\r\n\x05\x05\x06\x02Q\x01\x12\x04\xd2\x05\x02\t\n\r\n\x05\x05\x06\ + \x02Q\x02\x12\x04\xd2\x05\x0c\x0e\n\x0c\n\x04\x05\x06\x02R\x12\x04\xd3\ + \x05\x02\x0c\n\r\n\x05\x05\x06\x02R\x01\x12\x04\xd3\x05\x02\x07\n\r\n\ + \x05\x05\x06\x02R\x02\x12\x04\xd3\x05\n\x0b\n\x0c\n\x04\x05\x06\x02S\x12\ + \x04\xd4\x05\x02\x0c\n\r\n\x05\x05\x06\x02S\x01\x12\x04\xd4\x05\x02\x06\ + \n\r\n\x05\x05\x06\x02S\x02\x12\x04\xd4\x05\t\x0b\n\x0c\n\x04\x05\x06\ + \x02T\x12\x04\xd5\x05\x02\x0b\n\r\n\x05\x05\x06\x02T\x01\x12\x04\xd5\x05\ + \x02\x05\n\r\n\x05\x05\x06\x02T\x02\x12\x04\xd5\x05\x08\n\n\x0c\n\x04\ + \x05\x06\x02U\x12\x04\xd6\x05\x02\x12\n\r\n\x05\x05\x06\x02U\x01\x12\x04\ + \xd6\x05\x02\x0c\n\r\n\x05\x05\x06\x02U\x02\x12\x04\xd6\x05\x0f\x11\n\ + \x0c\n\x04\x05\x06\x02V\x12\x04\xd7\x05\x02\x17\n\r\n\x05\x05\x06\x02V\ + \x01\x12\x04\xd7\x05\x02\x11\n\r\n\x05\x05\x06\x02V\x02\x12\x04\xd7\x05\ + \x14\x16\n\x0c\n\x04\x05\x06\x02W\x12\x04\xd8\x05\x02\x13\n\r\n\x05\x05\ + \x06\x02W\x01\x12\x04\xd8\x05\x02\r\n\r\n\x05\x05\x06\x02W\x02\x12\x04\ + \xd8\x05\x10\x12\n\x0c\n\x04\x05\x06\x02X\x12\x04\xd9\x05\x02\x0b\n\r\n\ + \x05\x05\x06\x02X\x01\x12\x04\xd9\x05\x02\x05\n\r\n\x05\x05\x06\x02X\x02\ + \x12\x04\xd9\x05\x08\n\n\x0c\n\x04\x05\x06\x02Y\x12\x04\xda\x05\x02\x0f\ + \n\r\n\x05\x05\x06\x02Y\x01\x12\x04\xda\x05\x02\t\n\r\n\x05\x05\x06\x02Y\ + \x02\x12\x04\xda\x05\x0c\x0e\n\x0c\n\x04\x05\x06\x02Z\x12\x04\xdb\x05\ + \x02\x0b\n\r\n\x05\x05\x06\x02Z\x01\x12\x04\xdb\x05\x02\x05\n\r\n\x05\ + \x05\x06\x02Z\x02\x12\x04\xdb\x05\x08\n\n\x0c\n\x04\x05\x06\x02[\x12\x04\ + \xdc\x05\x02\x0b\n\r\n\x05\x05\x06\x02[\x01\x12\x04\xdc\x05\x02\x05\n\r\ + \n\x05\x05\x06\x02[\x02\x12\x04\xdc\x05\x08\n\n\x0c\n\x04\x05\x06\x02\\\ + \x12\x04\xdd\x05\x02\x0c\n\r\n\x05\x05\x06\x02\\\x01\x12\x04\xdd\x05\x02\ + \x06\n\r\n\x05\x05\x06\x02\\\x02\x12\x04\xdd\x05\t\x0b\n\x92\x03\n\x04\ + \x05\x06\x02]\x12\x04\xde\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\ @@ -5039,8 +5084,8 @@ static file_descriptor_proto_data: &'static [u8] = b"\ 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\xd3\x05\x02\x05\n\r\n\x05\x05\ - \x06\x02]\x02\x12\x04\xd3\x05\x08\nb\x06proto3\ + ry\n\n\r\n\x05\x05\x06\x02]\x01\x12\x04\xde\x05\x02\x05\n\r\n\x05\x05\ + \x06\x02]\x02\x12\x04\xde\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 072f7866..4c77f122 100644 --- a/bindings/typescript/scip.ts +++ b/bindings/typescript/scip.ts @@ -1067,6 +1067,7 @@ export namespace scip { kind?: SymbolInformation.Kind; display_name?: string; signature_documentation?: Document; + enclosing_symbol?: string; }) { super(); pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [3, 4], this.#one_of_decls); @@ -1089,6 +1090,9 @@ export namespace scip { if ("signature_documentation" in data && data.signature_documentation != undefined) { this.signature_documentation = data.signature_documentation; } + if ("enclosing_symbol" in data && data.enclosing_symbol != undefined) { + this.enclosing_symbol = data.enclosing_symbol; + } } } get symbol() { @@ -1130,6 +1134,12 @@ export namespace scip { get has_signature_documentation() { return pb_1.Message.getField(this, 7) != null; } + get enclosing_symbol() { + return pb_1.Message.getFieldWithDefault(this, 8, "") as string; + } + set enclosing_symbol(value: string) { + pb_1.Message.setField(this, 8, value); + } static fromObject(data: { symbol?: string; documentation?: string[]; @@ -1137,6 +1147,7 @@ export namespace scip { kind?: SymbolInformation.Kind; display_name?: string; signature_documentation?: ReturnType; + enclosing_symbol?: string; }): SymbolInformation { const message = new SymbolInformation({}); if (data.symbol != null) { @@ -1157,6 +1168,9 @@ export namespace scip { if (data.signature_documentation != null) { message.signature_documentation = Document.fromObject(data.signature_documentation); } + if (data.enclosing_symbol != null) { + message.enclosing_symbol = data.enclosing_symbol; + } return message; } toObject() { @@ -1167,6 +1181,7 @@ export namespace scip { kind?: SymbolInformation.Kind; display_name?: string; signature_documentation?: ReturnType; + enclosing_symbol?: string; } = {}; if (this.symbol != null) { data.symbol = this.symbol; @@ -1186,6 +1201,9 @@ export namespace scip { if (this.signature_documentation != null) { data.signature_documentation = this.signature_documentation.toObject(); } + if (this.enclosing_symbol != null) { + data.enclosing_symbol = this.enclosing_symbol; + } return data; } serialize(): Uint8Array; @@ -1204,6 +1222,8 @@ export namespace scip { writer.writeString(6, this.display_name); if (this.has_signature_documentation) writer.writeMessage(7, this.signature_documentation, () => this.signature_documentation.serialize(writer)); + if (this.enclosing_symbol.length) + writer.writeString(8, this.enclosing_symbol); if (!w) return writer.getResultBuffer(); } @@ -1231,6 +1251,9 @@ export namespace scip { case 7: reader.readMessage(message.signature_documentation, () => message.signature_documentation = Document.deserialize(reader)); break; + case 8: + message.enclosing_symbol = reader.readString(); + break; default: reader.skipField(); } } diff --git a/docs/scip.md b/docs/scip.md index ab7aa8ef..619ff1e0 100644 --- a/docs/scip.md +++ b/docs/scip.md @@ -300,6 +300,7 @@ docstring or what package it's defined it. | **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. 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: | | **signature_documentation** | Document | (optional) The signature of this symbol as it's displayed in API documentation or in hover tooltips. For example, a Java method that adds two numbers this would have `Document.language = "java"` and `Document.text = "void add(int a, int b)". The `language`and`text`fields are required while other fields such as`Documentation.occurrences` can be optionally included to support hyperlinking referenced symbols in the signature. | +| **enclosing_symbol** | string | (optional) The enclosing symbol if this is a local symbol. For non-local symbols, the enclosing symbol should be parsed from the `symbol` field using the `Descriptor` grammar. | Additional notes on **display_name**: @@ -313,6 +314,19 @@ the display name for several reasons: - The symbol may encode names with special characters that should not be displayed to the user. +Additional notes on **enclosing_symbol**: + +(optional) The enclosing symbol if this is a local symbol. For non-local +symbols, the enclosing symbol should be parsed from the `symbol` field +using the `Descriptor` grammar. + +The primary use-case for this field is to allow local symbol to be displayed +in a symbol hierarchy for API documentation. It's OK to leave this field +empty for local variables since local variables usually don't belong in API +documentation. However, in the situation that you wish to include a local +symbol in the hierarchy, then you can use `enclosing_symbol` to locate the +"parent" or "owner" of this local symbol. + #### Kind (optional) Kind represents the fine-grained category of a symbol, suitable for presenting diff --git a/scip.proto b/scip.proto index fc4dca29..8a9829dc 100644 --- a/scip.proto +++ b/scip.proto @@ -327,6 +327,17 @@ message SymbolInformation { // while other fields such as `Documentation.occurrences` can be optionally // included to support hyperlinking referenced symbols in the signature. Document signature_documentation = 7; + // (optional) The enclosing symbol if this is a local symbol. For non-local + // symbols, the enclosing symbol should be parsed from the `symbol` field + // using the `Descriptor` grammar. + // + // The primary use-case for this field is to allow local symbol to be displayed + // in a symbol hierarchy for API documentation. It's OK to leave this field + // empty for local variables since local variables usually don't belong in API + // documentation. However, in the situation that you wish to include a local + // symbol in the hierarchy, then you can use `enclosing_symbol` to locate the + // "parent" or "owner" of this local symbol. + string enclosing_symbol = 8; }