file_to_generate: "google/protobuf/plugin.proto"
proto_file {
name: "google/protobuf/descriptor.proto"
package: "google.protobuf"
message_type {
name: "FileDescriptorSet"
field {
name: "file"
number: 1
label: LABEL_REPEATED
type: TYPE_MESSAGE
type_name: ".google.protobuf.FileDescriptorProto"
}
}
message_type {
name: "FileDescriptorProto"
field {
name: "name"
number: 1
label: LABEL_OPTIONAL
type: TYPE_STRING
}
field {
name: "package"
number: 2
label: LABEL_OPTIONAL
type: TYPE_STRING
}
field {
name: "dependency"
number: 3
label: LABEL_REPEATED
type: TYPE_STRING
}
field {
name: "public_dependency"
number: 10
label: LABEL_REPEATED
type: TYPE_INT32
}
field {
name: "weak_dependency"
number: 11
label: LABEL_REPEATED
type: TYPE_INT32
}
field {
name: "message_type"
number: 4
label: LABEL_REPEATED
type: TYPE_MESSAGE
type_name: ".google.protobuf.DescriptorProto"
}
field {
name: "enum_type"
number: 5
label: LABEL_REPEATED
type: TYPE_MESSAGE
type_name: ".google.protobuf.EnumDescriptorProto"
}
field {
name: "service"
number: 6
label: LABEL_REPEATED
type: TYPE_MESSAGE
type_name: ".google.protobuf.ServiceDescriptorProto"
}
field {
name: "extension"
number: 7
label: LABEL_REPEATED
type: TYPE_MESSAGE
type_name: ".google.protobuf.FieldDescriptorProto"
}
field {
name: "options"
number: 8
label: LABEL_OPTIONAL
type: TYPE_MESSAGE
type_name: ".google.protobuf.FileOptions"
}
field {
name: "source_code_info"
number: 9
label: LABEL_OPTIONAL
type: TYPE_MESSAGE
type_name: ".google.protobuf.SourceCodeInfo"
}
}
message_type {
name: "DescriptorProto"
field {
name: "name"
number: 1
label: LABEL_OPTIONAL
type: TYPE_STRING
}
field {
name: "field"
number: 2
label: LABEL_REPEATED
type: TYPE_MESSAGE
type_name: ".google.protobuf.FieldDescriptorProto"
}
field {
name: "extension"
number: 6
label: LABEL_REPEATED
type: TYPE_MESSAGE
type_name: ".google.protobuf.FieldDescriptorProto"
}
field {
name: "nested_type"
number: 3
label: LABEL_REPEATED
type: TYPE_MESSAGE
type_name: ".google.protobuf.DescriptorProto"
}
field {
name: "enum_type"
number: 4
label: LABEL_REPEATED
type: TYPE_MESSAGE
type_name: ".google.protobuf.EnumDescriptorProto"
}
field {
name: "extension_range"
number: 5
label: LABEL_REPEATED
type: TYPE_MESSAGE
type_name: ".google.protobuf.DescriptorProto.ExtensionRange"
}
field {
name: "options"
number: 7
label: LABEL_OPTIONAL
type: TYPE_MESSAGE
type_name: ".google.protobuf.MessageOptions"
}
nested_type {
name: "ExtensionRange"
field {
name: "start"
number: 1
label: LABEL_OPTIONAL
type: TYPE_INT32
}
field {
name: "end"
number: 2
label: LABEL_OPTIONAL
type: TYPE_INT32
}
}
}
message_type {
name: "FieldDescriptorProto"
field {
name: "name"
number: 1
label: LABEL_OPTIONAL
type: TYPE_STRING
}
field {
name: "number"
number: 3
label: LABEL_OPTIONAL
type: TYPE_INT32
}
field {
name: "label"
number: 4
label: LABEL_OPTIONAL
type: TYPE_ENUM
type_name: ".google.protobuf.FieldDescriptorProto.Label"
}
field {
name: "type"
number: 5
label: LABEL_OPTIONAL
type: TYPE_ENUM
type_name: ".google.protobuf.FieldDescriptorProto.Type"
}
field {
name: "type_name"
number: 6
label: LABEL_OPTIONAL
type: TYPE_STRING
}
field {
name: "extendee"
number: 2
label: LABEL_OPTIONAL
type: TYPE_STRING
}
field {
name: "default_value"
number: 7
label: LABEL_OPTIONAL
type: TYPE_STRING
}
field {
name: "options"
number: 8
label: LABEL_OPTIONAL
type: TYPE_MESSAGE
type_name: ".google.protobuf.FieldOptions"
}
enum_type {
name: "Type"
value {
name: "TYPE_DOUBLE"
number: 1
}
value {
name: "TYPE_FLOAT"
number: 2
}
value {
name: "TYPE_INT64"
number: 3
}
value {
name: "TYPE_UINT64"
number: 4
}
value {
name: "TYPE_INT32"
number: 5
}
value {
name: "TYPE_FIXED64"
number: 6
}
value {
name: "TYPE_FIXED32"
number: 7
}
value {
name: "TYPE_BOOL"
number: 8
}
value {
name: "TYPE_STRING"
number: 9
}
value {
name: "TYPE_GROUP"
number: 10
}
value {
name: "TYPE_MESSAGE"
number: 11
}
value {
name: "TYPE_BYTES"
number: 12
}
value {
name: "TYPE_UINT32"
number: 13
}
value {
name: "TYPE_ENUM"
number: 14
}
value {
name: "TYPE_SFIXED32"
number: 15
}
value {
name: "TYPE_SFIXED64"
number: 16
}
value {
name: "TYPE_SINT32"
number: 17
}
value {
name: "TYPE_SINT64"
number: 18
}
}
enum_type {
name: "Label"
value {
name: "LABEL_OPTIONAL"
number: 1
}
value {
name: "LABEL_REQUIRED"
number: 2
}
value {
name: "LABEL_REPEATED"
number: 3
}
}
}
message_type {
name: "EnumDescriptorProto"
field {
name: "name"
number: 1
label: LABEL_OPTIONAL
type: TYPE_STRING
}
field {
name: "value"
number: 2
label: LABEL_REPEATED
type: TYPE_MESSAGE
type_name: ".google.protobuf.EnumValueDescriptorProto"
}
field {
name: "options"
number: 3
label: LABEL_OPTIONAL
type: TYPE_MESSAGE
type_name: ".google.protobuf.EnumOptions"
}
}
message_type {
name: "EnumValueDescriptorProto"
field {
name: "name"
number: 1
label: LABEL_OPTIONAL
type: TYPE_STRING
}
field {
name: "number"
number: 2
label: LABEL_OPTIONAL
type: TYPE_INT32
}
field {
name: "options"
number: 3
label: LABEL_OPTIONAL
type: TYPE_MESSAGE
type_name: ".google.protobuf.EnumValueOptions"
}
}
message_type {
name: "ServiceDescriptorProto"
field {
name: "name"
number: 1
label: LABEL_OPTIONAL
type: TYPE_STRING
}
field {
name: "method"
number: 2
label: LABEL_REPEATED
type: TYPE_MESSAGE
type_name: ".google.protobuf.MethodDescriptorProto"
}
field {
name: "options"
number: 3
label: LABEL_OPTIONAL
type: TYPE_MESSAGE
type_name: ".google.protobuf.ServiceOptions"
}
}
message_type {
name: "MethodDescriptorProto"
field {
name: "name"
number: 1
label: LABEL_OPTIONAL
type: TYPE_STRING
}
field {
name: "input_type"
number: 2
label: LABEL_OPTIONAL
type: TYPE_STRING
}
field {
name: "output_type"
number: 3
label: LABEL_OPTIONAL
type: TYPE_STRING
}
field {
name: "options"
number: 4
label: LABEL_OPTIONAL
type: TYPE_MESSAGE
type_name: ".google.protobuf.MethodOptions"
}
}
message_type {
name: "FileOptions"
field {
name: "java_package"
number: 1
label: LABEL_OPTIONAL
type: TYPE_STRING
}
field {
name: "java_outer_classname"
number: 8
label: LABEL_OPTIONAL
type: TYPE_STRING
}
field {
name: "java_multiple_files"
number: 10
label: LABEL_OPTIONAL
type: TYPE_BOOL
default_value: "false"
}
field {
name: "java_generate_equals_and_hash"
number: 20
label: LABEL_OPTIONAL
type: TYPE_BOOL
default_value: "false"
}
field {
name: "optimize_for"
number: 9
label: LABEL_OPTIONAL
type: TYPE_ENUM
type_name: ".google.protobuf.FileOptions.OptimizeMode"
default_value: "SPEED"
}
field {
name: "go_package"
number: 11
label: LABEL_OPTIONAL
type: TYPE_STRING
}
field {
name: "cc_generic_services"
number: 16
label: LABEL_OPTIONAL
type: TYPE_BOOL
default_value: "false"
}
field {
name: "java_generic_services"
number: 17
label: LABEL_OPTIONAL
type: TYPE_BOOL
default_value: "false"
}
field {
name: "py_generic_services"
number: 18
label: LABEL_OPTIONAL
type: TYPE_BOOL
default_value: "false"
}
field {
name: "uninterpreted_option"
number: 999
label: LABEL_REPEATED
type: TYPE_MESSAGE
type_name: ".google.protobuf.UninterpretedOption"
}
enum_type {
name: "OptimizeMode"
value {
name: "SPEED"
number: 1
}
value {
name: "CODE_SIZE"
number: 2
}
value {
name: "LITE_RUNTIME"
number: 3
}
}
extension_range {
start: 1000
end: 536870912
}
}
message_type {
name: "MessageOptions"
field {
name: "message_set_wire_format"
number: 1
label: LABEL_OPTIONAL
type: TYPE_BOOL
default_value: "false"
}
field {
name: "no_standard_descriptor_accessor"
number: 2
label: LABEL_OPTIONAL
type: TYPE_BOOL
default_value: "false"
}
field {
name: "uninterpreted_option"
number: 999
label: LABEL_REPEATED
type: TYPE_MESSAGE
type_name: ".google.protobuf.UninterpretedOption"
}
extension_range {
start: 1000
end: 536870912
}
}
message_type {
name: "FieldOptions"
field {
name: "ctype"
number: 1
label: LABEL_OPTIONAL
type: TYPE_ENUM
type_name: ".google.protobuf.FieldOptions.CType"
default_value: "STRING"
}
field {
name: "packed"
number: 2
label: LABEL_OPTIONAL
type: TYPE_BOOL
}
field {
name: "lazy"
number: 5
label: LABEL_OPTIONAL
type: TYPE_BOOL
default_value: "false"
}
field {
name: "deprecated"
number: 3
label: LABEL_OPTIONAL
type: TYPE_BOOL
default_value: "false"
}
field {
name: "experimental_map_key"
number: 9
label: LABEL_OPTIONAL
type: TYPE_STRING
}
field {
name: "weak"
number: 10
label: LABEL_OPTIONAL
type: TYPE_BOOL
default_value: "false"
}
field {
name: "uninterpreted_option"
number: 999
label: LABEL_REPEATED
type: TYPE_MESSAGE
type_name: ".google.protobuf.UninterpretedOption"
}
enum_type {
name: "CType"
value {
name: "STRING"
number: 0
}
value {
name: "CORD"
number: 1
}
value {
name: "STRING_PIECE"
number: 2
}
}
extension_range {
start: 1000
end: 536870912
}
}
message_type {
name: "EnumOptions"
field {
name: "allow_alias"
number: 2
label: LABEL_OPTIONAL
type: TYPE_BOOL
default_value: "true"
}
field {
name: "uninterpreted_option"
number: 999
label: LABEL_REPEATED
type: TYPE_MESSAGE
type_name: ".google.protobuf.UninterpretedOption"
}
extension_range {
start: 1000
end: 536870912
}
}
message_type {
name: "EnumValueOptions"
field {
name: "uninterpreted_option"
number: 999
label: LABEL_REPEATED
type: TYPE_MESSAGE
type_name: ".google.protobuf.UninterpretedOption"
}
extension_range {
start: 1000
end: 536870912
}
}
message_type {
name: "ServiceOptions"
field {
name: "uninterpreted_option"
number: 999
label: LABEL_REPEATED
type: TYPE_MESSAGE
type_name: ".google.protobuf.UninterpretedOption"
}
extension_range {
start: 1000
end: 536870912
}
}
message_type {
name: "MethodOptions"
field {
name: "uninterpreted_option"
number: 999
label: LABEL_REPEATED
type: TYPE_MESSAGE
type_name: ".google.protobuf.UninterpretedOption"
}
extension_range {
start: 1000
end: 536870912
}
}
message_type {
name: "UninterpretedOption"
field {
name: "name"
number: 2
label: LABEL_REPEATED
type: TYPE_MESSAGE
type_name: ".google.protobuf.UninterpretedOption.NamePart"
}
field {
name: "identifier_value"
number: 3
label: LABEL_OPTIONAL
type: TYPE_STRING
}
field {
name: "positive_int_value"
number: 4
label: LABEL_OPTIONAL
type: TYPE_UINT64
}
field {
name: "negative_int_value"
number: 5
label: LABEL_OPTIONAL
type: TYPE_INT64
}
field {
name: "double_value"
number: 6
label: LABEL_OPTIONAL
type: TYPE_DOUBLE
}
field {
name: "string_value"
number: 7
label: LABEL_OPTIONAL
type: TYPE_BYTES
}
field {
name: "aggregate_value"
number: 8
label: LABEL_OPTIONAL
type: TYPE_STRING
}
nested_type {
name: "NamePart"
field {
name: "name_part"
number: 1
label: LABEL_REQUIRED
type: TYPE_STRING
}
field {
name: "is_extension"
number: 2
label: LABEL_REQUIRED
type: TYPE_BOOL
}
}
}
message_type {
name: "SourceCodeInfo"
field {
name: "location"
number: 1
label: LABEL_REPEATED
type: TYPE_MESSAGE
type_name: ".google.protobuf.SourceCodeInfo.Location"
}
nested_type {
name: "Location"
field {
name: "path"
number: 1
label: LABEL_REPEATED
type: TYPE_INT32
options {
packed: true
}
}
field {
name: "span"
number: 2
label: LABEL_REPEATED
type: TYPE_INT32
options {
packed: true
}
}
field {
name: "leading_comments"
number: 3
label: LABEL_OPTIONAL
type: TYPE_STRING
}
field {
name: "trailing_comments"
number: 4
label: LABEL_OPTIONAL
type: TYPE_STRING
}
}
}
options {
java_package: "com.google.protobuf"
java_outer_classname: "DescriptorProtos"
optimize_for: SPEED
}
source_code_info {
location {
span: 40
span: 0
span: 619
span: 1
}
location {
path: 2
span: 40
span: 8
span: 23
}
location {
path: 8
span: 41
span: 0
span: 44
}
location {
path: 8
path: 999
path: 0
span: 41
span: 0
span: 44
}
location {
path: 8
path: 999
path: 0
path: 2
span: 41
span: 7
span: 19
}
location {
path: 8
path: 999
path: 0
path: 2
path: 0
span: 41
span: 7
span: 19
}
location {
path: 8
path: 999
path: 0
path: 2
path: 0
path: 1
span: 41
span: 7
span: 19
}
location {
path: 8
path: 999
path: 0
path: 7
span: 41
span: 22
span: 43
}
location {
path: 8
span: 42
span: 0
span: 49
}
location {
path: 8
path: 999
path: 1
span: 42
span: 0
span: 49
}
location {
path: 8
path: 999
path: 1
path: 2
span: 42
span: 7
span: 27
}
location {
path: 8
path: 999
path: 1
path: 2
path: 0
span: 42
span: 7
span: 27
}
location {
path: 8
path: 999
path: 1
path: 2
path: 0
path: 1
span: 42
span: 7
span: 27
}
location {
path: 8
path: 999
path: 1
path: 7
span: 42
span: 30
span: 48
}
location {
path: 8
span: 46
span: 0
span: 28
}
location {
path: 8
path: 999
path: 2
span: 46
span: 0
span: 28
leading_comments: " descriptor.proto must be optimized for speed because reflection-based\n algorithms don\'t work during bootstrapping.\n"
}
location {
path: 8
path: 999
path: 2
path: 2
span: 46
span: 7
span: 19
}
location {
path: 8
path: 999
path: 2
path: 2
path: 0
span: 46
span: 7
span: 19
}
location {
path: 8
path: 999
path: 2
path: 2
path: 0
path: 1
span: 46
span: 7
span: 19
}
location {
path: 8
path: 999
path: 2
path: 3
span: 46
span: 22
span: 27
}
location {
path: 4
path: 0
span: 50
span: 0
span: 52
span: 1
leading_comments: " The protocol compiler can output a FileDescriptorSet containing the .proto\n files it parses.\n"
}
location {
path: 4
path: 0
path: 1
span: 50
span: 8
span: 25
}
location {
path: 4
path: 0
path: 2
path: 0
span: 51
span: 2
span: 40
}
location {
path: 4
path: 0
path: 2
path: 0
path: 4
span: 51
span: 2
span: 10
}
location {
path: 4
path: 0
path: 2
path: 0
path: 6
span: 51
span: 11
span: 30
}
location {
path: 4
path: 0
path: 2
path: 0
path: 1
span: 51
span: 31
span: 35
}
location {
path: 4
path: 0
path: 2
path: 0
path: 3
span: 51
span: 38
span: 39
}
location {
path: 4
path: 1
span: 55
span: 0
span: 80
span: 1
leading_comments: " Describes a complete .proto file.\n"
}
location {
path: 4
path: 1
path: 1
span: 55
span: 8
span: 27
}
location {
path: 4
path: 1
path: 2
path: 0
span: 56
span: 2
span: 27
trailing_comments: " file name, relative to root of source tree\n"
}
location {
path: 4
path: 1
path: 2
path: 0
path: 4
span: 56
span: 2
span: 10
}
location {
path: 4
path: 1
path: 2
path: 0
path: 5
span: 56
span: 11
span: 17
}
location {
path: 4
path: 1
path: 2
path: 0
path: 1
span: 56
span: 18
span: 22
}
location {
path: 4
path: 1
path: 2
path: 0
path: 3
span: 56
span: 25
span: 26
}
location {
path: 4
path: 1
path: 2
path: 1
span: 57
span: 2
span: 30
trailing_comments: " e.g. \"foo\", \"foo.bar\", etc.\n"
}
location {
path: 4
path: 1
path: 2
path: 1
path: 4
span: 57
span: 2
span: 10
}
location {
path: 4
path: 1
path: 2
path: 1
path: 5
span: 57
span: 11
span: 17
}
location {
path: 4
path: 1
path: 2
path: 1
path: 1
span: 57
span: 18
span: 25
}
location {
path: 4
path: 1
path: 2
path: 1
path: 3
span: 57
span: 28
span: 29
}
location {
path: 4
path: 1
path: 2
path: 2
span: 60
span: 2
span: 33
leading_comments: " Names of files imported by this file.\n"
}
location {
path: 4
path: 1
path: 2
path: 2
path: 4
span: 60
span: 2
span: 10
}
location {
path: 4
path: 1
path: 2
path: 2
path: 5
span: 60
span: 11
span: 17
}
location {
path: 4
path: 1
path: 2
path: 2
path: 1
span: 60
span: 18
span: 28
}
location {
path: 4
path: 1
path: 2
path: 2
path: 3
span: 60
span: 31
span: 32
}
location {
path: 4
path: 1
path: 2
path: 3
span: 62
span: 2
span: 40
leading_comments: " Indexes of the public imported files in the dependency list above.\n"
}
location {
path: 4
path: 1
path: 2
path: 3
path: 4
span: 62
span: 2
span: 10
}
location {
path: 4
path: 1
path: 2
path: 3
path: 5
span: 62
span: 11
span: 16
}
location {
path: 4
path: 1
path: 2
path: 3
path: 1
span: 62
span: 17
span: 34
}
location {
path: 4
path: 1
path: 2
path: 3
path: 3
span: 62
span: 37
span: 39
}
location {
path: 4
path: 1
path: 2
path: 4
span: 65
span: 2
span: 38
leading_comments: " Indexes of the weak imported files in the dependency list.\n For Google-internal migration only. Do not use.\n"
}
location {
path: 4
path: 1
path: 2
path: 4
path: 4
span: 65
span: 2
span: 10
}
location {
path: 4
path: 1
path: 2
path: 4
path: 5
span: 65
span: 11
span: 16
}
location {
path: 4
path: 1
path: 2
path: 4
path: 1
span: 65
span: 17
span: 32
}
location {
path: 4
path: 1
path: 2
path: 4
path: 3
span: 65
span: 35
span: 37
}
location {
path: 4
path: 1
path: 2
path: 5
span: 68
span: 2
span: 44
leading_comments: " All top-level definitions in this file.\n"
}
location {
path: 4
path: 1
path: 2
path: 5
path: 4
span: 68
span: 2
span: 10
}
location {
path: 4
path: 1
path: 2
path: 5
path: 6
span: 68
span: 11
span: 26
}
location {
path: 4
path: 1
path: 2
path: 5
path: 1
span: 68
span: 27
span: 39
}
location {
path: 4
path: 1
path: 2
path: 5
path: 3
span: 68
span: 42
span: 43
}
location {
path: 4
path: 1
path: 2
path: 6
span: 69
span: 2
span: 45
}
location {
path: 4
path: 1
path: 2
path: 6
path: 4
span: 69
span: 2
span: 10
}
location {
path: 4
path: 1
path: 2
path: 6
path: 6
span: 69
span: 11
span: 30
}
location {
path: 4
path: 1
path: 2
path: 6
path: 1
span: 69
span: 31
span: 40
}
location {
path: 4
path: 1
path: 2
path: 6
path: 3
span: 69
span: 43
span: 44
}
location {
path: 4
path: 1
path: 2
path: 7
span: 70
span: 2
span: 46
}
location {
path: 4
path: 1
path: 2
path: 7
path: 4
span: 70
span: 2
span: 10
}
location {
path: 4
path: 1
path: 2
path: 7
path: 6
span: 70
span: 11
span: 33
}
location {
path: 4
path: 1
path: 2
path: 7
path: 1
span: 70
span: 34
span: 41
}
location {
path: 4
path: 1
path: 2
path: 7
path: 3
span: 70
span: 44
span: 45
}
location {
path: 4
path: 1
path: 2
path: 8
span: 71
span: 2
span: 46
}
location {
path: 4
path: 1
path: 2
path: 8
path: 4
span: 71
span: 2
span: 10
}
location {
path: 4
path: 1
path: 2
path: 8
path: 6
span: 71
span: 11
span: 31
}
location {
path: 4
path: 1
path: 2
path: 8
path: 1
span: 71
span: 32
span: 41
}
location {
path: 4
path: 1
path: 2
path: 8
path: 3
span: 71
span: 44
span: 45
}
location {
path: 4
path: 1
path: 2
path: 9
span: 73
span: 2
span: 35
}
location {
path: 4
path: 1
path: 2
path: 9
path: 4
span: 73
span: 2
span: 10
}
location {
path: 4
path: 1
path: 2
path: 9
path: 6
span: 73
span: 11
span: 22
}
location {
path: 4
path: 1
path: 2
path: 9
path: 1
span: 73
span: 23
span: 30
}
location {
path: 4
path: 1
path: 2
path: 9
path: 3
span: 73
span: 33
span: 34
}
location {
path: 4
path: 1
path: 2
path: 10
span: 79
span: 2
span: 47
leading_comments: " This field contains optional information about the original source code.\n You may safely remove this entire field whithout harming runtime\n functionality of the descriptors -- the information is needed only by\n development tools.\n"
}
location {
path: 4
path: 1
path: 2
path: 10
path: 4
span: 79
span: 2
span: 10
}
location {
path: 4
path: 1
path: 2
path: 10
path: 6
span: 79
span: 11
span: 25
}
location {
path: 4
path: 1
path: 2
path: 10
path: 1
span: 79
span: 26
span: 42
}
location {
path: 4
path: 1
path: 2
path: 10
path: 3
span: 79
span: 45
span: 46
}
location {
path: 4
path: 2
span: 83
span: 0
span: 99
span: 1
leading_comments: " Describes a message type.\n"
}
location {
path: 4
path: 2
path: 1
span: 83
span: 8
span: 23
}
location {
path: 4
path: 2
path: 2
path: 0
span: 84
span: 2
span: 27
}
location {
path: 4
path: 2
path: 2
path: 0
path: 4
span: 84
span: 2
span: 10
}
location {
path: 4
path: 2
path: 2
path: 0
path: 5
span: 84
span: 11
span: 17
}
location {
path: 4
path: 2
path: 2
path: 0
path: 1
span: 84
span: 18
span: 22
}
location {
path: 4
path: 2
path: 2
path: 0
path: 3
span: 84
span: 25
span: 26
}
location {
path: 4
path: 2
path: 2
path: 1
span: 86
span: 2
span: 42
}
location {
path: 4
path: 2
path: 2
path: 1
path: 4
span: 86
span: 2
span: 10
}
location {
path: 4
path: 2
path: 2
path: 1
path: 6
span: 86
span: 11
span: 31
}
location {
path: 4
path: 2
path: 2
path: 1
path: 1
span: 86
span: 32
span: 37
}
location {
path: 4
path: 2
path: 2
path: 1
path: 3
span: 86
span: 40
span: 41
}
location {
path: 4
path: 2
path: 2
path: 2
span: 87
span: 2
span: 46
}
location {
path: 4
path: 2
path: 2
path: 2
path: 4
span: 87
span: 2
span: 10
}
location {
path: 4
path: 2
path: 2
path: 2
path: 6
span: 87
span: 11
span: 31
}
location {
path: 4
path: 2
path: 2
path: 2
path: 1
span: 87
span: 32
span: 41
}
location {
path: 4
path: 2
path: 2
path: 2
path: 3
span: 87
span: 44
span: 45
}
location {
path: 4
path: 2
path: 2
path: 3
span: 89
span: 2
span: 43
}
location {
path: 4
path: 2
path: 2
path: 3
path: 4
span: 89
span: 2
span: 10
}
location {
path: 4
path: 2
path: 2
path: 3
path: 6
span: 89
span: 11
span: 26
}
location {
path: 4
path: 2
path: 2
path: 3
path: 1
span: 89
span: 27
span: 38
}
location {
path: 4
path: 2
path: 2
path: 3
path: 3
span: 89
span: 41
span: 42
}
location {
path: 4
path: 2
path: 2
path: 4
span: 90
span: 2
span: 45
}
location {
path: 4
path: 2
path: 2
path: 4
path: 4
span: 90
span: 2
span: 10
}
location {
path: 4
path: 2
path: 2
path: 4
path: 6
span: 90
span: 11
span: 30
}
location {
path: 4
path: 2
path: 2
path: 4
path: 1
span: 90
span: 31
span: 40
}
location {
path: 4
path: 2
path: 2
path: 4
path: 3
span: 90
span: 43
span: 44
}
location {
path: 4
path: 2
path: 3
path: 0
span: 92
span: 2
span: 95
span: 3
}
location {
path: 4
path: 2
path: 3
path: 0
path: 1
span: 92
span: 10
span: 24
}
location {
path: 4
path: 2
path: 3
path: 0
path: 2
path: 0
span: 93
span: 4
span: 29
}
location {
path: 4
path: 2
path: 3
path: 0
path: 2
path: 0
path: 4
span: 93
span: 4
span: 12
}
location {
path: 4
path: 2
path: 3
path: 0
path: 2
path: 0
path: 5
span: 93
span: 13
span: 18
}
location {
path: 4
path: 2
path: 3
path: 0
path: 2
path: 0
path: 1
span: 93
span: 19
span: 24
}
location {
path: 4
path: 2
path: 3
path: 0
path: 2
path: 0
path: 3
span: 93
span: 27
span: 28
}
location {
path: 4
path: 2
path: 3
path: 0
path: 2
path: 1
span: 94
span: 4
span: 27
}
location {
path: 4
path: 2
path: 3
path: 0
path: 2
path: 1
path: 4
span: 94
span: 4
span: 12
}
location {
path: 4
path: 2
path: 3
path: 0
path: 2
path: 1
path: 5
span: 94
span: 13
span: 18
}
location {
path: 4
path: 2
path: 3
path: 0
path: 2
path: 1
path: 1
span: 94
span: 19
span: 22
}
location {
path: 4
path: 2
path: 3
path: 0
path: 2
path: 1
path: 3
span: 94
span: 25
span: 26
}
location {
path: 4
path: 2
path: 2
path: 5
span: 96
span: 2
span: 46
}
location {
path: 4
path: 2
path: 2
path: 5
path: 4
span: 96
span: 2
span: 10
}
location {
path: 4
path: 2
path: 2
path: 5
path: 6
span: 96
span: 11
span: 25
}
location {
path: 4
path: 2
path: 2
path: 5
path: 1
span: 96
span: 26
span: 41
}
location {
path: 4
path: 2
path: 2
path: 5
path: 3
span: 96
span: 44
span: 45
}
location {
path: 4
path: 2
path: 2
path: 6
span: 98
span: 2
span: 38
}
location {
path: 4
path: 2
path: 2
path: 6
path: 4
span: 98
span: 2
span: 10
}
location {
path: 4
path: 2
path: 2
path: 6
path: 6
span: 98
span: 11
span: 25
}
location {
path: 4
path: 2
path: 2
path: 6
path: 1
span: 98
span: 26
span: 33
}
location {
path: 4
path: 2
path: 2
path: 6
path: 3
span: 98
span: 36
span: 37
}
location {
path: 4
path: 3
span: 102
span: 0
span: 167
span: 1
leading_comments: " Describes a field within a message.\n"
}
location {
path: 4
path: 3
path: 1
span: 102
span: 8
span: 28
}
location {
path: 4
path: 3
path: 4
path: 0
span: 103
span: 2
span: 130
span: 3
}
location {
path: 4
path: 3
path: 4
path: 0
path: 1
span: 103
span: 7
span: 11
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 0
span: 106
span: 4
span: 28
leading_comments: " 0 is reserved for errors.\n Order is weird for historical reasons.\n"
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 0
path: 1
span: 106
span: 4
span: 15
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 0
path: 2
span: 106
span: 26
span: 27
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 1
span: 107
span: 4
span: 28
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 1
path: 1
span: 107
span: 4
span: 14
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 1
path: 2
span: 107
span: 26
span: 27
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 2
span: 110
span: 4
span: 28
leading_comments: " Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if\n negative values are likely.\n"
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 2
path: 1
span: 110
span: 4
span: 14
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 2
path: 2
span: 110
span: 26
span: 27
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 3
span: 111
span: 4
span: 28
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 3
path: 1
span: 111
span: 4
span: 15
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 3
path: 2
span: 111
span: 26
span: 27
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 4
span: 114
span: 4
span: 28
leading_comments: " Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if\n negative values are likely.\n"
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 4
path: 1
span: 114
span: 4
span: 14
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 4
path: 2
span: 114
span: 26
span: 27
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 5
span: 115
span: 4
span: 28
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 5
path: 1
span: 115
span: 4
span: 16
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 5
path: 2
span: 115
span: 26
span: 27
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 6
span: 116
span: 4
span: 28
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 6
path: 1
span: 116
span: 4
span: 16
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 6
path: 2
span: 116
span: 26
span: 27
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 7
span: 117
span: 4
span: 28
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 7
path: 1
span: 117
span: 4
span: 13
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 7
path: 2
span: 117
span: 26
span: 27
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 8
span: 118
span: 4
span: 28
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 8
path: 1
span: 118
span: 4
span: 15
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 8
path: 2
span: 118
span: 26
span: 27
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 9
span: 119
span: 4
span: 29
trailing_comments: " Tag-delimited aggregate.\n"
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 9
path: 1
span: 119
span: 4
span: 14
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 9
path: 2
span: 119
span: 26
span: 28
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 10
span: 120
span: 4
span: 29
trailing_comments: " Length-delimited aggregate.\n"
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 10
path: 1
span: 120
span: 4
span: 16
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 10
path: 2
span: 120
span: 26
span: 28
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 11
span: 123
span: 4
span: 29
leading_comments: " New in version 2.\n"
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 11
path: 1
span: 123
span: 4
span: 14
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 11
path: 2
span: 123
span: 26
span: 28
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 12
span: 124
span: 4
span: 29
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 12
path: 1
span: 124
span: 4
span: 15
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 12
path: 2
span: 124
span: 26
span: 28
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 13
span: 125
span: 4
span: 29
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 13
path: 1
span: 125
span: 4
span: 13
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 13
path: 2
span: 125
span: 26
span: 28
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 14
span: 126
span: 4
span: 29
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 14
path: 1
span: 126
span: 4
span: 17
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 14
path: 2
span: 126
span: 26
span: 28
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 15
span: 127
span: 4
span: 29
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 15
path: 1
span: 127
span: 4
span: 17
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 15
path: 2
span: 127
span: 26
span: 28
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 16
span: 128
span: 4
span: 29
trailing_comments: " Uses ZigZag encoding.\n"
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 16
path: 1
span: 128
span: 4
span: 15
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 16
path: 2
span: 128
span: 26
span: 28
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 17
span: 129
span: 4
span: 29
trailing_comments: " Uses ZigZag encoding.\n"
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 17
path: 1
span: 129
span: 4
span: 15
}
location {
path: 4
path: 3
path: 4
path: 0
path: 2
path: 17
path: 2
span: 129
span: 26
span: 28
}
location {
path: 4
path: 3
path: 4
path: 1
span: 132
span: 2
span: 138
span: 3
}
location {
path: 4
path: 3
path: 4
path: 1
path: 1
span: 132
span: 7
span: 12
}
location {
path: 4
path: 3
path: 4
path: 1
path: 2
path: 0
span: 134
span: 4
span: 28
leading_comments: " 0 is reserved for errors\n"
}
location {
path: 4
path: 3
path: 4
path: 1
path: 2
path: 0
path: 1
span: 134
span: 4
span: 18
}
location {
path: 4
path: 3
path: 4
path: 1
path: 2
path: 0
path: 2
span: 134
span: 26
span: 27
}
location {
path: 4
path: 3
path: 4
path: 1
path: 2
path: 1
span: 135
span: 4
span: 28
}
location {
path: 4
path: 3
path: 4
path: 1
path: 2
path: 1
path: 1
span: 135
span: 4
span: 18
}
location {
path: 4
path: 3
path: 4
path: 1
path: 2
path: 1
path: 2
span: 135
span: 26
span: 27
}
location {
path: 4
path: 3
path: 4
path: 1
path: 2
path: 2
span: 136
span: 4
span: 28
trailing_comments: " TODO(sanjay): Should we add LABEL_MAP?\n"
}
location {
path: 4
path: 3
path: 4
path: 1
path: 2
path: 2
path: 1
span: 136
span: 4
span: 18
}
location {
path: 4
path: 3
path: 4
path: 1
path: 2
path: 2
path: 2
span: 136
span: 26
span: 27
}
location {
path: 4
path: 3
path: 2
path: 0
span: 140
span: 2
span: 27
}
location {
path: 4
path: 3
path: 2
path: 0
path: 4
span: 140
span: 2
span: 10
}
location {
path: 4
path: 3
path: 2
path: 0
path: 5
span: 140
span: 11
span: 17
}
location {
path: 4
path: 3
path: 2
path: 0
path: 1
span: 140
span: 18
span: 22
}
location {
path: 4
path: 3
path: 2
path: 0
path: 3
span: 140
span: 25
span: 26
}
location {
path: 4
path: 3
path: 2
path: 1
span: 141
span: 2
span: 28
}
location {
path: 4
path: 3
path: 2
path: 1
path: 4
span: 141
span: 2
span: 10
}
location {
path: 4
path: 3
path: 2
path: 1
path: 5
span: 141
span: 11
span: 16
}
location {
path: 4
path: 3
path: 2
path: 1
path: 1
span: 141
span: 17
span: 23
}
location {
path: 4
path: 3
path: 2
path: 1
path: 3
span: 141
span: 26
span: 27
}
location {
path: 4
path: 3
path: 2
path: 2
span: 142
span: 2
span: 27
}
location {
path: 4
path: 3
path: 2
path: 2
path: 4
span: 142
span: 2
span: 10
}
location {
path: 4
path: 3
path: 2
path: 2
path: 6
span: 142
span: 11
span: 16
}
location {
path: 4
path: 3
path: 2
path: 2
path: 1
span: 142
span: 17
span: 22
}
location {
path: 4
path: 3
path: 2
path: 2
path: 3
span: 142
span: 25
span: 26
}
location {
path: 4
path: 3
path: 2
path: 3
span: 146
span: 2
span: 25
leading_comments: " If type_name is set, this need not be set. If both this and type_name\n are set, this must be either TYPE_ENUM or TYPE_MESSAGE.\n"
}
location {
path: 4
path: 3
path: 2
path: 3
path: 4
span: 146
span: 2
span: 10
}
location {
path: 4
path: 3
path: 2
path: 3
path: 6
span: 146
span: 11
span: 15
}
location {
path: 4
path: 3
path: 2
path: 3
path: 1
span: 146
span: 16
span: 20
}
location {
path: 4
path: 3
path: 2
path: 3
path: 3
span: 146
span: 23
span: 24
}
location {
path: 4
path: 3
path: 2
path: 4
span: 153
span: 2
span: 32
leading_comments: " For message and enum types, this is the name of the type. If the name\n starts with a \'.\', it is fully-qualified. Otherwise, C++-like scoping\n rules are used to find the type (i.e. first the nested types within this\n message are searched, then within the parent, on up to the root\n namespace).\n"
}
location {
path: 4
path: 3
path: 2
path: 4
path: 4
span: 153
span: 2
span: 10
}
location {
path: 4
path: 3
path: 2
path: 4
path: 5
span: 153
span: 11
span: 17
}
location {
path: 4
path: 3
path: 2
path: 4
path: 1
span: 153
span: 18
span: 27
}
location {
path: 4
path: 3
path: 2
path: 4
path: 3
span: 153
span: 30
span: 31
}
location {
path: 4
path: 3
path: 2
path: 5
span: 157
span: 2
span: 31
leading_comments: " For extensions, this is the name of the type being extended. It is\n resolved in the same manner as type_name.\n"
}
location {
path: 4
path: 3
path: 2
path: 5
path: 4
span: 157
span: 2
span: 10
}
location {
path: 4
path: 3
path: 2
path: 5
path: 5
span: 157
span: 11
span: 17
}
location {
path: 4
path: 3
path: 2
path: 5
path: 1
span: 157
span: 18
span: 26
}
location {
path: 4
path: 3
path: 2
path: 5
path: 3
span: 157
span: 29
span: 30
}
location {
path: 4
path: 3
path: 2
path: 6
span: 164
span: 2
span: 36
leading_comments: " For numeric types, contains the original text representation of the value.\n For booleans, \"true\" or \"false\".\n For strings, contains the default text contents (not escaped in any way).\n For bytes, contains the C escaped value. All bytes >= 128 are escaped.\n TODO(kenton): Base-64 encode?\n"
}
location {
path: 4
path: 3
path: 2
path: 6
path: 4
span: 164
span: 2
span: 10
}
location {
path: 4
path: 3
path: 2
path: 6
path: 5
span: 164
span: 11
span: 17
}
location {
path: 4
path: 3
path: 2
path: 6
path: 1
span: 164
span: 18
span: 31
}
location {
path: 4
path: 3
path: 2
path: 6
path: 3
span: 164
span: 34
span: 35
}
location {
path: 4
path: 3
path: 2
path: 7
span: 166
span: 2
span: 36
}
location {
path: 4
path: 3
path: 2
path: 7
path: 4
span: 166
span: 2
span: 10
}
location {
path: 4
path: 3
path: 2
path: 7
path: 6
span: 166
span: 11
span: 23
}
location {
path: 4
path: 3
path: 2
path: 7
path: 1
span: 166
span: 24
span: 31
}
location {
path: 4
path: 3
path: 2
path: 7
path: 3
span: 166
span: 34
span: 35
}
location {
path: 4
path: 4
span: 170
span: 0
span: 176
span: 1
leading_comments: " Describes an enum type.\n"
}
location {
path: 4
path: 4
path: 1
span: 170
span: 8
span: 27
}
location {
path: 4
path: 4
path: 2
path: 0
span: 171
span: 2
span: 27
}
location {
path: 4
path: 4
path: 2
path: 0
path: 4
span: 171
span: 2
span: 10
}
location {
path: 4
path: 4
path: 2
path: 0
path: 5
span: 171
span: 11
span: 17
}
location {
path: 4
path: 4
path: 2
path: 0
path: 1
span: 171
span: 18
span: 22
}
location {
path: 4
path: 4
path: 2
path: 0
path: 3
span: 171
span: 25
span: 26
}
location {
path: 4
path: 4
path: 2
path: 1
span: 173
span: 2
span: 46
}
location {
path: 4
path: 4
path: 2
path: 1
path: 4
span: 173
span: 2
span: 10
}
location {
path: 4
path: 4
path: 2
path: 1
path: 6
span: 173
span: 11
span: 35
}
location {
path: 4
path: 4
path: 2
path: 1
path: 1
span: 173
span: 36
span: 41
}
location {
path: 4
path: 4
path: 2
path: 1
path: 3
span: 173
span: 44
span: 45
}
location {
path: 4
path: 4
path: 2
path: 2
span: 175
span: 2
span: 35
}
location {
path: 4
path: 4
path: 2
path: 2
path: 4
span: 175
span: 2
span: 10
}
location {
path: 4
path: 4
path: 2
path: 2
path: 6
span: 175
span: 11
span: 22
}
location {
path: 4
path: 4
path: 2
path: 2
path: 1
span: 175
span: 23
span: 30
}
location {
path: 4
path: 4
path: 2
path: 2
path: 3
span: 175
span: 33
span: 34
}
location {
path: 4
path: 5
span: 179
span: 0
span: 184
span: 1
leading_comments: " Describes a value within an enum.\n"
}
location {
path: 4
path: 5
path: 1
span: 179
span: 8
span: 32
}
location {
path: 4
path: 5
path: 2
path: 0
span: 180
span: 2
span: 27
}
location {
path: 4
path: 5
path: 2
path: 0
path: 4
span: 180
span: 2
span: 10
}
location {
path: 4
path: 5
path: 2
path: 0
path: 5
span: 180
span: 11
span: 17
}
location {
path: 4
path: 5
path: 2
path: 0
path: 1
span: 180
span: 18
span: 22
}
location {
path: 4
path: 5
path: 2
path: 0
path: 3
span: 180
span: 25
span: 26
}
location {
path: 4
path: 5
path: 2
path: 1
span: 181
span: 2
span: 28
}
location {
path: 4
path: 5
path: 2
path: 1
path: 4
span: 181
span: 2
span: 10
}
location {
path: 4
path: 5
path: 2
path: 1
path: 5
span: 181
span: 11
span: 16
}
location {
path: 4
path: 5
path: 2
path: 1
path: 1
span: 181
span: 17
span: 23
}
location {
path: 4
path: 5
path: 2
path: 1
path: 3
span: 181
span: 26
span: 27
}
location {
path: 4
path: 5
path: 2
path: 2
span: 183
span: 2
span: 40
}
location {
path: 4
path: 5
path: 2
path: 2
path: 4
span: 183
span: 2
span: 10
}
location {
path: 4
path: 5
path: 2
path: 2
path: 6
span: 183
span: 11
span: 27
}
location {
path: 4
path: 5
path: 2
path: 2
path: 1
span: 183
span: 28
span: 35
}
location {
path: 4
path: 5
path: 2
path: 2
path: 3
span: 183
span: 38
span: 39
}
location {
path: 4
path: 6
span: 187
span: 0
span: 192
span: 1
leading_comments: " Describes a service.\n"
}
location {
path: 4
path: 6
path: 1
span: 187
span: 8
span: 30
}
location {
path: 4
path: 6
path: 2
path: 0
span: 188
span: 2
span: 27
}
location {
path: 4
path: 6
path: 2
path: 0
path: 4
span: 188
span: 2
span: 10
}
location {
path: 4
path: 6
path: 2
path: 0
path: 5
span: 188
span: 11
span: 17
}
location {
path: 4
path: 6
path: 2
path: 0
path: 1
span: 188
span: 18
span: 22
}
location {
path: 4
path: 6
path: 2
path: 0
path: 3
span: 188
span: 25
span: 26
}
location {
path: 4
path: 6
path: 2
path: 1
span: 189
span: 2
span: 44
}
location {
path: 4
path: 6
path: 2
path: 1
path: 4
span: 189
span: 2
span: 10
}
location {
path: 4
path: 6
path: 2
path: 1
path: 6
span: 189
span: 11
span: 32
}
location {
path: 4
path: 6
path: 2
path: 1
path: 1
span: 189
span: 33
span: 39
}
location {
path: 4
path: 6
path: 2
path: 1
path: 3
span: 189
span: 42
span: 43
}
location {
path: 4
path: 6
path: 2
path: 2
span: 191
span: 2
span: 38
}
location {
path: 4
path: 6
path: 2
path: 2
path: 4
span: 191
span: 2
span: 10
}
location {
path: 4
path: 6
path: 2
path: 2
path: 6
span: 191
span: 11
span: 25
}
location {
path: 4
path: 6
path: 2
path: 2
path: 1
span: 191
span: 26
span: 33
}
location {
path: 4
path: 6
path: 2
path: 2
path: 3
span: 191
span: 36
span: 37
}
location {
path: 4
path: 7
span: 195
span: 0
span: 204
span: 1
leading_comments: " Describes a method of a service.\n"
}
location {
path: 4
path: 7
path: 1
span: 195
span: 8
span: 29
}
location {
path: 4
path: 7
path: 2
path: 0
span: 196
span: 2
span: 27
}
location {
path: 4
path: 7
path: 2
path: 0
path: 4
span: 196
span: 2
span: 10
}
location {
path: 4
path: 7
path: 2
path: 0
path: 5
span: 196
span: 11
span: 17
}
location {
path: 4
path: 7
path: 2
path: 0
path: 1
span: 196
span: 18
span: 22
}
location {
path: 4
path: 7
path: 2
path: 0
path: 3
span: 196
span: 25
span: 26
}
location {
path: 4
path: 7
path: 2
path: 1
span: 200
span: 2
span: 33
leading_comments: " Input and output type names. These are resolved in the same way as\n FieldDescriptorProto.type_name, but must refer to a message type.\n"
}
location {
path: 4
path: 7
path: 2
path: 1
path: 4
span: 200
span: 2
span: 10
}
location {
path: 4
path: 7
path: 2
path: 1
path: 5
span: 200
span: 11
span: 17
}
location {
path: 4
path: 7
path: 2
path: 1
path: 1
span: 200
span: 18
span: 28
}
location {
path: 4
path: 7
path: 2
path: 1
path: 3
span: 200
span: 31
span: 32
}
location {
path: 4
path: 7
path: 2
path: 2
span: 201
span: 2
span: 34
}
location {
path: 4
path: 7
path: 2
path: 2
path: 4
span: 201
span: 2
span: 10
}
location {
path: 4
path: 7
path: 2
path: 2
path: 5
span: 201
span: 11
span: 17
}
location {
path: 4
path: 7
path: 2
path: 2
path: 1
span: 201
span: 18
span: 29
}
location {
path: 4
path: 7
path: 2
path: 2
path: 3
span: 201
span: 32
span: 33
}
location {
path: 4
path: 7
path: 2
path: 3
span: 203
span: 2
span: 37
}
location {
path: 4
path: 7
path: 2
path: 3
path: 4
span: 203
span: 2
span: 10
}
location {
path: 4
path: 7
path: 2
path: 3
path: 6
span: 203
span: 11
span: 24
}
location {
path: 4
path: 7
path: 2
path: 3
path: 1
span: 203
span: 25
span: 32
}
location {
path: 4
path: 7
path: 2
path: 3
path: 3
span: 203
span: 35
span: 36
}
location {
path: 4
path: 8
span: 240
span: 0
span: 304
span: 1
}
location {
path: 4
path: 8
path: 1
span: 240
span: 8
span: 19
}
location {
path: 4
path: 8
path: 2
path: 0
span: 246
span: 2
span: 35
leading_comments: " Sets the Java package where classes generated from this .proto will be\n placed. By default, the proto package is used, but this is often\n inappropriate because proto packages do not normally start with backwards\n domain names.\n"
}
location {
path: 4
path: 8
path: 2
path: 0
path: 4
span: 246
span: 2
span: 10
}
location {
path: 4
path: 8
path: 2
path: 0
path: 5
span: 246
span: 11
span: 17
}
location {
path: 4
path: 8
path: 2
path: 0
path: 1
span: 246
span: 18
span: 30
}
location {
path: 4
path: 8
path: 2
path: 0
path: 3
span: 246
span: 33
span: 34
}
location {
path: 4
path: 8
path: 2
path: 1
span: 254
span: 2
span: 43
leading_comments: " If set, all the classes from the .proto file are wrapped in a single\n outer class with the given name. This applies to both Proto1\n (equivalent to the old \"--one_java_file\" option) and Proto2 (where\n a .proto always translates to a single class, but you may want to\n explicitly choose the class name).\n"
}
location {
path: 4
path: 8
path: 2
path: 1
path: 4
span: 254
span: 2
span: 10
}
location {
path: 4
path: 8
path: 2
path: 1
path: 5
span: 254
span: 11
span: 17
}
location {
path: 4
path: 8
path: 2
path: 1
path: 1
span: 254
span: 18
span: 38
}
location {
path: 4
path: 8
path: 2
path: 1
path: 3
span: 254
span: 41
span: 42
}
location {
path: 4
path: 8
path: 2
path: 2
span: 262
span: 2
span: 57
leading_comments: " If set true, then the Java code generator will generate a separate .java\n file for each top-level message, enum, and service defined in the .proto\n file. Thus, these types will *not* be nested inside the outer class\n named by java_outer_classname. However, the outer class will still be\n generated to contain the file\'s getDescriptor() method as well as any\n top-level extensions defined in the file.\n"
}
location {
path: 4
path: 8
path: 2
path: 2
path: 4
span: 262
span: 2
span: 10
}
location {
path: 4
path: 8
path: 2
path: 2
path: 5
span: 262
span: 11
span: 15
}
location {
path: 4
path: 8
path: 2
path: 2
path: 1
span: 262
span: 16
span: 35
}
location {
path: 4
path: 8
path: 2
path: 2
path: 3
span: 262
span: 38
span: 40
}
location {
path: 4
path: 8
path: 2
path: 2
path: 8
span: 262
span: 41
span: 56
}
location {
path: 4
path: 8
path: 2
path: 2
path: 7
span: 262
span: 50
span: 55
}
location {
path: 4
path: 8
path: 2
path: 3
span: 268
span: 2
span: 67
leading_comments: " If set true, then the Java code generator will generate equals() and\n hashCode() methods for all messages defined in the .proto file. This is\n purely a speed optimization, as the AbstractMessage base class includes\n reflection-based implementations of these methods.\n"
}
location {
path: 4
path: 8
path: 2
path: 3
path: 4
span: 268
span: 2
span: 10
}
location {
path: 4
path: 8
path: 2
path: 3
path: 5
span: 268
span: 11
span: 15
}
location {
path: 4
path: 8
path: 2
path: 3
path: 1
span: 268
span: 16
span: 45
}
location {
path: 4
path: 8
path: 2
path: 3
path: 3
span: 268
span: 48
span: 50
}
location {
path: 4
path: 8
path: 2
path: 3
path: 8
span: 268
span: 51
span: 66
}
location {
path: 4
path: 8
path: 2
path: 3
path: 7
span: 268
span: 60
span: 65
}
location {
path: 4
path: 8
path: 4
path: 0
span: 271
span: 2
span: 276
span: 3
leading_comments: " Generated classes can be optimized for speed or code size.\n"
}
location {
path: 4
path: 8
path: 4
path: 0
path: 1
span: 271
span: 7
span: 19
}
location {
path: 4
path: 8
path: 4
path: 0
path: 2
path: 0
span: 272
span: 4
span: 14
trailing_comments: " Generate complete code for parsing, serialization,\n"
}
location {
path: 4
path: 8
path: 4
path: 0
path: 2
path: 0
path: 1
span: 272
span: 4
span: 9
}
location {
path: 4
path: 8
path: 4
path: 0
path: 2
path: 0
path: 2
span: 272
span: 12
span: 13
}
location {
path: 4
path: 8
path: 4
path: 0
path: 2
path: 1
span: 274
span: 4
span: 18
leading_comments: " etc.\n"
trailing_comments: " Use ReflectionOps to implement these methods.\n"
}
location {
path: 4
path: 8
path: 4
path: 0
path: 2
path: 1
path: 1
span: 274
span: 4
span: 13
}
location {
path: 4
path: 8
path: 4
path: 0
path: 2
path: 1
path: 2
span: 274
span: 16
span: 17
}
location {
path: 4
path: 8
path: 4
path: 0
path: 2
path: 2
span: 275
span: 4
span: 21
trailing_comments: " Generate code using MessageLite and the lite runtime.\n"
}
location {
path: 4
path: 8
path: 4
path: 0
path: 2
path: 2
path: 1
span: 275
span: 4
span: 16
}
location {
path: 4
path: 8
path: 4
path: 0
path: 2
path: 2
path: 2
span: 275
span: 19
span: 20
}
location {
path: 4
path: 8
path: 2
path: 4
span: 277
span: 2
span: 57
}
location {
path: 4
path: 8
path: 2
path: 4
path: 4
span: 277
span: 2
span: 10
}
location {
path: 4
path: 8
path: 2
path: 4
path: 6
span: 277
span: 11
span: 23
}
location {
path: 4
path: 8
path: 2
path: 4
path: 1
span: 277
span: 24
span: 36
}
location {
path: 4
path: 8
path: 2
path: 4
path: 3
span: 277
span: 39
span: 40
}
location {
path: 4
path: 8
path: 2
path: 4
path: 8
span: 277
span: 41
span: 56
}
location {
path: 4
path: 8
path: 2
path: 4
path: 7
span: 277
span: 50
span: 55
}
location {
path: 4
path: 8
path: 2
path: 5
span: 281
span: 2
span: 34
leading_comments: " Sets the Go package where structs generated from this .proto will be\n placed. There is no default.\n"
}
location {
path: 4
path: 8
path: 2
path: 5
path: 4
span: 281
span: 2
span: 10
}
location {
path: 4
path: 8
path: 2
path: 5
path: 5
span: 281
span: 11
span: 17
}
location {
path: 4
path: 8
path: 2
path: 5
path: 1
span: 281
span: 18
span: 28
}
location {
path: 4
path: 8
path: 2
path: 5
path: 3
span: 281
span: 31
span: 33
}
location {
path: 4
path: 8
path: 2
path: 6
span: 295
span: 2
span: 57
leading_comments: " Should generic services be generated in each language? \"Generic\" services\n are not specific to any particular RPC system. They are generated by the\n main code generators in each language (without additional plugins).\n Generic services were the only kind of service generation supported by\n early versions of proto2.\n\n Generic services are now considered deprecated in favor of using plugins\n that generate code specific to your particular RPC system. Therefore,\n these default to false. Old code which depends on generic services should\n explicitly set them to true.\n"
}
location {
path: 4
path: 8
path: 2
path: 6
path: 4
span: 295
span: 2
span: 10
}
location {
path: 4
path: 8
path: 2
path: 6
path: 5
span: 295
span: 11
span: 15
}
location {
path: 4
path: 8
path: 2
path: 6
path: 1
span: 295
span: 16
span: 35
}
location {
path: 4
path: 8
path: 2
path: 6
path: 3
span: 295
span: 38
span: 40
}
location {
path: 4
path: 8
path: 2
path: 6
path: 8
span: 295
span: 41
span: 56
}
location {
path: 4
path: 8
path: 2
path: 6
path: 7
span: 295
span: 50
span: 55
}
location {
path: 4
path: 8
path: 2
path: 7
span: 296
span: 2
span: 59
}
location {
path: 4
path: 8
path: 2
path: 7
path: 4
span: 296
span: 2
span: 10
}
location {
path: 4
path: 8
path: 2
path: 7
path: 5
span: 296
span: 11
span: 15
}
location {
path: 4
path: 8
path: 2
path: 7
path: 1
span: 296
span: 16
span: 37
}
location {
path: 4
path: 8
path: 2
path: 7
path: 3
span: 296
span: 40
span: 42
}
location {
path: 4
path: 8
path: 2
path: 7
path: 8
span: 296
span: 43
span: 58
}
location {
path: 4
path: 8
path: 2
path: 7
path: 7
span: 296
span: 52
span: 57
}
location {
path: 4
path: 8
path: 2
path: 8
span: 297
span: 2
span: 57
}
location {
path: 4
path: 8
path: 2
path: 8
path: 4
span: 297
span: 2
span: 10
}
location {
path: 4
path: 8
path: 2
path: 8
path: 5
span: 297
span: 11
span: 15
}
location {
path: 4
path: 8
path: 2
path: 8
path: 1
span: 297
span: 16
span: 35
}
location {
path: 4
path: 8
path: 2
path: 8
path: 3
span: 297
span: 38
span: 40
}
location {
path: 4
path: 8
path: 2
path: 8
path: 8
span: 297
span: 41
span: 56
}
location {
path: 4
path: 8
path: 2
path: 8
path: 7
span: 297
span: 50
span: 55
}
location {
path: 4
path: 8
path: 2
path: 9
span: 300
span: 2
span: 58
leading_comments: " The parser stores options it doesn\'t recognize here. See above.\n"
}
location {
path: 4
path: 8
path: 2
path: 9
path: 4
span: 300
span: 2
span: 10
}
location {
path: 4
path: 8
path: 2
path: 9
path: 6
span: 300
span: 11
span: 30
}
location {
path: 4
path: 8
path: 2
path: 9
path: 1
span: 300
span: 31
span: 51
}
location {
path: 4
path: 8
path: 2
path: 9
path: 3
span: 300
span: 54
span: 57
}
location {
path: 4
path: 8
path: 5
span: 303
span: 2
span: 25
leading_comments: " Clients can define custom options in extensions of this message. See above.\n"
}
location {
path: 4
path: 8
path: 5
path: 0
span: 303
span: 13
span: 24
}
location {
path: 4
path: 8
path: 5
path: 0
path: 1
span: 303
span: 13
span: 17
}
location {
path: 4
path: 8
path: 5
path: 0
path: 2
span: 303
span: 21
span: 24
}
location {
path: 4
path: 9
span: 306
span: 0
span: 337
span: 1
}
location {
path: 4
path: 9
path: 1
span: 306
span: 8
span: 22
}
location {
path: 4
path: 9
path: 2
path: 0
span: 325
span: 2
span: 60
leading_comments: " Set true to use the old proto1 MessageSet wire format for extensions.\n This is provided for backwards-compatibility with the MessageSet wire\n format. You should not use this for any other reason: It\'s less\n efficient, has fewer features, and is more complicated.\n\n The message must be defined exactly as follows:\n message Foo {\n option message_set_wire_format = true;\n extensions 4 to max;\n }\n Note that the message cannot have any defined fields; MessageSets only\n have extensions.\n\n All extensions of your type must be singular messages; e.g. they cannot\n be int32s, enums, or repeated messages.\n\n Because this is an option, the above two restrictions are not enforced by\n the protocol compiler.\n"
}
location {
path: 4
path: 9
path: 2
path: 0
path: 4
span: 325
span: 2
span: 10
}
location {
path: 4
path: 9
path: 2
path: 0
path: 5
span: 325
span: 11
span: 15
}
location {
path: 4
path: 9
path: 2
path: 0
path: 1
span: 325
span: 16
span: 39
}
location {
path: 4
path: 9
path: 2
path: 0
path: 3
span: 325
span: 42
span: 43
}
location {
path: 4
path: 9
path: 2
path: 0
path: 8
span: 325
span: 44
span: 59
}
location {
path: 4
path: 9
path: 2
path: 0
path: 7
span: 325
span: 53
span: 58
}
location {
path: 4
path: 9
path: 2
path: 1
span: 330
span: 2
span: 68
leading_comments: " Disables the generation of the standard \"descriptor()\" accessor, which can\n conflict with a field of the same name. This is meant to make migration\n from proto1 easier; new code should avoid fields named \"descriptor\".\n"
}
location {
path: 4
path: 9
path: 2
path: 1
path: 4
span: 330
span: 2
span: 10
}
location {
path: 4
path: 9
path: 2
path: 1
path: 5
span: 330
span: 11
span: 15
}
location {
path: 4
path: 9
path: 2
path: 1
path: 1
span: 330
span: 16
span: 47
}
location {
path: 4
path: 9
path: 2
path: 1
path: 3
span: 330
span: 50
span: 51
}
location {
path: 4
path: 9
path: 2
path: 1
path: 8
span: 330
span: 52
span: 67
}
location {
path: 4
path: 9
path: 2
path: 1
path: 7
span: 330
span: 61
span: 66
}
location {
path: 4
path: 9
path: 2
path: 2
span: 333
span: 2
span: 58
leading_comments: " The parser stores options it doesn\'t recognize here. See above.\n"
}
location {
path: 4
path: 9
path: 2
path: 2
path: 4
span: 333
span: 2
span: 10
}
location {
path: 4
path: 9
path: 2
path: 2
path: 6
span: 333
span: 11
span: 30
}
location {
path: 4
path: 9
path: 2
path: 2
path: 1
span: 333
span: 31
span: 51
}
location {
path: 4
path: 9
path: 2
path: 2
path: 3
span: 333
span: 54
span: 57
}
location {
path: 4
path: 9
path: 5
span: 336
span: 2
span: 25
leading_comments: " Clients can define custom options in extensions of this message. See above.\n"
}
location {
path: 4
path: 9
path: 5
path: 0
span: 336
span: 13
span: 24
}
location {
path: 4
path: 9
path: 5
path: 0
path: 1
span: 336
span: 13
span: 17
}
location {
path: 4
path: 9
path: 5
path: 0
path: 2
span: 336
span: 21
span: 24
}
location {
path: 4
path: 10
span: 339
span: 0
span: 419
span: 1
}
location {
path: 4
path: 10
path: 1
span: 339
span: 8
span: 20
}
location {
path: 4
path: 10
path: 2
path: 0
span: 344
span: 2
span: 46
leading_comments: " The ctype option instructs the C++ code generator to use a different\n representation of the field than it normally would. See the specific\n options below. This option is not yet implemented in the open source\n release -- sorry, we\'ll try to include it in a future version!\n"
}
location {
path: 4
path: 10
path: 2
path: 0
path: 4
span: 344
span: 2
span: 10
}
location {
path: 4
path: 10
path: 2
path: 0
path: 6
span: 344
span: 11
span: 16
}
location {
path: 4
path: 10
path: 2
path: 0
path: 1
span: 344
span: 17
span: 22
}
location {
path: 4
path: 10
path: 2
path: 0
path: 3
span: 344
span: 25
span: 26
}
location {
path: 4
path: 10
path: 2
path: 0
path: 8
span: 344
span: 27
span: 45
}
location {
path: 4
path: 10
path: 2
path: 0
path: 7
span: 344
span: 38
span: 44
}
location {
path: 4
path: 10
path: 4
path: 0
span: 345
span: 2
span: 352
span: 3
}
location {
path: 4
path: 10
path: 4
path: 0
path: 1
span: 345
span: 7
span: 12
}
location {
path: 4
path: 10
path: 4
path: 0
path: 2
path: 0
span: 347
span: 4
span: 15
leading_comments: " Default mode.\n"
}
location {
path: 4
path: 10
path: 4
path: 0
path: 2
path: 0
path: 1
span: 347
span: 4
span: 10
}
location {
path: 4
path: 10
path: 4
path: 0
path: 2
path: 0
path: 2
span: 347
span: 13
span: 14
}
location {
path: 4
path: 10
path: 4
path: 0
path: 2
path: 1
span: 349
span: 4
span: 13
}
location {
path: 4
path: 10
path: 4
path: 0
path: 2
path: 1
path: 1
span: 349
span: 4
span: 8
}
location {
path: 4
path: 10
path: 4
path: 0
path: 2
path: 1
path: 2
span: 349
span: 11
span: 12
}
location {
path: 4
path: 10
path: 4
path: 0
path: 2
path: 2
span: 351
span: 4
span: 21
}
location {
path: 4
path: 10
path: 4
path: 0
path: 2
path: 2
path: 1
span: 351
span: 4
span: 16
}
location {
path: 4
path: 10
path: 4
path: 0
path: 2
path: 2
path: 2
span: 351
span: 19
span: 20
}
location {
path: 4
path: 10
path: 2
path: 1
span: 357
span: 2
span: 27
leading_comments: " The packed option can be enabled for repeated primitive fields to enable\n a more efficient representation on the wire. Rather than repeatedly\n writing the tag and type for each element, the entire array is encoded as\n a single length-delimited blob.\n"
}
location {
path: 4
path: 10
path: 2
path: 1
path: 4
span: 357
span: 2
span: 10
}
location {
path: 4
path: 10
path: 2
path: 1
path: 5
span: 357
span: 11
span: 15
}
location {
path: 4
path: 10
path: 2
path: 1
path: 1
span: 357
span: 16
span: 22
}
location {
path: 4
path: 10
path: 2
path: 1
path: 3
span: 357
span: 25
span: 26
}
location {
path: 4
path: 10
path: 2
path: 2
span: 389
span: 2
span: 41
leading_comments: " Should this field be parsed lazily? Lazy applies only to message-type\n fields. It means that when the outer message is initially parsed, the\n inner message\'s contents will not be parsed but instead stored in encoded\n form. The inner message will actually be parsed when it is first accessed.\n\n This is only a hint. Implementations are free to choose whether to use\n eager or lazy parsing regardless of the value of this option. However,\n setting this option true suggests that the protocol author believes that\n using lazy parsing on this field is worth the additional bookkeeping\n overhead typically needed to implement it.\n\n This option does not affect the public interface of any generated code;\n all method signatures remain the same. Furthermore, thread-safety of the\n interface is not affected by this option; const methods remain safe to\n call from multiple threads concurrently, while non-const methods continue\n to require exclusive access.\n\n\n Note that implementations may choose not to check required fields within\n a lazy sub-message. That is, calling IsInitialized() on the outher message\n may return true even if the inner message has missing required fields.\n This is necessary because otherwise the inner message would have to be\n parsed in order to perform the check, defeating the purpose of lazy\n parsing. An implementation which chooses not to check required fields\n must be consistent about it. That is, for any particular sub-message, the\n implementation must either *always* check its required fields, or *never*\n check its required fields, regardless of whether or not the message has\n been parsed.\n"
}
location {
path: 4
path: 10
path: 2
path: 2
path: 4
span: 389
span: 2
span: 10
}
location {
path: 4
path: 10
path: 2
path: 2
path: 5
span: 389
span: 11
span: 15
}
location {
path: 4
path: 10
path: 2
path: 2
path: 1
span: 389
span: 16
span: 20
}
location {
path: 4
path: 10
path: 2
path: 2
path: 3
span: 389
span: 23
span: 24
}
location {
path: 4
path: 10
path: 2
path: 2
path: 8
span: 389
span: 25
span: 40
}
location {
path: 4
path: 10
path: 2
path: 2
path: 7
span: 389
span: 34
span: 39
}
location {
path: 4
path: 10
path: 2
path: 3
span: 395
span: 2
span: 47
leading_comments: " Is this field deprecated?\n Depending on the target platform, this can emit Deprecated annotations\n for accessors, or it will be completely ignored; in the very least, this\n is a formalization for deprecating fields.\n"
}
location {
path: 4
path: 10
path: 2
path: 3
path: 4
span: 395
span: 2
span: 10
}
location {
path: 4
path: 10
path: 2
path: 3
path: 5
span: 395
span: 11
span: 15
}
location {
path: 4
path: 10
path: 2
path: 3
path: 1
span: 395
span: 16
span: 26
}
location {
path: 4
path: 10
path: 2
path: 3
path: 3
span: 395
span: 29
span: 30
}
location {
path: 4
path: 10
path: 2
path: 3
path: 8
span: 395
span: 31
span: 46
}
location {
path: 4
path: 10
path: 2
path: 3
path: 7
span: 395
span: 40
span: 45
}
location {
path: 4
path: 10
path: 2
path: 4
span: 409
span: 2
span: 43
leading_comments: " EXPERIMENTAL. DO NOT USE.\n For \"map\" fields, the name of the field in the enclosed type that\n is the key for this map. For example, suppose we have:\n message Item {\n required string name = 1;\n required string value = 2;\n }\n message Config {\n repeated Item items = 1 [experimental_map_key=\"name\"];\n }\n In this situation, the map key for Item will be set to \"name\".\n TODO: Fully-implement this, then remove the \"experimental_\" prefix.\n"
}
location {
path: 4
path: 10
path: 2
path: 4
path: 4
span: 409
span: 2
span: 10
}
location {
path: 4
path: 10
path: 2
path: 4
path: 5
span: 409
span: 11
span: 17
}
location {
path: 4
path: 10
path: 2
path: 4
path: 1
span: 409
span: 18
span: 38
}
location {
path: 4
path: 10
path: 2
path: 4
path: 3
span: 409
span: 41
span: 42
}
location {
path: 4
path: 10
path: 2
path: 5
span: 412
span: 2
span: 42
leading_comments: " For Google-internal migration only. Do not use.\n"
}
location {
path: 4
path: 10
path: 2
path: 5
path: 4
span: 412
span: 2
span: 10
}
location {
path: 4
path: 10
path: 2
path: 5
path: 5
span: 412
span: 11
span: 15
}
location {
path: 4
path: 10
path: 2
path: 5
path: 1
span: 412
span: 16
span: 20
}
location {
path: 4
path: 10
path: 2
path: 5
path: 3
span: 412
span: 23
span: 25
}
location {
path: 4
path: 10
path: 2
path: 5
path: 8
span: 412
span: 26
span: 41
}
location {
path: 4
path: 10
path: 2
path: 5
path: 7
span: 412
span: 35
span: 40
}
location {
path: 4
path: 10
path: 2
path: 6
span: 415
span: 2
span: 58
leading_comments: " The parser stores options it doesn\'t recognize here. See above.\n"
}
location {
path: 4
path: 10
path: 2
path: 6
path: 4
span: 415
span: 2
span: 10
}
location {
path: 4
path: 10
path: 2
path: 6
path: 6
span: 415
span: 11
span: 30
}
location {
path: 4
path: 10
path: 2
path: 6
path: 1
span: 415
span: 31
span: 51
}
location {
path: 4
path: 10
path: 2
path: 6
path: 3
span: 415
span: 54
span: 57
}
location {
path: 4
path: 10
path: 5
span: 418
span: 2
span: 25
leading_comments: " Clients can define custom options in extensions of this message. See above.\n"
}
location {
path: 4
path: 10
path: 5
path: 0
span: 418
span: 13
span: 24
}
location {
path: 4
path: 10
path: 5
path: 0
path: 1
span: 418
span: 13
span: 17
}
location {
path: 4
path: 10
path: 5
path: 0
path: 2
span: 418
span: 21
span: 24
}
location {
path: 4
path: 11
span: 421
span: 0
span: 432
span: 1
}
location {
path: 4
path: 11
path: 1
span: 421
span: 8
span: 19
}
location {
path: 4
path: 11
path: 2
path: 0
span: 425
span: 2
span: 47
leading_comments: " Set this option to false to disallow mapping different tag names to a same\n value.\n"
}
location {
path: 4
path: 11
path: 2
path: 0
path: 4
span: 425
span: 2
span: 10
}
location {
path: 4
path: 11
path: 2
path: 0
path: 5
span: 425
span: 11
span: 15
}
location {
path: 4
path: 11
path: 2
path: 0
path: 1
span: 425
span: 16
span: 27
}
location {
path: 4
path: 11
path: 2
path: 0
path: 3
span: 425
span: 30
span: 31
}
location {
path: 4
path: 11
path: 2
path: 0
path: 8
span: 425
span: 32
span: 46
}
location {
path: 4
path: 11
path: 2
path: 0
path: 7
span: 425
span: 41
span: 45
}
location {
path: 4
path: 11
path: 2
path: 1
span: 428
span: 2
span: 58
leading_comments: " The parser stores options it doesn\'t recognize here. See above.\n"
}
location {
path: 4
path: 11
path: 2
path: 1
path: 4
span: 428
span: 2
span: 10
}
location {
path: 4
path: 11
path: 2
path: 1
path: 6
span: 428
span: 11
span: 30
}
location {
path: 4
path: 11
path: 2
path: 1
path: 1
span: 428
span: 31
span: 51
}
location {
path: 4
path: 11
path: 2
path: 1
path: 3
span: 428
span: 54
span: 57
}
location {
path: 4
path: 11
path: 5
span: 431
span: 2
span: 25
leading_comments: " Clients can define custom options in extensions of this message. See above.\n"
}
location {
path: 4
path: 11
path: 5
path: 0
span: 431
span: 13
span: 24
}
location {
path: 4
path: 11
path: 5
path: 0
path: 1
span: 431
span: 13
span: 17
}
location {
path: 4
path: 11
path: 5
path: 0
path: 2
span: 431
span: 21
span: 24
}
location {
path: 4
path: 12
span: 434
span: 0
span: 440
span: 1
}
location {
path: 4
path: 12
path: 1
span: 434
span: 8
span: 24
}
location {
path: 4
path: 12
path: 2
path: 0
span: 436
span: 2
span: 58
leading_comments: " The parser stores options it doesn\'t recognize here. See above.\n"
}
location {
path: 4
path: 12
path: 2
path: 0
path: 4
span: 436
span: 2
span: 10
}
location {
path: 4
path: 12
path: 2
path: 0
path: 6
span: 436
span: 11
span: 30
}
location {
path: 4
path: 12
path: 2
path: 0
path: 1
span: 436
span: 31
span: 51
}
location {
path: 4
path: 12
path: 2
path: 0
path: 3
span: 436
span: 54
span: 57
}
location {
path: 4
path: 12
path: 5
span: 439
span: 2
span: 25
leading_comments: " Clients can define custom options in extensions of this message. See above.\n"
}
location {
path: 4
path: 12
path: 5
path: 0
span: 439
span: 13
span: 24
}
location {
path: 4
path: 12
path: 5
path: 0
path: 1
span: 439
span: 13
span: 17
}
location {
path: 4
path: 12
path: 5
path: 0
path: 2
span: 439
span: 21
span: 24
}
location {
path: 4
path: 13
span: 442
span: 0
span: 454
span: 1
}
location {
path: 4
path: 13
path: 1
span: 442
span: 8
span: 22
}
location {
path: 4
path: 13
path: 2
path: 0
span: 450
span: 2
span: 58
leading_comments: " The parser stores options it doesn\'t recognize here. See above.\n"
}
location {
path: 4
path: 13
path: 2
path: 0
path: 4
span: 450
span: 2
span: 10
}
location {
path: 4
path: 13
path: 2
path: 0
path: 6
span: 450
span: 11
span: 30
}
location {
path: 4
path: 13
path: 2
path: 0
path: 1
span: 450
span: 31
span: 51
}
location {
path: 4
path: 13
path: 2
path: 0
path: 3
span: 450
span: 54
span: 57
}
location {
path: 4
path: 13
path: 5
span: 453
span: 2
span: 25
leading_comments: " Clients can define custom options in extensions of this message. See above.\n"
}
location {
path: 4
path: 13
path: 5
path: 0
span: 453
span: 13
span: 24
}
location {
path: 4
path: 13
path: 5
path: 0
path: 1
span: 453
span: 13
span: 17
}
location {
path: 4
path: 13
path: 5
path: 0
path: 2
span: 453
span: 21
span: 24
}
location {
path: 4
path: 14
span: 456
span: 0
span: 468
span: 1
}
location {
path: 4
path: 14
path: 1
span: 456
span: 8
span: 21
}
location {
path: 4
path: 14
path: 2
path: 0
span: 464
span: 2
span: 58
leading_comments: " The parser stores options it doesn\'t recognize here. See above.\n"
}
location {
path: 4
path: 14
path: 2
path: 0
path: 4
span: 464
span: 2
span: 10
}
location {
path: 4
path: 14
path: 2
path: 0
path: 6
span: 464
span: 11
span: 30
}
location {
path: 4
path: 14
path: 2
path: 0
path: 1
span: 464
span: 31
span: 51
}
location {
path: 4
path: 14
path: 2
path: 0
path: 3
span: 464
span: 54
span: 57
}
location {
path: 4
path: 14
path: 5
span: 467
span: 2
span: 25
leading_comments: " Clients can define custom options in extensions of this message. See above.\n"
}
location {
path: 4
path: 14
path: 5
path: 0
span: 467
span: 13
span: 24
}
location {
path: 4
path: 14
path: 5
path: 0
path: 1
span: 467
span: 13
span: 17
}
location {
path: 4
path: 14
path: 5
path: 0
path: 2
span: 467
span: 21
span: 24
}
location {
path: 4
path: 15
span: 477
span: 0
span: 497
span: 1
leading_comments: " A message representing a option the parser does not recognize. This only\n appears in options protos created by the compiler::Parser class.\n DescriptorPool resolves these when building Descriptor objects. Therefore,\n options protos in descriptor objects (e.g. returned by Descriptor::options(),\n or produced by Descriptor::CopyTo()) will never have UninterpretedOptions\n in them.\n"
}
location {
path: 4
path: 15
path: 1
span: 477
span: 8
span: 27
}
location {
path: 4
path: 15
path: 3
path: 0
span: 483
span: 2
span: 486
span: 3
leading_comments: " The name of the uninterpreted option. Each string represents a segment in\n a dot-separated name. is_extension is true iff a segment represents an\n extension (denoted with parentheses in options specs in .proto files).\n E.g.,{ [\"foo\", false], [\"bar.baz\", true], [\"qux\", false] } represents\n \"foo.(bar.baz).qux\".\n"
}
location {
path: 4
path: 15
path: 3
path: 0
path: 1
span: 483
span: 10
span: 18
}
location {
path: 4
path: 15
path: 3
path: 0
path: 2
path: 0
span: 484
span: 4
span: 34
}
location {
path: 4
path: 15
path: 3
path: 0
path: 2
path: 0
path: 4
span: 484
span: 4
span: 12
}
location {
path: 4
path: 15
path: 3
path: 0
path: 2
path: 0
path: 5
span: 484
span: 13
span: 19
}
location {
path: 4
path: 15
path: 3
path: 0
path: 2
path: 0
path: 1
span: 484
span: 20
span: 29
}
location {
path: 4
path: 15
path: 3
path: 0
path: 2
path: 0
path: 3
span: 484
span: 32
span: 33
}
location {
path: 4
path: 15
path: 3
path: 0
path: 2
path: 1
span: 485
span: 4
span: 35
}
location {
path: 4
path: 15
path: 3
path: 0
path: 2
path: 1
path: 4
span: 485
span: 4
span: 12
}
location {
path: 4
path: 15
path: 3
path: 0
path: 2
path: 1
path: 5
span: 485
span: 13
span: 17
}
location {
path: 4
path: 15
path: 3
path: 0
path: 2
path: 1
path: 1
span: 485
span: 18
span: 30
}
location {
path: 4
path: 15
path: 3
path: 0
path: 2
path: 1
path: 3
span: 485
span: 33
span: 34
}
location {
path: 4
path: 15
path: 2
path: 0
span: 487
span: 2
span: 29
}
location {
path: 4
path: 15
path: 2
path: 0
path: 4
span: 487
span: 2
span: 10
}
location {
path: 4
path: 15
path: 2
path: 0
path: 6
span: 487
span: 11
span: 19
}
location {
path: 4
path: 15
path: 2
path: 0
path: 1
span: 487
span: 20
span: 24
}
location {
path: 4
path: 15
path: 2
path: 0
path: 3
span: 487
span: 27
span: 28
}
location {
path: 4
path: 15
path: 2
path: 1
span: 491
span: 2
span: 39
leading_comments: " The value of the uninterpreted option, in whatever type the tokenizer\n identified it as during parsing. Exactly one of these should be set.\n"
}
location {
path: 4
path: 15
path: 2
path: 1
path: 4
span: 491
span: 2
span: 10
}
location {
path: 4
path: 15
path: 2
path: 1
path: 5
span: 491
span: 11
span: 17
}
location {
path: 4
path: 15
path: 2
path: 1
path: 1
span: 491
span: 18
span: 34
}
location {
path: 4
path: 15
path: 2
path: 1
path: 3
span: 491
span: 37
span: 38
}
location {
path: 4
path: 15
path: 2
path: 2
span: 492
span: 2
span: 41
}
location {
path: 4
path: 15
path: 2
path: 2
path: 4
span: 492
span: 2
span: 10
}
location {
path: 4
path: 15
path: 2
path: 2
path: 5
span: 492
span: 11
span: 17
}
location {
path: 4
path: 15
path: 2
path: 2
path: 1
span: 492
span: 18
span: 36
}
location {
path: 4
path: 15
path: 2
path: 2
path: 3
span: 492
span: 39
span: 40
}
location {
path: 4
path: 15
path: 2
path: 3
span: 493
span: 2
span: 40
}
location {
path: 4
path: 15
path: 2
path: 3
path: 4
span: 493
span: 2
span: 10
}
location {
path: 4
path: 15
path: 2
path: 3
path: 5
span: 493
span: 11
span: 16
}
location {
path: 4
path: 15
path: 2
path: 3
path: 1
span: 493
span: 17
span: 35
}
location {
path: 4
path: 15
path: 2
path: 3
path: 3
span: 493
span: 38
span: 39
}
location {
path: 4
path: 15
path: 2
path: 4
span: 494
span: 2
span: 35
}
location {
path: 4
path: 15
path: 2
path: 4
path: 4
span: 494
span: 2
span: 10
}
location {
path: 4
path: 15
path: 2
path: 4
path: 5
span: 494
span: 11
span: 17
}
location {
path: 4
path: 15
path: 2
path: 4
path: 1
span: 494
span: 18
span: 30
}
location {
path: 4
path: 15
path: 2
path: 4
path: 3
span: 494
span: 33
span: 34
}
location {
path: 4
path: 15
path: 2
path: 5
span: 495
span: 2
span: 34
}
location {
path: 4
path: 15
path: 2
path: 5
path: 4
span: 495
span: 2
span: 10
}
location {
path: 4
path: 15
path: 2
path: 5
path: 5
span: 495
span: 11
span: 16
}
location {
path: 4
path: 15
path: 2
path: 5
path: 1
span: 495
span: 17
span: 29
}
location {
path: 4
path: 15
path: 2
path: 5
path: 3
span: 495
span: 32
span: 33
}
location {
path: 4
path: 15
path: 2
path: 6
span: 496
span: 2
span: 38
}
location {
path: 4
path: 15
path: 2
path: 6
path: 4
span: 496
span: 2
span: 10
}
location {
path: 4
path: 15
path: 2
path: 6
path: 5
span: 496
span: 11
span: 17
}
location {
path: 4
path: 15
path: 2
path: 6
path: 1
span: 496
span: 18
span: 33
}
location {
path: 4
path: 15
path: 2
path: 6
path: 3
span: 496
span: 36
span: 37
}
location {
path: 4
path: 16
span: 504
span: 0
span: 619
span: 1
leading_comments: " Encapsulates information about the original source file from which a\n FileDescriptorProto was generated.\n"
}
location {
path: 4
path: 16
path: 1
span: 504
span: 8
span: 22
}
location {
path: 4
path: 16
path: 2
path: 0
span: 548
span: 2
span: 33
leading_comments: " A Location identifies a piece of source code in a .proto file which\n corresponds to a particular definition. This information is intended\n to be useful to IDEs, code indexers, documentation generators, and similar\n tools.\n\n For example, say we have a file like:\n message Foo {\n optional string foo = 1;\n }\n Let\'s look at just the field definition:\n optional string foo = 1;\n ^ ^^ ^^ ^ ^^^\n a bc de f ghi\n We have the following locations:\n span path represents\n [a,i) [ 4, 0, 2, 0 ] The whole field definition.\n [a,b) [ 4, 0, 2, 0, 4 ] The label (optional).\n [c,d) [ 4, 0, 2, 0, 5 ] The type (string).\n [e,f) [ 4, 0, 2, 0, 1 ] The name (foo).\n [g,h) [ 4, 0, 2, 0, 3 ] The number (1).\n\n Notes:\n - A location may refer to a repeated field itself (i.e. not to any\n particular index within it). This is used whenever a set of elements are\n logically enclosed in a single code segment. For example, an entire\n extend block (possibly containing multiple extension definitions) will\n have an outer location whose path refers to the \"extensions\" repeated\n field without an index.\n - Multiple locations may have the same path. This happens when a single\n logical declaration is spread out across multiple places. The most\n obvious example is the \"extend\" block again -- there may be multiple\n extend blocks in the same scope, each of which will have the same path.\n - A location\'s span is not always a subset of its parent\'s span. For\n example, the \"extendee\" of an extension declaration appears at the\n beginning of the \"extend\" block and is shared by all extensions within\n the block.\n - Just because a location\'s span is a subset of some other location\'s span\n does not mean that it is a descendent. For example, a \"group\" defines\n both a type and a field in a single declaration. Thus, the locations\n corresponding to the type and field and their components will overlap.\n - Code which tries to interpret locations should probably be designed to\n ignore those that it doesn\'t understand, as more types of locations could\n be recorded in the future.\n"
}
location {
path: 4
path: 16
path: 2
path: 0
path: 4
span: 548
span: 2
span: 10
}
location {
path: 4
path: 16
path: 2
path: 0
path: 6
span: 548
span: 11
span: 19
}
location {
path: 4
path: 16
path: 2
path: 0
path: 1
span: 548
span: 20
span: 28
}
location {
path: 4
path: 16
path: 2
path: 0
path: 3
span: 548
span: 31
span: 32
}
location {
path: 4
path: 16
path: 3
path: 0
span: 549
span: 2
span: 618
span: 3
}
location {
path: 4
path: 16
path: 3
path: 0
path: 1
span: 549
span: 10
span: 18
}
location {
path: 4
path: 16
path: 3
path: 0
path: 2
path: 0
span: 573
span: 4
span: 42
leading_comments: " Identifies which part of the FileDescriptorProto was defined at this\n location.\n\n Each element is a field number or an index. They form a path from\n the root FileDescriptorProto to the place where the definition. For\n example, this path:\n [ 4, 3, 2, 7, 1 ]\n refers to:\n file.message_type(3) // 4, 3\n .field(7) // 2, 7\n .name() // 1\n This is because FileDescriptorProto.message_type has field number 4:\n repeated DescriptorProto message_type = 4;\n and DescriptorProto.field has field number 2:\n repeated FieldDescriptorProto field = 2;\n and FieldDescriptorProto.name has field number 1:\n optional string name = 1;\n\n Thus, the above path gives the location of a field name. If we removed\n the last element:\n [ 4, 3, 2, 7 ]\n this path refers to the whole field declaration (from the beginning\n of the label to the terminating semicolon).\n"
}
location {
path: 4
path: 16
path: 3
path: 0
path: 2
path: 0
path: 4
span: 573
span: 4
span: 12
}
location {
path: 4
path: 16
path: 3
path: 0
path: 2
path: 0
path: 5
span: 573
span: 13
span: 18
}
location {
path: 4
path: 16
path: 3
path: 0
path: 2
path: 0
path: 1
span: 573
span: 19
span: 23
}
location {
path: 4
path: 16
path: 3
path: 0
path: 2
path: 0
path: 3
span: 573
span: 26
span: 27
}
location {
path: 4
path: 16
path: 3
path: 0
path: 2
path: 0
path: 8
span: 573
span: 28
span: 41
}
location {
path: 4
path: 16
path: 3
path: 0
path: 2
path: 0
path: 8
path: 999
path: 0
span: 573
span: 29
span: 40
}
location {
path: 4
path: 16
path: 3
path: 0
path: 2
path: 0
path: 8
path: 999
path: 0
path: 2
span: 573
span: 29
span: 35
}
location {
path: 4
path: 16
path: 3
path: 0
path: 2
path: 0
path: 8
path: 999
path: 0
path: 2
path: 0
span: 573
span: 29
span: 35
}
location {
path: 4
path: 16
path: 3
path: 0
path: 2
path: 0
path: 8
path: 999
path: 0
path: 2
path: 0
path: 1
span: 573
span: 29
span: 35
}
location {
path: 4
path: 16
path: 3
path: 0
path: 2
path: 0
path: 8
path: 999
path: 0
path: 3
span: 573
span: 36
span: 40
}
location {
path: 4
path: 16
path: 3
path: 0
path: 2
path: 1
span: 580
span: 4
span: 42
leading_comments: " Always has exactly three or four elements: start line, start column,\n end line (optional, otherwise assumed same as start line), end column.\n These are packed into a single field for efficiency. Note that line\n and column numbers are zero-based -- typically you will want to add\n 1 to each before displaying to a user.\n"
}
location {
path: 4
path: 16
path: 3
path: 0
path: 2
path: 1
path: 4
span: 580
span: 4
span: 12
}
location {
path: 4
path: 16
path: 3
path: 0
path: 2
path: 1
path: 5
span: 580
span: 13
span: 18
}
location {
path: 4
path: 16
path: 3
path: 0
path: 2
path: 1
path: 1
span: 580
span: 19
span: 23
}
location {
path: 4
path: 16
path: 3
path: 0
path: 2
path: 1
path: 3
span: 580
span: 26
span: 27
}
location {
path: 4
path: 16
path: 3
path: 0
path: 2
path: 1
path: 8
span: 580
span: 28
span: 41
}
location {
path: 4
path: 16
path: 3
path: 0
path: 2
path: 1
path: 8
path: 999
path: 0
span: 580
span: 29
span: 40
}
location {
path: 4
path: 16
path: 3
path: 0
path: 2
path: 1
path: 8
path: 999
path: 0
path: 2
span: 580
span: 29
span: 35
}
location {
path: 4
path: 16
path: 3
path: 0
path: 2
path: 1
path: 8
path: 999
path: 0
path: 2
path: 0
span: 580
span: 29
span: 35
}
location {
path: 4
path: 16
path: 3
path: 0
path: 2
path: 1
path: 8
path: 999
path: 0
path: 2
path: 0
path: 1
span: 580
span: 29
span: 35
}
location {
path: 4
path: 16
path: 3
path: 0
path: 2
path: 1
path: 8
path: 999
path: 0
path: 3
span: 580
span: 36
span: 40
}
location {
path: 4
path: 16
path: 3
path: 0
path: 2
path: 2
span: 616
span: 4
span: 41
leading_comments: " If this SourceCodeInfo represents a complete declaration, these are any\n comments appearing before and after the declaration which appear to be\n attached to the declaration.\n\n A series of line comments appearing on consecutive lines, with no other\n tokens appearing on those lines, will be treated as a single comment.\n\n Only the comment content is provided; comment markers (e.g. //) are\n stripped out. For block comments, leading whitespace and an asterisk\n will be stripped from the beginning of each line other than the first.\n Newlines are included in the output.\n\n Examples:\n\n optional int32 foo = 1; // Comment attached to foo.\n // Comment attached to bar.\n optional int32 bar = 2;\n\n optional string baz = 3;\n // Comment attached to baz.\n // Another line attached to baz.\n\n // Comment attached to qux.\n //\n // Another line attached to qux.\n optional double qux = 4;\n\n optional string corge = 5;\n /* Block comment attached\n * to corge. Leading asterisks\n * will be removed. */\n /* Block comment attached to\n * grault. */\n optional int32 grault = 6;\n"
}
location {
path: 4
path: 16
path: 3
path: 0
path: 2
path: 2
path: 4
span: 616
span: 4
span: 12
}
location {
path: 4
path: 16
path: 3
path: 0
path: 2
path: 2
path: 5
span: 616
span: 13
span: 19
}
location {
path: 4
path: 16
path: 3
path: 0
path: 2
path: 2
path: 1
span: 616
span: 20
span: 36
}
location {
path: 4
path: 16
path: 3
path: 0
path: 2
path: 2
path: 3
span: 616
span: 39
span: 40
}
location {
path: 4
path: 16
path: 3
path: 0
path: 2
path: 3
span: 617
span: 4
span: 42
}
location {
path: 4
path: 16
path: 3
path: 0
path: 2
path: 3
path: 4
span: 617
span: 4
span: 12
}
location {
path: 4
path: 16
path: 3
path: 0
path: 2
path: 3
path: 5
span: 617
span: 13
span: 19
}
location {
path: 4
path: 16
path: 3
path: 0
path: 2
path: 3
path: 1
span: 617
span: 20
span: 37
}
location {
path: 4
path: 16
path: 3
path: 0
path: 2
path: 3
path: 3
span: 617
span: 40
span: 41
}
}
}
proto_file {
name: "google/protobuf/plugin.proto"
package: "google.protobuf.compiler"
dependency: "google/protobuf/descriptor.proto"
message_type {
name: "CodeGeneratorRequest"
field {
name: "file_to_generate"
number: 1
label: LABEL_REPEATED
type: TYPE_STRING
}
field {
name: "parameter"
number: 2
label: LABEL_OPTIONAL
type: TYPE_STRING
}
field {
name: "proto_file"
number: 15
label: LABEL_REPEATED
type: TYPE_MESSAGE
type_name: ".google.protobuf.FileDescriptorProto"
}
}
message_type {
name: "CodeGeneratorResponse"
field {
name: "error"
number: 1
label: LABEL_OPTIONAL
type: TYPE_STRING
}
field {
name: "file"
number: 15
label: LABEL_REPEATED
type: TYPE_MESSAGE
type_name: ".google.protobuf.compiler.CodeGeneratorResponse.File"
}
nested_type {
name: "File"
field {
name: "name"
number: 1
label: LABEL_OPTIONAL
type: TYPE_STRING
}
field {
name: "insertion_point"
number: 2
label: LABEL_OPTIONAL
type: TYPE_STRING
}
field {
name: "content"
number: 15
label: LABEL_OPTIONAL
type: TYPE_STRING
}
}
}
options {
java_package: "com.google.protobuf.compiler"
java_outer_classname: "PluginProtos"
}
source_code_info {
location {
span: 46
span: 0
span: 146
span: 1
}
location {
path: 2
span: 46
span: 8
span: 32
}
location {
path: 8
span: 47
span: 0
span: 53
}
location {
path: 8
path: 999
path: 0
span: 47
span: 0
span: 53
}
location {
path: 8
path: 999
path: 0
path: 2
span: 47
span: 7
span: 19
}
location {
path: 8
path: 999
path: 0
path: 2
path: 0
span: 47
span: 7
span: 19
}
location {
path: 8
path: 999
path: 0
path: 2
path: 0
path: 1
span: 47
span: 7
span: 19
}
location {
path: 8
path: 999
path: 0
path: 7
span: 47
span: 22
span: 52
}
location {
path: 8
span: 48
span: 0
span: 45
}
location {
path: 8
path: 999
path: 1
span: 48
span: 0
span: 45
}
location {
path: 8
path: 999
path: 1
path: 2
span: 48
span: 7
span: 27
}
location {
path: 8
path: 999
path: 1
path: 2
path: 0
span: 48
span: 7
span: 27
}
location {
path: 8
path: 999
path: 1
path: 2
path: 0
path: 1
span: 48
span: 7
span: 27
}
location {
path: 8
path: 999
path: 1
path: 7
span: 48
span: 30
span: 44
}
location {
path: 3
path: 0
span: 50
span: 7
span: 41
}
location {
path: 4
path: 0
span: 53
span: 0
span: 74
span: 1
leading_comments: " An encoded CodeGeneratorRequest is written to the plugin\'s stdin.\n"
}
location {
path: 4
path: 0
path: 1
span: 53
span: 8
span: 28
}
location {
path: 4
path: 0
path: 2
path: 0
span: 57
span: 2
span: 39
leading_comments: " The .proto files that were explicitly listed on the command-line. The\n code generator should generate code only for these files. Each file\'s\n descriptor will be included in proto_file, below.\n"
}
location {
path: 4
path: 0
path: 2
path: 0
path: 4
span: 57
span: 2
span: 10
}
location {
path: 4
path: 0
path: 2
path: 0
path: 5
span: 57
span: 11
span: 17
}
location {
path: 4
path: 0
path: 2
path: 0
path: 1
span: 57
span: 18
span: 34
}
location {
path: 4
path: 0
path: 2
path: 0
path: 3
span: 57
span: 37
span: 38
}
location {
path: 4
path: 0
path: 2
path: 1
span: 60
span: 2
span: 32
leading_comments: " The generator parameter passed on the command-line.\n"
}
location {
path: 4
path: 0
path: 2
path: 1
path: 4
span: 60
span: 2
span: 10
}
location {
path: 4
path: 0
path: 2
path: 1
path: 5
span: 60
span: 11
span: 17
}
location {
path: 4
path: 0
path: 2
path: 1
path: 1
span: 60
span: 18
span: 27
}
location {
path: 4
path: 0
path: 2
path: 1
path: 3
span: 60
span: 30
span: 31
}
location {
path: 4
path: 0
path: 2
path: 2
span: 73
span: 2
span: 47
leading_comments: " FileDescriptorProtos for all files in files_to_generate and everything\n they import. The files will appear in topological order, so each file\n appears before any file that imports it.\n\n protoc guarantees that all proto_files will be written after\n the fields above, even though this is not technically guaranteed by the\n protobuf wire format. This theoretically could allow a plugin to stream\n in the FileDescriptorProtos and handle them one by one rather than read\n the entire set into memory at once. However, as of this writing, this\n is not similarly optimized on protoc\'s end -- it will store all fields in\n memory at once before sending them to the plugin.\n"
}
location {
path: 4
path: 0
path: 2
path: 2
path: 4
span: 73
span: 2
span: 10
}
location {
path: 4
path: 0
path: 2
path: 2
path: 6
span: 73
span: 11
span: 30
}
location {
path: 4
path: 0
path: 2
path: 2
path: 1
span: 73
span: 31
span: 41
}
location {
path: 4
path: 0
path: 2
path: 2
path: 3
span: 73
span: 44
span: 46
}
location {
path: 4
path: 1
span: 77
span: 0
span: 146
span: 1
leading_comments: " The plugin writes an encoded CodeGeneratorResponse to stdout.\n"
}
location {
path: 4
path: 1
path: 1
span: 77
span: 8
span: 29
}
location {
path: 4
path: 1
path: 2
path: 0
span: 86
span: 2
span: 28
leading_comments: " Error message. If non-empty, code generation failed. The plugin process\n should exit with status code zero even if it reports an error in this way.\n\n This should be used to indicate errors in .proto files which prevent the\n code generator from generating correct code. Errors which indicate a\n problem in protoc itself -- such as the input CodeGeneratorRequest being\n unparseable -- should be reported by writing a message to stderr and\n exiting with a non-zero status code.\n"
}
location {
path: 4
path: 1
path: 2
path: 0
path: 4
span: 86
span: 2
span: 10
}
location {
path: 4
path: 1
path: 2
path: 0
path: 5
span: 86
span: 11
span: 17
}
location {
path: 4
path: 1
path: 2
path: 0
path: 1
span: 86
span: 18
span: 23
}
location {
path: 4
path: 1
path: 2
path: 0
path: 3
span: 86
span: 26
span: 27
}
location {
path: 4
path: 1
path: 3
path: 0
span: 89
span: 2
span: 144
span: 3
leading_comments: " Represents a single generated file.\n"
}
location {
path: 4
path: 1
path: 3
path: 0
path: 1
span: 89
span: 10
span: 14
}
location {
path: 4
path: 1
path: 3
path: 0
path: 2
path: 0
span: 101
span: 4
span: 29
leading_comments: " The file name, relative to the output directory. The name must not\n contain \".\" or \"..\" components and must be relative, not be absolute (so,\n the file cannot lie outside the output directory). \"/\" must be used as\n the path separator, not \"\\\".\n\n If the name is omitted, the content will be appended to the previous\n file. This allows the generator to break large files into small chunks,\n and allows the generated text to be streamed back to protoc so that large\n files need not reside completely in memory at one time. Note that as of\n this writing protoc does not optimize for this -- it will read the entire\n CodeGeneratorResponse before writing files to disk.\n"
}
location {
path: 4
path: 1
path: 3
path: 0
path: 2
path: 0
path: 4
span: 101
span: 4
span: 12
}
location {
path: 4
path: 1
path: 3
path: 0
path: 2
path: 0
path: 5
span: 101
span: 13
span: 19
}
location {
path: 4
path: 1
path: 3
path: 0
path: 2
path: 0
path: 1
span: 101
span: 20
span: 24
}
location {
path: 4
path: 1
path: 3
path: 0
path: 2
path: 0
path: 3
span: 101
span: 27
span: 28
}
location {
path: 4
path: 1
path: 3
path: 0
path: 2
path: 1
span: 140
span: 4
span: 40
leading_comments: " If non-empty, indicates that the named file should already exist, and the\n content here is to be inserted into that file at a defined insertion\n point. This feature allows a code generator to extend the output\n produced by another code generator. The original generator may provide\n insertion points by placing special annotations in the file that look\n like:\n @@protoc_insertion_point(NAME)\n The annotation can have arbitrary text before and after it on the line,\n which allows it to be placed in a comment. NAME should be replaced with\n an identifier naming the point -- this is what other generators will use\n as the insertion_point. Code inserted at this point will be placed\n immediately above the line containing the insertion point (thus multiple\n insertions to the same point will come out in the order they were added).\n The double-@ is intended to make it unlikely that the generated code\n could contain things that look like insertion points by accident.\n\n For example, the C++ code generator places the following line in the\n .pb.h files that it generates:\n // @@protoc_insertion_point(namespace_scope)\n This line appears within the scope of the file\'s package namespace, but\n outside of any particular class. Another plugin can then specify the\n insertion_point \"namespace_scope\" to generate additional classes or\n other declarations that should be placed in this scope.\n\n Note that if the line containing the insertion point begins with\n whitespace, the same whitespace will be added to every line of the\n inserted text. This is useful for languages like Python, where\n indentation matters. In these languages, the insertion point comment\n should be indented the same amount as any inserted code will need to be\n in order to work correctly in that context.\n\n The code generator that generates the initial file and the one which\n inserts into it must both run as part of a single invocation of protoc.\n Code generators are executed in the order in which they appear on the\n command line.\n\n If |insertion_point| is present, |name| must also be present.\n"
}
location {
path: 4
path: 1
path: 3
path: 0
path: 2
path: 1
path: 4
span: 140
span: 4
span: 12
}
location {
path: 4
path: 1
path: 3
path: 0
path: 2
path: 1
path: 5
span: 140
span: 13
span: 19
}
location {
path: 4
path: 1
path: 3
path: 0
path: 2
path: 1
path: 1
span: 140
span: 20
span: 35
}
location {
path: 4
path: 1
path: 3
path: 0
path: 2
path: 1
path: 3
span: 140
span: 38
span: 39
}
location {
path: 4
path: 1
path: 3
path: 0
path: 2
path: 2
span: 143
span: 4
span: 33
leading_comments: " The file contents.\n"
}
location {
path: 4
path: 1
path: 3
path: 0
path: 2
path: 2
path: 4
span: 143
span: 4
span: 12
}
location {
path: 4
path: 1
path: 3
path: 0
path: 2
path: 2
path: 5
span: 143
span: 13
span: 19
}
location {
path: 4
path: 1
path: 3
path: 0
path: 2
path: 2
path: 1
span: 143
span: 20
span: 27
}
location {
path: 4
path: 1
path: 3
path: 0
path: 2
path: 2
path: 3
span: 143
span: 30
span: 32
}
location {
path: 4
path: 1
path: 2
path: 1
span: 145
span: 2
span: 26
}
location {
path: 4
path: 1
path: 2
path: 1
path: 4
span: 145
span: 2
span: 10
}
location {
path: 4
path: 1
path: 2
path: 1
path: 6
span: 145
span: 11
span: 15
}
location {
path: 4
path: 1
path: 2
path: 1
path: 1
span: 145
span: 16
span: 20
}
location {
path: 4
path: 1
path: 2
path: 1
path: 3
span: 145
span: 23
span: 25
}
}
}