1// Code generated by protoc-gen-go. DO NOT EDIT.
2// source: google/api/expr/v1alpha1/syntax.proto
3
4package expr
5
6import (
7	fmt "fmt"
8	math "math"
9
10	proto "github.com/golang/protobuf/proto"
11	duration "github.com/golang/protobuf/ptypes/duration"
12	_struct "github.com/golang/protobuf/ptypes/struct"
13	timestamp "github.com/golang/protobuf/ptypes/timestamp"
14)
15
16// Reference imports to suppress errors if they are not otherwise used.
17var _ = proto.Marshal
18var _ = fmt.Errorf
19var _ = math.Inf
20
21// This is a compile-time assertion to ensure that this generated file
22// is compatible with the proto package it is being compiled against.
23// A compilation error at this line likely means your copy of the
24// proto package needs to be updated.
25const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
26
27// An expression together with source information as returned by the parser.
28type ParsedExpr struct {
29	// The parsed expression.
30	Expr *Expr `protobuf:"bytes,2,opt,name=expr,proto3" json:"expr,omitempty"`
31	// The source info derived from input that generated the parsed `expr`.
32	SourceInfo           *SourceInfo `protobuf:"bytes,3,opt,name=source_info,json=sourceInfo,proto3" json:"source_info,omitempty"`
33	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
34	XXX_unrecognized     []byte      `json:"-"`
35	XXX_sizecache        int32       `json:"-"`
36}
37
38func (m *ParsedExpr) Reset()         { *m = ParsedExpr{} }
39func (m *ParsedExpr) String() string { return proto.CompactTextString(m) }
40func (*ParsedExpr) ProtoMessage()    {}
41func (*ParsedExpr) Descriptor() ([]byte, []int) {
42	return fileDescriptor_d4e2be48009c83cb, []int{0}
43}
44
45func (m *ParsedExpr) XXX_Unmarshal(b []byte) error {
46	return xxx_messageInfo_ParsedExpr.Unmarshal(m, b)
47}
48func (m *ParsedExpr) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
49	return xxx_messageInfo_ParsedExpr.Marshal(b, m, deterministic)
50}
51func (m *ParsedExpr) XXX_Merge(src proto.Message) {
52	xxx_messageInfo_ParsedExpr.Merge(m, src)
53}
54func (m *ParsedExpr) XXX_Size() int {
55	return xxx_messageInfo_ParsedExpr.Size(m)
56}
57func (m *ParsedExpr) XXX_DiscardUnknown() {
58	xxx_messageInfo_ParsedExpr.DiscardUnknown(m)
59}
60
61var xxx_messageInfo_ParsedExpr proto.InternalMessageInfo
62
63func (m *ParsedExpr) GetExpr() *Expr {
64	if m != nil {
65		return m.Expr
66	}
67	return nil
68}
69
70func (m *ParsedExpr) GetSourceInfo() *SourceInfo {
71	if m != nil {
72		return m.SourceInfo
73	}
74	return nil
75}
76
77// An abstract representation of a common expression.
78//
79// Expressions are abstractly represented as a collection of identifiers,
80// select statements, function calls, literals, and comprehensions. All
81// operators with the exception of the '.' operator are modelled as function
82// calls. This makes it easy to represent new operators into the existing AST.
83//
84// All references within expressions must resolve to a
85// [Decl][google.api.expr.v1alpha1.Decl] provided at type-check for an
86// expression to be valid. A reference may either be a bare identifier `name` or
87// a qualified identifier `google.api.name`. References may either refer to a
88// value or a function declaration.
89//
90// For example, the expression `google.api.name.startsWith('expr')` references
91// the declaration `google.api.name` within a
92// [Expr.Select][google.api.expr.v1alpha1.Expr.Select] expression, and the
93// function declaration `startsWith`.
94type Expr struct {
95	// Required. An id assigned to this node by the parser which is unique in a
96	// given expression tree. This is used to associate type information and other
97	// attributes to a node in the parse tree.
98	Id int64 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"`
99	// Required. Variants of expressions.
100	//
101	// Types that are valid to be assigned to ExprKind:
102	//	*Expr_ConstExpr
103	//	*Expr_IdentExpr
104	//	*Expr_SelectExpr
105	//	*Expr_CallExpr
106	//	*Expr_ListExpr
107	//	*Expr_StructExpr
108	//	*Expr_ComprehensionExpr
109	ExprKind             isExpr_ExprKind `protobuf_oneof:"expr_kind"`
110	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
111	XXX_unrecognized     []byte          `json:"-"`
112	XXX_sizecache        int32           `json:"-"`
113}
114
115func (m *Expr) Reset()         { *m = Expr{} }
116func (m *Expr) String() string { return proto.CompactTextString(m) }
117func (*Expr) ProtoMessage()    {}
118func (*Expr) Descriptor() ([]byte, []int) {
119	return fileDescriptor_d4e2be48009c83cb, []int{1}
120}
121
122func (m *Expr) XXX_Unmarshal(b []byte) error {
123	return xxx_messageInfo_Expr.Unmarshal(m, b)
124}
125func (m *Expr) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
126	return xxx_messageInfo_Expr.Marshal(b, m, deterministic)
127}
128func (m *Expr) XXX_Merge(src proto.Message) {
129	xxx_messageInfo_Expr.Merge(m, src)
130}
131func (m *Expr) XXX_Size() int {
132	return xxx_messageInfo_Expr.Size(m)
133}
134func (m *Expr) XXX_DiscardUnknown() {
135	xxx_messageInfo_Expr.DiscardUnknown(m)
136}
137
138var xxx_messageInfo_Expr proto.InternalMessageInfo
139
140func (m *Expr) GetId() int64 {
141	if m != nil {
142		return m.Id
143	}
144	return 0
145}
146
147type isExpr_ExprKind interface {
148	isExpr_ExprKind()
149}
150
151type Expr_ConstExpr struct {
152	ConstExpr *Constant `protobuf:"bytes,3,opt,name=const_expr,json=constExpr,proto3,oneof"`
153}
154
155type Expr_IdentExpr struct {
156	IdentExpr *Expr_Ident `protobuf:"bytes,4,opt,name=ident_expr,json=identExpr,proto3,oneof"`
157}
158
159type Expr_SelectExpr struct {
160	SelectExpr *Expr_Select `protobuf:"bytes,5,opt,name=select_expr,json=selectExpr,proto3,oneof"`
161}
162
163type Expr_CallExpr struct {
164	CallExpr *Expr_Call `protobuf:"bytes,6,opt,name=call_expr,json=callExpr,proto3,oneof"`
165}
166
167type Expr_ListExpr struct {
168	ListExpr *Expr_CreateList `protobuf:"bytes,7,opt,name=list_expr,json=listExpr,proto3,oneof"`
169}
170
171type Expr_StructExpr struct {
172	StructExpr *Expr_CreateStruct `protobuf:"bytes,8,opt,name=struct_expr,json=structExpr,proto3,oneof"`
173}
174
175type Expr_ComprehensionExpr struct {
176	ComprehensionExpr *Expr_Comprehension `protobuf:"bytes,9,opt,name=comprehension_expr,json=comprehensionExpr,proto3,oneof"`
177}
178
179func (*Expr_ConstExpr) isExpr_ExprKind() {}
180
181func (*Expr_IdentExpr) isExpr_ExprKind() {}
182
183func (*Expr_SelectExpr) isExpr_ExprKind() {}
184
185func (*Expr_CallExpr) isExpr_ExprKind() {}
186
187func (*Expr_ListExpr) isExpr_ExprKind() {}
188
189func (*Expr_StructExpr) isExpr_ExprKind() {}
190
191func (*Expr_ComprehensionExpr) isExpr_ExprKind() {}
192
193func (m *Expr) GetExprKind() isExpr_ExprKind {
194	if m != nil {
195		return m.ExprKind
196	}
197	return nil
198}
199
200func (m *Expr) GetConstExpr() *Constant {
201	if x, ok := m.GetExprKind().(*Expr_ConstExpr); ok {
202		return x.ConstExpr
203	}
204	return nil
205}
206
207func (m *Expr) GetIdentExpr() *Expr_Ident {
208	if x, ok := m.GetExprKind().(*Expr_IdentExpr); ok {
209		return x.IdentExpr
210	}
211	return nil
212}
213
214func (m *Expr) GetSelectExpr() *Expr_Select {
215	if x, ok := m.GetExprKind().(*Expr_SelectExpr); ok {
216		return x.SelectExpr
217	}
218	return nil
219}
220
221func (m *Expr) GetCallExpr() *Expr_Call {
222	if x, ok := m.GetExprKind().(*Expr_CallExpr); ok {
223		return x.CallExpr
224	}
225	return nil
226}
227
228func (m *Expr) GetListExpr() *Expr_CreateList {
229	if x, ok := m.GetExprKind().(*Expr_ListExpr); ok {
230		return x.ListExpr
231	}
232	return nil
233}
234
235func (m *Expr) GetStructExpr() *Expr_CreateStruct {
236	if x, ok := m.GetExprKind().(*Expr_StructExpr); ok {
237		return x.StructExpr
238	}
239	return nil
240}
241
242func (m *Expr) GetComprehensionExpr() *Expr_Comprehension {
243	if x, ok := m.GetExprKind().(*Expr_ComprehensionExpr); ok {
244		return x.ComprehensionExpr
245	}
246	return nil
247}
248
249// XXX_OneofWrappers is for the internal use of the proto package.
250func (*Expr) XXX_OneofWrappers() []interface{} {
251	return []interface{}{
252		(*Expr_ConstExpr)(nil),
253		(*Expr_IdentExpr)(nil),
254		(*Expr_SelectExpr)(nil),
255		(*Expr_CallExpr)(nil),
256		(*Expr_ListExpr)(nil),
257		(*Expr_StructExpr)(nil),
258		(*Expr_ComprehensionExpr)(nil),
259	}
260}
261
262// An identifier expression. e.g. `request`.
263type Expr_Ident struct {
264	// Required. Holds a single, unqualified identifier, possibly preceded by a
265	// '.'.
266	//
267	// Qualified names are represented by the
268	// [Expr.Select][google.api.expr.v1alpha1.Expr.Select] expression.
269	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
270	XXX_NoUnkeyedLiteral struct{} `json:"-"`
271	XXX_unrecognized     []byte   `json:"-"`
272	XXX_sizecache        int32    `json:"-"`
273}
274
275func (m *Expr_Ident) Reset()         { *m = Expr_Ident{} }
276func (m *Expr_Ident) String() string { return proto.CompactTextString(m) }
277func (*Expr_Ident) ProtoMessage()    {}
278func (*Expr_Ident) Descriptor() ([]byte, []int) {
279	return fileDescriptor_d4e2be48009c83cb, []int{1, 0}
280}
281
282func (m *Expr_Ident) XXX_Unmarshal(b []byte) error {
283	return xxx_messageInfo_Expr_Ident.Unmarshal(m, b)
284}
285func (m *Expr_Ident) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
286	return xxx_messageInfo_Expr_Ident.Marshal(b, m, deterministic)
287}
288func (m *Expr_Ident) XXX_Merge(src proto.Message) {
289	xxx_messageInfo_Expr_Ident.Merge(m, src)
290}
291func (m *Expr_Ident) XXX_Size() int {
292	return xxx_messageInfo_Expr_Ident.Size(m)
293}
294func (m *Expr_Ident) XXX_DiscardUnknown() {
295	xxx_messageInfo_Expr_Ident.DiscardUnknown(m)
296}
297
298var xxx_messageInfo_Expr_Ident proto.InternalMessageInfo
299
300func (m *Expr_Ident) GetName() string {
301	if m != nil {
302		return m.Name
303	}
304	return ""
305}
306
307// A field selection expression. e.g. `request.auth`.
308type Expr_Select struct {
309	// Required. The target of the selection expression.
310	//
311	// For example, in the select expression `request.auth`, the `request`
312	// portion of the expression is the `operand`.
313	Operand *Expr `protobuf:"bytes,1,opt,name=operand,proto3" json:"operand,omitempty"`
314	// Required. The name of the field to select.
315	//
316	// For example, in the select expression `request.auth`, the `auth` portion
317	// of the expression would be the `field`.
318	Field string `protobuf:"bytes,2,opt,name=field,proto3" json:"field,omitempty"`
319	// Whether the select is to be interpreted as a field presence test.
320	//
321	// This results from the macro `has(request.auth)`.
322	TestOnly             bool     `protobuf:"varint,3,opt,name=test_only,json=testOnly,proto3" json:"test_only,omitempty"`
323	XXX_NoUnkeyedLiteral struct{} `json:"-"`
324	XXX_unrecognized     []byte   `json:"-"`
325	XXX_sizecache        int32    `json:"-"`
326}
327
328func (m *Expr_Select) Reset()         { *m = Expr_Select{} }
329func (m *Expr_Select) String() string { return proto.CompactTextString(m) }
330func (*Expr_Select) ProtoMessage()    {}
331func (*Expr_Select) Descriptor() ([]byte, []int) {
332	return fileDescriptor_d4e2be48009c83cb, []int{1, 1}
333}
334
335func (m *Expr_Select) XXX_Unmarshal(b []byte) error {
336	return xxx_messageInfo_Expr_Select.Unmarshal(m, b)
337}
338func (m *Expr_Select) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
339	return xxx_messageInfo_Expr_Select.Marshal(b, m, deterministic)
340}
341func (m *Expr_Select) XXX_Merge(src proto.Message) {
342	xxx_messageInfo_Expr_Select.Merge(m, src)
343}
344func (m *Expr_Select) XXX_Size() int {
345	return xxx_messageInfo_Expr_Select.Size(m)
346}
347func (m *Expr_Select) XXX_DiscardUnknown() {
348	xxx_messageInfo_Expr_Select.DiscardUnknown(m)
349}
350
351var xxx_messageInfo_Expr_Select proto.InternalMessageInfo
352
353func (m *Expr_Select) GetOperand() *Expr {
354	if m != nil {
355		return m.Operand
356	}
357	return nil
358}
359
360func (m *Expr_Select) GetField() string {
361	if m != nil {
362		return m.Field
363	}
364	return ""
365}
366
367func (m *Expr_Select) GetTestOnly() bool {
368	if m != nil {
369		return m.TestOnly
370	}
371	return false
372}
373
374// A call expression, including calls to predefined functions and operators.
375//
376// For example, `value == 10`, `size(map_value)`.
377type Expr_Call struct {
378	// The target of an method call-style expression. For example, `x` in
379	// `x.f()`.
380	Target *Expr `protobuf:"bytes,1,opt,name=target,proto3" json:"target,omitempty"`
381	// Required. The name of the function or method being called.
382	Function string `protobuf:"bytes,2,opt,name=function,proto3" json:"function,omitempty"`
383	// The arguments.
384	Args                 []*Expr  `protobuf:"bytes,3,rep,name=args,proto3" json:"args,omitempty"`
385	XXX_NoUnkeyedLiteral struct{} `json:"-"`
386	XXX_unrecognized     []byte   `json:"-"`
387	XXX_sizecache        int32    `json:"-"`
388}
389
390func (m *Expr_Call) Reset()         { *m = Expr_Call{} }
391func (m *Expr_Call) String() string { return proto.CompactTextString(m) }
392func (*Expr_Call) ProtoMessage()    {}
393func (*Expr_Call) Descriptor() ([]byte, []int) {
394	return fileDescriptor_d4e2be48009c83cb, []int{1, 2}
395}
396
397func (m *Expr_Call) XXX_Unmarshal(b []byte) error {
398	return xxx_messageInfo_Expr_Call.Unmarshal(m, b)
399}
400func (m *Expr_Call) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
401	return xxx_messageInfo_Expr_Call.Marshal(b, m, deterministic)
402}
403func (m *Expr_Call) XXX_Merge(src proto.Message) {
404	xxx_messageInfo_Expr_Call.Merge(m, src)
405}
406func (m *Expr_Call) XXX_Size() int {
407	return xxx_messageInfo_Expr_Call.Size(m)
408}
409func (m *Expr_Call) XXX_DiscardUnknown() {
410	xxx_messageInfo_Expr_Call.DiscardUnknown(m)
411}
412
413var xxx_messageInfo_Expr_Call proto.InternalMessageInfo
414
415func (m *Expr_Call) GetTarget() *Expr {
416	if m != nil {
417		return m.Target
418	}
419	return nil
420}
421
422func (m *Expr_Call) GetFunction() string {
423	if m != nil {
424		return m.Function
425	}
426	return ""
427}
428
429func (m *Expr_Call) GetArgs() []*Expr {
430	if m != nil {
431		return m.Args
432	}
433	return nil
434}
435
436// A list creation expression.
437//
438// Lists may either be homogenous, e.g. `[1, 2, 3]`, or heterogenous, e.g.
439// `dyn([1, 'hello', 2.0])`
440type Expr_CreateList struct {
441	// The elements part of the list.
442	Elements             []*Expr  `protobuf:"bytes,1,rep,name=elements,proto3" json:"elements,omitempty"`
443	XXX_NoUnkeyedLiteral struct{} `json:"-"`
444	XXX_unrecognized     []byte   `json:"-"`
445	XXX_sizecache        int32    `json:"-"`
446}
447
448func (m *Expr_CreateList) Reset()         { *m = Expr_CreateList{} }
449func (m *Expr_CreateList) String() string { return proto.CompactTextString(m) }
450func (*Expr_CreateList) ProtoMessage()    {}
451func (*Expr_CreateList) Descriptor() ([]byte, []int) {
452	return fileDescriptor_d4e2be48009c83cb, []int{1, 3}
453}
454
455func (m *Expr_CreateList) XXX_Unmarshal(b []byte) error {
456	return xxx_messageInfo_Expr_CreateList.Unmarshal(m, b)
457}
458func (m *Expr_CreateList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
459	return xxx_messageInfo_Expr_CreateList.Marshal(b, m, deterministic)
460}
461func (m *Expr_CreateList) XXX_Merge(src proto.Message) {
462	xxx_messageInfo_Expr_CreateList.Merge(m, src)
463}
464func (m *Expr_CreateList) XXX_Size() int {
465	return xxx_messageInfo_Expr_CreateList.Size(m)
466}
467func (m *Expr_CreateList) XXX_DiscardUnknown() {
468	xxx_messageInfo_Expr_CreateList.DiscardUnknown(m)
469}
470
471var xxx_messageInfo_Expr_CreateList proto.InternalMessageInfo
472
473func (m *Expr_CreateList) GetElements() []*Expr {
474	if m != nil {
475		return m.Elements
476	}
477	return nil
478}
479
480// A map or message creation expression.
481//
482// Maps are constructed as `{'key_name': 'value'}`. Message construction is
483// similar, but prefixed with a type name and composed of field ids:
484// `types.MyType{field_id: 'value'}`.
485type Expr_CreateStruct struct {
486	// The type name of the message to be created, empty when creating map
487	// literals.
488	MessageName string `protobuf:"bytes,1,opt,name=message_name,json=messageName,proto3" json:"message_name,omitempty"`
489	// The entries in the creation expression.
490	Entries              []*Expr_CreateStruct_Entry `protobuf:"bytes,2,rep,name=entries,proto3" json:"entries,omitempty"`
491	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
492	XXX_unrecognized     []byte                     `json:"-"`
493	XXX_sizecache        int32                      `json:"-"`
494}
495
496func (m *Expr_CreateStruct) Reset()         { *m = Expr_CreateStruct{} }
497func (m *Expr_CreateStruct) String() string { return proto.CompactTextString(m) }
498func (*Expr_CreateStruct) ProtoMessage()    {}
499func (*Expr_CreateStruct) Descriptor() ([]byte, []int) {
500	return fileDescriptor_d4e2be48009c83cb, []int{1, 4}
501}
502
503func (m *Expr_CreateStruct) XXX_Unmarshal(b []byte) error {
504	return xxx_messageInfo_Expr_CreateStruct.Unmarshal(m, b)
505}
506func (m *Expr_CreateStruct) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
507	return xxx_messageInfo_Expr_CreateStruct.Marshal(b, m, deterministic)
508}
509func (m *Expr_CreateStruct) XXX_Merge(src proto.Message) {
510	xxx_messageInfo_Expr_CreateStruct.Merge(m, src)
511}
512func (m *Expr_CreateStruct) XXX_Size() int {
513	return xxx_messageInfo_Expr_CreateStruct.Size(m)
514}
515func (m *Expr_CreateStruct) XXX_DiscardUnknown() {
516	xxx_messageInfo_Expr_CreateStruct.DiscardUnknown(m)
517}
518
519var xxx_messageInfo_Expr_CreateStruct proto.InternalMessageInfo
520
521func (m *Expr_CreateStruct) GetMessageName() string {
522	if m != nil {
523		return m.MessageName
524	}
525	return ""
526}
527
528func (m *Expr_CreateStruct) GetEntries() []*Expr_CreateStruct_Entry {
529	if m != nil {
530		return m.Entries
531	}
532	return nil
533}
534
535// Represents an entry.
536type Expr_CreateStruct_Entry struct {
537	// Required. An id assigned to this node by the parser which is unique
538	// in a given expression tree. This is used to associate type
539	// information and other attributes to the node.
540	Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
541	// The `Entry` key kinds.
542	//
543	// Types that are valid to be assigned to KeyKind:
544	//	*Expr_CreateStruct_Entry_FieldKey
545	//	*Expr_CreateStruct_Entry_MapKey
546	KeyKind isExpr_CreateStruct_Entry_KeyKind `protobuf_oneof:"key_kind"`
547	// Required. The value assigned to the key.
548	Value                *Expr    `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"`
549	XXX_NoUnkeyedLiteral struct{} `json:"-"`
550	XXX_unrecognized     []byte   `json:"-"`
551	XXX_sizecache        int32    `json:"-"`
552}
553
554func (m *Expr_CreateStruct_Entry) Reset()         { *m = Expr_CreateStruct_Entry{} }
555func (m *Expr_CreateStruct_Entry) String() string { return proto.CompactTextString(m) }
556func (*Expr_CreateStruct_Entry) ProtoMessage()    {}
557func (*Expr_CreateStruct_Entry) Descriptor() ([]byte, []int) {
558	return fileDescriptor_d4e2be48009c83cb, []int{1, 4, 0}
559}
560
561func (m *Expr_CreateStruct_Entry) XXX_Unmarshal(b []byte) error {
562	return xxx_messageInfo_Expr_CreateStruct_Entry.Unmarshal(m, b)
563}
564func (m *Expr_CreateStruct_Entry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
565	return xxx_messageInfo_Expr_CreateStruct_Entry.Marshal(b, m, deterministic)
566}
567func (m *Expr_CreateStruct_Entry) XXX_Merge(src proto.Message) {
568	xxx_messageInfo_Expr_CreateStruct_Entry.Merge(m, src)
569}
570func (m *Expr_CreateStruct_Entry) XXX_Size() int {
571	return xxx_messageInfo_Expr_CreateStruct_Entry.Size(m)
572}
573func (m *Expr_CreateStruct_Entry) XXX_DiscardUnknown() {
574	xxx_messageInfo_Expr_CreateStruct_Entry.DiscardUnknown(m)
575}
576
577var xxx_messageInfo_Expr_CreateStruct_Entry proto.InternalMessageInfo
578
579func (m *Expr_CreateStruct_Entry) GetId() int64 {
580	if m != nil {
581		return m.Id
582	}
583	return 0
584}
585
586type isExpr_CreateStruct_Entry_KeyKind interface {
587	isExpr_CreateStruct_Entry_KeyKind()
588}
589
590type Expr_CreateStruct_Entry_FieldKey struct {
591	FieldKey string `protobuf:"bytes,2,opt,name=field_key,json=fieldKey,proto3,oneof"`
592}
593
594type Expr_CreateStruct_Entry_MapKey struct {
595	MapKey *Expr `protobuf:"bytes,3,opt,name=map_key,json=mapKey,proto3,oneof"`
596}
597
598func (*Expr_CreateStruct_Entry_FieldKey) isExpr_CreateStruct_Entry_KeyKind() {}
599
600func (*Expr_CreateStruct_Entry_MapKey) isExpr_CreateStruct_Entry_KeyKind() {}
601
602func (m *Expr_CreateStruct_Entry) GetKeyKind() isExpr_CreateStruct_Entry_KeyKind {
603	if m != nil {
604		return m.KeyKind
605	}
606	return nil
607}
608
609func (m *Expr_CreateStruct_Entry) GetFieldKey() string {
610	if x, ok := m.GetKeyKind().(*Expr_CreateStruct_Entry_FieldKey); ok {
611		return x.FieldKey
612	}
613	return ""
614}
615
616func (m *Expr_CreateStruct_Entry) GetMapKey() *Expr {
617	if x, ok := m.GetKeyKind().(*Expr_CreateStruct_Entry_MapKey); ok {
618		return x.MapKey
619	}
620	return nil
621}
622
623func (m *Expr_CreateStruct_Entry) GetValue() *Expr {
624	if m != nil {
625		return m.Value
626	}
627	return nil
628}
629
630// XXX_OneofWrappers is for the internal use of the proto package.
631func (*Expr_CreateStruct_Entry) XXX_OneofWrappers() []interface{} {
632	return []interface{}{
633		(*Expr_CreateStruct_Entry_FieldKey)(nil),
634		(*Expr_CreateStruct_Entry_MapKey)(nil),
635	}
636}
637
638// A comprehension expression applied to a list or map.
639//
640// Comprehensions are not part of the core syntax, but enabled with macros.
641// A macro matches a specific call signature within a parsed AST and replaces
642// the call with an alternate AST block. Macro expansion happens at parse
643// time.
644//
645// The following macros are supported within CEL:
646//
647// Aggregate type macros may be applied to all elements in a list or all keys
648// in a map:
649//
650// *  `all`, `exists`, `exists_one` -  test a predicate expression against
651//    the inputs and return `true` if the predicate is satisfied for all,
652//    any, or only one value `list.all(x, x < 10)`.
653// *  `filter` - test a predicate expression against the inputs and return
654//    the subset of elements which satisfy the predicate:
655//    `payments.filter(p, p > 1000)`.
656// *  `map` - apply an expression to all elements in the input and return the
657//    output aggregate type: `[1, 2, 3].map(i, i * i)`.
658//
659// The `has(m.x)` macro tests whether the property `x` is present in struct
660// `m`. The semantics of this macro depend on the type of `m`. For proto2
661// messages `has(m.x)` is defined as 'defined, but not set`. For proto3, the
662// macro tests whether the property is set to its default. For map and struct
663// types, the macro tests whether the property `x` is defined on `m`.
664type Expr_Comprehension struct {
665	// The name of the iteration variable.
666	IterVar string `protobuf:"bytes,1,opt,name=iter_var,json=iterVar,proto3" json:"iter_var,omitempty"`
667	// The range over which var iterates.
668	IterRange *Expr `protobuf:"bytes,2,opt,name=iter_range,json=iterRange,proto3" json:"iter_range,omitempty"`
669	// The name of the variable used for accumulation of the result.
670	AccuVar string `protobuf:"bytes,3,opt,name=accu_var,json=accuVar,proto3" json:"accu_var,omitempty"`
671	// The initial value of the accumulator.
672	AccuInit *Expr `protobuf:"bytes,4,opt,name=accu_init,json=accuInit,proto3" json:"accu_init,omitempty"`
673	// An expression which can contain iter_var and accu_var.
674	//
675	// Returns false when the result has been computed and may be used as
676	// a hint to short-circuit the remainder of the comprehension.
677	LoopCondition *Expr `protobuf:"bytes,5,opt,name=loop_condition,json=loopCondition,proto3" json:"loop_condition,omitempty"`
678	// An expression which can contain iter_var and accu_var.
679	//
680	// Computes the next value of accu_var.
681	LoopStep *Expr `protobuf:"bytes,6,opt,name=loop_step,json=loopStep,proto3" json:"loop_step,omitempty"`
682	// An expression which can contain accu_var.
683	//
684	// Computes the result.
685	Result               *Expr    `protobuf:"bytes,7,opt,name=result,proto3" json:"result,omitempty"`
686	XXX_NoUnkeyedLiteral struct{} `json:"-"`
687	XXX_unrecognized     []byte   `json:"-"`
688	XXX_sizecache        int32    `json:"-"`
689}
690
691func (m *Expr_Comprehension) Reset()         { *m = Expr_Comprehension{} }
692func (m *Expr_Comprehension) String() string { return proto.CompactTextString(m) }
693func (*Expr_Comprehension) ProtoMessage()    {}
694func (*Expr_Comprehension) Descriptor() ([]byte, []int) {
695	return fileDescriptor_d4e2be48009c83cb, []int{1, 5}
696}
697
698func (m *Expr_Comprehension) XXX_Unmarshal(b []byte) error {
699	return xxx_messageInfo_Expr_Comprehension.Unmarshal(m, b)
700}
701func (m *Expr_Comprehension) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
702	return xxx_messageInfo_Expr_Comprehension.Marshal(b, m, deterministic)
703}
704func (m *Expr_Comprehension) XXX_Merge(src proto.Message) {
705	xxx_messageInfo_Expr_Comprehension.Merge(m, src)
706}
707func (m *Expr_Comprehension) XXX_Size() int {
708	return xxx_messageInfo_Expr_Comprehension.Size(m)
709}
710func (m *Expr_Comprehension) XXX_DiscardUnknown() {
711	xxx_messageInfo_Expr_Comprehension.DiscardUnknown(m)
712}
713
714var xxx_messageInfo_Expr_Comprehension proto.InternalMessageInfo
715
716func (m *Expr_Comprehension) GetIterVar() string {
717	if m != nil {
718		return m.IterVar
719	}
720	return ""
721}
722
723func (m *Expr_Comprehension) GetIterRange() *Expr {
724	if m != nil {
725		return m.IterRange
726	}
727	return nil
728}
729
730func (m *Expr_Comprehension) GetAccuVar() string {
731	if m != nil {
732		return m.AccuVar
733	}
734	return ""
735}
736
737func (m *Expr_Comprehension) GetAccuInit() *Expr {
738	if m != nil {
739		return m.AccuInit
740	}
741	return nil
742}
743
744func (m *Expr_Comprehension) GetLoopCondition() *Expr {
745	if m != nil {
746		return m.LoopCondition
747	}
748	return nil
749}
750
751func (m *Expr_Comprehension) GetLoopStep() *Expr {
752	if m != nil {
753		return m.LoopStep
754	}
755	return nil
756}
757
758func (m *Expr_Comprehension) GetResult() *Expr {
759	if m != nil {
760		return m.Result
761	}
762	return nil
763}
764
765// Represents a primitive literal.
766//
767// Named 'Constant' here for backwards compatibility.
768//
769// This is similar as the primitives supported in the well-known type
770// `google.protobuf.Value`, but richer so it can represent CEL's full range of
771// primitives.
772//
773// Lists and structs are not included as constants as these aggregate types may
774// contain [Expr][google.api.expr.v1alpha1.Expr] elements which require
775// evaluation and are thus not constant.
776//
777// Examples of literals include: `"hello"`, `b'bytes'`, `1u`, `4.2`, `-2`,
778// `true`, `null`.
779type Constant struct {
780	// Required. The valid constant kinds.
781	//
782	// Types that are valid to be assigned to ConstantKind:
783	//	*Constant_NullValue
784	//	*Constant_BoolValue
785	//	*Constant_Int64Value
786	//	*Constant_Uint64Value
787	//	*Constant_DoubleValue
788	//	*Constant_StringValue
789	//	*Constant_BytesValue
790	//	*Constant_DurationValue
791	//	*Constant_TimestampValue
792	ConstantKind         isConstant_ConstantKind `protobuf_oneof:"constant_kind"`
793	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
794	XXX_unrecognized     []byte                  `json:"-"`
795	XXX_sizecache        int32                   `json:"-"`
796}
797
798func (m *Constant) Reset()         { *m = Constant{} }
799func (m *Constant) String() string { return proto.CompactTextString(m) }
800func (*Constant) ProtoMessage()    {}
801func (*Constant) Descriptor() ([]byte, []int) {
802	return fileDescriptor_d4e2be48009c83cb, []int{2}
803}
804
805func (m *Constant) XXX_Unmarshal(b []byte) error {
806	return xxx_messageInfo_Constant.Unmarshal(m, b)
807}
808func (m *Constant) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
809	return xxx_messageInfo_Constant.Marshal(b, m, deterministic)
810}
811func (m *Constant) XXX_Merge(src proto.Message) {
812	xxx_messageInfo_Constant.Merge(m, src)
813}
814func (m *Constant) XXX_Size() int {
815	return xxx_messageInfo_Constant.Size(m)
816}
817func (m *Constant) XXX_DiscardUnknown() {
818	xxx_messageInfo_Constant.DiscardUnknown(m)
819}
820
821var xxx_messageInfo_Constant proto.InternalMessageInfo
822
823type isConstant_ConstantKind interface {
824	isConstant_ConstantKind()
825}
826
827type Constant_NullValue struct {
828	NullValue _struct.NullValue `protobuf:"varint,1,opt,name=null_value,json=nullValue,proto3,enum=google.protobuf.NullValue,oneof"`
829}
830
831type Constant_BoolValue struct {
832	BoolValue bool `protobuf:"varint,2,opt,name=bool_value,json=boolValue,proto3,oneof"`
833}
834
835type Constant_Int64Value struct {
836	Int64Value int64 `protobuf:"varint,3,opt,name=int64_value,json=int64Value,proto3,oneof"`
837}
838
839type Constant_Uint64Value struct {
840	Uint64Value uint64 `protobuf:"varint,4,opt,name=uint64_value,json=uint64Value,proto3,oneof"`
841}
842
843type Constant_DoubleValue struct {
844	DoubleValue float64 `protobuf:"fixed64,5,opt,name=double_value,json=doubleValue,proto3,oneof"`
845}
846
847type Constant_StringValue struct {
848	StringValue string `protobuf:"bytes,6,opt,name=string_value,json=stringValue,proto3,oneof"`
849}
850
851type Constant_BytesValue struct {
852	BytesValue []byte `protobuf:"bytes,7,opt,name=bytes_value,json=bytesValue,proto3,oneof"`
853}
854
855type Constant_DurationValue struct {
856	DurationValue *duration.Duration `protobuf:"bytes,8,opt,name=duration_value,json=durationValue,proto3,oneof"`
857}
858
859type Constant_TimestampValue struct {
860	TimestampValue *timestamp.Timestamp `protobuf:"bytes,9,opt,name=timestamp_value,json=timestampValue,proto3,oneof"`
861}
862
863func (*Constant_NullValue) isConstant_ConstantKind() {}
864
865func (*Constant_BoolValue) isConstant_ConstantKind() {}
866
867func (*Constant_Int64Value) isConstant_ConstantKind() {}
868
869func (*Constant_Uint64Value) isConstant_ConstantKind() {}
870
871func (*Constant_DoubleValue) isConstant_ConstantKind() {}
872
873func (*Constant_StringValue) isConstant_ConstantKind() {}
874
875func (*Constant_BytesValue) isConstant_ConstantKind() {}
876
877func (*Constant_DurationValue) isConstant_ConstantKind() {}
878
879func (*Constant_TimestampValue) isConstant_ConstantKind() {}
880
881func (m *Constant) GetConstantKind() isConstant_ConstantKind {
882	if m != nil {
883		return m.ConstantKind
884	}
885	return nil
886}
887
888func (m *Constant) GetNullValue() _struct.NullValue {
889	if x, ok := m.GetConstantKind().(*Constant_NullValue); ok {
890		return x.NullValue
891	}
892	return _struct.NullValue_NULL_VALUE
893}
894
895func (m *Constant) GetBoolValue() bool {
896	if x, ok := m.GetConstantKind().(*Constant_BoolValue); ok {
897		return x.BoolValue
898	}
899	return false
900}
901
902func (m *Constant) GetInt64Value() int64 {
903	if x, ok := m.GetConstantKind().(*Constant_Int64Value); ok {
904		return x.Int64Value
905	}
906	return 0
907}
908
909func (m *Constant) GetUint64Value() uint64 {
910	if x, ok := m.GetConstantKind().(*Constant_Uint64Value); ok {
911		return x.Uint64Value
912	}
913	return 0
914}
915
916func (m *Constant) GetDoubleValue() float64 {
917	if x, ok := m.GetConstantKind().(*Constant_DoubleValue); ok {
918		return x.DoubleValue
919	}
920	return 0
921}
922
923func (m *Constant) GetStringValue() string {
924	if x, ok := m.GetConstantKind().(*Constant_StringValue); ok {
925		return x.StringValue
926	}
927	return ""
928}
929
930func (m *Constant) GetBytesValue() []byte {
931	if x, ok := m.GetConstantKind().(*Constant_BytesValue); ok {
932		return x.BytesValue
933	}
934	return nil
935}
936
937// Deprecated: Do not use.
938func (m *Constant) GetDurationValue() *duration.Duration {
939	if x, ok := m.GetConstantKind().(*Constant_DurationValue); ok {
940		return x.DurationValue
941	}
942	return nil
943}
944
945// Deprecated: Do not use.
946func (m *Constant) GetTimestampValue() *timestamp.Timestamp {
947	if x, ok := m.GetConstantKind().(*Constant_TimestampValue); ok {
948		return x.TimestampValue
949	}
950	return nil
951}
952
953// XXX_OneofWrappers is for the internal use of the proto package.
954func (*Constant) XXX_OneofWrappers() []interface{} {
955	return []interface{}{
956		(*Constant_NullValue)(nil),
957		(*Constant_BoolValue)(nil),
958		(*Constant_Int64Value)(nil),
959		(*Constant_Uint64Value)(nil),
960		(*Constant_DoubleValue)(nil),
961		(*Constant_StringValue)(nil),
962		(*Constant_BytesValue)(nil),
963		(*Constant_DurationValue)(nil),
964		(*Constant_TimestampValue)(nil),
965	}
966}
967
968// Source information collected at parse time.
969type SourceInfo struct {
970	// The syntax version of the source, e.g. `cel1`.
971	SyntaxVersion string `protobuf:"bytes,1,opt,name=syntax_version,json=syntaxVersion,proto3" json:"syntax_version,omitempty"`
972	// The location name. All position information attached to an expression is
973	// relative to this location.
974	//
975	// The location could be a file, UI element, or similar. For example,
976	// `acme/app/AnvilPolicy.cel`.
977	Location string `protobuf:"bytes,2,opt,name=location,proto3" json:"location,omitempty"`
978	// Monotonically increasing list of character offsets where newlines appear.
979	//
980	// The line number of a given position is the index `i` where for a given
981	// `id` the `line_offsets[i] < id_positions[id] < line_offsets[i+1]`. The
982	// column may be derivd from `id_positions[id] - line_offsets[i]`.
983	LineOffsets []int32 `protobuf:"varint,3,rep,packed,name=line_offsets,json=lineOffsets,proto3" json:"line_offsets,omitempty"`
984	// A map from the parse node id (e.g. `Expr.id`) to the character offset
985	// within source.
986	Positions            map[int64]int32 `protobuf:"bytes,4,rep,name=positions,proto3" json:"positions,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
987	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
988	XXX_unrecognized     []byte          `json:"-"`
989	XXX_sizecache        int32           `json:"-"`
990}
991
992func (m *SourceInfo) Reset()         { *m = SourceInfo{} }
993func (m *SourceInfo) String() string { return proto.CompactTextString(m) }
994func (*SourceInfo) ProtoMessage()    {}
995func (*SourceInfo) Descriptor() ([]byte, []int) {
996	return fileDescriptor_d4e2be48009c83cb, []int{3}
997}
998
999func (m *SourceInfo) XXX_Unmarshal(b []byte) error {
1000	return xxx_messageInfo_SourceInfo.Unmarshal(m, b)
1001}
1002func (m *SourceInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1003	return xxx_messageInfo_SourceInfo.Marshal(b, m, deterministic)
1004}
1005func (m *SourceInfo) XXX_Merge(src proto.Message) {
1006	xxx_messageInfo_SourceInfo.Merge(m, src)
1007}
1008func (m *SourceInfo) XXX_Size() int {
1009	return xxx_messageInfo_SourceInfo.Size(m)
1010}
1011func (m *SourceInfo) XXX_DiscardUnknown() {
1012	xxx_messageInfo_SourceInfo.DiscardUnknown(m)
1013}
1014
1015var xxx_messageInfo_SourceInfo proto.InternalMessageInfo
1016
1017func (m *SourceInfo) GetSyntaxVersion() string {
1018	if m != nil {
1019		return m.SyntaxVersion
1020	}
1021	return ""
1022}
1023
1024func (m *SourceInfo) GetLocation() string {
1025	if m != nil {
1026		return m.Location
1027	}
1028	return ""
1029}
1030
1031func (m *SourceInfo) GetLineOffsets() []int32 {
1032	if m != nil {
1033		return m.LineOffsets
1034	}
1035	return nil
1036}
1037
1038func (m *SourceInfo) GetPositions() map[int64]int32 {
1039	if m != nil {
1040		return m.Positions
1041	}
1042	return nil
1043}
1044
1045// A specific position in source.
1046type SourcePosition struct {
1047	// The soucre location name (e.g. file name).
1048	Location string `protobuf:"bytes,1,opt,name=location,proto3" json:"location,omitempty"`
1049	// The character offset.
1050	Offset int32 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"`
1051	// The 1-based index of the starting line in the source text
1052	// where the issue occurs, or 0 if unknown.
1053	Line int32 `protobuf:"varint,3,opt,name=line,proto3" json:"line,omitempty"`
1054	// The 0-based index of the starting position within the line of source text
1055	// where the issue occurs.  Only meaningful if line is nonzero.
1056	Column               int32    `protobuf:"varint,4,opt,name=column,proto3" json:"column,omitempty"`
1057	XXX_NoUnkeyedLiteral struct{} `json:"-"`
1058	XXX_unrecognized     []byte   `json:"-"`
1059	XXX_sizecache        int32    `json:"-"`
1060}
1061
1062func (m *SourcePosition) Reset()         { *m = SourcePosition{} }
1063func (m *SourcePosition) String() string { return proto.CompactTextString(m) }
1064func (*SourcePosition) ProtoMessage()    {}
1065func (*SourcePosition) Descriptor() ([]byte, []int) {
1066	return fileDescriptor_d4e2be48009c83cb, []int{4}
1067}
1068
1069func (m *SourcePosition) XXX_Unmarshal(b []byte) error {
1070	return xxx_messageInfo_SourcePosition.Unmarshal(m, b)
1071}
1072func (m *SourcePosition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1073	return xxx_messageInfo_SourcePosition.Marshal(b, m, deterministic)
1074}
1075func (m *SourcePosition) XXX_Merge(src proto.Message) {
1076	xxx_messageInfo_SourcePosition.Merge(m, src)
1077}
1078func (m *SourcePosition) XXX_Size() int {
1079	return xxx_messageInfo_SourcePosition.Size(m)
1080}
1081func (m *SourcePosition) XXX_DiscardUnknown() {
1082	xxx_messageInfo_SourcePosition.DiscardUnknown(m)
1083}
1084
1085var xxx_messageInfo_SourcePosition proto.InternalMessageInfo
1086
1087func (m *SourcePosition) GetLocation() string {
1088	if m != nil {
1089		return m.Location
1090	}
1091	return ""
1092}
1093
1094func (m *SourcePosition) GetOffset() int32 {
1095	if m != nil {
1096		return m.Offset
1097	}
1098	return 0
1099}
1100
1101func (m *SourcePosition) GetLine() int32 {
1102	if m != nil {
1103		return m.Line
1104	}
1105	return 0
1106}
1107
1108func (m *SourcePosition) GetColumn() int32 {
1109	if m != nil {
1110		return m.Column
1111	}
1112	return 0
1113}
1114
1115func init() {
1116	proto.RegisterType((*ParsedExpr)(nil), "google.api.expr.v1alpha1.ParsedExpr")
1117	proto.RegisterType((*Expr)(nil), "google.api.expr.v1alpha1.Expr")
1118	proto.RegisterType((*Expr_Ident)(nil), "google.api.expr.v1alpha1.Expr.Ident")
1119	proto.RegisterType((*Expr_Select)(nil), "google.api.expr.v1alpha1.Expr.Select")
1120	proto.RegisterType((*Expr_Call)(nil), "google.api.expr.v1alpha1.Expr.Call")
1121	proto.RegisterType((*Expr_CreateList)(nil), "google.api.expr.v1alpha1.Expr.CreateList")
1122	proto.RegisterType((*Expr_CreateStruct)(nil), "google.api.expr.v1alpha1.Expr.CreateStruct")
1123	proto.RegisterType((*Expr_CreateStruct_Entry)(nil), "google.api.expr.v1alpha1.Expr.CreateStruct.Entry")
1124	proto.RegisterType((*Expr_Comprehension)(nil), "google.api.expr.v1alpha1.Expr.Comprehension")
1125	proto.RegisterType((*Constant)(nil), "google.api.expr.v1alpha1.Constant")
1126	proto.RegisterType((*SourceInfo)(nil), "google.api.expr.v1alpha1.SourceInfo")
1127	proto.RegisterMapType((map[int64]int32)(nil), "google.api.expr.v1alpha1.SourceInfo.PositionsEntry")
1128	proto.RegisterType((*SourcePosition)(nil), "google.api.expr.v1alpha1.SourcePosition")
1129}
1130
1131func init() {
1132	proto.RegisterFile("google/api/expr/v1alpha1/syntax.proto", fileDescriptor_d4e2be48009c83cb)
1133}
1134
1135var fileDescriptor_d4e2be48009c83cb = []byte{
1136	// 1134 bytes of a gzipped FileDescriptorProto
1137	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x56, 0xcf, 0x6e, 0x1b, 0xb7,
1138	0x13, 0xd6, 0xea, 0x9f, 0xb5, 0x23, 0x5b, 0xf9, 0xfd, 0x88, 0xa2, 0x50, 0x36, 0x69, 0xe2, 0x38,
1139	0x35, 0x90, 0xa2, 0x85, 0x04, 0x3b, 0x41, 0x90, 0xc6, 0xe9, 0x45, 0xae, 0x0b, 0x19, 0x29, 0x1c,
1140	0x77, 0x5d, 0xf8, 0x50, 0xa0, 0x10, 0xe8, 0x15, 0xa5, 0x2c, 0x4c, 0x91, 0x8b, 0x25, 0xd7, 0xb0,
1141	0xce, 0x3d, 0xf4, 0xd6, 0x97, 0x69, 0x5f, 0xa0, 0xef, 0xd1, 0x07, 0xe9, 0xa5, 0x40, 0x31, 0x43,
1142	0xae, 0xfc, 0x0f, 0x86, 0xd4, 0x1b, 0x39, 0xfc, 0xbe, 0x8f, 0xc3, 0x99, 0xe1, 0x90, 0xb0, 0x3d,
1143	0xd5, 0x7a, 0x2a, 0x45, 0x9f, 0x67, 0x69, 0x5f, 0x5c, 0x66, 0x79, 0xff, 0x62, 0x87, 0xcb, 0xec,
1144	0x23, 0xdf, 0xe9, 0x9b, 0xb9, 0xb2, 0xfc, 0xb2, 0x97, 0xe5, 0xda, 0x6a, 0xd6, 0x75, 0xb0, 0x1e,
1145	0xcf, 0xd2, 0x1e, 0xc2, 0x7a, 0x25, 0x2c, 0x7a, 0xe2, 0x05, 0x08, 0x77, 0x56, 0x4c, 0xfa, 0xe3,
1146	0x22, 0xe7, 0x36, 0xd5, 0xca, 0x31, 0xa3, 0xc7, 0xb7, 0xd7, 0x8d, 0xcd, 0x8b, 0xc4, 0xfa, 0xd5,
1147	0xa7, 0xb7, 0x57, 0x6d, 0x3a, 0x13, 0xc6, 0xf2, 0x59, 0xe6, 0x00, 0x5b, 0xbf, 0x06, 0x00, 0xc7,
1148	0x3c, 0x37, 0x62, 0x7c, 0x70, 0x99, 0xe5, 0x6c, 0x17, 0xea, 0xb8, 0x7d, 0xb7, 0xba, 0x19, 0xbc,
1149	0x68, 0xef, 0x3e, 0xe9, 0xdd, 0xe7, 0x56, 0x0f, 0xd1, 0x31, 0x61, 0xd9, 0x01, 0xb4, 0x8d, 0x2e,
1150	0xf2, 0x44, 0x8c, 0x52, 0x35, 0xd1, 0xdd, 0x1a, 0x51, 0x3f, 0xbf, 0x9f, 0x7a, 0x42, 0xe0, 0x43,
1151	0x35, 0xd1, 0x31, 0x98, 0xc5, 0x78, 0xeb, 0xaf, 0x75, 0xa8, 0x93, 0x0f, 0x1d, 0xa8, 0xa6, 0x63,
1152	0xf2, 0xa0, 0x16, 0x57, 0xd3, 0x31, 0xdb, 0x07, 0x48, 0xb4, 0x32, 0x76, 0x44, 0x9e, 0x39, 0xf9,
1153	0xad, 0xfb, 0xe5, 0xf7, 0x11, 0xcb, 0x95, 0x1d, 0x56, 0xe2, 0x90, 0x78, 0x07, 0xce, 0x49, 0x48,
1154	0xc7, 0x42, 0x79, 0x91, 0xfa, 0x32, 0x1f, 0x91, 0xd3, 0x3b, 0x44, 0x02, 0xca, 0x10, 0x93, 0x64,
1155	0x86, 0xd0, 0x36, 0x42, 0x8a, 0xc4, 0xeb, 0x34, 0x48, 0x67, 0x7b, 0x89, 0xce, 0x09, 0x31, 0x86,
1156	0x95, 0x18, 0x1c, 0x97, 0x94, 0x06, 0x10, 0x26, 0x5c, 0x4a, 0xa7, 0xd3, 0x24, 0x9d, 0xe7, 0x4b,
1157	0x74, 0xf6, 0xb9, 0x94, 0xc3, 0x4a, 0xdc, 0x42, 0x9e, 0xf7, 0x26, 0x94, 0x69, 0x19, 0x98, 0x35,
1158	0xd2, 0xf8, 0x62, 0x99, 0x46, 0x2e, 0xb8, 0x15, 0xdf, 0xa7, 0x06, 0xfd, 0x69, 0x21, 0x9b, 0x94,
1159	0x8e, 0xa0, 0xed, 0xea, 0xc6, 0x69, 0xb5, 0x48, 0xeb, 0xcb, 0x95, 0xb4, 0x4e, 0x88, 0x47, 0xa7,
1160	0xa3, 0x11, 0xe9, 0xfd, 0x0c, 0x2c, 0xd1, 0xb3, 0x2c, 0x17, 0x1f, 0x85, 0x32, 0xa9, 0x56, 0x4e,
1161	0x36, 0x24, 0xd9, 0xaf, 0x96, 0xc9, 0x5e, 0x27, 0x0e, 0x2b, 0xf1, 0xff, 0x6f, 0x28, 0x21, 0x24,
1162	0x7a, 0x04, 0x0d, 0x4a, 0x0e, 0x63, 0x50, 0x57, 0x7c, 0x26, 0xba, 0xc1, 0x66, 0xf0, 0x22, 0x8c,
1163	0x69, 0x1c, 0x15, 0xd0, 0x74, 0x11, 0x67, 0x6f, 0x60, 0x4d, 0x67, 0x22, 0xe7, 0x6a, 0x4c, 0x80,
1164	0xe5, 0x05, 0x5d, 0xc2, 0xd9, 0x27, 0xd0, 0x98, 0xa4, 0x42, 0xba, 0x32, 0x0c, 0x63, 0x37, 0x61,
1165	0x8f, 0x20, 0xb4, 0xc2, 0xd8, 0x91, 0x56, 0x72, 0x4e, 0x85, 0xd8, 0x8a, 0x5b, 0x68, 0xf8, 0xa0,
1166	0xe4, 0x3c, 0xfa, 0x2d, 0x80, 0x3a, 0x66, 0x88, 0xbd, 0x86, 0xa6, 0xe5, 0xf9, 0x54, 0xd8, 0x15,
1167	0x37, 0xf5, 0x68, 0x16, 0x41, 0x6b, 0x52, 0xa8, 0x04, 0xef, 0xb6, 0xdf, 0x76, 0x31, 0xc7, 0x7b,
1168	0xc9, 0xf3, 0xa9, 0xe9, 0xd6, 0x36, 0x6b, 0xab, 0xdc, 0x4b, 0xc4, 0x46, 0x43, 0x80, 0xab, 0x6c,
1169	0xb3, 0xb7, 0xd0, 0x12, 0x52, 0xcc, 0x84, 0xb2, 0xa6, 0x1b, 0xac, 0xa4, 0xb2, 0xc0, 0x47, 0x7f,
1170	0x54, 0x61, 0xfd, 0x7a, 0xb2, 0xd9, 0x33, 0x58, 0x9f, 0x09, 0x63, 0xf8, 0x54, 0x8c, 0xae, 0x85,
1171	0xbf, 0xed, 0x6d, 0x47, 0x7c, 0x26, 0xd8, 0x7b, 0x58, 0x13, 0xca, 0xe6, 0xa9, 0x30, 0xdd, 0x2a,
1172	0x6d, 0xb7, 0xf3, 0x1f, 0xaa, 0xa9, 0x77, 0xa0, 0x6c, 0x3e, 0x8f, 0x4b, 0x85, 0xe8, 0xf7, 0x00,
1173	0x1a, 0x64, 0xf2, 0xcd, 0x21, 0x58, 0x34, 0x87, 0xcf, 0x20, 0xa4, 0xdc, 0x8c, 0xce, 0xc5, 0xdc,
1174	0x45, 0x0d, 0xeb, 0x9a, 0x4c, 0xef, 0xc5, 0x9c, 0x7d, 0x0d, 0x6b, 0x33, 0x9e, 0xd1, 0x62, 0x6d,
1175	0x95, 0x64, 0x0c, 0x2b, 0x71, 0x73, 0xc6, 0x33, 0xa4, 0xbe, 0x82, 0xc6, 0x05, 0x97, 0x85, 0xf0,
1176	0xcd, 0x62, 0x59, 0xb4, 0x1c, 0x78, 0x00, 0xd0, 0x3a, 0x17, 0xf3, 0xd1, 0x79, 0xaa, 0xc6, 0xd1,
1177	0x3f, 0x55, 0xd8, 0xb8, 0x51, 0xcc, 0xec, 0x21, 0xb4, 0x52, 0x2b, 0xf2, 0xd1, 0x05, 0xcf, 0x7d,
1178	0xcc, 0xd6, 0x70, 0x7e, 0xca, 0x73, 0xf6, 0x0d, 0x00, 0x2d, 0xe5, 0x5c, 0x4d, 0xc5, 0x8a, 0xfd,
1179	0x37, 0x44, 0x46, 0x8c, 0x04, 0x54, 0xe6, 0x49, 0x52, 0x90, 0x72, 0xcd, 0x29, 0xe3, 0x1c, 0x95,
1180	0xf7, 0x20, 0xa4, 0xa5, 0x54, 0xa5, 0x76, 0xc5, 0xc3, 0x90, 0xd6, 0xa1, 0x4a, 0x2d, 0x3b, 0x80,
1181	0x8e, 0xd4, 0x3a, 0x1b, 0x25, 0x5a, 0x8d, 0x53, 0x2a, 0xcd, 0xc6, 0x4a, 0x0a, 0x1b, 0xc8, 0xda,
1182	0x2f, 0x49, 0xe8, 0x03, 0xc9, 0x18, 0x2b, 0x32, 0xdf, 0xed, 0x96, 0xfa, 0x80, 0x84, 0x13, 0x2b,
1183	0x32, 0xbc, 0x50, 0xb9, 0x30, 0x85, 0xb4, 0xbe, 0xc7, 0x2d, 0xbd, 0x50, 0x0e, 0x3d, 0x68, 0x43,
1184	0x88, 0xab, 0x94, 0x8c, 0xad, 0x3f, 0x6b, 0xd0, 0x2a, 0x9f, 0x06, 0xb6, 0x07, 0xa0, 0x0a, 0x29,
1185	0x47, 0x2e, 0xc1, 0x98, 0x89, 0xce, 0x6e, 0x54, 0xaa, 0x96, 0x6f, 0x65, 0xef, 0xa8, 0x90, 0xf2,
1186	0x14, 0x11, 0xf8, 0x06, 0xa8, 0x72, 0xc2, 0x9e, 0x02, 0x9c, 0x69, 0x5d, 0x92, 0x31, 0x53, 0x2d,
1187	0x04, 0xa0, 0xcd, 0x01, 0x9e, 0x41, 0x3b, 0x55, 0xf6, 0xf5, 0x2b, 0x8f, 0xc0, 0x74, 0xd4, 0xb0,
1188	0x3f, 0x92, 0xd1, 0x41, 0x9e, 0xc3, 0x7a, 0x71, 0x1d, 0x83, 0x69, 0xa9, 0x0f, 0x2b, 0x71, 0xbb,
1189	0xb8, 0x09, 0x1a, 0xeb, 0xe2, 0x4c, 0x0a, 0x0f, 0xc2, 0xc8, 0x07, 0x08, 0x72, 0xd6, 0x05, 0xc8,
1190	0xd8, 0x3c, 0x55, 0x53, 0x0f, 0x6a, 0xfa, 0x3b, 0xd0, 0x76, 0xd6, 0x85, 0x47, 0x67, 0x73, 0x2b,
1191	0x8c, 0xc7, 0x60, 0x18, 0xd7, 0xd1, 0x23, 0x32, 0x3a, 0xc8, 0x77, 0xd0, 0x29, 0x7f, 0x16, 0x1e,
1192	0xe5, 0x1e, 0x81, 0x87, 0x77, 0xc2, 0xf2, 0xad, 0x87, 0x0d, 0xaa, 0x5d, 0xf4, 0x66, 0xa3, 0xa4,
1193	0x39, 0x9d, 0x43, 0x78, 0xb0, 0xf8, 0x63, 0x78, 0x21, 0xd7, 0xf6, 0xef, 0xc6, 0xf7, 0xc7, 0x12,
1194	0xe7, 0x95, 0x3a, 0x0b, 0x22, 0x49, 0x0d, 0x1e, 0xc0, 0x46, 0xe2, 0x33, 0xe6, 0x72, 0xf8, 0x4b,
1195	0x15, 0xe0, 0xea, 0xf7, 0xc0, 0xb6, 0xa1, 0xe3, 0x3e, 0x51, 0xa3, 0x0b, 0x91, 0xe3, 0xfd, 0xf2,
1196	0x77, 0x6a, 0xc3, 0x59, 0x4f, 0x9d, 0x11, 0xfb, 0xaa, 0xd4, 0x09, 0xbf, 0xde, 0x57, 0xcb, 0x39,
1197	0x36, 0x32, 0x99, 0x2a, 0x31, 0xd2, 0x93, 0x89, 0x11, 0xd6, 0xf5, 0xd7, 0x46, 0xdc, 0x46, 0xdb,
1198	0x07, 0x67, 0x62, 0x3f, 0x40, 0x98, 0x69, 0x43, 0x65, 0x6c, 0xba, 0x75, 0x6a, 0x65, 0x2f, 0x57,
1199	0xf9, 0xdc, 0xf4, 0x8e, 0x4b, 0x96, 0x6b, 0x66, 0x57, 0x2a, 0xd1, 0x3b, 0xe8, 0xdc, 0x5c, 0x64,
1200	0xff, 0x83, 0x1a, 0xf6, 0x28, 0xd7, 0xd7, 0x70, 0x88, 0x2f, 0xd0, 0x55, 0x81, 0x35, 0x7c, 0x7b,
1201	0x79, 0x5b, 0x7d, 0x13, 0x6c, 0x65, 0xd0, 0x71, 0xbb, 0x94, 0x1a, 0x37, 0x4e, 0x18, 0xdc, 0x3a,
1202	0xe1, 0xa7, 0xd0, 0x74, 0x87, 0xf3, 0x42, 0x7e, 0x86, 0x2f, 0x27, 0x9e, 0x92, 0xaa, 0xb3, 0x11,
1203	0xd3, 0x18, 0xb1, 0x89, 0x96, 0xc5, 0x4c, 0x51, 0x3d, 0x36, 0x62, 0x3f, 0x1b, 0x28, 0x78, 0x9c,
1204	0xe8, 0xd9, 0xbd, 0x87, 0x1e, 0xb4, 0x4f, 0x28, 0xe0, 0xc7, 0x98, 0xd8, 0xe3, 0xe0, 0xa7, 0x77,
1205	0x1e, 0x38, 0xd5, 0x92, 0xab, 0x69, 0x4f, 0xe7, 0xd3, 0xfe, 0x54, 0x28, 0x4a, 0x7b, 0xdf, 0x2d,
1206	0xf1, 0x2c, 0x35, 0x77, 0xbf, 0xc4, 0x7b, 0x38, 0xfb, 0x3b, 0x08, 0xce, 0x9a, 0x84, 0x7d, 0xf9,
1207	0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0d, 0x25, 0xe3, 0xe8, 0x3d, 0x0b, 0x00, 0x00,
1208}
1209