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() { proto.RegisterFile("google/api/expr/v1beta1/expr.proto", fileDescriptor_fb180304f2777248) } 951 952var fileDescriptor_fb180304f2777248 = []byte{ 953 // 936 bytes of a gzipped FileDescriptorProto 954 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x96, 0x6f, 0x6f, 0x23, 0xb5, 955 0x13, 0xc7, 0xbb, 0xf9, 0xbb, 0x3b, 0x69, 0xfb, 0xd3, 0xcf, 0x42, 0x22, 0x6c, 0x39, 0x51, 0x7a, 956 0x87, 0x54, 0x81, 0x94, 0xd0, 0x3b, 0xfe, 0x97, 0x27, 0xf4, 0xae, 0xba, 0x14, 0x0e, 0xa8, 0xb6, 957 0x52, 0x1f, 0x20, 0xa4, 0xc8, 0xd9, 0x38, 0x8b, 0xa9, 0x63, 0xaf, 0xbc, 0xde, 0xaa, 0x79, 0x0f, 958 0xbc, 0x0a, 0x1e, 0xc3, 0x03, 0x5e, 0x00, 0xef, 0xeb, 0x1e, 0xa2, 0x19, 0x3b, 0xa1, 0x15, 0xca, 959 0x25, 0xcf, 0xd6, 0xe3, 0xcf, 0x7c, 0x3d, 0x9e, 0x19, 0x4f, 0x02, 0x47, 0x85, 0x31, 0x85, 0x12, 960 0x43, 0x5e, 0xca, 0xa1, 0xb8, 0x2b, 0xed, 0xf0, 0xf6, 0x64, 0x22, 0x1c, 0x3f, 0xa1, 0xc5, 0xa0, 961 0xb4, 0xc6, 0x19, 0xf6, 0xb6, 0x67, 0x06, 0xbc, 0x94, 0x03, 0x32, 0x07, 0x26, 0x7d, 0xb2, 0xce, 962 0xb9, 0x32, 0xb5, 0xcd, 0x85, 0x77, 0x4f, 0xdf, 0x0d, 0x14, 0xad, 0x26, 0xf5, 0x6c, 0x58, 0x39, 963 0x5b, 0xe7, 0xce, 0xef, 0x1e, 0xfd, 0x11, 0x01, 0x5c, 0x72, 0x5b, 0x89, 0xe9, 0xf9, 0x5d, 0x69, 964 0xd9, 0x09, 0xb4, 0x50, 0xa9, 0xdf, 0x38, 0x8c, 0x8e, 0x7b, 0x4f, 0x1f, 0x0d, 0xd6, 0x1c, 0x3d, 965 0x40, 0x38, 0x23, 0x94, 0xbd, 0x80, 0x9e, 0x3f, 0x6f, 0x2c, 0xf5, 0xcc, 0xf4, 0x9b, 0xe4, 0xf9, 966 0x78, 0xad, 0xe7, 0x15, 0xb1, 0x17, 0x7a, 0x66, 0x32, 0xa8, 0x56, 0xdf, 0xec, 0x03, 0xd8, 0xaf, 967 0x16, 0xda, 0xf1, 0xbb, 0xf1, 0xad, 0xb0, 0x95, 0x34, 0xba, 0xdf, 0x3a, 0x8c, 0x8e, 0x93, 0x6c, 968 0xcf, 0x5b, 0xaf, 0xbd, 0xf1, 0xe8, 0xef, 0x5d, 0x68, 0x51, 0xa0, 0xfb, 0xd0, 0x90, 0x53, 0x0a, 969 0xb3, 0x9d, 0x35, 0xe4, 0x94, 0x9d, 0xc3, 0xae, 0x92, 0x4e, 0x58, 0xae, 0xc6, 0x74, 0x01, 0x1f, 970 0xc6, 0xe1, 0xda, 0x30, 0x5e, 0x79, 0x78, 0xb4, 0x93, 0xf5, 0x82, 0xdf, 0xb9, 0xbf, 0x0c, 0xc8, 971 0xa9, 0xd0, 0xce, 0x8b, 0xb4, 0x36, 0xdc, 0x05, 0x5d, 0x06, 0x17, 0xc8, 0x8f, 0x76, 0xb2, 0x84, 972 0x1c, 0x49, 0xe5, 0x25, 0xf4, 0x2a, 0xa1, 0x44, 0x1e, 0x64, 0xda, 0x24, 0xf3, 0xe4, 0xcd, 0x32, 973 0x57, 0xe4, 0x30, 0xda, 0xc9, 0xc0, 0xbb, 0x92, 0xd0, 0x37, 0x90, 0xe4, 0x5c, 0x85, 0x2b, 0x75, 974 0x48, 0xe6, 0xe8, 0xcd, 0x32, 0xcf, 0xb9, 0xc2, 0x4b, 0xc5, 0xe8, 0x16, 0x62, 0x49, 0x94, 0xac, 975 0x42, 0x24, 0x5d, 0x92, 0x38, 0xde, 0x20, 0x61, 0x05, 0x77, 0xe2, 0x95, 0xac, 0x30, 0x9a, 0x18, 976 0x9d, 0x49, 0xe8, 0x7b, 0xe8, 0xf9, 0xce, 0xf1, 0x52, 0x31, 0x49, 0x7d, 0xb8, 0x8d, 0xd4, 0x15, 977 0xb9, 0xd1, 0xd5, 0xe8, 0x8b, 0xe4, 0x7e, 0x06, 0x96, 0x9b, 0x79, 0x69, 0xc5, 0x2f, 0x42, 0x63, 978 0x69, 0xbd, 0x6a, 0x42, 0xaa, 0x1f, 0x6d, 0x50, 0xbd, 0xef, 0x37, 0xda, 0xc9, 0xfe, 0xff, 0x40, 979 0x08, 0x91, 0xf4, 0x00, 0xda, 0x54, 0x17, 0xc6, 0xa0, 0xa5, 0xf9, 0x5c, 0xf4, 0x23, 0xea, 0x26, 980 0xfa, 0x4e, 0x1d, 0x74, 0x7c, 0xb6, 0xd9, 0xe7, 0xd0, 0x35, 0xa5, 0xb0, 0x5c, 0x4f, 0x09, 0xd8, 981 0xd8, 0xf1, 0x4b, 0x9a, 0xbd, 0x05, 0xed, 0x99, 0x14, 0xca, 0x77, 0x60, 0x92, 0xf9, 0x05, 0x3b, 982 0x80, 0xc4, 0x89, 0xca, 0x8d, 0x8d, 0x56, 0x0b, 0xea, 0xc0, 0x38, 0x8b, 0xd1, 0xf0, 0xa3, 0x56, 983 0x8b, 0xf4, 0xb7, 0x08, 0x5a, 0x58, 0x1d, 0xf6, 0x29, 0x74, 0x1c, 0xb7, 0x85, 0x70, 0xdb, 0x9d, 984 0x19, 0x60, 0x96, 0x42, 0x3c, 0xab, 0x75, 0xee, 0xf0, 0x6d, 0xf8, 0x53, 0x57, 0x6b, 0x7c, 0xb6, 985 0xdc, 0x16, 0x55, 0xbf, 0x79, 0xd8, 0xdc, 0xe2, 0xd9, 0x22, 0x9a, 0xbe, 0x04, 0xf8, 0xb7, 0xd0, 986 0xec, 0x4b, 0x88, 0x85, 0x12, 0x73, 0xa1, 0x5d, 0xd5, 0x8f, 0xb6, 0x11, 0x59, 0xe1, 0xe9, 0xef, 987 0x0d, 0xd8, 0xbd, 0x5f, 0x67, 0x4c, 0xb9, 0x5b, 0x94, 0xab, 0x94, 0xe3, 0x37, 0xfb, 0x16, 0xba, 988 0x42, 0x3b, 0x2b, 0x45, 0xd5, 0x6f, 0x90, 0xfc, 0xc7, 0xdb, 0x37, 0xce, 0xe0, 0x5c, 0x3b, 0xbb, 989 0xc8, 0x96, 0x02, 0xe9, 0x5f, 0x11, 0xb4, 0xc9, 0x14, 0x86, 0x40, 0xb4, 0x1a, 0x02, 0x8f, 0x20, 990 0xa1, 0x42, 0x8c, 0x6f, 0xc4, 0xc2, 0xe7, 0x08, 0x3b, 0x98, 0x4c, 0xdf, 0x89, 0x05, 0xfb, 0x02, 991 0xba, 0x73, 0x5e, 0xd2, 0x66, 0x73, 0x8b, 0xcc, 0x8f, 0x76, 0xb2, 0xce, 0x9c, 0x97, 0xe8, 0xf9, 992 0x0c, 0xda, 0xb7, 0x5c, 0xd5, 0x22, 0x4c, 0x84, 0x0d, 0xb9, 0xf1, 0xec, 0x19, 0x40, 0x7c, 0x23, 993 0x16, 0xe3, 0x1b, 0xa9, 0xa7, 0xe9, 0xeb, 0x06, 0xec, 0x3d, 0x68, 0x5b, 0xf6, 0x0e, 0xc4, 0x38, 994 0x77, 0xc6, 0xb7, 0xdc, 0x86, 0x4c, 0x75, 0x71, 0x7d, 0xcd, 0x2d, 0xfb, 0x1a, 0x80, 0xb6, 0x2c, 995 0xd7, 0x85, 0xd8, 0x6e, 0x14, 0x27, 0xe8, 0x90, 0x21, 0x8f, 0xc2, 0x3c, 0xcf, 0x6b, 0x12, 0x6e, 996 0x7a, 0x61, 0x5c, 0xa3, 0xf0, 0x57, 0x90, 0xd0, 0x96, 0xd4, 0xd2, 0x6d, 0x77, 0x15, 0x92, 0xba, 997 0xd0, 0xd2, 0xb1, 0x17, 0xb0, 0xaf, 0x8c, 0x29, 0xc7, 0xb9, 0xd1, 0x53, 0x49, 0x4d, 0xd8, 0xde, 998 0x46, 0x60, 0x0f, 0x9d, 0x9e, 0x2f, 0x7d, 0x30, 0x02, 0x52, 0xa9, 0x9c, 0x28, 0xc3, 0x40, 0xdb, 999 0x14, 0x01, 0xf2, 0x57, 0x4e, 0x94, 0xf8, 0x6e, 0xac, 0xa8, 0x6a, 0xe5, 0xc2, 0x18, 0xdb, 0xf4, 1000 0x6e, 0x3c, 0x7c, 0xd6, 0x83, 0x04, 0x37, 0xa9, 0x0e, 0x47, 0x7f, 0x36, 0xa0, 0x1b, 0x46, 0x3f, 1001 0x3b, 0x05, 0xd0, 0xb5, 0x52, 0x63, 0x5f, 0x59, 0xac, 0xc1, 0xfe, 0xd3, 0x74, 0xa9, 0xb9, 0xfc, 1002 0xb5, 0x1c, 0xfc, 0x50, 0x2b, 0x75, 0x8d, 0x04, 0x8e, 0x78, 0xbd, 0x5c, 0xb0, 0xf7, 0x00, 0x26, 1003 0xc6, 0x2c, 0x9d, 0xb1, 0x46, 0x31, 0x02, 0x68, 0xf3, 0xc0, 0xfb, 0xd0, 0x93, 0xda, 0x7d, 0xf6, 1004 0x49, 0x20, 0xb0, 0x12, 0x4d, 0x1c, 0x81, 0x64, 0xf4, 0xc8, 0x63, 0xd8, 0xad, 0xef, 0x33, 0x58, 1005 0x91, 0x16, 0xfe, 0x22, 0xd5, 0x0f, 0xa1, 0xa9, 0xa9, 0x27, 0x4a, 0x04, 0x08, 0xb3, 0x1e, 0x21, 1006 0xe4, 0xad, 0x2b, 0xa8, 0x72, 0x56, 0xea, 0x22, 0x40, 0x9d, 0xd0, 0xfb, 0x3d, 0x6f, 0x5d, 0x45, 1007 0x34, 0x59, 0x38, 0x51, 0x05, 0x06, 0x93, 0xb8, 0x8b, 0x11, 0x91, 0x91, 0x90, 0xb3, 0xff, 0xc1, 1008 0x5e, 0x6e, 0x74, 0xe5, 0xb8, 0x76, 0x94, 0xaf, 0xb3, 0x5f, 0xe1, 0x20, 0x37, 0xf3, 0x75, 0x89, 1009 0x3e, 0x4b, 0x30, 0xd3, 0x97, 0x98, 0xaa, 0xcb, 0xe8, 0xa7, 0xd3, 0x40, 0x15, 0x46, 0x71, 0x5d, 1010 0x0c, 0x8c, 0x2d, 0x86, 0x85, 0xd0, 0x94, 0xc8, 0xa1, 0xdf, 0xe2, 0xa5, 0xac, 0xfe, 0xf3, 0x6f, 1011 0xe5, 0x14, 0x17, 0xaf, 0xa3, 0x68, 0xd2, 0x21, 0xf4, 0xd9, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 1012 0xcb, 0xa2, 0x13, 0x9a, 0x14, 0x09, 0x00, 0x00, 1013} 1014