1// Code generated by protoc-gen-go. DO NOT EDIT.
2// source: google/firestore/v1beta1/query.proto
3
4package firestore // import "google.golang.org/genproto/googleapis/firestore/v1beta1"
5
6import proto "github.com/golang/protobuf/proto"
7import fmt "fmt"
8import math "math"
9import wrappers "github.com/golang/protobuf/ptypes/wrappers"
10import _ "google.golang.org/genproto/googleapis/api/annotations"
11
12// Reference imports to suppress errors if they are not otherwise used.
13var _ = proto.Marshal
14var _ = fmt.Errorf
15var _ = math.Inf
16
17// This is a compile-time assertion to ensure that this generated file
18// is compatible with the proto package it is being compiled against.
19// A compilation error at this line likely means your copy of the
20// proto package needs to be updated.
21const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
22
23// A sort direction.
24type StructuredQuery_Direction int32
25
26const (
27	// Unspecified.
28	StructuredQuery_DIRECTION_UNSPECIFIED StructuredQuery_Direction = 0
29	// Ascending.
30	StructuredQuery_ASCENDING StructuredQuery_Direction = 1
31	// Descending.
32	StructuredQuery_DESCENDING StructuredQuery_Direction = 2
33)
34
35var StructuredQuery_Direction_name = map[int32]string{
36	0: "DIRECTION_UNSPECIFIED",
37	1: "ASCENDING",
38	2: "DESCENDING",
39}
40var StructuredQuery_Direction_value = map[string]int32{
41	"DIRECTION_UNSPECIFIED": 0,
42	"ASCENDING":             1,
43	"DESCENDING":            2,
44}
45
46func (x StructuredQuery_Direction) String() string {
47	return proto.EnumName(StructuredQuery_Direction_name, int32(x))
48}
49func (StructuredQuery_Direction) EnumDescriptor() ([]byte, []int) {
50	return fileDescriptor_query_4a614d17d9e42012, []int{0, 0}
51}
52
53// A composite filter operator.
54type StructuredQuery_CompositeFilter_Operator int32
55
56const (
57	// Unspecified. This value must not be used.
58	StructuredQuery_CompositeFilter_OPERATOR_UNSPECIFIED StructuredQuery_CompositeFilter_Operator = 0
59	// The results are required to satisfy each of the combined filters.
60	StructuredQuery_CompositeFilter_AND StructuredQuery_CompositeFilter_Operator = 1
61)
62
63var StructuredQuery_CompositeFilter_Operator_name = map[int32]string{
64	0: "OPERATOR_UNSPECIFIED",
65	1: "AND",
66}
67var StructuredQuery_CompositeFilter_Operator_value = map[string]int32{
68	"OPERATOR_UNSPECIFIED": 0,
69	"AND": 1,
70}
71
72func (x StructuredQuery_CompositeFilter_Operator) String() string {
73	return proto.EnumName(StructuredQuery_CompositeFilter_Operator_name, int32(x))
74}
75func (StructuredQuery_CompositeFilter_Operator) EnumDescriptor() ([]byte, []int) {
76	return fileDescriptor_query_4a614d17d9e42012, []int{0, 2, 0}
77}
78
79// A field filter operator.
80type StructuredQuery_FieldFilter_Operator int32
81
82const (
83	// Unspecified. This value must not be used.
84	StructuredQuery_FieldFilter_OPERATOR_UNSPECIFIED StructuredQuery_FieldFilter_Operator = 0
85	// Less than. Requires that the field come first in `order_by`.
86	StructuredQuery_FieldFilter_LESS_THAN StructuredQuery_FieldFilter_Operator = 1
87	// Less than or equal. Requires that the field come first in `order_by`.
88	StructuredQuery_FieldFilter_LESS_THAN_OR_EQUAL StructuredQuery_FieldFilter_Operator = 2
89	// Greater than. Requires that the field come first in `order_by`.
90	StructuredQuery_FieldFilter_GREATER_THAN StructuredQuery_FieldFilter_Operator = 3
91	// Greater than or equal. Requires that the field come first in
92	// `order_by`.
93	StructuredQuery_FieldFilter_GREATER_THAN_OR_EQUAL StructuredQuery_FieldFilter_Operator = 4
94	// Equal.
95	StructuredQuery_FieldFilter_EQUAL StructuredQuery_FieldFilter_Operator = 5
96	// Contains. Requires that the field is an array.
97	StructuredQuery_FieldFilter_ARRAY_CONTAINS StructuredQuery_FieldFilter_Operator = 7
98)
99
100var StructuredQuery_FieldFilter_Operator_name = map[int32]string{
101	0: "OPERATOR_UNSPECIFIED",
102	1: "LESS_THAN",
103	2: "LESS_THAN_OR_EQUAL",
104	3: "GREATER_THAN",
105	4: "GREATER_THAN_OR_EQUAL",
106	5: "EQUAL",
107	7: "ARRAY_CONTAINS",
108}
109var StructuredQuery_FieldFilter_Operator_value = map[string]int32{
110	"OPERATOR_UNSPECIFIED":  0,
111	"LESS_THAN":             1,
112	"LESS_THAN_OR_EQUAL":    2,
113	"GREATER_THAN":          3,
114	"GREATER_THAN_OR_EQUAL": 4,
115	"EQUAL":                 5,
116	"ARRAY_CONTAINS":        7,
117}
118
119func (x StructuredQuery_FieldFilter_Operator) String() string {
120	return proto.EnumName(StructuredQuery_FieldFilter_Operator_name, int32(x))
121}
122func (StructuredQuery_FieldFilter_Operator) EnumDescriptor() ([]byte, []int) {
123	return fileDescriptor_query_4a614d17d9e42012, []int{0, 3, 0}
124}
125
126// A unary operator.
127type StructuredQuery_UnaryFilter_Operator int32
128
129const (
130	// Unspecified. This value must not be used.
131	StructuredQuery_UnaryFilter_OPERATOR_UNSPECIFIED StructuredQuery_UnaryFilter_Operator = 0
132	// Test if a field is equal to NaN.
133	StructuredQuery_UnaryFilter_IS_NAN StructuredQuery_UnaryFilter_Operator = 2
134	// Test if an exprestion evaluates to Null.
135	StructuredQuery_UnaryFilter_IS_NULL StructuredQuery_UnaryFilter_Operator = 3
136)
137
138var StructuredQuery_UnaryFilter_Operator_name = map[int32]string{
139	0: "OPERATOR_UNSPECIFIED",
140	2: "IS_NAN",
141	3: "IS_NULL",
142}
143var StructuredQuery_UnaryFilter_Operator_value = map[string]int32{
144	"OPERATOR_UNSPECIFIED": 0,
145	"IS_NAN":               2,
146	"IS_NULL":              3,
147}
148
149func (x StructuredQuery_UnaryFilter_Operator) String() string {
150	return proto.EnumName(StructuredQuery_UnaryFilter_Operator_name, int32(x))
151}
152func (StructuredQuery_UnaryFilter_Operator) EnumDescriptor() ([]byte, []int) {
153	return fileDescriptor_query_4a614d17d9e42012, []int{0, 4, 0}
154}
155
156// A Firestore query.
157type StructuredQuery struct {
158	// The projection to return.
159	Select *StructuredQuery_Projection `protobuf:"bytes,1,opt,name=select,proto3" json:"select,omitempty"`
160	// The collections to query.
161	From []*StructuredQuery_CollectionSelector `protobuf:"bytes,2,rep,name=from,proto3" json:"from,omitempty"`
162	// The filter to apply.
163	Where *StructuredQuery_Filter `protobuf:"bytes,3,opt,name=where,proto3" json:"where,omitempty"`
164	// The order to apply to the query results.
165	//
166	// Firestore guarantees a stable ordering through the following rules:
167	//
168	//  * Any field required to appear in `order_by`, that is not already
169	//    specified in `order_by`, is appended to the order in field name order
170	//    by default.
171	//  * If an order on `__name__` is not specified, it is appended by default.
172	//
173	// Fields are appended with the same sort direction as the last order
174	// specified, or 'ASCENDING' if no order was specified. For example:
175	//
176	//  * `SELECT * FROM Foo ORDER BY A` becomes
177	//    `SELECT * FROM Foo ORDER BY A, __name__`
178	//  * `SELECT * FROM Foo ORDER BY A DESC` becomes
179	//    `SELECT * FROM Foo ORDER BY A DESC, __name__ DESC`
180	//  * `SELECT * FROM Foo WHERE A > 1` becomes
181	//    `SELECT * FROM Foo WHERE A > 1 ORDER BY A, __name__`
182	OrderBy []*StructuredQuery_Order `protobuf:"bytes,4,rep,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"`
183	// A starting point for the query results.
184	StartAt *Cursor `protobuf:"bytes,7,opt,name=start_at,json=startAt,proto3" json:"start_at,omitempty"`
185	// A end point for the query results.
186	EndAt *Cursor `protobuf:"bytes,8,opt,name=end_at,json=endAt,proto3" json:"end_at,omitempty"`
187	// The number of results to skip.
188	//
189	// Applies before limit, but after all other constraints. Must be >= 0 if
190	// specified.
191	Offset int32 `protobuf:"varint,6,opt,name=offset,proto3" json:"offset,omitempty"`
192	// The maximum number of results to return.
193	//
194	// Applies after all other constraints.
195	// Must be >= 0 if specified.
196	Limit                *wrappers.Int32Value `protobuf:"bytes,5,opt,name=limit,proto3" json:"limit,omitempty"`
197	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
198	XXX_unrecognized     []byte               `json:"-"`
199	XXX_sizecache        int32                `json:"-"`
200}
201
202func (m *StructuredQuery) Reset()         { *m = StructuredQuery{} }
203func (m *StructuredQuery) String() string { return proto.CompactTextString(m) }
204func (*StructuredQuery) ProtoMessage()    {}
205func (*StructuredQuery) Descriptor() ([]byte, []int) {
206	return fileDescriptor_query_4a614d17d9e42012, []int{0}
207}
208func (m *StructuredQuery) XXX_Unmarshal(b []byte) error {
209	return xxx_messageInfo_StructuredQuery.Unmarshal(m, b)
210}
211func (m *StructuredQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
212	return xxx_messageInfo_StructuredQuery.Marshal(b, m, deterministic)
213}
214func (dst *StructuredQuery) XXX_Merge(src proto.Message) {
215	xxx_messageInfo_StructuredQuery.Merge(dst, src)
216}
217func (m *StructuredQuery) XXX_Size() int {
218	return xxx_messageInfo_StructuredQuery.Size(m)
219}
220func (m *StructuredQuery) XXX_DiscardUnknown() {
221	xxx_messageInfo_StructuredQuery.DiscardUnknown(m)
222}
223
224var xxx_messageInfo_StructuredQuery proto.InternalMessageInfo
225
226func (m *StructuredQuery) GetSelect() *StructuredQuery_Projection {
227	if m != nil {
228		return m.Select
229	}
230	return nil
231}
232
233func (m *StructuredQuery) GetFrom() []*StructuredQuery_CollectionSelector {
234	if m != nil {
235		return m.From
236	}
237	return nil
238}
239
240func (m *StructuredQuery) GetWhere() *StructuredQuery_Filter {
241	if m != nil {
242		return m.Where
243	}
244	return nil
245}
246
247func (m *StructuredQuery) GetOrderBy() []*StructuredQuery_Order {
248	if m != nil {
249		return m.OrderBy
250	}
251	return nil
252}
253
254func (m *StructuredQuery) GetStartAt() *Cursor {
255	if m != nil {
256		return m.StartAt
257	}
258	return nil
259}
260
261func (m *StructuredQuery) GetEndAt() *Cursor {
262	if m != nil {
263		return m.EndAt
264	}
265	return nil
266}
267
268func (m *StructuredQuery) GetOffset() int32 {
269	if m != nil {
270		return m.Offset
271	}
272	return 0
273}
274
275func (m *StructuredQuery) GetLimit() *wrappers.Int32Value {
276	if m != nil {
277		return m.Limit
278	}
279	return nil
280}
281
282// A selection of a collection, such as `messages as m1`.
283type StructuredQuery_CollectionSelector struct {
284	// The collection ID.
285	// When set, selects only collections with this ID.
286	CollectionId string `protobuf:"bytes,2,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"`
287	// When false, selects only collections that are immediate children of
288	// the `parent` specified in the containing `RunQueryRequest`.
289	// When true, selects all descendant collections.
290	AllDescendants       bool     `protobuf:"varint,3,opt,name=all_descendants,json=allDescendants,proto3" json:"all_descendants,omitempty"`
291	XXX_NoUnkeyedLiteral struct{} `json:"-"`
292	XXX_unrecognized     []byte   `json:"-"`
293	XXX_sizecache        int32    `json:"-"`
294}
295
296func (m *StructuredQuery_CollectionSelector) Reset()         { *m = StructuredQuery_CollectionSelector{} }
297func (m *StructuredQuery_CollectionSelector) String() string { return proto.CompactTextString(m) }
298func (*StructuredQuery_CollectionSelector) ProtoMessage()    {}
299func (*StructuredQuery_CollectionSelector) Descriptor() ([]byte, []int) {
300	return fileDescriptor_query_4a614d17d9e42012, []int{0, 0}
301}
302func (m *StructuredQuery_CollectionSelector) XXX_Unmarshal(b []byte) error {
303	return xxx_messageInfo_StructuredQuery_CollectionSelector.Unmarshal(m, b)
304}
305func (m *StructuredQuery_CollectionSelector) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
306	return xxx_messageInfo_StructuredQuery_CollectionSelector.Marshal(b, m, deterministic)
307}
308func (dst *StructuredQuery_CollectionSelector) XXX_Merge(src proto.Message) {
309	xxx_messageInfo_StructuredQuery_CollectionSelector.Merge(dst, src)
310}
311func (m *StructuredQuery_CollectionSelector) XXX_Size() int {
312	return xxx_messageInfo_StructuredQuery_CollectionSelector.Size(m)
313}
314func (m *StructuredQuery_CollectionSelector) XXX_DiscardUnknown() {
315	xxx_messageInfo_StructuredQuery_CollectionSelector.DiscardUnknown(m)
316}
317
318var xxx_messageInfo_StructuredQuery_CollectionSelector proto.InternalMessageInfo
319
320func (m *StructuredQuery_CollectionSelector) GetCollectionId() string {
321	if m != nil {
322		return m.CollectionId
323	}
324	return ""
325}
326
327func (m *StructuredQuery_CollectionSelector) GetAllDescendants() bool {
328	if m != nil {
329		return m.AllDescendants
330	}
331	return false
332}
333
334// A filter.
335type StructuredQuery_Filter struct {
336	// The type of filter.
337	//
338	// Types that are valid to be assigned to FilterType:
339	//	*StructuredQuery_Filter_CompositeFilter
340	//	*StructuredQuery_Filter_FieldFilter
341	//	*StructuredQuery_Filter_UnaryFilter
342	FilterType           isStructuredQuery_Filter_FilterType `protobuf_oneof:"filter_type"`
343	XXX_NoUnkeyedLiteral struct{}                            `json:"-"`
344	XXX_unrecognized     []byte                              `json:"-"`
345	XXX_sizecache        int32                               `json:"-"`
346}
347
348func (m *StructuredQuery_Filter) Reset()         { *m = StructuredQuery_Filter{} }
349func (m *StructuredQuery_Filter) String() string { return proto.CompactTextString(m) }
350func (*StructuredQuery_Filter) ProtoMessage()    {}
351func (*StructuredQuery_Filter) Descriptor() ([]byte, []int) {
352	return fileDescriptor_query_4a614d17d9e42012, []int{0, 1}
353}
354func (m *StructuredQuery_Filter) XXX_Unmarshal(b []byte) error {
355	return xxx_messageInfo_StructuredQuery_Filter.Unmarshal(m, b)
356}
357func (m *StructuredQuery_Filter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
358	return xxx_messageInfo_StructuredQuery_Filter.Marshal(b, m, deterministic)
359}
360func (dst *StructuredQuery_Filter) XXX_Merge(src proto.Message) {
361	xxx_messageInfo_StructuredQuery_Filter.Merge(dst, src)
362}
363func (m *StructuredQuery_Filter) XXX_Size() int {
364	return xxx_messageInfo_StructuredQuery_Filter.Size(m)
365}
366func (m *StructuredQuery_Filter) XXX_DiscardUnknown() {
367	xxx_messageInfo_StructuredQuery_Filter.DiscardUnknown(m)
368}
369
370var xxx_messageInfo_StructuredQuery_Filter proto.InternalMessageInfo
371
372type isStructuredQuery_Filter_FilterType interface {
373	isStructuredQuery_Filter_FilterType()
374}
375
376type StructuredQuery_Filter_CompositeFilter struct {
377	CompositeFilter *StructuredQuery_CompositeFilter `protobuf:"bytes,1,opt,name=composite_filter,json=compositeFilter,proto3,oneof"`
378}
379
380type StructuredQuery_Filter_FieldFilter struct {
381	FieldFilter *StructuredQuery_FieldFilter `protobuf:"bytes,2,opt,name=field_filter,json=fieldFilter,proto3,oneof"`
382}
383
384type StructuredQuery_Filter_UnaryFilter struct {
385	UnaryFilter *StructuredQuery_UnaryFilter `protobuf:"bytes,3,opt,name=unary_filter,json=unaryFilter,proto3,oneof"`
386}
387
388func (*StructuredQuery_Filter_CompositeFilter) isStructuredQuery_Filter_FilterType() {}
389
390func (*StructuredQuery_Filter_FieldFilter) isStructuredQuery_Filter_FilterType() {}
391
392func (*StructuredQuery_Filter_UnaryFilter) isStructuredQuery_Filter_FilterType() {}
393
394func (m *StructuredQuery_Filter) GetFilterType() isStructuredQuery_Filter_FilterType {
395	if m != nil {
396		return m.FilterType
397	}
398	return nil
399}
400
401func (m *StructuredQuery_Filter) GetCompositeFilter() *StructuredQuery_CompositeFilter {
402	if x, ok := m.GetFilterType().(*StructuredQuery_Filter_CompositeFilter); ok {
403		return x.CompositeFilter
404	}
405	return nil
406}
407
408func (m *StructuredQuery_Filter) GetFieldFilter() *StructuredQuery_FieldFilter {
409	if x, ok := m.GetFilterType().(*StructuredQuery_Filter_FieldFilter); ok {
410		return x.FieldFilter
411	}
412	return nil
413}
414
415func (m *StructuredQuery_Filter) GetUnaryFilter() *StructuredQuery_UnaryFilter {
416	if x, ok := m.GetFilterType().(*StructuredQuery_Filter_UnaryFilter); ok {
417		return x.UnaryFilter
418	}
419	return nil
420}
421
422// XXX_OneofFuncs is for the internal use of the proto package.
423func (*StructuredQuery_Filter) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
424	return _StructuredQuery_Filter_OneofMarshaler, _StructuredQuery_Filter_OneofUnmarshaler, _StructuredQuery_Filter_OneofSizer, []interface{}{
425		(*StructuredQuery_Filter_CompositeFilter)(nil),
426		(*StructuredQuery_Filter_FieldFilter)(nil),
427		(*StructuredQuery_Filter_UnaryFilter)(nil),
428	}
429}
430
431func _StructuredQuery_Filter_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
432	m := msg.(*StructuredQuery_Filter)
433	// filter_type
434	switch x := m.FilterType.(type) {
435	case *StructuredQuery_Filter_CompositeFilter:
436		b.EncodeVarint(1<<3 | proto.WireBytes)
437		if err := b.EncodeMessage(x.CompositeFilter); err != nil {
438			return err
439		}
440	case *StructuredQuery_Filter_FieldFilter:
441		b.EncodeVarint(2<<3 | proto.WireBytes)
442		if err := b.EncodeMessage(x.FieldFilter); err != nil {
443			return err
444		}
445	case *StructuredQuery_Filter_UnaryFilter:
446		b.EncodeVarint(3<<3 | proto.WireBytes)
447		if err := b.EncodeMessage(x.UnaryFilter); err != nil {
448			return err
449		}
450	case nil:
451	default:
452		return fmt.Errorf("StructuredQuery_Filter.FilterType has unexpected type %T", x)
453	}
454	return nil
455}
456
457func _StructuredQuery_Filter_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
458	m := msg.(*StructuredQuery_Filter)
459	switch tag {
460	case 1: // filter_type.composite_filter
461		if wire != proto.WireBytes {
462			return true, proto.ErrInternalBadWireType
463		}
464		msg := new(StructuredQuery_CompositeFilter)
465		err := b.DecodeMessage(msg)
466		m.FilterType = &StructuredQuery_Filter_CompositeFilter{msg}
467		return true, err
468	case 2: // filter_type.field_filter
469		if wire != proto.WireBytes {
470			return true, proto.ErrInternalBadWireType
471		}
472		msg := new(StructuredQuery_FieldFilter)
473		err := b.DecodeMessage(msg)
474		m.FilterType = &StructuredQuery_Filter_FieldFilter{msg}
475		return true, err
476	case 3: // filter_type.unary_filter
477		if wire != proto.WireBytes {
478			return true, proto.ErrInternalBadWireType
479		}
480		msg := new(StructuredQuery_UnaryFilter)
481		err := b.DecodeMessage(msg)
482		m.FilterType = &StructuredQuery_Filter_UnaryFilter{msg}
483		return true, err
484	default:
485		return false, nil
486	}
487}
488
489func _StructuredQuery_Filter_OneofSizer(msg proto.Message) (n int) {
490	m := msg.(*StructuredQuery_Filter)
491	// filter_type
492	switch x := m.FilterType.(type) {
493	case *StructuredQuery_Filter_CompositeFilter:
494		s := proto.Size(x.CompositeFilter)
495		n += 1 // tag and wire
496		n += proto.SizeVarint(uint64(s))
497		n += s
498	case *StructuredQuery_Filter_FieldFilter:
499		s := proto.Size(x.FieldFilter)
500		n += 1 // tag and wire
501		n += proto.SizeVarint(uint64(s))
502		n += s
503	case *StructuredQuery_Filter_UnaryFilter:
504		s := proto.Size(x.UnaryFilter)
505		n += 1 // tag and wire
506		n += proto.SizeVarint(uint64(s))
507		n += s
508	case nil:
509	default:
510		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
511	}
512	return n
513}
514
515// A filter that merges multiple other filters using the given operator.
516type StructuredQuery_CompositeFilter struct {
517	// The operator for combining multiple filters.
518	Op StructuredQuery_CompositeFilter_Operator `protobuf:"varint,1,opt,name=op,proto3,enum=google.firestore.v1beta1.StructuredQuery_CompositeFilter_Operator" json:"op,omitempty"`
519	// The list of filters to combine.
520	// Must contain at least one filter.
521	Filters              []*StructuredQuery_Filter `protobuf:"bytes,2,rep,name=filters,proto3" json:"filters,omitempty"`
522	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
523	XXX_unrecognized     []byte                    `json:"-"`
524	XXX_sizecache        int32                     `json:"-"`
525}
526
527func (m *StructuredQuery_CompositeFilter) Reset()         { *m = StructuredQuery_CompositeFilter{} }
528func (m *StructuredQuery_CompositeFilter) String() string { return proto.CompactTextString(m) }
529func (*StructuredQuery_CompositeFilter) ProtoMessage()    {}
530func (*StructuredQuery_CompositeFilter) Descriptor() ([]byte, []int) {
531	return fileDescriptor_query_4a614d17d9e42012, []int{0, 2}
532}
533func (m *StructuredQuery_CompositeFilter) XXX_Unmarshal(b []byte) error {
534	return xxx_messageInfo_StructuredQuery_CompositeFilter.Unmarshal(m, b)
535}
536func (m *StructuredQuery_CompositeFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
537	return xxx_messageInfo_StructuredQuery_CompositeFilter.Marshal(b, m, deterministic)
538}
539func (dst *StructuredQuery_CompositeFilter) XXX_Merge(src proto.Message) {
540	xxx_messageInfo_StructuredQuery_CompositeFilter.Merge(dst, src)
541}
542func (m *StructuredQuery_CompositeFilter) XXX_Size() int {
543	return xxx_messageInfo_StructuredQuery_CompositeFilter.Size(m)
544}
545func (m *StructuredQuery_CompositeFilter) XXX_DiscardUnknown() {
546	xxx_messageInfo_StructuredQuery_CompositeFilter.DiscardUnknown(m)
547}
548
549var xxx_messageInfo_StructuredQuery_CompositeFilter proto.InternalMessageInfo
550
551func (m *StructuredQuery_CompositeFilter) GetOp() StructuredQuery_CompositeFilter_Operator {
552	if m != nil {
553		return m.Op
554	}
555	return StructuredQuery_CompositeFilter_OPERATOR_UNSPECIFIED
556}
557
558func (m *StructuredQuery_CompositeFilter) GetFilters() []*StructuredQuery_Filter {
559	if m != nil {
560		return m.Filters
561	}
562	return nil
563}
564
565// A filter on a specific field.
566type StructuredQuery_FieldFilter struct {
567	// The field to filter by.
568	Field *StructuredQuery_FieldReference `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"`
569	// The operator to filter by.
570	Op StructuredQuery_FieldFilter_Operator `protobuf:"varint,2,opt,name=op,proto3,enum=google.firestore.v1beta1.StructuredQuery_FieldFilter_Operator" json:"op,omitempty"`
571	// The value to compare to.
572	Value                *Value   `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
573	XXX_NoUnkeyedLiteral struct{} `json:"-"`
574	XXX_unrecognized     []byte   `json:"-"`
575	XXX_sizecache        int32    `json:"-"`
576}
577
578func (m *StructuredQuery_FieldFilter) Reset()         { *m = StructuredQuery_FieldFilter{} }
579func (m *StructuredQuery_FieldFilter) String() string { return proto.CompactTextString(m) }
580func (*StructuredQuery_FieldFilter) ProtoMessage()    {}
581func (*StructuredQuery_FieldFilter) Descriptor() ([]byte, []int) {
582	return fileDescriptor_query_4a614d17d9e42012, []int{0, 3}
583}
584func (m *StructuredQuery_FieldFilter) XXX_Unmarshal(b []byte) error {
585	return xxx_messageInfo_StructuredQuery_FieldFilter.Unmarshal(m, b)
586}
587func (m *StructuredQuery_FieldFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
588	return xxx_messageInfo_StructuredQuery_FieldFilter.Marshal(b, m, deterministic)
589}
590func (dst *StructuredQuery_FieldFilter) XXX_Merge(src proto.Message) {
591	xxx_messageInfo_StructuredQuery_FieldFilter.Merge(dst, src)
592}
593func (m *StructuredQuery_FieldFilter) XXX_Size() int {
594	return xxx_messageInfo_StructuredQuery_FieldFilter.Size(m)
595}
596func (m *StructuredQuery_FieldFilter) XXX_DiscardUnknown() {
597	xxx_messageInfo_StructuredQuery_FieldFilter.DiscardUnknown(m)
598}
599
600var xxx_messageInfo_StructuredQuery_FieldFilter proto.InternalMessageInfo
601
602func (m *StructuredQuery_FieldFilter) GetField() *StructuredQuery_FieldReference {
603	if m != nil {
604		return m.Field
605	}
606	return nil
607}
608
609func (m *StructuredQuery_FieldFilter) GetOp() StructuredQuery_FieldFilter_Operator {
610	if m != nil {
611		return m.Op
612	}
613	return StructuredQuery_FieldFilter_OPERATOR_UNSPECIFIED
614}
615
616func (m *StructuredQuery_FieldFilter) GetValue() *Value {
617	if m != nil {
618		return m.Value
619	}
620	return nil
621}
622
623// A filter with a single operand.
624type StructuredQuery_UnaryFilter struct {
625	// The unary operator to apply.
626	Op StructuredQuery_UnaryFilter_Operator `protobuf:"varint,1,opt,name=op,proto3,enum=google.firestore.v1beta1.StructuredQuery_UnaryFilter_Operator" json:"op,omitempty"`
627	// The argument to the filter.
628	//
629	// Types that are valid to be assigned to OperandType:
630	//	*StructuredQuery_UnaryFilter_Field
631	OperandType          isStructuredQuery_UnaryFilter_OperandType `protobuf_oneof:"operand_type"`
632	XXX_NoUnkeyedLiteral struct{}                                  `json:"-"`
633	XXX_unrecognized     []byte                                    `json:"-"`
634	XXX_sizecache        int32                                     `json:"-"`
635}
636
637func (m *StructuredQuery_UnaryFilter) Reset()         { *m = StructuredQuery_UnaryFilter{} }
638func (m *StructuredQuery_UnaryFilter) String() string { return proto.CompactTextString(m) }
639func (*StructuredQuery_UnaryFilter) ProtoMessage()    {}
640func (*StructuredQuery_UnaryFilter) Descriptor() ([]byte, []int) {
641	return fileDescriptor_query_4a614d17d9e42012, []int{0, 4}
642}
643func (m *StructuredQuery_UnaryFilter) XXX_Unmarshal(b []byte) error {
644	return xxx_messageInfo_StructuredQuery_UnaryFilter.Unmarshal(m, b)
645}
646func (m *StructuredQuery_UnaryFilter) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
647	return xxx_messageInfo_StructuredQuery_UnaryFilter.Marshal(b, m, deterministic)
648}
649func (dst *StructuredQuery_UnaryFilter) XXX_Merge(src proto.Message) {
650	xxx_messageInfo_StructuredQuery_UnaryFilter.Merge(dst, src)
651}
652func (m *StructuredQuery_UnaryFilter) XXX_Size() int {
653	return xxx_messageInfo_StructuredQuery_UnaryFilter.Size(m)
654}
655func (m *StructuredQuery_UnaryFilter) XXX_DiscardUnknown() {
656	xxx_messageInfo_StructuredQuery_UnaryFilter.DiscardUnknown(m)
657}
658
659var xxx_messageInfo_StructuredQuery_UnaryFilter proto.InternalMessageInfo
660
661func (m *StructuredQuery_UnaryFilter) GetOp() StructuredQuery_UnaryFilter_Operator {
662	if m != nil {
663		return m.Op
664	}
665	return StructuredQuery_UnaryFilter_OPERATOR_UNSPECIFIED
666}
667
668type isStructuredQuery_UnaryFilter_OperandType interface {
669	isStructuredQuery_UnaryFilter_OperandType()
670}
671
672type StructuredQuery_UnaryFilter_Field struct {
673	Field *StructuredQuery_FieldReference `protobuf:"bytes,2,opt,name=field,proto3,oneof"`
674}
675
676func (*StructuredQuery_UnaryFilter_Field) isStructuredQuery_UnaryFilter_OperandType() {}
677
678func (m *StructuredQuery_UnaryFilter) GetOperandType() isStructuredQuery_UnaryFilter_OperandType {
679	if m != nil {
680		return m.OperandType
681	}
682	return nil
683}
684
685func (m *StructuredQuery_UnaryFilter) GetField() *StructuredQuery_FieldReference {
686	if x, ok := m.GetOperandType().(*StructuredQuery_UnaryFilter_Field); ok {
687		return x.Field
688	}
689	return nil
690}
691
692// XXX_OneofFuncs is for the internal use of the proto package.
693func (*StructuredQuery_UnaryFilter) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
694	return _StructuredQuery_UnaryFilter_OneofMarshaler, _StructuredQuery_UnaryFilter_OneofUnmarshaler, _StructuredQuery_UnaryFilter_OneofSizer, []interface{}{
695		(*StructuredQuery_UnaryFilter_Field)(nil),
696	}
697}
698
699func _StructuredQuery_UnaryFilter_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
700	m := msg.(*StructuredQuery_UnaryFilter)
701	// operand_type
702	switch x := m.OperandType.(type) {
703	case *StructuredQuery_UnaryFilter_Field:
704		b.EncodeVarint(2<<3 | proto.WireBytes)
705		if err := b.EncodeMessage(x.Field); err != nil {
706			return err
707		}
708	case nil:
709	default:
710		return fmt.Errorf("StructuredQuery_UnaryFilter.OperandType has unexpected type %T", x)
711	}
712	return nil
713}
714
715func _StructuredQuery_UnaryFilter_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
716	m := msg.(*StructuredQuery_UnaryFilter)
717	switch tag {
718	case 2: // operand_type.field
719		if wire != proto.WireBytes {
720			return true, proto.ErrInternalBadWireType
721		}
722		msg := new(StructuredQuery_FieldReference)
723		err := b.DecodeMessage(msg)
724		m.OperandType = &StructuredQuery_UnaryFilter_Field{msg}
725		return true, err
726	default:
727		return false, nil
728	}
729}
730
731func _StructuredQuery_UnaryFilter_OneofSizer(msg proto.Message) (n int) {
732	m := msg.(*StructuredQuery_UnaryFilter)
733	// operand_type
734	switch x := m.OperandType.(type) {
735	case *StructuredQuery_UnaryFilter_Field:
736		s := proto.Size(x.Field)
737		n += 1 // tag and wire
738		n += proto.SizeVarint(uint64(s))
739		n += s
740	case nil:
741	default:
742		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
743	}
744	return n
745}
746
747// An order on a field.
748type StructuredQuery_Order struct {
749	// The field to order by.
750	Field *StructuredQuery_FieldReference `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"`
751	// The direction to order by. Defaults to `ASCENDING`.
752	Direction            StructuredQuery_Direction `protobuf:"varint,2,opt,name=direction,proto3,enum=google.firestore.v1beta1.StructuredQuery_Direction" json:"direction,omitempty"`
753	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
754	XXX_unrecognized     []byte                    `json:"-"`
755	XXX_sizecache        int32                     `json:"-"`
756}
757
758func (m *StructuredQuery_Order) Reset()         { *m = StructuredQuery_Order{} }
759func (m *StructuredQuery_Order) String() string { return proto.CompactTextString(m) }
760func (*StructuredQuery_Order) ProtoMessage()    {}
761func (*StructuredQuery_Order) Descriptor() ([]byte, []int) {
762	return fileDescriptor_query_4a614d17d9e42012, []int{0, 5}
763}
764func (m *StructuredQuery_Order) XXX_Unmarshal(b []byte) error {
765	return xxx_messageInfo_StructuredQuery_Order.Unmarshal(m, b)
766}
767func (m *StructuredQuery_Order) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
768	return xxx_messageInfo_StructuredQuery_Order.Marshal(b, m, deterministic)
769}
770func (dst *StructuredQuery_Order) XXX_Merge(src proto.Message) {
771	xxx_messageInfo_StructuredQuery_Order.Merge(dst, src)
772}
773func (m *StructuredQuery_Order) XXX_Size() int {
774	return xxx_messageInfo_StructuredQuery_Order.Size(m)
775}
776func (m *StructuredQuery_Order) XXX_DiscardUnknown() {
777	xxx_messageInfo_StructuredQuery_Order.DiscardUnknown(m)
778}
779
780var xxx_messageInfo_StructuredQuery_Order proto.InternalMessageInfo
781
782func (m *StructuredQuery_Order) GetField() *StructuredQuery_FieldReference {
783	if m != nil {
784		return m.Field
785	}
786	return nil
787}
788
789func (m *StructuredQuery_Order) GetDirection() StructuredQuery_Direction {
790	if m != nil {
791		return m.Direction
792	}
793	return StructuredQuery_DIRECTION_UNSPECIFIED
794}
795
796// A reference to a field, such as `max(messages.time) as max_time`.
797type StructuredQuery_FieldReference struct {
798	FieldPath            string   `protobuf:"bytes,2,opt,name=field_path,json=fieldPath,proto3" json:"field_path,omitempty"`
799	XXX_NoUnkeyedLiteral struct{} `json:"-"`
800	XXX_unrecognized     []byte   `json:"-"`
801	XXX_sizecache        int32    `json:"-"`
802}
803
804func (m *StructuredQuery_FieldReference) Reset()         { *m = StructuredQuery_FieldReference{} }
805func (m *StructuredQuery_FieldReference) String() string { return proto.CompactTextString(m) }
806func (*StructuredQuery_FieldReference) ProtoMessage()    {}
807func (*StructuredQuery_FieldReference) Descriptor() ([]byte, []int) {
808	return fileDescriptor_query_4a614d17d9e42012, []int{0, 6}
809}
810func (m *StructuredQuery_FieldReference) XXX_Unmarshal(b []byte) error {
811	return xxx_messageInfo_StructuredQuery_FieldReference.Unmarshal(m, b)
812}
813func (m *StructuredQuery_FieldReference) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
814	return xxx_messageInfo_StructuredQuery_FieldReference.Marshal(b, m, deterministic)
815}
816func (dst *StructuredQuery_FieldReference) XXX_Merge(src proto.Message) {
817	xxx_messageInfo_StructuredQuery_FieldReference.Merge(dst, src)
818}
819func (m *StructuredQuery_FieldReference) XXX_Size() int {
820	return xxx_messageInfo_StructuredQuery_FieldReference.Size(m)
821}
822func (m *StructuredQuery_FieldReference) XXX_DiscardUnknown() {
823	xxx_messageInfo_StructuredQuery_FieldReference.DiscardUnknown(m)
824}
825
826var xxx_messageInfo_StructuredQuery_FieldReference proto.InternalMessageInfo
827
828func (m *StructuredQuery_FieldReference) GetFieldPath() string {
829	if m != nil {
830		return m.FieldPath
831	}
832	return ""
833}
834
835// The projection of document's fields to return.
836type StructuredQuery_Projection struct {
837	// The fields to return.
838	//
839	// If empty, all fields are returned. To only return the name
840	// of the document, use `['__name__']`.
841	Fields               []*StructuredQuery_FieldReference `protobuf:"bytes,2,rep,name=fields,proto3" json:"fields,omitempty"`
842	XXX_NoUnkeyedLiteral struct{}                          `json:"-"`
843	XXX_unrecognized     []byte                            `json:"-"`
844	XXX_sizecache        int32                             `json:"-"`
845}
846
847func (m *StructuredQuery_Projection) Reset()         { *m = StructuredQuery_Projection{} }
848func (m *StructuredQuery_Projection) String() string { return proto.CompactTextString(m) }
849func (*StructuredQuery_Projection) ProtoMessage()    {}
850func (*StructuredQuery_Projection) Descriptor() ([]byte, []int) {
851	return fileDescriptor_query_4a614d17d9e42012, []int{0, 7}
852}
853func (m *StructuredQuery_Projection) XXX_Unmarshal(b []byte) error {
854	return xxx_messageInfo_StructuredQuery_Projection.Unmarshal(m, b)
855}
856func (m *StructuredQuery_Projection) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
857	return xxx_messageInfo_StructuredQuery_Projection.Marshal(b, m, deterministic)
858}
859func (dst *StructuredQuery_Projection) XXX_Merge(src proto.Message) {
860	xxx_messageInfo_StructuredQuery_Projection.Merge(dst, src)
861}
862func (m *StructuredQuery_Projection) XXX_Size() int {
863	return xxx_messageInfo_StructuredQuery_Projection.Size(m)
864}
865func (m *StructuredQuery_Projection) XXX_DiscardUnknown() {
866	xxx_messageInfo_StructuredQuery_Projection.DiscardUnknown(m)
867}
868
869var xxx_messageInfo_StructuredQuery_Projection proto.InternalMessageInfo
870
871func (m *StructuredQuery_Projection) GetFields() []*StructuredQuery_FieldReference {
872	if m != nil {
873		return m.Fields
874	}
875	return nil
876}
877
878// A position in a query result set.
879type Cursor struct {
880	// The values that represent a position, in the order they appear in
881	// the order by clause of a query.
882	//
883	// Can contain fewer values than specified in the order by clause.
884	Values []*Value `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"`
885	// If the position is just before or just after the given values, relative
886	// to the sort order defined by the query.
887	Before               bool     `protobuf:"varint,2,opt,name=before,proto3" json:"before,omitempty"`
888	XXX_NoUnkeyedLiteral struct{} `json:"-"`
889	XXX_unrecognized     []byte   `json:"-"`
890	XXX_sizecache        int32    `json:"-"`
891}
892
893func (m *Cursor) Reset()         { *m = Cursor{} }
894func (m *Cursor) String() string { return proto.CompactTextString(m) }
895func (*Cursor) ProtoMessage()    {}
896func (*Cursor) Descriptor() ([]byte, []int) {
897	return fileDescriptor_query_4a614d17d9e42012, []int{1}
898}
899func (m *Cursor) XXX_Unmarshal(b []byte) error {
900	return xxx_messageInfo_Cursor.Unmarshal(m, b)
901}
902func (m *Cursor) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
903	return xxx_messageInfo_Cursor.Marshal(b, m, deterministic)
904}
905func (dst *Cursor) XXX_Merge(src proto.Message) {
906	xxx_messageInfo_Cursor.Merge(dst, src)
907}
908func (m *Cursor) XXX_Size() int {
909	return xxx_messageInfo_Cursor.Size(m)
910}
911func (m *Cursor) XXX_DiscardUnknown() {
912	xxx_messageInfo_Cursor.DiscardUnknown(m)
913}
914
915var xxx_messageInfo_Cursor proto.InternalMessageInfo
916
917func (m *Cursor) GetValues() []*Value {
918	if m != nil {
919		return m.Values
920	}
921	return nil
922}
923
924func (m *Cursor) GetBefore() bool {
925	if m != nil {
926		return m.Before
927	}
928	return false
929}
930
931func init() {
932	proto.RegisterType((*StructuredQuery)(nil), "google.firestore.v1beta1.StructuredQuery")
933	proto.RegisterType((*StructuredQuery_CollectionSelector)(nil), "google.firestore.v1beta1.StructuredQuery.CollectionSelector")
934	proto.RegisterType((*StructuredQuery_Filter)(nil), "google.firestore.v1beta1.StructuredQuery.Filter")
935	proto.RegisterType((*StructuredQuery_CompositeFilter)(nil), "google.firestore.v1beta1.StructuredQuery.CompositeFilter")
936	proto.RegisterType((*StructuredQuery_FieldFilter)(nil), "google.firestore.v1beta1.StructuredQuery.FieldFilter")
937	proto.RegisterType((*StructuredQuery_UnaryFilter)(nil), "google.firestore.v1beta1.StructuredQuery.UnaryFilter")
938	proto.RegisterType((*StructuredQuery_Order)(nil), "google.firestore.v1beta1.StructuredQuery.Order")
939	proto.RegisterType((*StructuredQuery_FieldReference)(nil), "google.firestore.v1beta1.StructuredQuery.FieldReference")
940	proto.RegisterType((*StructuredQuery_Projection)(nil), "google.firestore.v1beta1.StructuredQuery.Projection")
941	proto.RegisterType((*Cursor)(nil), "google.firestore.v1beta1.Cursor")
942	proto.RegisterEnum("google.firestore.v1beta1.StructuredQuery_Direction", StructuredQuery_Direction_name, StructuredQuery_Direction_value)
943	proto.RegisterEnum("google.firestore.v1beta1.StructuredQuery_CompositeFilter_Operator", StructuredQuery_CompositeFilter_Operator_name, StructuredQuery_CompositeFilter_Operator_value)
944	proto.RegisterEnum("google.firestore.v1beta1.StructuredQuery_FieldFilter_Operator", StructuredQuery_FieldFilter_Operator_name, StructuredQuery_FieldFilter_Operator_value)
945	proto.RegisterEnum("google.firestore.v1beta1.StructuredQuery_UnaryFilter_Operator", StructuredQuery_UnaryFilter_Operator_name, StructuredQuery_UnaryFilter_Operator_value)
946}
947
948func init() {
949	proto.RegisterFile("google/firestore/v1beta1/query.proto", fileDescriptor_query_4a614d17d9e42012)
950}
951
952var fileDescriptor_query_4a614d17d9e42012 = []byte{
953	// 985 bytes of a gzipped FileDescriptorProto
954	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x96, 0xdd, 0x6e, 0xe3, 0x44,
955	0x14, 0xc7, 0x6b, 0xa7, 0xf9, 0x3a, 0x69, 0xd3, 0x30, 0x82, 0x95, 0x09, 0xcb, 0x52, 0x05, 0xa4,
956	0xed, 0x0d, 0x0e, 0x6d, 0x59, 0x01, 0x5a, 0x40, 0x72, 0x12, 0xb7, 0xcd, 0xaa, 0x72, 0xd2, 0x49,
957	0x5b, 0x69, 0x57, 0x15, 0x96, 0x63, 0x8f, 0x53, 0x23, 0xd7, 0x63, 0xc6, 0xe3, 0x5d, 0xf5, 0x25,
958	0xb8, 0xe5, 0x9e, 0xcb, 0x7d, 0x01, 0x78, 0x06, 0x9e, 0x82, 0x27, 0x59, 0x21, 0x8f, 0xc7, 0x49,
959	0xbb, 0x55, 0x45, 0x52, 0xb8, 0xcb, 0x39, 0x3e, 0xe7, 0x37, 0xc7, 0xff, 0x73, 0x8e, 0x27, 0xf0,
960	0xc5, 0x8c, 0xd2, 0x59, 0x48, 0xba, 0x7e, 0xc0, 0x48, 0xc2, 0x29, 0x23, 0xdd, 0xd7, 0xbb, 0x53,
961	0xc2, 0x9d, 0xdd, 0xee, 0x2f, 0x29, 0x61, 0xd7, 0x7a, 0xcc, 0x28, 0xa7, 0x48, 0xcb, 0xa3, 0xf4,
962	0x79, 0x94, 0x2e, 0xa3, 0xda, 0x8f, 0x65, 0xbe, 0x13, 0x07, 0x5d, 0x27, 0x8a, 0x28, 0x77, 0x78,
963	0x40, 0xa3, 0x24, 0xcf, 0x6b, 0x3f, 0xbd, 0x97, 0xee, 0x51, 0x37, 0xbd, 0x22, 0x11, 0x97, 0x81,
964	0x4f, 0x64, 0xa0, 0xb0, 0xa6, 0xa9, 0xdf, 0x7d, 0xc3, 0x9c, 0x38, 0x26, 0x4c, 0x82, 0x3a, 0xbf,
965	0x7e, 0x00, 0x5b, 0x13, 0xce, 0x52, 0x97, 0xa7, 0x8c, 0x78, 0x27, 0x59, 0x69, 0xe8, 0x18, 0x2a,
966	0x09, 0x09, 0x89, 0xcb, 0x35, 0x65, 0x5b, 0xd9, 0x69, 0xec, 0x7d, 0xad, 0xdf, 0x57, 0xa5, 0xfe,
967	0x5e, 0xaa, 0x3e, 0x66, 0xf4, 0x67, 0xe2, 0x66, 0x95, 0x62, 0xc9, 0x40, 0x63, 0x58, 0xf7, 0x19,
968	0xbd, 0xd2, 0xd4, 0xed, 0xd2, 0x4e, 0x63, 0xef, 0xfb, 0xe5, 0x59, 0x7d, 0x1a, 0x86, 0x39, 0x6b,
969	0x22, 0x48, 0x94, 0x61, 0x41, 0x42, 0x07, 0x50, 0x7e, 0x73, 0x49, 0x18, 0xd1, 0x4a, 0xa2, 0xbc,
970	0xaf, 0x96, 0x47, 0x1e, 0x04, 0x21, 0x27, 0x0c, 0xe7, 0xe9, 0xe8, 0x05, 0xd4, 0x28, 0xf3, 0x08,
971	0xb3, 0xa7, 0xd7, 0xda, 0xba, 0xa8, 0xae, 0xbb, 0x3c, 0x6a, 0x94, 0x65, 0xe2, 0xaa, 0x00, 0xf4,
972	0xae, 0xd1, 0x73, 0xa8, 0x25, 0xdc, 0x61, 0xdc, 0x76, 0xb8, 0x56, 0x15, 0x65, 0x6d, 0xdf, 0xcf,
973	0xea, 0xa7, 0x2c, 0xa1, 0x0c, 0x57, 0x45, 0x86, 0xc1, 0xd1, 0x37, 0x50, 0x21, 0x91, 0x97, 0xa5,
974	0xd6, 0x96, 0x4c, 0x2d, 0x93, 0xc8, 0x33, 0x38, 0x7a, 0x04, 0x15, 0xea, 0xfb, 0x09, 0xe1, 0x5a,
975	0x65, 0x5b, 0xd9, 0x29, 0x63, 0x69, 0xa1, 0x5d, 0x28, 0x87, 0xc1, 0x55, 0xc0, 0xb5, 0xb2, 0xe0,
976	0x7d, 0x52, 0xf0, 0x8a, 0x29, 0xd0, 0x87, 0x11, 0xdf, 0xdf, 0x3b, 0x77, 0xc2, 0x94, 0xe0, 0x3c,
977	0xb2, 0x3d, 0x05, 0x74, 0x57, 0x70, 0xf4, 0x39, 0x6c, 0xba, 0x73, 0xaf, 0x1d, 0x78, 0x9a, 0xba,
978	0xad, 0xec, 0xd4, 0xf1, 0xc6, 0xc2, 0x39, 0xf4, 0xd0, 0x53, 0xd8, 0x72, 0xc2, 0xd0, 0xf6, 0x48,
979	0xe2, 0x92, 0xc8, 0x73, 0x22, 0x9e, 0x88, 0xce, 0xd4, 0x70, 0xd3, 0x09, 0xc3, 0xc1, 0xc2, 0xdb,
980	0xfe, 0x43, 0x85, 0x4a, 0xde, 0x02, 0xe4, 0x43, 0xcb, 0xa5, 0x57, 0x31, 0x4d, 0x02, 0x4e, 0x6c,
981	0x5f, 0xf8, 0xe4, 0xb4, 0x7d, 0xb7, 0xca, 0x84, 0x48, 0x42, 0x0e, 0x3d, 0x5a, 0xc3, 0x5b, 0xee,
982	0x6d, 0x17, 0x7a, 0x05, 0x1b, 0x7e, 0x40, 0x42, 0xaf, 0x38, 0x43, 0x15, 0x67, 0x3c, 0x5b, 0x65,
983	0x64, 0x48, 0xe8, 0xcd, 0xf9, 0x0d, 0x7f, 0x61, 0x66, 0xec, 0x34, 0x72, 0xd8, 0x75, 0xc1, 0x2e,
984	0xad, 0xca, 0x3e, 0xcb, 0xb2, 0x17, 0xec, 0x74, 0x61, 0xf6, 0x36, 0xa1, 0x91, 0x53, 0x6d, 0x7e,
985	0x1d, 0x93, 0xf6, 0xdf, 0x0a, 0x6c, 0xbd, 0xf7, 0xb6, 0x08, 0x83, 0x4a, 0x63, 0x21, 0x5a, 0x73,
986	0xaf, 0xf7, 0x60, 0xd1, 0xf4, 0x51, 0x4c, 0x98, 0x93, 0x2d, 0x97, 0x4a, 0x63, 0xf4, 0x02, 0xaa,
987	0xf9, 0xb1, 0x89, 0xdc, 0xd7, 0xd5, 0x97, 0xab, 0x00, 0x74, 0xbe, 0x84, 0x5a, 0xc1, 0x46, 0x1a,
988	0x7c, 0x38, 0x1a, 0x9b, 0xd8, 0x38, 0x1d, 0x61, 0xfb, 0xcc, 0x9a, 0x8c, 0xcd, 0xfe, 0xf0, 0x60,
989	0x68, 0x0e, 0x5a, 0x6b, 0xa8, 0x0a, 0x25, 0xc3, 0x1a, 0xb4, 0x94, 0xf6, 0x3b, 0x15, 0x1a, 0x37,
990	0xc4, 0x46, 0x16, 0x94, 0x85, 0xd8, 0x72, 0x2c, 0xbe, 0x5d, 0xb1, 0x65, 0x98, 0xf8, 0x84, 0x91,
991	0xc8, 0x25, 0x38, 0xc7, 0x20, 0x4b, 0xc8, 0xa5, 0x0a, 0xb9, 0x7e, 0x7c, 0x50, 0xff, 0x6f, 0x4b,
992	0xf5, 0x0c, 0xca, 0xaf, 0xb3, 0x05, 0x92, 0x6d, 0xff, 0xec, 0x7e, 0xa4, 0xdc, 0x33, 0x11, 0xdd,
993	0xf9, 0x4d, 0x59, 0x4a, 0x96, 0x4d, 0xa8, 0x1f, 0x9b, 0x93, 0x89, 0x7d, 0x7a, 0x64, 0x58, 0x2d,
994	0x05, 0x3d, 0x02, 0x34, 0x37, 0xed, 0x11, 0xb6, 0xcd, 0x93, 0x33, 0xe3, 0xb8, 0xa5, 0xa2, 0x16,
995	0x6c, 0x1c, 0x62, 0xd3, 0x38, 0x35, 0x71, 0x1e, 0x59, 0x42, 0x1f, 0xc3, 0x47, 0x37, 0x3d, 0x8b,
996	0xe0, 0x75, 0x54, 0x87, 0x72, 0xfe, 0xb3, 0x8c, 0x10, 0x34, 0x0d, 0x8c, 0x8d, 0x97, 0x76, 0x7f,
997	0x64, 0x9d, 0x1a, 0x43, 0x6b, 0xd2, 0xaa, 0xb6, 0xdf, 0x29, 0xd0, 0xb8, 0x31, 0x91, 0x52, 0x30,
998	0x65, 0x55, 0xc1, 0x6e, 0x20, 0x6e, 0x0b, 0x36, 0x2e, 0x1a, 0xaa, 0xfe, 0xb7, 0x86, 0x1e, 0xad,
999	0xc9, 0x96, 0x76, 0x7e, 0x58, 0x4a, 0x4a, 0x80, 0xca, 0x70, 0x62, 0x5b, 0x86, 0xd5, 0x52, 0x51,
1000	0x03, 0xaa, 0xd9, 0xef, 0xb3, 0xe3, 0xe3, 0x56, 0xa9, 0xd7, 0x84, 0x0d, 0x9a, 0xa5, 0x47, 0x5e,
1001	0xbe, 0x64, 0x6f, 0x15, 0x28, 0x8b, 0xcf, 0xfa, 0xff, 0x3e, 0x7b, 0x27, 0x50, 0xf7, 0x02, 0x96,
1002	0x7f, 0x30, 0xe5, 0x08, 0xee, 0x2f, 0xcf, 0x1c, 0x14, 0xa9, 0x78, 0x41, 0x69, 0x77, 0xa1, 0x79,
1003	0xfb, 0x2c, 0xf4, 0x29, 0x40, 0xfe, 0xa9, 0x8b, 0x1d, 0x7e, 0x29, 0x3f, 0xd4, 0x75, 0xe1, 0x19,
1004	0x3b, 0xfc, 0xb2, 0xfd, 0x13, 0xc0, 0xe2, 0x76, 0x46, 0x63, 0xa8, 0x88, 0x47, 0xc5, 0x9e, 0x3f,
1005	0xfc, 0x15, 0x25, 0xa7, 0x63, 0x42, 0x7d, 0x5e, 0x68, 0x36, 0x85, 0x83, 0x21, 0x36, 0xfb, 0xa7,
1006	0xc3, 0x91, 0x75, 0x77, 0xb2, 0x8d, 0x49, 0xdf, 0xb4, 0x06, 0x43, 0xeb, 0xb0, 0xa5, 0xa0, 0x26,
1007	0xc0, 0xc0, 0x9c, 0xdb, 0x6a, 0xe7, 0x25, 0x54, 0xf2, 0x3b, 0x2e, 0xbb, 0x15, 0xc5, 0xca, 0x24,
1008	0x9a, 0x22, 0x4a, 0xfc, 0xd7, 0x0d, 0x93, 0xe1, 0xd9, 0xad, 0x38, 0x25, 0x3e, 0x65, 0x44, 0x88,
1009	0x50, 0xc3, 0xd2, 0xea, 0xfd, 0xa9, 0xc0, 0x63, 0x97, 0x5e, 0xdd, 0x8b, 0xe9, 0x81, 0x78, 0xc1,
1010	0x71, 0x76, 0x49, 0x8e, 0x95, 0x57, 0x86, 0x8c, 0x9b, 0xd1, 0xd0, 0x89, 0x66, 0x3a, 0x65, 0xb3,
1011	0xee, 0x8c, 0x44, 0xe2, 0x0a, 0xed, 0xe6, 0x8f, 0x9c, 0x38, 0x48, 0xee, 0xfe, 0x05, 0x7b, 0x3e,
1012	0xf7, 0xfc, 0xae, 0xae, 0x1f, 0xf6, 0x0f, 0x26, 0x6f, 0xd5, 0x27, 0x87, 0x39, 0xaa, 0x1f, 0xd2,
1013	0xd4, 0xd3, 0x0f, 0xe6, 0x07, 0x9f, 0xef, 0xf6, 0xb2, 0x8c, 0xbf, 0x8a, 0x80, 0x0b, 0x11, 0x70,
1014	0x31, 0x0f, 0xb8, 0x38, 0xcf, 0x91, 0xd3, 0x8a, 0x38, 0x76, 0xff, 0x9f, 0x00, 0x00, 0x00, 0xff,
1015	0xff, 0x3e, 0x38, 0xb4, 0xc6, 0x56, 0x0a, 0x00, 0x00,
1016}
1017