prettier-plugin-java 1.6.2 → 2.0.0

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 (120) hide show
  1. package/dist/base-cst-printer.js +4 -3
  2. package/dist/cst-printer.js +1 -0
  3. package/dist/index.js +1 -0
  4. package/dist/options.js +2 -0
  5. package/dist/parser.js +1 -0
  6. package/dist/printer.js +1 -0
  7. package/dist/printers/arrays.js +4 -3
  8. package/dist/printers/blocks-and-statements.js +107 -102
  9. package/dist/printers/classes.js +152 -151
  10. package/dist/printers/comments/comments-utils.js +1 -0
  11. package/dist/printers/comments/format-comments.js +22 -13
  12. package/dist/printers/comments/handle-comments.js +2 -1
  13. package/dist/printers/expressions.js +128 -105
  14. package/dist/printers/interfaces.js +57 -56
  15. package/dist/printers/lexical-structure.js +5 -4
  16. package/dist/printers/names.js +9 -8
  17. package/dist/printers/packages-and-modules.js +73 -59
  18. package/dist/printers/prettier-builder.js +21 -12
  19. package/dist/printers/printer-utils.js +64 -56
  20. package/dist/printers/types-values-and-variables.js +44 -39
  21. package/dist/src/base-cst-printer.js +77 -0
  22. package/dist/src/cst-printer.js +37 -0
  23. package/dist/src/index.js +67 -0
  24. package/dist/src/options.js +256 -0
  25. package/dist/src/parser.js +7 -0
  26. package/dist/src/printer.js +28 -0
  27. package/dist/src/printers/arrays.js +49 -0
  28. package/dist/src/printers/blocks-and-statements.js +493 -0
  29. package/dist/src/printers/classes.js +724 -0
  30. package/dist/src/printers/comments/comments-utils.js +29 -0
  31. package/dist/src/printers/comments/format-comments.js +187 -0
  32. package/dist/src/printers/comments/handle-comments.js +38 -0
  33. package/dist/src/printers/expressions.js +549 -0
  34. package/dist/src/printers/interfaces.js +251 -0
  35. package/dist/src/printers/lexical-structure.js +43 -0
  36. package/dist/src/printers/names.js +53 -0
  37. package/dist/src/printers/packages-and-modules.js +185 -0
  38. package/dist/src/printers/prettier-builder.js +47 -0
  39. package/dist/src/printers/printer-utils.js +577 -0
  40. package/dist/src/printers/types-values-and-variables.js +183 -0
  41. package/dist/src/types/utils.js +29 -0
  42. package/dist/src/utils/expressions-utils.js +29 -0
  43. package/dist/src/utils/index.js +10 -0
  44. package/dist/src/utils/printArgumentListWithBraces.js +21 -0
  45. package/dist/src/utils/printSingleLambdaInvocation.js +20 -0
  46. package/dist/test/babel-register.js +3 -0
  47. package/dist/test/repository-test/core-test.js +12 -0
  48. package/dist/test/repository-test/jhipster-1-test.js +17 -0
  49. package/dist/test/repository-test/jhipster-2-test.js +16 -0
  50. package/dist/test/test-utils.js +215 -0
  51. package/dist/test/unit-test/annotation_type_declaration/annotation_type_declaration-spec.js +6 -0
  52. package/dist/test/unit-test/args/args-spec.js +6 -0
  53. package/dist/test/unit-test/assert/assert-spec.js +6 -0
  54. package/dist/test/unit-test/binary_expressions/binary_expressions-spec.js +6 -0
  55. package/dist/test/unit-test/blank_lines/blank_lines-spec.js +6 -0
  56. package/dist/test/unit-test/bug-fixes/bug-fixes-spec.js +6 -0
  57. package/dist/test/unit-test/cast/cast-spec.js +6 -0
  58. package/dist/test/unit-test/char_literal/char_literal-spec.js +6 -0
  59. package/dist/test/unit-test/classes/multiple_classes-spec.js +6 -0
  60. package/dist/test/unit-test/comments/comments-spec.js +14 -0
  61. package/dist/test/unit-test/complex_generic_class/complex_generic_class-spec.js +6 -0
  62. package/dist/test/unit-test/constructors/constructors-spec.js +6 -0
  63. package/dist/test/unit-test/empty_statement/empty_statement-spec.js +6 -0
  64. package/dist/test/unit-test/enum/enum-spec.js +6 -0
  65. package/dist/test/unit-test/expressions/expressions-spec.js +6 -0
  66. package/dist/test/unit-test/extends_abstract_class/extends_abstract_class-spec.js +6 -0
  67. package/dist/test/unit-test/extends_abstract_class_and_implements_interfaces/extends_abstract_class_and_implements_interfaces-spec.js +6 -0
  68. package/dist/test/unit-test/for/for-spec.js +6 -0
  69. package/dist/test/unit-test/generic_class/generic_class-spec.js +6 -0
  70. package/dist/test/unit-test/generic_questionmark/generic_questionmark-spec.js +6 -0
  71. package/dist/test/unit-test/hello-world/hello-word-spec.js +6 -0
  72. package/dist/test/unit-test/if/if-spec.js +6 -0
  73. package/dist/test/unit-test/indent/indent-spec.js +6 -0
  74. package/dist/test/unit-test/instantiation/instantiation-spec.js +6 -0
  75. package/dist/test/unit-test/interface/interface-spec.js +6 -0
  76. package/dist/test/unit-test/lambda/lambda-spec.js +6 -0
  77. package/dist/test/unit-test/marker_annotations/marker_annotations-spec.js +6 -0
  78. package/dist/test/unit-test/member_chain/member_chain-spec.js +6 -0
  79. package/dist/test/unit-test/method_reference/method_reference-spec.js +6 -0
  80. package/dist/test/unit-test/modifiers/modifiers-spec.js +6 -0
  81. package/dist/test/unit-test/modules/modules-spec.js +6 -0
  82. package/dist/test/unit-test/package_and_imports/package_and_imports-spec.js +34 -0
  83. package/dist/test/unit-test/pattern-matching/pattern-matching-spec.js +6 -0
  84. package/dist/test/unit-test/prettier-ignore/prettier-ignore-spec.js +28 -0
  85. package/dist/test/unit-test/records/records-spec.js +6 -0
  86. package/dist/test/unit-test/return/return-spec.js +6 -0
  87. package/dist/test/unit-test/sealed/sealed-spec.js +6 -0
  88. package/dist/test/unit-test/snippets/arrays/array-initializer.spec.js +94 -0
  89. package/dist/test/unit-test/snippets/arrays/variable-initializer-list.spec.js +19 -0
  90. package/dist/test/unit-test/snippets/blocks-and-statements/switch.spec.js +26 -0
  91. package/dist/test/unit-test/snippets/classes/class-body.spec.js +181 -0
  92. package/dist/test/unit-test/snippets/classes/enum-body.spec.js +87 -0
  93. package/dist/test/unit-test/snippets/classes/variableDeclarator/test.spec.js +186 -0
  94. package/dist/test/unit-test/snippets/interfaces/element-value-array-initializer.spec.js +85 -0
  95. package/dist/test/unit-test/snippets/names/ambiguousName/test.spec.js +19 -0
  96. package/dist/test/unit-test/snippets/names/expressionName/test.spec.js +19 -0
  97. package/dist/test/unit-test/snippets/names/methodName/test.spec.js +12 -0
  98. package/dist/test/unit-test/snippets/names/packageOrTypeName/test.spec.js +19 -0
  99. package/dist/test/unit-test/snippets/types-values-and-variables/floatingPointType/test.spec.js +19 -0
  100. package/dist/test/unit-test/snippets/types-values-and-variables/integralType/test.spec.js +40 -0
  101. package/dist/test/unit-test/snippets/types-values-and-variables/numericType/test.spec.js +88 -0
  102. package/dist/test/unit-test/snippets/types-values-and-variables/wildcard/test.spec.js +112 -0
  103. package/dist/test/unit-test/snippets/types-values-and-variables/wildcardBounds/test.spec.js +81 -0
  104. package/dist/test/unit-test/switch/switch-spec.js +6 -0
  105. package/dist/test/unit-test/synchronized/synchronized-spec.js +6 -0
  106. package/dist/test/unit-test/text-blocks/text-block-spec.js +6 -0
  107. package/dist/test/unit-test/throws/throws-spec.js +6 -0
  108. package/dist/test/unit-test/try_catch/try_catch-spec.js +6 -0
  109. package/dist/test/unit-test/types/types-spec.js +6 -0
  110. package/dist/test/unit-test/variables/variables-spec.js +6 -0
  111. package/dist/test/unit-test/while/while-spec.js +6 -0
  112. package/dist/test/unit-test/yield-statement/yield-statement-spec.js +6 -0
  113. package/dist/types/utils.js +1 -0
  114. package/dist/utils/expressions-utils.js +1 -0
  115. package/dist/utils/index.js +4 -1
  116. package/dist/utils/isEmptyDoc.js +7 -0
  117. package/dist/utils/printArgumentListWithBraces.js +3 -2
  118. package/dist/utils/printSingleLambdaInvocation.js +5 -4
  119. package/package.json +21 -21
  120. package/dist/utils/constants.js +0 -4
@@ -14,10 +14,14 @@ var __extends = (this && this.__extends) || (function () {
14
14
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
15
  };
16
16
  })();
17
- var __spreadArray = (this && this.__spreadArray) || function (to, from) {
18
- for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
19
- to[j] = from[i];
20
- return to;
17
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
18
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
19
+ if (ar || !(i in from)) {
20
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
21
+ ar[i] = from[i];
22
+ }
23
+ }
24
+ return to.concat(ar || Array.prototype.slice.call(from));
21
25
  };
22
26
  var __importDefault = (this && this.__importDefault) || function (mod) {
23
27
  return (mod && mod.__esModule) ? mod : { "default": mod };
@@ -44,11 +48,11 @@ var ExpressionsPrettierVisitor = /** @class */ (function (_super) {
44
48
  return this.visitSingle(ctx, params);
45
49
  };
46
50
  ExpressionsPrettierVisitor.prototype.lambdaExpression = function (ctx, params) {
47
- var lambdaParameters = prettier_builder_1.group(this.visit(ctx.lambdaParameters, params), params ? { id: params.lambdaParametersGroupId } : undefined);
51
+ var lambdaParameters = (0, prettier_builder_1.group)(this.visit(ctx.lambdaParameters, params), params ? { id: params.lambdaParametersGroupId } : undefined);
48
52
  var lambdaBody = this.visit(ctx.lambdaBody);
49
53
  var isLambdaBodyABlock = ctx.lambdaBody[0].children.block !== undefined;
50
54
  if (isLambdaBodyABlock) {
51
- return printer_utils_1.rejectAndJoin(" ", [
55
+ return (0, printer_utils_1.rejectAndJoin)(" ", [
52
56
  lambdaParameters,
53
57
  ctx.Arrow[0],
54
58
  (params === null || params === void 0 ? void 0 : params.lambdaParametersGroupId) !== undefined
@@ -58,8 +62,8 @@ var ExpressionsPrettierVisitor = /** @class */ (function (_super) {
58
62
  : lambdaBody
59
63
  ]);
60
64
  }
61
- return prettier_builder_1.group(prettier_builder_1.indent(printer_utils_1.rejectAndJoin(line, [
62
- printer_utils_1.rejectAndJoin(" ", [lambdaParameters, ctx.Arrow[0]]),
65
+ return (0, prettier_builder_1.group)((0, prettier_builder_1.indent)((0, printer_utils_1.rejectAndJoin)(line, [
66
+ (0, printer_utils_1.rejectAndJoin)(" ", [lambdaParameters, ctx.Arrow[0]]),
63
67
  lambdaBody
64
68
  ])));
65
69
  };
@@ -67,26 +71,26 @@ var ExpressionsPrettierVisitor = /** @class */ (function (_super) {
67
71
  if (ctx.lambdaParametersWithBraces) {
68
72
  return this.visitSingle(ctx, params);
69
73
  }
70
- return format_comments_1.printTokenWithComments(this.getSingle(ctx));
74
+ return (0, format_comments_1.printTokenWithComments)(this.getSingle(ctx));
71
75
  };
72
76
  ExpressionsPrettierVisitor.prototype.lambdaParametersWithBraces = function (ctx, params) {
73
77
  var lambdaParameterList = this.visit(ctx.lambdaParameterList);
74
- if (printer_utils_1.findDeepElementInPartsArray(lambdaParameterList, ",")) {
75
- var content = printer_utils_1.putIntoBraces(lambdaParameterList, softline, ctx.LBrace[0], ctx.RBrace[0]);
78
+ if ((0, printer_utils_1.findDeepElementInPartsArray)(lambdaParameterList, ",")) {
79
+ var content = (0, printer_utils_1.putIntoBraces)(lambdaParameterList, softline, ctx.LBrace[0], ctx.RBrace[0]);
76
80
  if ((params === null || params === void 0 ? void 0 : params.isInsideMethodInvocationSuffix) === true) {
77
- return prettier_builder_1.indent(prettier_builder_1.concat([softline, content]));
81
+ return (0, prettier_builder_1.indent)((0, prettier_builder_1.concat)([softline, content]));
78
82
  }
79
83
  return content;
80
84
  }
81
85
  // removing braces when only no comments attached
82
86
  if ((ctx.LBrace &&
83
87
  ctx.RBrace &&
84
- (!lambdaParameterList || printer_utils_1.isExplicitLambdaParameter(ctx))) ||
88
+ (!lambdaParameterList || (0, printer_utils_1.isExplicitLambdaParameter)(ctx))) ||
85
89
  ctx.LBrace[0].leadingComments ||
86
90
  ctx.LBrace[0].trailingComments ||
87
91
  ctx.RBrace[0].leadingComments ||
88
92
  ctx.RBrace[0].trailingComments) {
89
- return printer_utils_1.rejectAndConcat([
93
+ return (0, printer_utils_1.rejectAndConcat)([
90
94
  ctx.LBrace[0],
91
95
  lambdaParameterList,
92
96
  ctx.RBrace[0]
@@ -100,19 +104,19 @@ var ExpressionsPrettierVisitor = /** @class */ (function (_super) {
100
104
  ExpressionsPrettierVisitor.prototype.inferredLambdaParameterList = function (ctx) {
101
105
  var commas = ctx.Comma
102
106
  ? ctx.Comma.map(function (elt) {
103
- return prettier_builder_1.concat([elt, line]);
107
+ return (0, prettier_builder_1.concat)([elt, line]);
104
108
  })
105
109
  : [];
106
- return printer_utils_1.rejectAndJoinSeps(commas, ctx.Identifier);
110
+ return (0, printer_utils_1.rejectAndJoinSeps)(commas, ctx.Identifier);
107
111
  };
108
112
  ExpressionsPrettierVisitor.prototype.explicitLambdaParameterList = function (ctx) {
109
113
  var lambdaParameter = this.mapVisit(ctx.lambdaParameter);
110
114
  var commas = ctx.Comma
111
115
  ? ctx.Comma.map(function (elt) {
112
- return prettier_builder_1.concat([elt, line]);
116
+ return (0, prettier_builder_1.concat)([elt, line]);
113
117
  })
114
118
  : [];
115
- return printer_utils_1.rejectAndJoinSeps(commas, lambdaParameter);
119
+ return (0, printer_utils_1.rejectAndJoinSeps)(commas, lambdaParameter);
116
120
  };
117
121
  ExpressionsPrettierVisitor.prototype.lambdaParameter = function (ctx) {
118
122
  return this.visitSingle(ctx);
@@ -121,8 +125,8 @@ var ExpressionsPrettierVisitor = /** @class */ (function (_super) {
121
125
  var variableModifier = this.mapVisit(ctx.variableModifier);
122
126
  var lambdaParameterType = this.visit(ctx.lambdaParameterType);
123
127
  var variableDeclaratorId = this.visit(ctx.variableDeclaratorId);
124
- return printer_utils_1.rejectAndJoin(" ", [
125
- printer_utils_1.rejectAndJoin(" ", variableModifier),
128
+ return (0, printer_utils_1.rejectAndJoin)(" ", [
129
+ (0, printer_utils_1.rejectAndJoin)(" ", variableModifier),
126
130
  lambdaParameterType,
127
131
  variableDeclaratorId
128
132
  ]);
@@ -131,7 +135,7 @@ var ExpressionsPrettierVisitor = /** @class */ (function (_super) {
131
135
  if (ctx.unannType) {
132
136
  return this.visitSingle(ctx);
133
137
  }
134
- return format_comments_1.printTokenWithComments(this.getSingle(ctx));
138
+ return (0, format_comments_1.printTokenWithComments)(this.getSingle(ctx));
135
139
  };
136
140
  ExpressionsPrettierVisitor.prototype.lambdaBody = function (ctx) {
137
141
  return this.visitSingle(ctx);
@@ -141,22 +145,22 @@ var ExpressionsPrettierVisitor = /** @class */ (function (_super) {
141
145
  if (ctx.QuestionMark) {
142
146
  var expression1 = this.visit(ctx.expression[0]);
143
147
  var expression2 = this.visit(ctx.expression[1]);
144
- return prettier_builder_1.indent(prettier_builder_1.group(printer_utils_1.rejectAndConcat([
145
- printer_utils_1.rejectAndJoin(line, [
148
+ return (0, prettier_builder_1.indent)((0, prettier_builder_1.group)((0, printer_utils_1.rejectAndConcat)([
149
+ (0, printer_utils_1.rejectAndJoin)(line, [
146
150
  binaryExpression,
147
- printer_utils_1.rejectAndJoin(" ", [ctx.QuestionMark[0], expression1]),
148
- printer_utils_1.rejectAndJoin(" ", [ctx.Colon[0], expression2])
151
+ (0, printer_utils_1.rejectAndJoin)(" ", [ctx.QuestionMark[0], expression1]),
152
+ (0, printer_utils_1.rejectAndJoin)(" ", [ctx.Colon[0], expression2])
149
153
  ])
150
154
  ])));
151
155
  }
152
156
  return binaryExpression;
153
157
  };
154
158
  ExpressionsPrettierVisitor.prototype.binaryExpression = function (ctx, params) {
155
- handle_comments_1.handleCommentsBinaryExpression(ctx);
156
- var instanceofReferences = this.mapVisit(printer_utils_1.sortNodes([ctx.pattern, ctx.referenceType]));
159
+ (0, handle_comments_1.handleCommentsBinaryExpression)(ctx);
160
+ var instanceofReferences = this.mapVisit((0, printer_utils_1.sortNodes)([ctx.pattern, ctx.referenceType]));
157
161
  var expression = this.mapVisit(ctx.expression);
158
162
  var unaryExpression = this.mapVisit(ctx.unaryExpression);
159
- var _a = printer_utils_1.separateTokensIntoGroups(ctx), groupsOfOperator = _a.groupsOfOperator, sortedBinaryOperators = _a.sortedBinaryOperators;
163
+ var _a = (0, printer_utils_1.separateTokensIntoGroups)(ctx), groupsOfOperator = _a.groupsOfOperator, sortedBinaryOperators = _a.sortedBinaryOperators;
160
164
  var segmentsSplitByBinaryOperator = [];
161
165
  var currentSegment = [];
162
166
  if (groupsOfOperator.length === 1 && groupsOfOperator[0].length === 0) {
@@ -166,49 +170,49 @@ var ExpressionsPrettierVisitor = /** @class */ (function (_super) {
166
170
  currentSegment = [unaryExpression.shift()];
167
171
  for (var i = 0; i < subgroup.length; i++) {
168
172
  var token = subgroup[i];
169
- var shiftOperator = printer_utils_1.isShiftOperator(subgroup, i);
173
+ var shiftOperator = (0, printer_utils_1.isShiftOperator)(subgroup, i);
170
174
  if (token.tokenType.name === "Instanceof") {
171
- currentSegment.push(printer_utils_1.rejectAndJoin(" ", [
175
+ currentSegment.push((0, printer_utils_1.rejectAndJoin)(" ", [
172
176
  ctx.Instanceof[0],
173
177
  instanceofReferences.shift()
174
178
  ]));
175
179
  }
176
- else if (printer_utils_1.matchCategory(token, "'AssignmentOperator'")) {
177
- currentSegment.push(prettier_builder_1.indent(printer_utils_1.rejectAndJoin(line, [token, expression.shift()])));
180
+ else if ((0, printer_utils_1.matchCategory)(token, "'AssignmentOperator'")) {
181
+ currentSegment.push((0, prettier_builder_1.indent)((0, printer_utils_1.rejectAndJoin)(line, [token, expression.shift()])));
178
182
  }
179
183
  else if (shiftOperator === "leftShift" ||
180
184
  shiftOperator === "rightShift") {
181
- currentSegment.push(printer_utils_1.rejectAndJoin(" ", [
182
- printer_utils_1.rejectAndConcat([token, subgroup[i + 1]]),
185
+ currentSegment.push((0, printer_utils_1.rejectAndJoin)(" ", [
186
+ (0, printer_utils_1.rejectAndConcat)([token, subgroup[i + 1]]),
183
187
  unaryExpression.shift()
184
188
  ]));
185
189
  i++;
186
190
  }
187
191
  else if (shiftOperator === "doubleRightShift") {
188
- currentSegment.push(printer_utils_1.rejectAndJoin(" ", [
189
- printer_utils_1.rejectAndConcat([token, subgroup[i + 1], subgroup[i + 2]]),
192
+ currentSegment.push((0, printer_utils_1.rejectAndJoin)(" ", [
193
+ (0, printer_utils_1.rejectAndConcat)([token, subgroup[i + 1], subgroup[i + 2]]),
190
194
  unaryExpression.shift()
191
195
  ]));
192
196
  i += 2;
193
197
  }
194
- else if (printer_utils_1.matchCategory(token, "'BinaryOperator'")) {
195
- currentSegment.push(printer_utils_1.rejectAndJoin(line, [token, unaryExpression.shift()]));
198
+ else if ((0, printer_utils_1.matchCategory)(token, "'BinaryOperator'")) {
199
+ currentSegment.push((0, printer_utils_1.rejectAndJoin)(line, [token, unaryExpression.shift()]));
196
200
  }
197
201
  }
198
- segmentsSplitByBinaryOperator.push(prettier_builder_1.group(printer_utils_1.rejectAndJoin(" ", currentSegment)));
202
+ segmentsSplitByBinaryOperator.push((0, prettier_builder_1.group)((0, printer_utils_1.rejectAndJoin)(" ", currentSegment)));
199
203
  });
200
204
  if (params !== undefined && params.addParenthesisToWrapStatement) {
201
- return prettier_builder_1.group(prettier_builder_1.concat([
205
+ return (0, prettier_builder_1.group)((0, prettier_builder_1.concat)([
202
206
  ifBreak("(", ""),
203
- prettier_builder_1.indent(prettier_builder_1.concat([
207
+ (0, prettier_builder_1.indent)((0, prettier_builder_1.concat)([
204
208
  softline,
205
- prettier_builder_1.group(printer_utils_1.rejectAndJoinSeps(sortedBinaryOperators.map(function (elt) { return prettier_builder_1.concat([" ", elt, line]); }), segmentsSplitByBinaryOperator))
209
+ (0, prettier_builder_1.group)((0, printer_utils_1.rejectAndJoinSeps)(sortedBinaryOperators.map(function (elt) { return (0, prettier_builder_1.concat)([" ", elt, line]); }), segmentsSplitByBinaryOperator))
206
210
  ])),
207
211
  softline,
208
212
  ifBreak(")")
209
213
  ]));
210
214
  }
211
- return prettier_builder_1.group(printer_utils_1.rejectAndJoinSeps(sortedBinaryOperators.map(function (elt) { return prettier_builder_1.concat([" ", elt, line]); }), segmentsSplitByBinaryOperator));
215
+ return (0, prettier_builder_1.group)((0, printer_utils_1.rejectAndJoinSeps)(sortedBinaryOperators.map(function (elt) { return (0, prettier_builder_1.concat)([" ", elt, line]); }), segmentsSplitByBinaryOperator));
212
216
  };
213
217
  ExpressionsPrettierVisitor.prototype.unaryExpression = function (ctx) {
214
218
  var unaryPrefixOperator = ctx.UnaryPrefixOperator
@@ -218,28 +222,28 @@ var ExpressionsPrettierVisitor = /** @class */ (function (_super) {
218
222
  var unarySuffixOperator = ctx.UnarySuffixOperator
219
223
  ? ctx.UnarySuffixOperator
220
224
  : [];
221
- return printer_utils_1.rejectAndConcat([
222
- printer_utils_1.rejectAndConcat(unaryPrefixOperator),
225
+ return (0, printer_utils_1.rejectAndConcat)([
226
+ (0, printer_utils_1.rejectAndConcat)(unaryPrefixOperator),
223
227
  primary,
224
- printer_utils_1.rejectAndConcat(unarySuffixOperator)
228
+ (0, printer_utils_1.rejectAndConcat)(unarySuffixOperator)
225
229
  ]);
226
230
  };
227
231
  ExpressionsPrettierVisitor.prototype.unaryExpressionNotPlusMinus = function (ctx) {
228
232
  var unaryPrefixOperatorNotPlusMinus = ctx.UnaryPrefixOperatorNotPlusMinus // changed when moved to TS
229
- ? printer_utils_1.rejectAndJoin(" ", ctx.UnaryPrefixOperatorNotPlusMinus) // changed when moved to TS
233
+ ? (0, printer_utils_1.rejectAndJoin)(" ", ctx.UnaryPrefixOperatorNotPlusMinus) // changed when moved to TS
230
234
  : "";
231
235
  var primary = this.visit(ctx.primary);
232
236
  var unarySuffixOperator = ctx.UnarySuffixOperator // changed when moved to TS
233
- ? printer_utils_1.rejectAndJoin(" ", ctx.UnarySuffixOperator) // changed when moved to TS
237
+ ? (0, printer_utils_1.rejectAndJoin)(" ", ctx.UnarySuffixOperator) // changed when moved to TS
234
238
  : "";
235
- return printer_utils_1.rejectAndJoin(" ", [
239
+ return (0, printer_utils_1.rejectAndJoin)(" ", [
236
240
  unaryPrefixOperatorNotPlusMinus,
237
241
  primary,
238
242
  unarySuffixOperator
239
243
  ]);
240
244
  };
241
245
  ExpressionsPrettierVisitor.prototype.primary = function (ctx) {
242
- var countMethodInvocation = printer_utils_1.isUniqueMethodInvocation(ctx.primarySuffix);
246
+ var countMethodInvocation = (0, printer_utils_1.isUniqueMethodInvocation)(ctx.primarySuffix);
243
247
  var primaryPrefix = this.visit(ctx.primaryPrefix, {
244
248
  shouldBreakBeforeFirstMethodInvocation: countMethodInvocation > 1
245
249
  });
@@ -284,32 +288,32 @@ var ExpressionsPrettierVisitor = /** @class */ (function (_super) {
284
288
  }
285
289
  if (countMethodInvocation === 1 &&
286
290
  ctx.primaryPrefix[0].children.newExpression === undefined) {
287
- return prettier_builder_1.group(printer_utils_1.rejectAndConcat([
291
+ return (0, prettier_builder_1.group)((0, printer_utils_1.rejectAndConcat)([
288
292
  primaryPrefix,
289
- hasFirstInvocationArg ? suffixes[0] : prettier_builder_1.indent(suffixes[0]),
290
- prettier_builder_1.indent(printer_utils_1.rejectAndConcat(suffixes.slice(1)))
293
+ hasFirstInvocationArg ? suffixes[0] : (0, prettier_builder_1.indent)(suffixes[0]),
294
+ (0, prettier_builder_1.indent)((0, printer_utils_1.rejectAndConcat)(suffixes.slice(1)))
291
295
  ]));
292
296
  }
293
297
  }
294
- return prettier_builder_1.group(printer_utils_1.rejectAndConcat([primaryPrefix, prettier_builder_1.indent(printer_utils_1.rejectAndConcat(suffixes))]));
298
+ return (0, prettier_builder_1.group)((0, printer_utils_1.rejectAndConcat)([primaryPrefix, (0, prettier_builder_1.indent)((0, printer_utils_1.rejectAndConcat)(suffixes))]));
295
299
  };
296
300
  ExpressionsPrettierVisitor.prototype.primaryPrefix = function (ctx, params) {
297
301
  if (ctx.This || ctx.Void) {
298
- return format_comments_1.printTokenWithComments(this.getSingle(ctx));
302
+ return (0, format_comments_1.printTokenWithComments)(this.getSingle(ctx));
299
303
  }
300
304
  return this.visitSingle(ctx, params);
301
305
  };
302
306
  ExpressionsPrettierVisitor.prototype.primarySuffix = function (ctx, params) {
303
307
  if (ctx.Dot) {
304
308
  if (ctx.This) {
305
- return printer_utils_1.rejectAndConcat([ctx.Dot[0], ctx.This[0]]);
309
+ return (0, printer_utils_1.rejectAndConcat)([ctx.Dot[0], ctx.This[0]]);
306
310
  }
307
311
  else if (ctx.Identifier) {
308
312
  var typeArguments = this.visit(ctx.typeArguments);
309
- return printer_utils_1.rejectAndConcat([ctx.Dot[0], typeArguments, ctx.Identifier[0]]);
313
+ return (0, printer_utils_1.rejectAndConcat)([ctx.Dot[0], typeArguments, ctx.Identifier[0]]);
310
314
  }
311
315
  var unqualifiedClassInstanceCreationExpression = this.visit(ctx.unqualifiedClassInstanceCreationExpression);
312
- return printer_utils_1.rejectAndConcat([
316
+ return (0, printer_utils_1.rejectAndConcat)([
313
317
  ctx.Dot[0],
314
318
  unqualifiedClassInstanceCreationExpression
315
319
  ]);
@@ -326,22 +330,22 @@ var ExpressionsPrettierVisitor = /** @class */ (function (_super) {
326
330
  params.shouldBreakBeforeFirstMethodInvocation === true) {
327
331
  // when fqnOrRefType is a method call from an object
328
332
  if (isMethodInvocation) {
329
- return printer_utils_1.rejectAndConcat([
330
- prettier_builder_1.indent(printer_utils_1.rejectAndJoin(prettier_builder_1.concat([softline, dots[0]]), [
333
+ return (0, printer_utils_1.rejectAndConcat)([
334
+ (0, prettier_builder_1.indent)((0, printer_utils_1.rejectAndJoin)((0, prettier_builder_1.concat)([softline, dots[0]]), [
331
335
  fqnOrRefTypePartFirst,
332
- printer_utils_1.rejectAndJoinSeps(dots.slice(1), fqnOrRefTypePartRest),
336
+ (0, printer_utils_1.rejectAndJoinSeps)(dots.slice(1), fqnOrRefTypePartRest),
333
337
  dims
334
338
  ]))
335
339
  ]);
336
340
  // otherwise it is a fully qualified name but we need to exclude when it is just a method call
337
341
  }
338
342
  else if (ctx.Dot) {
339
- return prettier_builder_1.indent(printer_utils_1.rejectAndConcat([
340
- printer_utils_1.rejectAndJoinSeps(dots.slice(0, dots.length - 1), __spreadArray([
343
+ return (0, prettier_builder_1.indent)((0, printer_utils_1.rejectAndConcat)([
344
+ (0, printer_utils_1.rejectAndJoinSeps)(dots.slice(0, dots.length - 1), __spreadArray([
341
345
  fqnOrRefTypePartFirst
342
- ], fqnOrRefTypePartRest.slice(0, fqnOrRefTypePartRest.length - 1))),
346
+ ], fqnOrRefTypePartRest.slice(0, fqnOrRefTypePartRest.length - 1), true)),
343
347
  softline,
344
- printer_utils_1.rejectAndConcat([
348
+ (0, printer_utils_1.rejectAndConcat)([
345
349
  dots[dots.length - 1],
346
350
  fqnOrRefTypePartRest[fqnOrRefTypePartRest.length - 1]
347
351
  ]),
@@ -349,16 +353,16 @@ var ExpressionsPrettierVisitor = /** @class */ (function (_super) {
349
353
  ]));
350
354
  }
351
355
  }
352
- return printer_utils_1.rejectAndConcat([
353
- printer_utils_1.rejectAndJoinSeps(dots, __spreadArray([fqnOrRefTypePartFirst], fqnOrRefTypePartRest)),
356
+ return (0, printer_utils_1.rejectAndConcat)([
357
+ (0, printer_utils_1.rejectAndJoinSeps)(dots, __spreadArray([fqnOrRefTypePartFirst], fqnOrRefTypePartRest, true)),
354
358
  dims
355
359
  ]);
356
360
  };
357
361
  ExpressionsPrettierVisitor.prototype.fqnOrRefTypePartFirst = function (ctx) {
358
362
  var annotation = this.mapVisit(ctx.annotation);
359
363
  var fqnOrRefTypeCommon = this.visit(ctx.fqnOrRefTypePartCommon);
360
- return printer_utils_1.rejectAndJoin(" ", [
361
- printer_utils_1.rejectAndJoin(" ", annotation),
364
+ return (0, printer_utils_1.rejectAndJoin)(" ", [
365
+ (0, printer_utils_1.rejectAndJoin)(" ", annotation),
362
366
  fqnOrRefTypeCommon
363
367
  ]);
364
368
  };
@@ -366,9 +370,9 @@ var ExpressionsPrettierVisitor = /** @class */ (function (_super) {
366
370
  var annotation = this.mapVisit(ctx.annotation);
367
371
  var fqnOrRefTypeCommon = this.visit(ctx.fqnOrRefTypePartCommon);
368
372
  var typeArguments = this.visit(ctx.typeArguments);
369
- return printer_utils_1.rejectAndJoin(" ", [
370
- printer_utils_1.rejectAndJoin(" ", annotation),
371
- printer_utils_1.rejectAndConcat([typeArguments, fqnOrRefTypeCommon])
373
+ return (0, printer_utils_1.rejectAndJoin)(" ", [
374
+ (0, printer_utils_1.rejectAndJoin)(" ", annotation),
375
+ (0, printer_utils_1.rejectAndConcat)([typeArguments, fqnOrRefTypeCommon])
372
376
  ]);
373
377
  };
374
378
  ExpressionsPrettierVisitor.prototype.fqnOrRefTypePartCommon = function (ctx) {
@@ -380,11 +384,11 @@ var ExpressionsPrettierVisitor = /** @class */ (function (_super) {
380
384
  keyWord = ctx.Super[0];
381
385
  }
382
386
  var typeArguments = this.visit(ctx.typeArguments);
383
- return printer_utils_1.rejectAndConcat([keyWord, typeArguments]);
387
+ return (0, printer_utils_1.rejectAndConcat)([keyWord, typeArguments]);
384
388
  };
385
389
  ExpressionsPrettierVisitor.prototype.parenthesisExpression = function (ctx) {
386
390
  var expression = this.visit(ctx.expression);
387
- return printer_utils_1.putIntoBraces(expression, softline, ctx.LBrace[0], ctx.RBrace[0]);
391
+ return (0, printer_utils_1.putIntoBraces)(expression, softline, ctx.LBrace[0], ctx.RBrace[0]);
388
392
  };
389
393
  ExpressionsPrettierVisitor.prototype.castExpression = function (ctx) {
390
394
  return this.visitSingle(ctx);
@@ -392,20 +396,20 @@ var ExpressionsPrettierVisitor = /** @class */ (function (_super) {
392
396
  ExpressionsPrettierVisitor.prototype.primitiveCastExpression = function (ctx) {
393
397
  var primitiveType = this.visit(ctx.primitiveType);
394
398
  var unaryExpression = this.visit(ctx.unaryExpression);
395
- return printer_utils_1.rejectAndJoin(" ", [
396
- printer_utils_1.rejectAndConcat([ctx.LBrace[0], primitiveType, ctx.RBrace[0]]),
399
+ return (0, printer_utils_1.rejectAndJoin)(" ", [
400
+ (0, printer_utils_1.rejectAndConcat)([ctx.LBrace[0], primitiveType, ctx.RBrace[0]]),
397
401
  unaryExpression
398
402
  ]);
399
403
  };
400
404
  ExpressionsPrettierVisitor.prototype.referenceTypeCastExpression = function (ctx) {
401
405
  var referenceType = this.visit(ctx.referenceType);
402
406
  var hasAdditionalBounds = ctx.additionalBound !== undefined;
403
- var additionalBounds = printer_utils_1.rejectAndJoin(line, this.mapVisit(ctx.additionalBound));
407
+ var additionalBounds = (0, printer_utils_1.rejectAndJoin)(line, this.mapVisit(ctx.additionalBound));
404
408
  var expression = ctx.lambdaExpression
405
409
  ? this.visit(ctx.lambdaExpression)
406
410
  : this.visit(ctx.unaryExpressionNotPlusMinus);
407
- return printer_utils_1.rejectAndJoin(" ", [
408
- printer_utils_1.putIntoBraces(printer_utils_1.rejectAndJoin(line, [referenceType, additionalBounds]), hasAdditionalBounds ? softline : "", ctx.LBrace[0], ctx.RBrace[0]),
411
+ return (0, printer_utils_1.rejectAndJoin)(" ", [
412
+ (0, printer_utils_1.putIntoBraces)((0, printer_utils_1.rejectAndJoin)(line, [referenceType, additionalBounds]), hasAdditionalBounds ? softline : "", ctx.LBrace[0], ctx.RBrace[0]),
409
413
  expression
410
414
  ]);
411
415
  };
@@ -417,9 +421,9 @@ var ExpressionsPrettierVisitor = /** @class */ (function (_super) {
417
421
  var classOrInterfaceTypeToInstantiate = this.visit(ctx.classOrInterfaceTypeToInstantiate);
418
422
  var content = utils_2.printArgumentListWithBraces.call(this, ctx.argumentList, ctx.RBrace[0], ctx.LBrace[0]);
419
423
  var classBody = this.visit(ctx.classBody);
420
- return printer_utils_1.rejectAndJoin(" ", [
424
+ return (0, printer_utils_1.rejectAndJoin)(" ", [
421
425
  ctx.New[0],
422
- printer_utils_1.rejectAndConcat([
426
+ (0, printer_utils_1.rejectAndConcat)([
423
427
  typeArguments,
424
428
  classOrInterfaceTypeToInstantiate,
425
429
  content
@@ -429,23 +433,23 @@ var ExpressionsPrettierVisitor = /** @class */ (function (_super) {
429
433
  };
430
434
  ExpressionsPrettierVisitor.prototype.classOrInterfaceTypeToInstantiate = function (ctx) {
431
435
  var _this = this;
432
- var tokens = printer_utils_1.sortAnnotationIdentifier(ctx.annotation, ctx.Identifier);
436
+ var tokens = (0, printer_utils_1.sortAnnotationIdentifier)(ctx.annotation, ctx.Identifier);
433
437
  var segments = [];
434
438
  var currentSegment = [];
435
- forEach_1.default(tokens, function (token) {
436
- if (utils_1.isAnnotationCstNode(token)) {
439
+ (0, forEach_1.default)(tokens, function (token) {
440
+ if ((0, utils_1.isAnnotationCstNode)(token)) {
437
441
  currentSegment.push(_this.visit([token]));
438
442
  }
439
443
  else {
440
444
  currentSegment.push(token);
441
- segments.push(printer_utils_1.rejectAndJoin(" ", currentSegment));
445
+ segments.push((0, printer_utils_1.rejectAndJoin)(" ", currentSegment));
442
446
  currentSegment = [];
443
447
  }
444
448
  });
445
449
  var typeArgumentsOrDiamond = this.visit(ctx.typeArgumentsOrDiamond);
446
450
  var dots = ctx.Dot ? ctx.Dot : [];
447
- return printer_utils_1.rejectAndConcat([
448
- printer_utils_1.rejectAndJoinSeps(dots, segments),
451
+ return (0, printer_utils_1.rejectAndConcat)([
452
+ (0, printer_utils_1.rejectAndJoinSeps)(dots, segments),
449
453
  typeArgumentsOrDiamond
450
454
  ]);
451
455
  };
@@ -453,23 +457,23 @@ var ExpressionsPrettierVisitor = /** @class */ (function (_super) {
453
457
  return this.visitSingle(ctx);
454
458
  };
455
459
  ExpressionsPrettierVisitor.prototype.diamond = function (ctx) {
456
- return prettier_builder_1.concat([ctx.Less[0], ctx.Greater[0]]);
460
+ return (0, prettier_builder_1.concat)([ctx.Less[0], ctx.Greater[0]]);
457
461
  };
458
462
  ExpressionsPrettierVisitor.prototype.methodInvocationSuffix = function (ctx, params) {
459
- var isSingleLambda = expressions_utils_1.isArgumentListSingleLambda(ctx.argumentList);
463
+ var isSingleLambda = (0, expressions_utils_1.isArgumentListSingleLambda)(ctx.argumentList);
460
464
  if (isSingleLambda) {
461
465
  return utils_2.printSingleLambdaInvocation.call(this, ctx.argumentList, ctx.RBrace[0], ctx.LBrace[0]);
462
466
  }
463
467
  var argumentList = this.visit(ctx.argumentList);
464
468
  if (params && params.shouldDedent) {
465
- return prettier_builder_1.dedent(printer_utils_1.putIntoBraces(argumentList, softline, ctx.LBrace[0], ctx.RBrace[0]));
469
+ return (0, prettier_builder_1.dedent)((0, printer_utils_1.putIntoBraces)(argumentList, softline, ctx.LBrace[0], ctx.RBrace[0]));
466
470
  }
467
- return printer_utils_1.putIntoBraces(argumentList, softline, ctx.LBrace[0], ctx.RBrace[0]);
471
+ return (0, printer_utils_1.putIntoBraces)(argumentList, softline, ctx.LBrace[0], ctx.RBrace[0]);
468
472
  };
469
473
  ExpressionsPrettierVisitor.prototype.argumentList = function (ctx, params) {
470
474
  var expressions = this.mapVisit(ctx.expression, params);
471
- var commas = ctx.Comma ? ctx.Comma.map(function (elt) { return prettier_builder_1.concat([elt, line]); }) : [];
472
- return printer_utils_1.rejectAndJoinSeps(commas, expressions);
475
+ var commas = ctx.Comma ? ctx.Comma.map(function (elt) { return (0, prettier_builder_1.concat)([elt, line]); }) : [];
476
+ return (0, printer_utils_1.rejectAndJoinSeps)(commas, expressions);
473
477
  };
474
478
  ExpressionsPrettierVisitor.prototype.arrayCreationExpression = function (ctx) {
475
479
  var type = ctx.primitiveType
@@ -478,50 +482,68 @@ var ExpressionsPrettierVisitor = /** @class */ (function (_super) {
478
482
  var suffix = ctx.arrayCreationDefaultInitSuffix
479
483
  ? this.visit(ctx.arrayCreationDefaultInitSuffix)
480
484
  : this.visit(ctx.arrayCreationExplicitInitSuffix);
481
- return printer_utils_1.rejectAndConcat([prettier_builder_1.concat([ctx.New[0], " "]), type, suffix]);
485
+ return (0, printer_utils_1.rejectAndConcat)([(0, prettier_builder_1.concat)([ctx.New[0], " "]), type, suffix]);
482
486
  };
483
487
  ExpressionsPrettierVisitor.prototype.arrayCreationDefaultInitSuffix = function (ctx) {
484
488
  var dimExprs = this.visit(ctx.dimExprs);
485
489
  var dims = this.visit(ctx.dims);
486
- return printer_utils_1.rejectAndConcat([dimExprs, dims]);
490
+ return (0, printer_utils_1.rejectAndConcat)([dimExprs, dims]);
487
491
  };
488
492
  ExpressionsPrettierVisitor.prototype.arrayCreationExplicitInitSuffix = function (ctx) {
489
493
  var dims = this.visit(ctx.dims);
490
494
  var arrayInitializer = this.visit(ctx.arrayInitializer);
491
- return printer_utils_1.rejectAndJoin(" ", [dims, arrayInitializer]);
495
+ return (0, printer_utils_1.rejectAndJoin)(" ", [dims, arrayInitializer]);
492
496
  };
493
497
  ExpressionsPrettierVisitor.prototype.dimExprs = function (ctx) {
494
498
  var dimExpr = this.mapVisit(ctx.dimExpr);
495
- return printer_utils_1.rejectAndConcat(dimExpr);
499
+ return (0, printer_utils_1.rejectAndConcat)(dimExpr);
496
500
  };
497
501
  ExpressionsPrettierVisitor.prototype.dimExpr = function (ctx) {
498
502
  var annotations = this.mapVisit(ctx.annotation);
499
503
  var expression = this.visit(ctx.expression);
500
- return printer_utils_1.rejectAndJoin(" ", [
501
- printer_utils_1.rejectAndJoin(" ", annotations),
502
- printer_utils_1.rejectAndConcat([ctx.LSquare[0], expression, ctx.RSquare[0]])
504
+ return (0, printer_utils_1.rejectAndJoin)(" ", [
505
+ (0, printer_utils_1.rejectAndJoin)(" ", annotations),
506
+ (0, printer_utils_1.rejectAndConcat)([ctx.LSquare[0], expression, ctx.RSquare[0]])
503
507
  ]);
504
508
  };
505
509
  ExpressionsPrettierVisitor.prototype.classLiteralSuffix = function (ctx) {
506
510
  var squares = [];
507
511
  if (ctx.LSquare) {
508
512
  for (var i = 0; i < ctx.LSquare.length; i++) {
509
- squares.push(prettier_builder_1.concat([ctx.LSquare[i], ctx.RSquare[i]]));
513
+ squares.push((0, prettier_builder_1.concat)([ctx.LSquare[i], ctx.RSquare[i]]));
510
514
  }
511
515
  }
512
- return printer_utils_1.rejectAndConcat(__spreadArray(__spreadArray([], squares), [ctx.Dot[0], ctx.Class[0]]));
516
+ return (0, printer_utils_1.rejectAndConcat)(__spreadArray(__spreadArray([], squares, true), [ctx.Dot[0], ctx.Class[0]], false));
513
517
  };
514
518
  ExpressionsPrettierVisitor.prototype.arrayAccessSuffix = function (ctx) {
515
519
  var expression = this.visit(ctx.expression);
516
- return printer_utils_1.rejectAndConcat([ctx.LSquare[0], expression, ctx.RSquare[0]]);
520
+ return (0, printer_utils_1.rejectAndConcat)([ctx.LSquare[0], expression, ctx.RSquare[0]]);
517
521
  };
518
522
  ExpressionsPrettierVisitor.prototype.methodReferenceSuffix = function (ctx) {
519
523
  var typeArguments = this.visit(ctx.typeArguments);
520
524
  var identifierOrNew = ctx.New ? ctx.New[0] : ctx.Identifier[0];
521
- return printer_utils_1.rejectAndConcat([ctx.ColonColon[0], typeArguments, identifierOrNew]);
525
+ return (0, printer_utils_1.rejectAndConcat)([ctx.ColonColon[0], typeArguments, identifierOrNew]);
522
526
  };
523
527
  ExpressionsPrettierVisitor.prototype.pattern = function (ctx) {
524
- return this.visitSingle(ctx);
528
+ var primaryPattern = this.visit(ctx.primaryPattern);
529
+ if (ctx.AndAnd === undefined) {
530
+ return primaryPattern;
531
+ }
532
+ var binaryExpression = this.visit(ctx.binaryExpression);
533
+ return (0, printer_utils_1.rejectAndConcat)([
534
+ primaryPattern,
535
+ " ",
536
+ ctx.AndAnd[0],
537
+ line,
538
+ binaryExpression
539
+ ]);
540
+ };
541
+ ExpressionsPrettierVisitor.prototype.primaryPattern = function (ctx) {
542
+ if (ctx.LBrace === undefined) {
543
+ return this.visitSingle(ctx);
544
+ }
545
+ var pattern = this.visit(ctx.pattern);
546
+ return (0, printer_utils_1.putIntoBraces)(pattern, softline, ctx.LBrace[0], ctx.RBrace[0]);
525
547
  };
526
548
  ExpressionsPrettierVisitor.prototype.typePattern = function (ctx) {
527
549
  return this.visitSingle(ctx);
@@ -547,3 +569,4 @@ var ExpressionsPrettierVisitor = /** @class */ (function (_super) {
547
569
  return ExpressionsPrettierVisitor;
548
570
  }(base_cst_printer_1.BaseCstPrettierPrinter));
549
571
  exports.ExpressionsPrettierVisitor = ExpressionsPrettierVisitor;
572
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwcmVzc2lvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJpbnRlcnMvZXhwcmVzc2lvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFtRGIsMkRBQXFDO0FBRXJDLG9DQUF3QztBQUN4Qyx3REFBNkQ7QUFDN0Qsd0NBQXFEO0FBQ3JELGdFQUF3RTtBQUN4RSxrQ0FHa0I7QUFDbEIsOERBQW9FO0FBQ3BFLDhEQUE0RTtBQUM1RSx1REFBbUU7QUFDbkUsaURBYXlCO0FBR2pCLElBQUEsT0FBTyxHQUFvQyxjQUFRLFFBQTVDLEVBQUUsSUFBSSxHQUE4QixjQUFRLEtBQXRDLEVBQUUsUUFBUSxHQUFvQixjQUFRLFNBQTVCLEVBQUUsYUFBYSxHQUFLLGNBQVEsY0FBYixDQUFjO0FBRTVEO0lBQWdELDhDQUFzQjtJQUF0RTs7SUE0dEJBLENBQUM7SUEzdEJDLCtDQUFVLEdBQVYsVUFBVyxHQUFrQixFQUFFLE1BQVc7UUFDeEMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQscURBQWdCLEdBQWhCLFVBQ0UsR0FBd0IsRUFDeEIsTUFHQztRQUVELElBQU0sZ0JBQWdCLEdBQUcsSUFBQSx3QkFBSyxFQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsRUFDeEMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxNQUFNLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUM1RCxDQUFDO1FBQ0YsSUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFOUMsSUFBTSxrQkFBa0IsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FB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