blob: 45a06e6009c11043565f3cf4801c8876459cbf0b [file] [log] [blame]
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -04001// Generated by the protocol buffer compiler. DO NOT EDIT!
2// source: google/protobuf/api.proto
3
4#import "GPBProtocolBuffers_RuntimeSupport.h"
5#import "google/protobuf/Api.pbobjc.h"
6#import "google/protobuf/SourceContext.pbobjc.h"
7#import "google/protobuf/Type.pbobjc.h"
8// @@protoc_insertion_point(imports)
9
Thomas Van Lentene664aa62016-04-19 13:13:04 -040010#pragma clang diagnostic push
11#pragma clang diagnostic ignored "-Wdeprecated-declarations"
12
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -040013#pragma mark - GPBApiRoot
14
15@implementation GPBApiRoot
16
17+ (GPBExtensionRegistry*)extensionRegistry {
18 // This is called by +initialize so there is no need to worry
19 // about thread safety and initialization of registry.
20 static GPBExtensionRegistry* registry = nil;
21 if (!registry) {
Thomas Van Lentend846b0b2015-06-08 16:24:57 -040022 GPBDebugCheckRuntimeVersion();
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -040023 registry = [[GPBExtensionRegistry alloc] init];
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -040024 [registry addExtensions:[GPBSourceContextRoot extensionRegistry]];
25 [registry addExtensions:[GPBTypeRoot extensionRegistry]];
26 }
27 return registry;
28}
29
30@end
31
Thomas Van Lentend846b0b2015-06-08 16:24:57 -040032#pragma mark - GPBApiRoot_FileDescriptor
33
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -040034static GPBFileDescriptor *GPBApiRoot_FileDescriptor(void) {
35 // This is called by +initialize so there is no need to worry
36 // about thread safety of the singleton.
37 static GPBFileDescriptor *descriptor = NULL;
38 if (!descriptor) {
Thomas Van Lentend846b0b2015-06-08 16:24:57 -040039 GPBDebugCheckRuntimeVersion();
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -040040 descriptor = [[GPBFileDescriptor alloc] initWithPackage:@"google.protobuf"
41 syntax:GPBFileSyntaxProto3];
42 }
43 return descriptor;
44}
45
46#pragma mark - GPBApi
47
48@implementation GPBApi
49
50@dynamic name;
Thomas Van Lentend846b0b2015-06-08 16:24:57 -040051@dynamic methodsArray, methodsArray_Count;
52@dynamic optionsArray, optionsArray_Count;
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -040053@dynamic version;
54@dynamic hasSourceContext, sourceContext;
TeBoringaca5a602015-08-26 14:02:44 -070055@dynamic mixinsArray, mixinsArray_Count;
56@dynamic syntax;
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -040057
Thomas Van Lentend846b0b2015-06-08 16:24:57 -040058typedef struct GPBApi__storage_ {
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -040059 uint32_t _has_storage_[1];
TeBoringaca5a602015-08-26 14:02:44 -070060 GPBSyntax syntax;
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -040061 NSString *name;
62 NSMutableArray *methodsArray;
63 NSMutableArray *optionsArray;
64 NSString *version;
65 GPBSourceContext *sourceContext;
TeBoringaca5a602015-08-26 14:02:44 -070066 NSMutableArray *mixinsArray;
Thomas Van Lentend846b0b2015-06-08 16:24:57 -040067} GPBApi__storage_;
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -040068
69// This method is threadsafe because it is initially called
70// in +initialize for each subclass.
71+ (GPBDescriptor *)descriptor {
Thomas Van Lentend846b0b2015-06-08 16:24:57 -040072 static GPBDescriptor *descriptor = nil;
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -040073 if (!descriptor) {
74 static GPBMessageFieldDescription fields[] = {
75 {
76 .name = "name",
Thomas Van Lenten79a23c42016-03-17 10:04:21 -040077 .dataTypeSpecific.className = NULL,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -040078 .number = GPBApi_FieldNumber_Name,
79 .hasIndex = 0,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -040080 .offset = (uint32_t)offsetof(GPBApi__storage_, name),
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -040081 .flags = GPBFieldOptional,
Thomas Van Lentend846b0b2015-06-08 16:24:57 -040082 .dataType = GPBDataTypeString,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -040083 },
84 {
85 .name = "methodsArray",
Thomas Van Lenten79a23c42016-03-17 10:04:21 -040086 .dataTypeSpecific.className = GPBStringifySymbol(GPBMethod),
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -040087 .number = GPBApi_FieldNumber_MethodsArray,
88 .hasIndex = GPBNoHasBit,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -040089 .offset = (uint32_t)offsetof(GPBApi__storage_, methodsArray),
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -040090 .flags = GPBFieldRepeated,
Thomas Van Lentend846b0b2015-06-08 16:24:57 -040091 .dataType = GPBDataTypeMessage,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -040092 },
93 {
94 .name = "optionsArray",
Thomas Van Lenten79a23c42016-03-17 10:04:21 -040095 .dataTypeSpecific.className = GPBStringifySymbol(GPBOption),
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -040096 .number = GPBApi_FieldNumber_OptionsArray,
97 .hasIndex = GPBNoHasBit,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -040098 .offset = (uint32_t)offsetof(GPBApi__storage_, optionsArray),
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -040099 .flags = GPBFieldRepeated,
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400100 .dataType = GPBDataTypeMessage,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400101 },
102 {
103 .name = "version",
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400104 .dataTypeSpecific.className = NULL,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400105 .number = GPBApi_FieldNumber_Version,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400106 .hasIndex = 1,
107 .offset = (uint32_t)offsetof(GPBApi__storage_, version),
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400108 .flags = GPBFieldOptional,
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400109 .dataType = GPBDataTypeString,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400110 },
111 {
112 .name = "sourceContext",
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400113 .dataTypeSpecific.className = GPBStringifySymbol(GPBSourceContext),
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400114 .number = GPBApi_FieldNumber_SourceContext,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400115 .hasIndex = 2,
116 .offset = (uint32_t)offsetof(GPBApi__storage_, sourceContext),
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400117 .flags = GPBFieldOptional,
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400118 .dataType = GPBDataTypeMessage,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400119 },
TeBoringaca5a602015-08-26 14:02:44 -0700120 {
121 .name = "mixinsArray",
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400122 .dataTypeSpecific.className = GPBStringifySymbol(GPBMixin),
TeBoringaca5a602015-08-26 14:02:44 -0700123 .number = GPBApi_FieldNumber_MixinsArray,
124 .hasIndex = GPBNoHasBit,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400125 .offset = (uint32_t)offsetof(GPBApi__storage_, mixinsArray),
TeBoringaca5a602015-08-26 14:02:44 -0700126 .flags = GPBFieldRepeated,
127 .dataType = GPBDataTypeMessage,
TeBoringaca5a602015-08-26 14:02:44 -0700128 },
129 {
130 .name = "syntax",
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400131 .dataTypeSpecific.enumDescFunc = GPBSyntax_EnumDescriptor,
TeBoringaca5a602015-08-26 14:02:44 -0700132 .number = GPBApi_FieldNumber_Syntax,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400133 .hasIndex = 3,
134 .offset = (uint32_t)offsetof(GPBApi__storage_, syntax),
TeBoringaca5a602015-08-26 14:02:44 -0700135 .flags = GPBFieldOptional | GPBFieldHasEnumDescriptor,
136 .dataType = GPBDataTypeEnum,
TeBoringaca5a602015-08-26 14:02:44 -0700137 },
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400138 };
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400139 GPBDescriptor *localDescriptor =
140 [GPBDescriptor allocDescriptorForClass:[GPBApi class]
141 rootClass:[GPBApiRoot class]
142 file:GPBApiRoot_FileDescriptor()
143 fields:fields
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400144 fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400145 storageSize:sizeof(GPBApi__storage_)
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400146 flags:0];
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400147 NSAssert(descriptor == nil, @"Startup recursed!");
148 descriptor = localDescriptor;
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400149 }
150 return descriptor;
151}
152
153@end
154
TeBoringaca5a602015-08-26 14:02:44 -0700155int32_t GPBApi_Syntax_RawValue(GPBApi *message) {
156 GPBDescriptor *descriptor = [GPBApi descriptor];
157 GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBApi_FieldNumber_Syntax];
158 return GPBGetMessageInt32Field(message, field);
159}
160
161void SetGPBApi_Syntax_RawValue(GPBApi *message, int32_t value) {
162 GPBDescriptor *descriptor = [GPBApi descriptor];
163 GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBApi_FieldNumber_Syntax];
164 GPBSetInt32IvarWithFieldInternal(message, field, value, descriptor.file.syntax);
165}
166
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400167#pragma mark - GPBMethod
168
169@implementation GPBMethod
170
171@dynamic name;
172@dynamic requestTypeURL;
173@dynamic requestStreaming;
174@dynamic responseTypeURL;
175@dynamic responseStreaming;
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400176@dynamic optionsArray, optionsArray_Count;
TeBoringaca5a602015-08-26 14:02:44 -0700177@dynamic syntax;
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400178
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400179typedef struct GPBMethod__storage_ {
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400180 uint32_t _has_storage_[1];
TeBoringaca5a602015-08-26 14:02:44 -0700181 GPBSyntax syntax;
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400182 NSString *name;
183 NSString *requestTypeURL;
184 NSString *responseTypeURL;
185 NSMutableArray *optionsArray;
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400186} GPBMethod__storage_;
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400187
188// This method is threadsafe because it is initially called
189// in +initialize for each subclass.
190+ (GPBDescriptor *)descriptor {
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400191 static GPBDescriptor *descriptor = nil;
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400192 if (!descriptor) {
193 static GPBMessageFieldDescription fields[] = {
194 {
195 .name = "name",
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400196 .dataTypeSpecific.className = NULL,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400197 .number = GPBMethod_FieldNumber_Name,
198 .hasIndex = 0,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400199 .offset = (uint32_t)offsetof(GPBMethod__storage_, name),
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400200 .flags = GPBFieldOptional,
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400201 .dataType = GPBDataTypeString,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400202 },
203 {
204 .name = "requestTypeURL",
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400205 .dataTypeSpecific.className = NULL,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400206 .number = GPBMethod_FieldNumber_RequestTypeURL,
207 .hasIndex = 1,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400208 .offset = (uint32_t)offsetof(GPBMethod__storage_, requestTypeURL),
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400209 .flags = GPBFieldOptional | GPBFieldTextFormatNameCustom,
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400210 .dataType = GPBDataTypeString,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400211 },
212 {
213 .name = "requestStreaming",
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400214 .dataTypeSpecific.className = NULL,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400215 .number = GPBMethod_FieldNumber_RequestStreaming,
216 .hasIndex = 2,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400217 .offset = 3, // Stored in _has_storage_ to save space.
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400218 .flags = GPBFieldOptional,
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400219 .dataType = GPBDataTypeBool,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400220 },
221 {
222 .name = "responseTypeURL",
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400223 .dataTypeSpecific.className = NULL,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400224 .number = GPBMethod_FieldNumber_ResponseTypeURL,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400225 .hasIndex = 4,
226 .offset = (uint32_t)offsetof(GPBMethod__storage_, responseTypeURL),
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400227 .flags = GPBFieldOptional | GPBFieldTextFormatNameCustom,
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400228 .dataType = GPBDataTypeString,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400229 },
230 {
231 .name = "responseStreaming",
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400232 .dataTypeSpecific.className = NULL,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400233 .number = GPBMethod_FieldNumber_ResponseStreaming,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400234 .hasIndex = 5,
235 .offset = 6, // Stored in _has_storage_ to save space.
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400236 .flags = GPBFieldOptional,
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400237 .dataType = GPBDataTypeBool,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400238 },
239 {
240 .name = "optionsArray",
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400241 .dataTypeSpecific.className = GPBStringifySymbol(GPBOption),
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400242 .number = GPBMethod_FieldNumber_OptionsArray,
243 .hasIndex = GPBNoHasBit,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400244 .offset = (uint32_t)offsetof(GPBMethod__storage_, optionsArray),
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400245 .flags = GPBFieldRepeated,
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400246 .dataType = GPBDataTypeMessage,
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400247 },
TeBoringaca5a602015-08-26 14:02:44 -0700248 {
249 .name = "syntax",
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400250 .dataTypeSpecific.enumDescFunc = GPBSyntax_EnumDescriptor,
TeBoringaca5a602015-08-26 14:02:44 -0700251 .number = GPBMethod_FieldNumber_Syntax,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400252 .hasIndex = 7,
253 .offset = (uint32_t)offsetof(GPBMethod__storage_, syntax),
TeBoringaca5a602015-08-26 14:02:44 -0700254 .flags = GPBFieldOptional | GPBFieldHasEnumDescriptor,
255 .dataType = GPBDataTypeEnum,
TeBoringaca5a602015-08-26 14:02:44 -0700256 },
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400257 };
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400258 GPBDescriptor *localDescriptor =
259 [GPBDescriptor allocDescriptorForClass:[GPBMethod class]
260 rootClass:[GPBApiRoot class]
261 file:GPBApiRoot_FileDescriptor()
262 fields:fields
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400263 fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400264 storageSize:sizeof(GPBMethod__storage_)
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400265 flags:0];
266#if !GPBOBJC_SKIP_MESSAGE_TEXTFORMAT_EXTRAS
267 static const char *extraTextFormatInfo =
268 "\002\002\007\244\241!!\000\004\010\244\241!!\000";
269 [localDescriptor setupExtraTextInfo:extraTextFormatInfo];
270#endif // !GPBOBJC_SKIP_MESSAGE_TEXTFORMAT_EXTRAS
Thomas Van Lentend846b0b2015-06-08 16:24:57 -0400271 NSAssert(descriptor == nil, @"Startup recursed!");
272 descriptor = localDescriptor;
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400273 }
274 return descriptor;
275}
276
277@end
278
TeBoringaca5a602015-08-26 14:02:44 -0700279int32_t GPBMethod_Syntax_RawValue(GPBMethod *message) {
280 GPBDescriptor *descriptor = [GPBMethod descriptor];
281 GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBMethod_FieldNumber_Syntax];
282 return GPBGetMessageInt32Field(message, field);
283}
284
285void SetGPBMethod_Syntax_RawValue(GPBMethod *message, int32_t value) {
286 GPBDescriptor *descriptor = [GPBMethod descriptor];
287 GPBFieldDescriptor *field = [descriptor fieldWithNumber:GPBMethod_FieldNumber_Syntax];
288 GPBSetInt32IvarWithFieldInternal(message, field, value, descriptor.file.syntax);
289}
290
291#pragma mark - GPBMixin
292
293@implementation GPBMixin
294
295@dynamic name;
296@dynamic root;
297
298typedef struct GPBMixin__storage_ {
299 uint32_t _has_storage_[1];
300 NSString *name;
301 NSString *root;
302} GPBMixin__storage_;
303
304// This method is threadsafe because it is initially called
305// in +initialize for each subclass.
306+ (GPBDescriptor *)descriptor {
307 static GPBDescriptor *descriptor = nil;
308 if (!descriptor) {
309 static GPBMessageFieldDescription fields[] = {
310 {
311 .name = "name",
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400312 .dataTypeSpecific.className = NULL,
TeBoringaca5a602015-08-26 14:02:44 -0700313 .number = GPBMixin_FieldNumber_Name,
314 .hasIndex = 0,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400315 .offset = (uint32_t)offsetof(GPBMixin__storage_, name),
TeBoringaca5a602015-08-26 14:02:44 -0700316 .flags = GPBFieldOptional,
317 .dataType = GPBDataTypeString,
TeBoringaca5a602015-08-26 14:02:44 -0700318 },
319 {
320 .name = "root",
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400321 .dataTypeSpecific.className = NULL,
TeBoringaca5a602015-08-26 14:02:44 -0700322 .number = GPBMixin_FieldNumber_Root,
323 .hasIndex = 1,
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400324 .offset = (uint32_t)offsetof(GPBMixin__storage_, root),
TeBoringaca5a602015-08-26 14:02:44 -0700325 .flags = GPBFieldOptional,
326 .dataType = GPBDataTypeString,
TeBoringaca5a602015-08-26 14:02:44 -0700327 },
328 };
329 GPBDescriptor *localDescriptor =
330 [GPBDescriptor allocDescriptorForClass:[GPBMixin class]
331 rootClass:[GPBApiRoot class]
332 file:GPBApiRoot_FileDescriptor()
333 fields:fields
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400334 fieldCount:(uint32_t)(sizeof(fields) / sizeof(GPBMessageFieldDescription))
TeBoringaca5a602015-08-26 14:02:44 -0700335 storageSize:sizeof(GPBMixin__storage_)
Thomas Van Lenten79a23c42016-03-17 10:04:21 -0400336 flags:0];
TeBoringaca5a602015-08-26 14:02:44 -0700337 NSAssert(descriptor == nil, @"Startup recursed!");
338 descriptor = localDescriptor;
339 }
340 return descriptor;
341}
342
343@end
344
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400345
Thomas Van Lentene664aa62016-04-19 13:13:04 -0400346#pragma clang diagnostic pop
347
Thomas Van Lenten1dcc3292015-05-21 17:14:52 -0400348// @@protoc_insertion_point(global_scope)