@forestadmin/datasource-customizer 1.40.4 → 1.41.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/dist/decorators/search/collection-search-context.d.ts +26 -0
  2. package/dist/decorators/search/collection-search-context.js +14 -0
  3. package/dist/decorators/search/collection.d.ts +5 -5
  4. package/dist/decorators/search/collection.js +50 -47
  5. package/dist/decorators/search/custom-parser/condition-tree-query-walker.d.ts +27 -0
  6. package/dist/decorators/search/custom-parser/condition-tree-query-walker.js +125 -0
  7. package/dist/decorators/search/custom-parser/custom-error-strategy.d.ts +5 -0
  8. package/dist/decorators/search/custom-parser/custom-error-strategy.js +11 -0
  9. package/dist/decorators/search/custom-parser/custom-query-parser.d.ts +6 -0
  10. package/dist/decorators/search/custom-parser/custom-query-parser.js +15 -0
  11. package/dist/decorators/search/custom-parser/fields-query-walker.d.ts +7 -0
  12. package/dist/decorators/search/custom-parser/fields-query-walker.js +17 -0
  13. package/dist/decorators/search/filter-builder/build-basic-array-field-filter.d.ts +3 -0
  14. package/dist/decorators/search/filter-builder/build-basic-array-field-filter.js +25 -0
  15. package/dist/decorators/search/filter-builder/build-boolean-field-filter.d.ts +3 -0
  16. package/dist/decorators/search/filter-builder/build-boolean-field-filter.js +27 -0
  17. package/dist/decorators/search/filter-builder/build-date-field-filter.d.ts +10 -0
  18. package/dist/decorators/search/filter-builder/build-date-field-filter.js +164 -0
  19. package/dist/decorators/search/filter-builder/build-enum-array-field-filter.d.ts +3 -0
  20. package/dist/decorators/search/filter-builder/build-enum-array-field-filter.js +16 -0
  21. package/dist/decorators/search/filter-builder/build-enum-field-filter.d.ts +3 -0
  22. package/dist/decorators/search/filter-builder/build-enum-field-filter.js +27 -0
  23. package/dist/decorators/search/filter-builder/build-number-array-field-filter.d.ts +3 -0
  24. package/dist/decorators/search/filter-builder/build-number-array-field-filter.js +14 -0
  25. package/dist/decorators/search/filter-builder/build-number-field-filter.d.ts +3 -0
  26. package/dist/decorators/search/filter-builder/build-number-field-filter.js +39 -0
  27. package/dist/decorators/search/filter-builder/build-string-array-field-filter.d.ts +3 -0
  28. package/dist/decorators/search/filter-builder/build-string-array-field-filter.js +11 -0
  29. package/dist/decorators/search/filter-builder/build-string-field-filter.d.ts +3 -0
  30. package/dist/decorators/search/filter-builder/build-string-field-filter.js +37 -0
  31. package/dist/decorators/search/filter-builder/build-uuid-field-filter.d.ts +3 -0
  32. package/dist/decorators/search/filter-builder/build-uuid-field-filter.js +24 -0
  33. package/dist/decorators/search/filter-builder/index.d.ts +3 -0
  34. package/dist/decorators/search/filter-builder/index.js +65 -0
  35. package/dist/decorators/search/filter-builder/utils/build-default-condition.d.ts +3 -0
  36. package/dist/decorators/search/filter-builder/utils/build-default-condition.js +8 -0
  37. package/dist/decorators/search/filter-builder/utils/find-enum-value.d.ts +3 -0
  38. package/dist/decorators/search/filter-builder/utils/find-enum-value.js +12 -0
  39. package/dist/decorators/search/generated-parser/QueryLexer.d.ts +33 -0
  40. package/dist/decorators/search/generated-parser/QueryLexer.js +98 -0
  41. package/dist/decorators/search/generated-parser/QueryListener.d.ts +129 -0
  42. package/dist/decorators/search/generated-parser/QueryListener.js +12 -0
  43. package/dist/decorators/search/generated-parser/QueryParser.d.ts +162 -0
  44. package/dist/decorators/search/generated-parser/QueryParser.js +1025 -0
  45. package/dist/decorators/search/normalize-name.d.ts +2 -0
  46. package/dist/decorators/search/normalize-name.js +7 -0
  47. package/dist/decorators/search/parse-query.d.ts +6 -0
  48. package/dist/decorators/search/parse-query.js +47 -0
  49. package/dist/typing-generator.d.ts +1 -0
  50. package/dist/typing-generator.js +10 -3
  51. package/package.json +4 -2
@@ -0,0 +1,1025 @@
1
+ "use strict";
2
+ // Generated from src/decorators/search/Query.g4 by ANTLR 4.13.1
3
+ // noinspection ES6UnusedImports,JSUnusedGlobalSymbols,JSUnusedLocalSymbols
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.WordContext = exports.ValueContext = exports.NameContext = exports.PropertyMatchingContext = exports.NegatedContext = exports.QuotedContext = exports.QueryTokenContext = exports.AndContext = exports.OrContext = exports.ParenthesizedContext = exports.QueryContext = void 0;
6
+ const antlr4_1 = require("antlr4");
7
+ class QueryParser extends antlr4_1.Parser {
8
+ get grammarFileName() {
9
+ return 'Query.g4';
10
+ }
11
+ get literalNames() {
12
+ return QueryParser.literalNames;
13
+ }
14
+ get symbolicNames() {
15
+ return QueryParser.symbolicNames;
16
+ }
17
+ get ruleNames() {
18
+ return QueryParser.ruleNames;
19
+ }
20
+ get serializedATN() {
21
+ return QueryParser._serializedATN;
22
+ }
23
+ createFailedPredicateException(predicate, message) {
24
+ return new antlr4_1.FailedPredicateException(this, predicate, message);
25
+ }
26
+ constructor(input) {
27
+ super(input);
28
+ this._interp = new antlr4_1.ParserATNSimulator(this, QueryParser._ATN, QueryParser.DecisionsToDFA, new antlr4_1.PredictionContextCache());
29
+ }
30
+ // @RuleVersion(0)
31
+ query() {
32
+ let localctx = new QueryContext(this, this._ctx, this.state);
33
+ this.enterRule(localctx, 0, QueryParser.RULE_query);
34
+ try {
35
+ this.enterOuterAlt(localctx, 1);
36
+ {
37
+ this.state = 26;
38
+ this._errHandler.sync(this);
39
+ switch (this._interp.adaptivePredict(this._input, 0, this._ctx)) {
40
+ case 1:
41
+ {
42
+ this.state = 22;
43
+ this.and();
44
+ }
45
+ break;
46
+ case 2:
47
+ {
48
+ this.state = 23;
49
+ this.or();
50
+ }
51
+ break;
52
+ case 3:
53
+ {
54
+ this.state = 24;
55
+ this.queryToken();
56
+ }
57
+ break;
58
+ case 4:
59
+ {
60
+ this.state = 25;
61
+ this.parenthesized();
62
+ }
63
+ break;
64
+ }
65
+ this.state = 28;
66
+ this.match(QueryParser.EOF);
67
+ }
68
+ }
69
+ catch (re) {
70
+ if (re instanceof antlr4_1.RecognitionException) {
71
+ localctx.exception = re;
72
+ this._errHandler.reportError(this, re);
73
+ this._errHandler.recover(this, re);
74
+ }
75
+ else {
76
+ throw re;
77
+ }
78
+ }
79
+ finally {
80
+ this.exitRule();
81
+ }
82
+ return localctx;
83
+ }
84
+ // @RuleVersion(0)
85
+ parenthesized() {
86
+ let localctx = new ParenthesizedContext(this, this._ctx, this.state);
87
+ this.enterRule(localctx, 2, QueryParser.RULE_parenthesized);
88
+ try {
89
+ this.enterOuterAlt(localctx, 1);
90
+ {
91
+ this.state = 30;
92
+ this.match(QueryParser.PARENS_OPEN);
93
+ this.state = 33;
94
+ this._errHandler.sync(this);
95
+ switch (this._interp.adaptivePredict(this._input, 1, this._ctx)) {
96
+ case 1:
97
+ {
98
+ this.state = 31;
99
+ this.or();
100
+ }
101
+ break;
102
+ case 2:
103
+ {
104
+ this.state = 32;
105
+ this.and();
106
+ }
107
+ break;
108
+ }
109
+ this.state = 35;
110
+ this.match(QueryParser.PARENS_CLOSE);
111
+ }
112
+ }
113
+ catch (re) {
114
+ if (re instanceof antlr4_1.RecognitionException) {
115
+ localctx.exception = re;
116
+ this._errHandler.reportError(this, re);
117
+ this._errHandler.recover(this, re);
118
+ }
119
+ else {
120
+ throw re;
121
+ }
122
+ }
123
+ finally {
124
+ this.exitRule();
125
+ }
126
+ return localctx;
127
+ }
128
+ // @RuleVersion(0)
129
+ or() {
130
+ let localctx = new OrContext(this, this._ctx, this.state);
131
+ this.enterRule(localctx, 4, QueryParser.RULE_or);
132
+ let _la;
133
+ try {
134
+ this.enterOuterAlt(localctx, 1);
135
+ {
136
+ this.state = 40;
137
+ this._errHandler.sync(this);
138
+ switch (this._interp.adaptivePredict(this._input, 2, this._ctx)) {
139
+ case 1:
140
+ {
141
+ this.state = 37;
142
+ this.and();
143
+ }
144
+ break;
145
+ case 2:
146
+ {
147
+ this.state = 38;
148
+ this.queryToken();
149
+ }
150
+ break;
151
+ case 3:
152
+ {
153
+ this.state = 39;
154
+ this.parenthesized();
155
+ }
156
+ break;
157
+ }
158
+ this.state = 50;
159
+ this._errHandler.sync(this);
160
+ _la = this._input.LA(1);
161
+ do {
162
+ {
163
+ {
164
+ this.state = 42;
165
+ this.match(QueryParser.SEPARATOR);
166
+ this.state = 43;
167
+ this.match(QueryParser.OR);
168
+ this.state = 44;
169
+ this.match(QueryParser.SEPARATOR);
170
+ this.state = 48;
171
+ this._errHandler.sync(this);
172
+ switch (this._interp.adaptivePredict(this._input, 3, this._ctx)) {
173
+ case 1:
174
+ {
175
+ this.state = 45;
176
+ this.and();
177
+ }
178
+ break;
179
+ case 2:
180
+ {
181
+ this.state = 46;
182
+ this.queryToken();
183
+ }
184
+ break;
185
+ case 3:
186
+ {
187
+ this.state = 47;
188
+ this.parenthesized();
189
+ }
190
+ break;
191
+ }
192
+ }
193
+ }
194
+ this.state = 52;
195
+ this._errHandler.sync(this);
196
+ _la = this._input.LA(1);
197
+ } while (_la === 10);
198
+ }
199
+ }
200
+ catch (re) {
201
+ if (re instanceof antlr4_1.RecognitionException) {
202
+ localctx.exception = re;
203
+ this._errHandler.reportError(this, re);
204
+ this._errHandler.recover(this, re);
205
+ }
206
+ else {
207
+ throw re;
208
+ }
209
+ }
210
+ finally {
211
+ this.exitRule();
212
+ }
213
+ return localctx;
214
+ }
215
+ // @RuleVersion(0)
216
+ and() {
217
+ let localctx = new AndContext(this, this._ctx, this.state);
218
+ this.enterRule(localctx, 6, QueryParser.RULE_and);
219
+ let _la;
220
+ try {
221
+ let _alt;
222
+ this.enterOuterAlt(localctx, 1);
223
+ {
224
+ this.state = 56;
225
+ this._errHandler.sync(this);
226
+ switch (this._input.LA(1)) {
227
+ case 6:
228
+ case 7:
229
+ case 8:
230
+ case 9:
231
+ {
232
+ this.state = 54;
233
+ this.queryToken();
234
+ }
235
+ break;
236
+ case 2:
237
+ {
238
+ this.state = 55;
239
+ this.parenthesized();
240
+ }
241
+ break;
242
+ default:
243
+ throw new antlr4_1.NoViableAltException(this);
244
+ }
245
+ this.state = 67;
246
+ this._errHandler.sync(this);
247
+ _alt = 1;
248
+ do {
249
+ switch (_alt) {
250
+ case 1:
251
+ {
252
+ {
253
+ this.state = 58;
254
+ this.match(QueryParser.SEPARATOR);
255
+ this.state = 61;
256
+ this._errHandler.sync(this);
257
+ _la = this._input.LA(1);
258
+ if (_la === 5) {
259
+ {
260
+ this.state = 59;
261
+ this.match(QueryParser.AND);
262
+ this.state = 60;
263
+ this.match(QueryParser.SEPARATOR);
264
+ }
265
+ }
266
+ this.state = 65;
267
+ this._errHandler.sync(this);
268
+ switch (this._input.LA(1)) {
269
+ case 6:
270
+ case 7:
271
+ case 8:
272
+ case 9:
273
+ {
274
+ this.state = 63;
275
+ this.queryToken();
276
+ }
277
+ break;
278
+ case 2:
279
+ {
280
+ this.state = 64;
281
+ this.parenthesized();
282
+ }
283
+ break;
284
+ default:
285
+ throw new antlr4_1.NoViableAltException(this);
286
+ }
287
+ }
288
+ }
289
+ break;
290
+ default:
291
+ throw new antlr4_1.NoViableAltException(this);
292
+ }
293
+ this.state = 69;
294
+ this._errHandler.sync(this);
295
+ _alt = this._interp.adaptivePredict(this._input, 8, this._ctx);
296
+ } while (_alt !== 2 && _alt !== antlr4_1.ATN.INVALID_ALT_NUMBER);
297
+ }
298
+ }
299
+ catch (re) {
300
+ if (re instanceof antlr4_1.RecognitionException) {
301
+ localctx.exception = re;
302
+ this._errHandler.reportError(this, re);
303
+ this._errHandler.recover(this, re);
304
+ }
305
+ else {
306
+ throw re;
307
+ }
308
+ }
309
+ finally {
310
+ this.exitRule();
311
+ }
312
+ return localctx;
313
+ }
314
+ // @RuleVersion(0)
315
+ queryToken() {
316
+ let localctx = new QueryTokenContext(this, this._ctx, this.state);
317
+ this.enterRule(localctx, 8, QueryParser.RULE_queryToken);
318
+ try {
319
+ this.enterOuterAlt(localctx, 1);
320
+ {
321
+ this.state = 75;
322
+ this._errHandler.sync(this);
323
+ switch (this._interp.adaptivePredict(this._input, 9, this._ctx)) {
324
+ case 1:
325
+ {
326
+ this.state = 71;
327
+ this.quoted();
328
+ }
329
+ break;
330
+ case 2:
331
+ {
332
+ this.state = 72;
333
+ this.negated();
334
+ }
335
+ break;
336
+ case 3:
337
+ {
338
+ this.state = 73;
339
+ this.propertyMatching();
340
+ }
341
+ break;
342
+ case 4:
343
+ {
344
+ this.state = 74;
345
+ this.word();
346
+ }
347
+ break;
348
+ }
349
+ }
350
+ }
351
+ catch (re) {
352
+ if (re instanceof antlr4_1.RecognitionException) {
353
+ localctx.exception = re;
354
+ this._errHandler.reportError(this, re);
355
+ this._errHandler.recover(this, re);
356
+ }
357
+ else {
358
+ throw re;
359
+ }
360
+ }
361
+ finally {
362
+ this.exitRule();
363
+ }
364
+ return localctx;
365
+ }
366
+ // @RuleVersion(0)
367
+ quoted() {
368
+ let localctx = new QuotedContext(this, this._ctx, this.state);
369
+ this.enterRule(localctx, 10, QueryParser.RULE_quoted);
370
+ let _la;
371
+ try {
372
+ this.enterOuterAlt(localctx, 1);
373
+ {
374
+ this.state = 77;
375
+ _la = this._input.LA(1);
376
+ if (!(_la === 6 || _la === 7)) {
377
+ this._errHandler.recoverInline(this);
378
+ }
379
+ else {
380
+ this._errHandler.reportMatch(this);
381
+ this.consume();
382
+ }
383
+ }
384
+ }
385
+ catch (re) {
386
+ if (re instanceof antlr4_1.RecognitionException) {
387
+ localctx.exception = re;
388
+ this._errHandler.reportError(this, re);
389
+ this._errHandler.recover(this, re);
390
+ }
391
+ else {
392
+ throw re;
393
+ }
394
+ }
395
+ finally {
396
+ this.exitRule();
397
+ }
398
+ return localctx;
399
+ }
400
+ // @RuleVersion(0)
401
+ negated() {
402
+ let localctx = new NegatedContext(this, this._ctx, this.state);
403
+ this.enterRule(localctx, 12, QueryParser.RULE_negated);
404
+ try {
405
+ this.enterOuterAlt(localctx, 1);
406
+ {
407
+ this.state = 79;
408
+ this.match(QueryParser.NEGATION);
409
+ this.state = 83;
410
+ this._errHandler.sync(this);
411
+ switch (this._interp.adaptivePredict(this._input, 10, this._ctx)) {
412
+ case 1:
413
+ {
414
+ this.state = 80;
415
+ this.word();
416
+ }
417
+ break;
418
+ case 2:
419
+ {
420
+ this.state = 81;
421
+ this.quoted();
422
+ }
423
+ break;
424
+ case 3:
425
+ {
426
+ this.state = 82;
427
+ this.propertyMatching();
428
+ }
429
+ break;
430
+ }
431
+ }
432
+ }
433
+ catch (re) {
434
+ if (re instanceof antlr4_1.RecognitionException) {
435
+ localctx.exception = re;
436
+ this._errHandler.reportError(this, re);
437
+ this._errHandler.recover(this, re);
438
+ }
439
+ else {
440
+ throw re;
441
+ }
442
+ }
443
+ finally {
444
+ this.exitRule();
445
+ }
446
+ return localctx;
447
+ }
448
+ // @RuleVersion(0)
449
+ propertyMatching() {
450
+ let localctx = new PropertyMatchingContext(this, this._ctx, this.state);
451
+ this.enterRule(localctx, 14, QueryParser.RULE_propertyMatching);
452
+ try {
453
+ this.enterOuterAlt(localctx, 1);
454
+ {
455
+ this.state = 85;
456
+ this.name();
457
+ this.state = 86;
458
+ this.match(QueryParser.T__0);
459
+ this.state = 87;
460
+ this.value();
461
+ }
462
+ }
463
+ catch (re) {
464
+ if (re instanceof antlr4_1.RecognitionException) {
465
+ localctx.exception = re;
466
+ this._errHandler.reportError(this, re);
467
+ this._errHandler.recover(this, re);
468
+ }
469
+ else {
470
+ throw re;
471
+ }
472
+ }
473
+ finally {
474
+ this.exitRule();
475
+ }
476
+ return localctx;
477
+ }
478
+ // @RuleVersion(0)
479
+ name() {
480
+ let localctx = new NameContext(this, this._ctx, this.state);
481
+ this.enterRule(localctx, 16, QueryParser.RULE_name);
482
+ try {
483
+ this.enterOuterAlt(localctx, 1);
484
+ {
485
+ this.state = 89;
486
+ this.match(QueryParser.TOKEN);
487
+ }
488
+ }
489
+ catch (re) {
490
+ if (re instanceof antlr4_1.RecognitionException) {
491
+ localctx.exception = re;
492
+ this._errHandler.reportError(this, re);
493
+ this._errHandler.recover(this, re);
494
+ }
495
+ else {
496
+ throw re;
497
+ }
498
+ }
499
+ finally {
500
+ this.exitRule();
501
+ }
502
+ return localctx;
503
+ }
504
+ // @RuleVersion(0)
505
+ value() {
506
+ let localctx = new ValueContext(this, this._ctx, this.state);
507
+ this.enterRule(localctx, 18, QueryParser.RULE_value);
508
+ try {
509
+ this.state = 93;
510
+ this._errHandler.sync(this);
511
+ switch (this._input.LA(1)) {
512
+ case 9:
513
+ this.enterOuterAlt(localctx, 1);
514
+ {
515
+ this.state = 91;
516
+ this.word();
517
+ }
518
+ break;
519
+ case 6:
520
+ case 7:
521
+ this.enterOuterAlt(localctx, 2);
522
+ {
523
+ this.state = 92;
524
+ this.quoted();
525
+ }
526
+ break;
527
+ default:
528
+ throw new antlr4_1.NoViableAltException(this);
529
+ }
530
+ }
531
+ catch (re) {
532
+ if (re instanceof antlr4_1.RecognitionException) {
533
+ localctx.exception = re;
534
+ this._errHandler.reportError(this, re);
535
+ this._errHandler.recover(this, re);
536
+ }
537
+ else {
538
+ throw re;
539
+ }
540
+ }
541
+ finally {
542
+ this.exitRule();
543
+ }
544
+ return localctx;
545
+ }
546
+ // @RuleVersion(0)
547
+ word() {
548
+ let localctx = new WordContext(this, this._ctx, this.state);
549
+ this.enterRule(localctx, 20, QueryParser.RULE_word);
550
+ try {
551
+ this.enterOuterAlt(localctx, 1);
552
+ {
553
+ this.state = 95;
554
+ this.match(QueryParser.TOKEN);
555
+ }
556
+ }
557
+ catch (re) {
558
+ if (re instanceof antlr4_1.RecognitionException) {
559
+ localctx.exception = re;
560
+ this._errHandler.reportError(this, re);
561
+ this._errHandler.recover(this, re);
562
+ }
563
+ else {
564
+ throw re;
565
+ }
566
+ }
567
+ finally {
568
+ this.exitRule();
569
+ }
570
+ return localctx;
571
+ }
572
+ static get _ATN() {
573
+ if (!QueryParser.__ATN) {
574
+ QueryParser.__ATN = new antlr4_1.ATNDeserializer().deserialize(QueryParser._serializedATN);
575
+ }
576
+ return QueryParser.__ATN;
577
+ }
578
+ }
579
+ exports.default = QueryParser;
580
+ QueryParser.T__0 = 1;
581
+ QueryParser.PARENS_OPEN = 2;
582
+ QueryParser.PARENS_CLOSE = 3;
583
+ QueryParser.OR = 4;
584
+ QueryParser.AND = 5;
585
+ QueryParser.SINGLE_QUOTED = 6;
586
+ QueryParser.DOUBLE_QUOTED = 7;
587
+ QueryParser.NEGATION = 8;
588
+ QueryParser.TOKEN = 9;
589
+ QueryParser.SEPARATOR = 10;
590
+ QueryParser.SPACING = 11;
591
+ QueryParser.EOF = antlr4_1.Token.EOF;
592
+ QueryParser.RULE_query = 0;
593
+ QueryParser.RULE_parenthesized = 1;
594
+ QueryParser.RULE_or = 2;
595
+ QueryParser.RULE_and = 3;
596
+ QueryParser.RULE_queryToken = 4;
597
+ QueryParser.RULE_quoted = 5;
598
+ QueryParser.RULE_negated = 6;
599
+ QueryParser.RULE_propertyMatching = 7;
600
+ QueryParser.RULE_name = 8;
601
+ QueryParser.RULE_value = 9;
602
+ QueryParser.RULE_word = 10;
603
+ QueryParser.literalNames = [
604
+ null,
605
+ "':'",
606
+ null,
607
+ null,
608
+ "'OR'",
609
+ "'AND'",
610
+ null,
611
+ null,
612
+ "'-'",
613
+ ];
614
+ QueryParser.symbolicNames = [
615
+ null,
616
+ null,
617
+ 'PARENS_OPEN',
618
+ 'PARENS_CLOSE',
619
+ 'OR',
620
+ 'AND',
621
+ 'SINGLE_QUOTED',
622
+ 'DOUBLE_QUOTED',
623
+ 'NEGATION',
624
+ 'TOKEN',
625
+ 'SEPARATOR',
626
+ 'SPACING',
627
+ ];
628
+ // tslint:disable:no-trailing-whitespace
629
+ QueryParser.ruleNames = [
630
+ 'query',
631
+ 'parenthesized',
632
+ 'or',
633
+ 'and',
634
+ 'queryToken',
635
+ 'quoted',
636
+ 'negated',
637
+ 'propertyMatching',
638
+ 'name',
639
+ 'value',
640
+ 'word',
641
+ ];
642
+ QueryParser._serializedATN = [
643
+ 4, 1, 11, 98, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7,
644
+ 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 1, 0, 1, 0, 1, 0, 1, 0, 3, 0, 27, 8, 0, 1,
645
+ 0, 1, 0, 1, 1, 1, 1, 1, 1, 3, 1, 34, 8, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 3, 2, 41, 8, 2, 1, 2,
646
+ 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 49, 8, 2, 4, 2, 51, 8, 2, 11, 2, 12, 2, 52, 1, 3, 1, 3, 3,
647
+ 3, 57, 8, 3, 1, 3, 1, 3, 1, 3, 3, 3, 62, 8, 3, 1, 3, 1, 3, 3, 3, 66, 8, 3, 4, 3, 68, 8, 3, 11,
648
+ 3, 12, 3, 69, 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 76, 8, 4, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 3, 6,
649
+ 84, 8, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 9, 1, 9, 3, 9, 94, 8, 9, 1, 10, 1, 10, 1, 10,
650
+ 0, 0, 11, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 0, 1, 1, 0, 6, 7, 105, 0, 26, 1, 0, 0, 0, 2,
651
+ 30, 1, 0, 0, 0, 4, 40, 1, 0, 0, 0, 6, 56, 1, 0, 0, 0, 8, 75, 1, 0, 0, 0, 10, 77, 1, 0, 0, 0, 12,
652
+ 79, 1, 0, 0, 0, 14, 85, 1, 0, 0, 0, 16, 89, 1, 0, 0, 0, 18, 93, 1, 0, 0, 0, 20, 95, 1, 0, 0, 0,
653
+ 22, 27, 3, 6, 3, 0, 23, 27, 3, 4, 2, 0, 24, 27, 3, 8, 4, 0, 25, 27, 3, 2, 1, 0, 26, 22, 1, 0, 0,
654
+ 0, 26, 23, 1, 0, 0, 0, 26, 24, 1, 0, 0, 0, 26, 25, 1, 0, 0, 0, 27, 28, 1, 0, 0, 0, 28, 29, 5, 0,
655
+ 0, 1, 29, 1, 1, 0, 0, 0, 30, 33, 5, 2, 0, 0, 31, 34, 3, 4, 2, 0, 32, 34, 3, 6, 3, 0, 33, 31, 1,
656
+ 0, 0, 0, 33, 32, 1, 0, 0, 0, 34, 35, 1, 0, 0, 0, 35, 36, 5, 3, 0, 0, 36, 3, 1, 0, 0, 0, 37, 41,
657
+ 3, 6, 3, 0, 38, 41, 3, 8, 4, 0, 39, 41, 3, 2, 1, 0, 40, 37, 1, 0, 0, 0, 40, 38, 1, 0, 0, 0, 40,
658
+ 39, 1, 0, 0, 0, 41, 50, 1, 0, 0, 0, 42, 43, 5, 10, 0, 0, 43, 44, 5, 4, 0, 0, 44, 48, 5, 10, 0,
659
+ 0, 45, 49, 3, 6, 3, 0, 46, 49, 3, 8, 4, 0, 47, 49, 3, 2, 1, 0, 48, 45, 1, 0, 0, 0, 48, 46, 1, 0,
660
+ 0, 0, 48, 47, 1, 0, 0, 0, 49, 51, 1, 0, 0, 0, 50, 42, 1, 0, 0, 0, 51, 52, 1, 0, 0, 0, 52, 50, 1,
661
+ 0, 0, 0, 52, 53, 1, 0, 0, 0, 53, 5, 1, 0, 0, 0, 54, 57, 3, 8, 4, 0, 55, 57, 3, 2, 1, 0, 56, 54,
662
+ 1, 0, 0, 0, 56, 55, 1, 0, 0, 0, 57, 67, 1, 0, 0, 0, 58, 61, 5, 10, 0, 0, 59, 60, 5, 5, 0, 0, 60,
663
+ 62, 5, 10, 0, 0, 61, 59, 1, 0, 0, 0, 61, 62, 1, 0, 0, 0, 62, 65, 1, 0, 0, 0, 63, 66, 3, 8, 4, 0,
664
+ 64, 66, 3, 2, 1, 0, 65, 63, 1, 0, 0, 0, 65, 64, 1, 0, 0, 0, 66, 68, 1, 0, 0, 0, 67, 58, 1, 0, 0,
665
+ 0, 68, 69, 1, 0, 0, 0, 69, 67, 1, 0, 0, 0, 69, 70, 1, 0, 0, 0, 70, 7, 1, 0, 0, 0, 71, 76, 3, 10,
666
+ 5, 0, 72, 76, 3, 12, 6, 0, 73, 76, 3, 14, 7, 0, 74, 76, 3, 20, 10, 0, 75, 71, 1, 0, 0, 0, 75,
667
+ 72, 1, 0, 0, 0, 75, 73, 1, 0, 0, 0, 75, 74, 1, 0, 0, 0, 76, 9, 1, 0, 0, 0, 77, 78, 7, 0, 0, 0,
668
+ 78, 11, 1, 0, 0, 0, 79, 83, 5, 8, 0, 0, 80, 84, 3, 20, 10, 0, 81, 84, 3, 10, 5, 0, 82, 84, 3,
669
+ 14, 7, 0, 83, 80, 1, 0, 0, 0, 83, 81, 1, 0, 0, 0, 83, 82, 1, 0, 0, 0, 84, 13, 1, 0, 0, 0, 85,
670
+ 86, 3, 16, 8, 0, 86, 87, 5, 1, 0, 0, 87, 88, 3, 18, 9, 0, 88, 15, 1, 0, 0, 0, 89, 90, 5, 9, 0,
671
+ 0, 90, 17, 1, 0, 0, 0, 91, 94, 3, 20, 10, 0, 92, 94, 3, 10, 5, 0, 93, 91, 1, 0, 0, 0, 93, 92, 1,
672
+ 0, 0, 0, 94, 19, 1, 0, 0, 0, 95, 96, 5, 9, 0, 0, 96, 21, 1, 0, 0, 0, 12, 26, 33, 40, 48, 52, 56,
673
+ 61, 65, 69, 75, 83, 93,
674
+ ];
675
+ QueryParser.DecisionsToDFA = QueryParser._ATN.decisionToState.map((ds, index) => new antlr4_1.DFA(ds, index));
676
+ class QueryContext extends antlr4_1.ParserRuleContext {
677
+ constructor(parser, parent, invokingState) {
678
+ super(parent, invokingState);
679
+ this.parser = parser;
680
+ }
681
+ EOF() {
682
+ return this.getToken(QueryParser.EOF, 0);
683
+ }
684
+ and() {
685
+ return this.getTypedRuleContext(AndContext, 0);
686
+ }
687
+ or() {
688
+ return this.getTypedRuleContext(OrContext, 0);
689
+ }
690
+ queryToken() {
691
+ return this.getTypedRuleContext(QueryTokenContext, 0);
692
+ }
693
+ parenthesized() {
694
+ return this.getTypedRuleContext(ParenthesizedContext, 0);
695
+ }
696
+ get ruleIndex() {
697
+ return QueryParser.RULE_query;
698
+ }
699
+ enterRule(listener) {
700
+ if (listener.enterQuery) {
701
+ listener.enterQuery(this);
702
+ }
703
+ }
704
+ exitRule(listener) {
705
+ if (listener.exitQuery) {
706
+ listener.exitQuery(this);
707
+ }
708
+ }
709
+ }
710
+ exports.QueryContext = QueryContext;
711
+ class ParenthesizedContext extends antlr4_1.ParserRuleContext {
712
+ constructor(parser, parent, invokingState) {
713
+ super(parent, invokingState);
714
+ this.parser = parser;
715
+ }
716
+ PARENS_OPEN() {
717
+ return this.getToken(QueryParser.PARENS_OPEN, 0);
718
+ }
719
+ PARENS_CLOSE() {
720
+ return this.getToken(QueryParser.PARENS_CLOSE, 0);
721
+ }
722
+ or() {
723
+ return this.getTypedRuleContext(OrContext, 0);
724
+ }
725
+ and() {
726
+ return this.getTypedRuleContext(AndContext, 0);
727
+ }
728
+ get ruleIndex() {
729
+ return QueryParser.RULE_parenthesized;
730
+ }
731
+ enterRule(listener) {
732
+ if (listener.enterParenthesized) {
733
+ listener.enterParenthesized(this);
734
+ }
735
+ }
736
+ exitRule(listener) {
737
+ if (listener.exitParenthesized) {
738
+ listener.exitParenthesized(this);
739
+ }
740
+ }
741
+ }
742
+ exports.ParenthesizedContext = ParenthesizedContext;
743
+ class OrContext extends antlr4_1.ParserRuleContext {
744
+ constructor(parser, parent, invokingState) {
745
+ super(parent, invokingState);
746
+ this.parser = parser;
747
+ }
748
+ and_list() {
749
+ return this.getTypedRuleContexts(AndContext);
750
+ }
751
+ and(i) {
752
+ return this.getTypedRuleContext(AndContext, i);
753
+ }
754
+ queryToken_list() {
755
+ return this.getTypedRuleContexts(QueryTokenContext);
756
+ }
757
+ queryToken(i) {
758
+ return this.getTypedRuleContext(QueryTokenContext, i);
759
+ }
760
+ parenthesized_list() {
761
+ return this.getTypedRuleContexts(ParenthesizedContext);
762
+ }
763
+ parenthesized(i) {
764
+ return this.getTypedRuleContext(ParenthesizedContext, i);
765
+ }
766
+ SEPARATOR_list() {
767
+ return this.getTokens(QueryParser.SEPARATOR);
768
+ }
769
+ SEPARATOR(i) {
770
+ return this.getToken(QueryParser.SEPARATOR, i);
771
+ }
772
+ OR_list() {
773
+ return this.getTokens(QueryParser.OR);
774
+ }
775
+ OR(i) {
776
+ return this.getToken(QueryParser.OR, i);
777
+ }
778
+ get ruleIndex() {
779
+ return QueryParser.RULE_or;
780
+ }
781
+ enterRule(listener) {
782
+ if (listener.enterOr) {
783
+ listener.enterOr(this);
784
+ }
785
+ }
786
+ exitRule(listener) {
787
+ if (listener.exitOr) {
788
+ listener.exitOr(this);
789
+ }
790
+ }
791
+ }
792
+ exports.OrContext = OrContext;
793
+ class AndContext extends antlr4_1.ParserRuleContext {
794
+ constructor(parser, parent, invokingState) {
795
+ super(parent, invokingState);
796
+ this.parser = parser;
797
+ }
798
+ queryToken_list() {
799
+ return this.getTypedRuleContexts(QueryTokenContext);
800
+ }
801
+ queryToken(i) {
802
+ return this.getTypedRuleContext(QueryTokenContext, i);
803
+ }
804
+ parenthesized_list() {
805
+ return this.getTypedRuleContexts(ParenthesizedContext);
806
+ }
807
+ parenthesized(i) {
808
+ return this.getTypedRuleContext(ParenthesizedContext, i);
809
+ }
810
+ SEPARATOR_list() {
811
+ return this.getTokens(QueryParser.SEPARATOR);
812
+ }
813
+ SEPARATOR(i) {
814
+ return this.getToken(QueryParser.SEPARATOR, i);
815
+ }
816
+ AND_list() {
817
+ return this.getTokens(QueryParser.AND);
818
+ }
819
+ AND(i) {
820
+ return this.getToken(QueryParser.AND, i);
821
+ }
822
+ get ruleIndex() {
823
+ return QueryParser.RULE_and;
824
+ }
825
+ enterRule(listener) {
826
+ if (listener.enterAnd) {
827
+ listener.enterAnd(this);
828
+ }
829
+ }
830
+ exitRule(listener) {
831
+ if (listener.exitAnd) {
832
+ listener.exitAnd(this);
833
+ }
834
+ }
835
+ }
836
+ exports.AndContext = AndContext;
837
+ class QueryTokenContext extends antlr4_1.ParserRuleContext {
838
+ constructor(parser, parent, invokingState) {
839
+ super(parent, invokingState);
840
+ this.parser = parser;
841
+ }
842
+ quoted() {
843
+ return this.getTypedRuleContext(QuotedContext, 0);
844
+ }
845
+ negated() {
846
+ return this.getTypedRuleContext(NegatedContext, 0);
847
+ }
848
+ propertyMatching() {
849
+ return this.getTypedRuleContext(PropertyMatchingContext, 0);
850
+ }
851
+ word() {
852
+ return this.getTypedRuleContext(WordContext, 0);
853
+ }
854
+ get ruleIndex() {
855
+ return QueryParser.RULE_queryToken;
856
+ }
857
+ enterRule(listener) {
858
+ if (listener.enterQueryToken) {
859
+ listener.enterQueryToken(this);
860
+ }
861
+ }
862
+ exitRule(listener) {
863
+ if (listener.exitQueryToken) {
864
+ listener.exitQueryToken(this);
865
+ }
866
+ }
867
+ }
868
+ exports.QueryTokenContext = QueryTokenContext;
869
+ class QuotedContext extends antlr4_1.ParserRuleContext {
870
+ constructor(parser, parent, invokingState) {
871
+ super(parent, invokingState);
872
+ this.parser = parser;
873
+ }
874
+ SINGLE_QUOTED() {
875
+ return this.getToken(QueryParser.SINGLE_QUOTED, 0);
876
+ }
877
+ DOUBLE_QUOTED() {
878
+ return this.getToken(QueryParser.DOUBLE_QUOTED, 0);
879
+ }
880
+ get ruleIndex() {
881
+ return QueryParser.RULE_quoted;
882
+ }
883
+ enterRule(listener) {
884
+ if (listener.enterQuoted) {
885
+ listener.enterQuoted(this);
886
+ }
887
+ }
888
+ exitRule(listener) {
889
+ if (listener.exitQuoted) {
890
+ listener.exitQuoted(this);
891
+ }
892
+ }
893
+ }
894
+ exports.QuotedContext = QuotedContext;
895
+ class NegatedContext extends antlr4_1.ParserRuleContext {
896
+ constructor(parser, parent, invokingState) {
897
+ super(parent, invokingState);
898
+ this.parser = parser;
899
+ }
900
+ NEGATION() {
901
+ return this.getToken(QueryParser.NEGATION, 0);
902
+ }
903
+ word() {
904
+ return this.getTypedRuleContext(WordContext, 0);
905
+ }
906
+ quoted() {
907
+ return this.getTypedRuleContext(QuotedContext, 0);
908
+ }
909
+ propertyMatching() {
910
+ return this.getTypedRuleContext(PropertyMatchingContext, 0);
911
+ }
912
+ get ruleIndex() {
913
+ return QueryParser.RULE_negated;
914
+ }
915
+ enterRule(listener) {
916
+ if (listener.enterNegated) {
917
+ listener.enterNegated(this);
918
+ }
919
+ }
920
+ exitRule(listener) {
921
+ if (listener.exitNegated) {
922
+ listener.exitNegated(this);
923
+ }
924
+ }
925
+ }
926
+ exports.NegatedContext = NegatedContext;
927
+ class PropertyMatchingContext extends antlr4_1.ParserRuleContext {
928
+ constructor(parser, parent, invokingState) {
929
+ super(parent, invokingState);
930
+ this.parser = parser;
931
+ }
932
+ name() {
933
+ return this.getTypedRuleContext(NameContext, 0);
934
+ }
935
+ value() {
936
+ return this.getTypedRuleContext(ValueContext, 0);
937
+ }
938
+ get ruleIndex() {
939
+ return QueryParser.RULE_propertyMatching;
940
+ }
941
+ enterRule(listener) {
942
+ if (listener.enterPropertyMatching) {
943
+ listener.enterPropertyMatching(this);
944
+ }
945
+ }
946
+ exitRule(listener) {
947
+ if (listener.exitPropertyMatching) {
948
+ listener.exitPropertyMatching(this);
949
+ }
950
+ }
951
+ }
952
+ exports.PropertyMatchingContext = PropertyMatchingContext;
953
+ class NameContext extends antlr4_1.ParserRuleContext {
954
+ constructor(parser, parent, invokingState) {
955
+ super(parent, invokingState);
956
+ this.parser = parser;
957
+ }
958
+ TOKEN() {
959
+ return this.getToken(QueryParser.TOKEN, 0);
960
+ }
961
+ get ruleIndex() {
962
+ return QueryParser.RULE_name;
963
+ }
964
+ enterRule(listener) {
965
+ if (listener.enterName) {
966
+ listener.enterName(this);
967
+ }
968
+ }
969
+ exitRule(listener) {
970
+ if (listener.exitName) {
971
+ listener.exitName(this);
972
+ }
973
+ }
974
+ }
975
+ exports.NameContext = NameContext;
976
+ class ValueContext extends antlr4_1.ParserRuleContext {
977
+ constructor(parser, parent, invokingState) {
978
+ super(parent, invokingState);
979
+ this.parser = parser;
980
+ }
981
+ word() {
982
+ return this.getTypedRuleContext(WordContext, 0);
983
+ }
984
+ quoted() {
985
+ return this.getTypedRuleContext(QuotedContext, 0);
986
+ }
987
+ get ruleIndex() {
988
+ return QueryParser.RULE_value;
989
+ }
990
+ enterRule(listener) {
991
+ if (listener.enterValue) {
992
+ listener.enterValue(this);
993
+ }
994
+ }
995
+ exitRule(listener) {
996
+ if (listener.exitValue) {
997
+ listener.exitValue(this);
998
+ }
999
+ }
1000
+ }
1001
+ exports.ValueContext = ValueContext;
1002
+ class WordContext extends antlr4_1.ParserRuleContext {
1003
+ constructor(parser, parent, invokingState) {
1004
+ super(parent, invokingState);
1005
+ this.parser = parser;
1006
+ }
1007
+ TOKEN() {
1008
+ return this.getToken(QueryParser.TOKEN, 0);
1009
+ }
1010
+ get ruleIndex() {
1011
+ return QueryParser.RULE_word;
1012
+ }
1013
+ enterRule(listener) {
1014
+ if (listener.enterWord) {
1015
+ listener.enterWord(this);
1016
+ }
1017
+ }
1018
+ exitRule(listener) {
1019
+ if (listener.exitWord) {
1020
+ listener.exitWord(this);
1021
+ }
1022
+ }
1023
+ }
1024
+ exports.WordContext = WordContext;
1025
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUXVlcnlQYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZGVjb3JhdG9ycy9zZWFyY2gvZ2VuZXJhdGVkLXBhcnNlci9RdWVyeVBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsZ0VBQWdFO0FBQ2hFLDJFQUEyRTs7O0FBRTNFLG1DQXFCZ0I7QUFNaEIsTUFBcUIsV0FBWSxTQUFRLGVBQU07SUErRDdDLElBQVcsZUFBZTtRQUN4QixPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBQ0QsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sV0FBVyxDQUFDLFlBQVksQ0FBQztJQUNsQyxDQUFDO0lBQ0QsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sV0FBVyxDQUFDLGFBQWEsQ0FBQztJQUNuQyxDQUFDO0lBQ0QsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sV0FBVyxDQUFDLFNBQVMsQ0FBQztJQUMvQixDQUFDO0lBQ0QsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sV0FBVyxDQUFDLGNBQWMsQ0FBQztJQUNwQyxDQUFDO0lBRVMsOEJBQThCLENBQ3RDLFNBQWtCLEVBQ2xCLE9BQWdCO1FBRWhCLE9BQU8sSUFBSSxpQ0FBd0IsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxZQUFZLEtBQWtCO1FBQzVCLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNiLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSwyQkFBa0IsQ0FDbkMsSUFBSSxFQUNKLFdBQVcsQ0FBQyxJQUFJLEVBQ2hCLFdBQVcsQ0FBQyxjQUFjLEVBQzFCLElBQUksK0JBQXNCLEVBQUUsQ0FDN0IsQ0FBQztJQUNKLENBQUM7SUFDRCxrQkFBa0I7SUFDWCxLQUFLO1FBQ1YsSUFBSSxRQUFRLEdBQWlCLElBQUksWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMs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RSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUM3RixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQzlGLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDN0YsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQzdGLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtJQUM3RixDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQzlGLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRTtJQUM3RixDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQzVGLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtJQUMvRixFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUM5RixFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUMvRixDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUMvRixDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUM5RixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRTtJQUM5RixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtJQUM5RixFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQzdGLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQy9GLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQy9GLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFO0lBQzlGLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO0lBQy9GLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQy9GLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQy9GLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFO0lBQy9GLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtJQUM1RixFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUM3RixFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDNUYsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtJQUM1RixFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQzdGLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUs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