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