@angular/compiler 19.0.0-next.0 → 19.0.0-next.10

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 (187) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1 -1
  3. package/fesm2022/compiler.mjs +5465 -4675
  4. package/fesm2022/compiler.mjs.map +1 -1
  5. package/index.d.ts +115 -15
  6. package/package.json +2 -4
  7. package/esm2022/compiler.mjs +0 -13
  8. package/esm2022/index.mjs +0 -13
  9. package/esm2022/public_api.mjs +0 -15
  10. package/esm2022/src/assertions.mjs +0 -31
  11. package/esm2022/src/chars.mjs +0 -90
  12. package/esm2022/src/compiler.mjs +0 -88
  13. package/esm2022/src/compiler_facade_interface.mjs +0 -29
  14. package/esm2022/src/config.mjs +0 -20
  15. package/esm2022/src/constant_pool.mjs +0 -285
  16. package/esm2022/src/core.mjs +0 -96
  17. package/esm2022/src/expression_parser/ast.mjs +0 -755
  18. package/esm2022/src/expression_parser/lexer.mjs +0 -421
  19. package/esm2022/src/expression_parser/parser.mjs +0 -1222
  20. package/esm2022/src/i18n/digest.mjs +0 -322
  21. package/esm2022/src/i18n/extractor_merger.mjs +0 -409
  22. package/esm2022/src/i18n/i18n_ast.mjs +0 -212
  23. package/esm2022/src/i18n/i18n_html_parser.mjs +0 -54
  24. package/esm2022/src/i18n/i18n_parser.mjs +0 -247
  25. package/esm2022/src/i18n/index.mjs +0 -16
  26. package/esm2022/src/i18n/message_bundle.mjs +0 -93
  27. package/esm2022/src/i18n/parse_util.mjs +0 -17
  28. package/esm2022/src/i18n/serializers/placeholder.mjs +0 -139
  29. package/esm2022/src/i18n/serializers/serializer.mjs +0 -77
  30. package/esm2022/src/i18n/serializers/xliff.mjs +0 -300
  31. package/esm2022/src/i18n/serializers/xliff2.mjs +0 -349
  32. package/esm2022/src/i18n/serializers/xmb.mjs +0 -188
  33. package/esm2022/src/i18n/serializers/xml_helper.mjs +0 -94
  34. package/esm2022/src/i18n/serializers/xtb.mjs +0 -186
  35. package/esm2022/src/i18n/translation_bundle.mjs +0 -164
  36. package/esm2022/src/injectable_compiler_2.mjs +0 -138
  37. package/esm2022/src/jit_compiler_facade.mjs +0 -681
  38. package/esm2022/src/ml_parser/ast.mjs +0 -167
  39. package/esm2022/src/ml_parser/defaults.mjs +0 -24
  40. package/esm2022/src/ml_parser/entities.mjs +0 -2144
  41. package/esm2022/src/ml_parser/html_parser.mjs +0 -18
  42. package/esm2022/src/ml_parser/html_tags.mjs +0 -156
  43. package/esm2022/src/ml_parser/html_whitespaces.mjs +0 -107
  44. package/esm2022/src/ml_parser/icu_ast_expander.mjs +0 -125
  45. package/esm2022/src/ml_parser/lexer.mjs +0 -1210
  46. package/esm2022/src/ml_parser/parser.mjs +0 -539
  47. package/esm2022/src/ml_parser/tags.mjs +0 -47
  48. package/esm2022/src/ml_parser/tokens.mjs +0 -9
  49. package/esm2022/src/ml_parser/xml_parser.mjs +0 -19
  50. package/esm2022/src/ml_parser/xml_tags.mjs +0 -32
  51. package/esm2022/src/output/abstract_emitter.mjs +0 -524
  52. package/esm2022/src/output/abstract_js_emitter.mjs +0 -130
  53. package/esm2022/src/output/map_util.mjs +0 -19
  54. package/esm2022/src/output/output_ast.mjs +0 -1301
  55. package/esm2022/src/output/output_jit.mjs +0 -138
  56. package/esm2022/src/output/output_jit_trusted_types.mjs +0 -100
  57. package/esm2022/src/output/source_map.mjs +0 -150
  58. package/esm2022/src/parse_util.mjs +0 -198
  59. package/esm2022/src/render3/partial/api.mjs +0 -9
  60. package/esm2022/src/render3/partial/class_metadata.mjs +0 -52
  61. package/esm2022/src/render3/partial/component.mjs +0 -197
  62. package/esm2022/src/render3/partial/directive.mjs +0 -264
  63. package/esm2022/src/render3/partial/factory.mjs +0 -35
  64. package/esm2022/src/render3/partial/injectable.mjs +0 -67
  65. package/esm2022/src/render3/partial/injector.mjs +0 -41
  66. package/esm2022/src/render3/partial/ng_module.mjs +0 -63
  67. package/esm2022/src/render3/partial/pipe.mjs +0 -50
  68. package/esm2022/src/render3/partial/util.mjs +0 -79
  69. package/esm2022/src/render3/r3_ast.mjs +0 -493
  70. package/esm2022/src/render3/r3_class_debug_info_compiler.mjs +0 -35
  71. package/esm2022/src/render3/r3_class_metadata_compiler.mjs +0 -92
  72. package/esm2022/src/render3/r3_control_flow.mjs +0 -421
  73. package/esm2022/src/render3/r3_deferred_blocks.mjs +0 -170
  74. package/esm2022/src/render3/r3_deferred_triggers.mjs +0 -316
  75. package/esm2022/src/render3/r3_factory.mjs +0 -200
  76. package/esm2022/src/render3/r3_identifiers.mjs +0 -480
  77. package/esm2022/src/render3/r3_injector_compiler.mjs +0 -28
  78. package/esm2022/src/render3/r3_jit.mjs +0 -29
  79. package/esm2022/src/render3/r3_module_compiler.mjs +0 -211
  80. package/esm2022/src/render3/r3_pipe_compiler.mjs +0 -35
  81. package/esm2022/src/render3/r3_template_transform.mjs +0 -560
  82. package/esm2022/src/render3/util.mjs +0 -90
  83. package/esm2022/src/render3/view/api.mjs +0 -14
  84. package/esm2022/src/render3/view/compiler.mjs +0 -546
  85. package/esm2022/src/render3/view/i18n/get_msg_utils.mjs +0 -113
  86. package/esm2022/src/render3/view/i18n/icu_serializer.mjs +0 -43
  87. package/esm2022/src/render3/view/i18n/localize_utils.mjs +0 -118
  88. package/esm2022/src/render3/view/i18n/meta.mjs +0 -259
  89. package/esm2022/src/render3/view/i18n/util.mjs +0 -70
  90. package/esm2022/src/render3/view/query_generation.mjs +0 -182
  91. package/esm2022/src/render3/view/t2_api.mjs +0 -9
  92. package/esm2022/src/render3/view/t2_binder.mjs +0 -823
  93. package/esm2022/src/render3/view/template.mjs +0 -113
  94. package/esm2022/src/render3/view/util.mjs +0 -192
  95. package/esm2022/src/resource_loader.mjs +0 -17
  96. package/esm2022/src/schema/dom_element_schema_registry.mjs +0 -471
  97. package/esm2022/src/schema/dom_security_schema.mjs +0 -96
  98. package/esm2022/src/schema/element_schema_registry.mjs +0 -10
  99. package/esm2022/src/schema/trusted_types_sinks.mjs +0 -41
  100. package/esm2022/src/selector.mjs +0 -400
  101. package/esm2022/src/shadow_css.mjs +0 -1053
  102. package/esm2022/src/style_url_resolver.mjs +0 -17
  103. package/esm2022/src/template/pipeline/ir/index.mjs +0 -18
  104. package/esm2022/src/template/pipeline/ir/src/enums.mjs +0 -503
  105. package/esm2022/src/template/pipeline/ir/src/expression.mjs +0 -997
  106. package/esm2022/src/template/pipeline/ir/src/handle.mjs +0 -13
  107. package/esm2022/src/template/pipeline/ir/src/operations.mjs +0 -261
  108. package/esm2022/src/template/pipeline/ir/src/ops/create.mjs +0 -405
  109. package/esm2022/src/template/pipeline/ir/src/ops/host.mjs +0 -25
  110. package/esm2022/src/template/pipeline/ir/src/ops/shared.mjs +0 -43
  111. package/esm2022/src/template/pipeline/ir/src/ops/update.mjs +0 -277
  112. package/esm2022/src/template/pipeline/ir/src/traits.mjs +0 -64
  113. package/esm2022/src/template/pipeline/ir/src/variable.mjs +0 -13
  114. package/esm2022/src/template/pipeline/src/compilation.mjs +0 -194
  115. package/esm2022/src/template/pipeline/src/conversion.mjs +0 -64
  116. package/esm2022/src/template/pipeline/src/emit.mjs +0 -238
  117. package/esm2022/src/template/pipeline/src/ingest.mjs +0 -1058
  118. package/esm2022/src/template/pipeline/src/instruction.mjs +0 -564
  119. package/esm2022/src/template/pipeline/src/phases/any_cast.mjs +0 -32
  120. package/esm2022/src/template/pipeline/src/phases/apply_i18n_expressions.mjs +0 -63
  121. package/esm2022/src/template/pipeline/src/phases/assign_i18n_slot_dependencies.mjs +0 -63
  122. package/esm2022/src/template/pipeline/src/phases/attribute_extraction.mjs +0 -138
  123. package/esm2022/src/template/pipeline/src/phases/binding_specialization.mjs +0 -75
  124. package/esm2022/src/template/pipeline/src/phases/chaining.mjs +0 -112
  125. package/esm2022/src/template/pipeline/src/phases/collapse_singleton_interpolations.mjs +0 -32
  126. package/esm2022/src/template/pipeline/src/phases/conditionals.mjs +0 -58
  127. package/esm2022/src/template/pipeline/src/phases/const_collection.mjs +0 -214
  128. package/esm2022/src/template/pipeline/src/phases/convert_i18n_bindings.mjs +0 -52
  129. package/esm2022/src/template/pipeline/src/phases/create_i18n_contexts.mjs +0 -105
  130. package/esm2022/src/template/pipeline/src/phases/deduplicate_text_bindings.mjs +0 -40
  131. package/esm2022/src/template/pipeline/src/phases/defer_configs.mjs +0 -29
  132. package/esm2022/src/template/pipeline/src/phases/defer_resolve_targets.mjs +0 -113
  133. package/esm2022/src/template/pipeline/src/phases/empty_elements.mjs +0 -47
  134. package/esm2022/src/template/pipeline/src/phases/expand_safe_reads.mjs +0 -192
  135. package/esm2022/src/template/pipeline/src/phases/extract_i18n_messages.mjs +0 -218
  136. package/esm2022/src/template/pipeline/src/phases/generate_advance.mjs +0 -66
  137. package/esm2022/src/template/pipeline/src/phases/generate_local_let_references.mjs +0 -29
  138. package/esm2022/src/template/pipeline/src/phases/generate_projection_def.mjs +0 -46
  139. package/esm2022/src/template/pipeline/src/phases/generate_variables.mjs +0 -170
  140. package/esm2022/src/template/pipeline/src/phases/has_const_expression_collection.mjs +0 -28
  141. package/esm2022/src/template/pipeline/src/phases/host_style_property_parsing.mjs +0 -81
  142. package/esm2022/src/template/pipeline/src/phases/i18n_const_collection.mjs +0 -309
  143. package/esm2022/src/template/pipeline/src/phases/i18n_text_extraction.mjs +0 -97
  144. package/esm2022/src/template/pipeline/src/phases/local_refs.mjs +0 -43
  145. package/esm2022/src/template/pipeline/src/phases/namespace.mjs +0 -26
  146. package/esm2022/src/template/pipeline/src/phases/naming.mjs +0 -179
  147. package/esm2022/src/template/pipeline/src/phases/next_context_merging.mjs +0 -75
  148. package/esm2022/src/template/pipeline/src/phases/ng_container.mjs +0 -29
  149. package/esm2022/src/template/pipeline/src/phases/nonbindable.mjs +0 -47
  150. package/esm2022/src/template/pipeline/src/phases/nullish_coalescing.mjs +0 -33
  151. package/esm2022/src/template/pipeline/src/phases/ordering.mjs +0 -140
  152. package/esm2022/src/template/pipeline/src/phases/parse_extracted_styles.mjs +0 -137
  153. package/esm2022/src/template/pipeline/src/phases/phase_remove_content_selectors.mjs +0 -42
  154. package/esm2022/src/template/pipeline/src/phases/pipe_creation.mjs +0 -74
  155. package/esm2022/src/template/pipeline/src/phases/pipe_variadic.mjs +0 -30
  156. package/esm2022/src/template/pipeline/src/phases/propagate_i18n_blocks.mjs +0 -81
  157. package/esm2022/src/template/pipeline/src/phases/pure_function_extraction.mjs +0 -55
  158. package/esm2022/src/template/pipeline/src/phases/pure_literal_structures.mjs +0 -58
  159. package/esm2022/src/template/pipeline/src/phases/reify.mjs +0 -433
  160. package/esm2022/src/template/pipeline/src/phases/remove_empty_bindings.mjs +0 -31
  161. package/esm2022/src/template/pipeline/src/phases/remove_i18n_contexts.mjs +0 -27
  162. package/esm2022/src/template/pipeline/src/phases/remove_illegal_let_references.mjs +0 -36
  163. package/esm2022/src/template/pipeline/src/phases/remove_unused_i18n_attrs.mjs +0 -33
  164. package/esm2022/src/template/pipeline/src/phases/resolve_contexts.mjs +0 -60
  165. package/esm2022/src/template/pipeline/src/phases/resolve_defer_deps_fns.mjs +0 -31
  166. package/esm2022/src/template/pipeline/src/phases/resolve_dollar_event.mjs +0 -36
  167. package/esm2022/src/template/pipeline/src/phases/resolve_i18n_element_placeholders.mjs +0 -266
  168. package/esm2022/src/template/pipeline/src/phases/resolve_i18n_expression_placeholders.mjs +0 -70
  169. package/esm2022/src/template/pipeline/src/phases/resolve_names.mjs +0 -124
  170. package/esm2022/src/template/pipeline/src/phases/resolve_sanitizers.mjs +0 -123
  171. package/esm2022/src/template/pipeline/src/phases/save_restore_view.mjs +0 -64
  172. package/esm2022/src/template/pipeline/src/phases/slot_allocation.mjs +0 -62
  173. package/esm2022/src/template/pipeline/src/phases/store_let_optimization.mjs +0 -35
  174. package/esm2022/src/template/pipeline/src/phases/style_binding_specialization.mjs +0 -42
  175. package/esm2022/src/template/pipeline/src/phases/temporary_variables.mjs +0 -87
  176. package/esm2022/src/template/pipeline/src/phases/track_fn_generation.mjs +0 -52
  177. package/esm2022/src/template/pipeline/src/phases/track_fn_optimization.mjs +0 -88
  178. package/esm2022/src/template/pipeline/src/phases/track_variables.mjs +0 -36
  179. package/esm2022/src/template/pipeline/src/phases/transform_two_way_binding_set.mjs +0 -43
  180. package/esm2022/src/template/pipeline/src/phases/var_counting.mjs +0 -155
  181. package/esm2022/src/template/pipeline/src/phases/variable_optimization.mjs +0 -423
  182. package/esm2022/src/template/pipeline/src/phases/wrap_icus.mjs +0 -41
  183. package/esm2022/src/template/pipeline/src/util/elements.mjs +0 -29
  184. package/esm2022/src/template_parser/binding_parser.mjs +0 -465
  185. package/esm2022/src/template_parser/template_preparser.mjs +0 -84
  186. package/esm2022/src/util.mjs +0 -124
  187. package/esm2022/src/version.mjs +0 -15
@@ -1,277 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- import { OpKind, } from '../enums';
9
- import { TRAIT_CONSUMES_VARS, TRAIT_DEPENDS_ON_SLOT_CONTEXT, } from '../traits';
10
- import { NEW_OP } from './shared';
11
- /**
12
- * Create an `InterpolationTextOp`.
13
- */
14
- export function createInterpolateTextOp(xref, interpolation, sourceSpan) {
15
- return {
16
- kind: OpKind.InterpolateText,
17
- target: xref,
18
- interpolation,
19
- sourceSpan,
20
- ...TRAIT_DEPENDS_ON_SLOT_CONTEXT,
21
- ...TRAIT_CONSUMES_VARS,
22
- ...NEW_OP,
23
- };
24
- }
25
- export class Interpolation {
26
- constructor(strings, expressions, i18nPlaceholders) {
27
- this.strings = strings;
28
- this.expressions = expressions;
29
- this.i18nPlaceholders = i18nPlaceholders;
30
- if (i18nPlaceholders.length !== 0 && i18nPlaceholders.length !== expressions.length) {
31
- throw new Error(`Expected ${expressions.length} placeholders to match interpolation expression count, but got ${i18nPlaceholders.length}`);
32
- }
33
- }
34
- }
35
- /**
36
- * Create a `BindingOp`, not yet transformed into a particular type of binding.
37
- */
38
- export function createBindingOp(target, kind, name, expression, unit, securityContext, isTextAttribute, isStructuralTemplateAttribute, templateKind, i18nMessage, sourceSpan) {
39
- return {
40
- kind: OpKind.Binding,
41
- bindingKind: kind,
42
- target,
43
- name,
44
- expression,
45
- unit,
46
- securityContext,
47
- isTextAttribute,
48
- isStructuralTemplateAttribute,
49
- templateKind,
50
- i18nContext: null,
51
- i18nMessage,
52
- sourceSpan,
53
- ...NEW_OP,
54
- };
55
- }
56
- /**
57
- * Create a `PropertyOp`.
58
- */
59
- export function createPropertyOp(target, name, expression, isAnimationTrigger, securityContext, isStructuralTemplateAttribute, templateKind, i18nContext, i18nMessage, sourceSpan) {
60
- return {
61
- kind: OpKind.Property,
62
- target,
63
- name,
64
- expression,
65
- isAnimationTrigger,
66
- securityContext,
67
- sanitizer: null,
68
- isStructuralTemplateAttribute,
69
- templateKind,
70
- i18nContext,
71
- i18nMessage,
72
- sourceSpan,
73
- ...TRAIT_DEPENDS_ON_SLOT_CONTEXT,
74
- ...TRAIT_CONSUMES_VARS,
75
- ...NEW_OP,
76
- };
77
- }
78
- /**
79
- * Create a `TwoWayPropertyOp`.
80
- */
81
- export function createTwoWayPropertyOp(target, name, expression, securityContext, isStructuralTemplateAttribute, templateKind, i18nContext, i18nMessage, sourceSpan) {
82
- return {
83
- kind: OpKind.TwoWayProperty,
84
- target,
85
- name,
86
- expression,
87
- securityContext,
88
- sanitizer: null,
89
- isStructuralTemplateAttribute,
90
- templateKind,
91
- i18nContext,
92
- i18nMessage,
93
- sourceSpan,
94
- ...TRAIT_DEPENDS_ON_SLOT_CONTEXT,
95
- ...TRAIT_CONSUMES_VARS,
96
- ...NEW_OP,
97
- };
98
- }
99
- /** Create a `StylePropOp`. */
100
- export function createStylePropOp(xref, name, expression, unit, sourceSpan) {
101
- return {
102
- kind: OpKind.StyleProp,
103
- target: xref,
104
- name,
105
- expression,
106
- unit,
107
- sourceSpan,
108
- ...TRAIT_DEPENDS_ON_SLOT_CONTEXT,
109
- ...TRAIT_CONSUMES_VARS,
110
- ...NEW_OP,
111
- };
112
- }
113
- /**
114
- * Create a `ClassPropOp`.
115
- */
116
- export function createClassPropOp(xref, name, expression, sourceSpan) {
117
- return {
118
- kind: OpKind.ClassProp,
119
- target: xref,
120
- name,
121
- expression,
122
- sourceSpan,
123
- ...TRAIT_DEPENDS_ON_SLOT_CONTEXT,
124
- ...TRAIT_CONSUMES_VARS,
125
- ...NEW_OP,
126
- };
127
- }
128
- /** Create a `StyleMapOp`. */
129
- export function createStyleMapOp(xref, expression, sourceSpan) {
130
- return {
131
- kind: OpKind.StyleMap,
132
- target: xref,
133
- expression,
134
- sourceSpan,
135
- ...TRAIT_DEPENDS_ON_SLOT_CONTEXT,
136
- ...TRAIT_CONSUMES_VARS,
137
- ...NEW_OP,
138
- };
139
- }
140
- /**
141
- * Create a `ClassMapOp`.
142
- */
143
- export function createClassMapOp(xref, expression, sourceSpan) {
144
- return {
145
- kind: OpKind.ClassMap,
146
- target: xref,
147
- expression,
148
- sourceSpan,
149
- ...TRAIT_DEPENDS_ON_SLOT_CONTEXT,
150
- ...TRAIT_CONSUMES_VARS,
151
- ...NEW_OP,
152
- };
153
- }
154
- /**
155
- * Create an `AttributeOp`.
156
- */
157
- export function createAttributeOp(target, namespace, name, expression, securityContext, isTextAttribute, isStructuralTemplateAttribute, templateKind, i18nMessage, sourceSpan) {
158
- return {
159
- kind: OpKind.Attribute,
160
- target,
161
- namespace,
162
- name,
163
- expression,
164
- securityContext,
165
- sanitizer: null,
166
- isTextAttribute,
167
- isStructuralTemplateAttribute,
168
- templateKind,
169
- i18nContext: null,
170
- i18nMessage,
171
- sourceSpan,
172
- ...TRAIT_DEPENDS_ON_SLOT_CONTEXT,
173
- ...TRAIT_CONSUMES_VARS,
174
- ...NEW_OP,
175
- };
176
- }
177
- /**
178
- * Create an `AdvanceOp`.
179
- */
180
- export function createAdvanceOp(delta, sourceSpan) {
181
- return {
182
- kind: OpKind.Advance,
183
- delta,
184
- sourceSpan,
185
- ...NEW_OP,
186
- };
187
- }
188
- /**
189
- * Create a conditional op, which will display an embedded view according to a condtion.
190
- */
191
- export function createConditionalOp(target, test, conditions, sourceSpan) {
192
- return {
193
- kind: OpKind.Conditional,
194
- target,
195
- test,
196
- conditions,
197
- processed: null,
198
- sourceSpan,
199
- contextValue: null,
200
- ...NEW_OP,
201
- ...TRAIT_DEPENDS_ON_SLOT_CONTEXT,
202
- ...TRAIT_CONSUMES_VARS,
203
- };
204
- }
205
- export function createRepeaterOp(repeaterCreate, targetSlot, collection, sourceSpan) {
206
- return {
207
- kind: OpKind.Repeater,
208
- target: repeaterCreate,
209
- targetSlot,
210
- collection,
211
- sourceSpan,
212
- ...NEW_OP,
213
- ...TRAIT_DEPENDS_ON_SLOT_CONTEXT,
214
- };
215
- }
216
- export function createDeferWhenOp(target, expr, prefetch, sourceSpan) {
217
- return {
218
- kind: OpKind.DeferWhen,
219
- target,
220
- expr,
221
- prefetch,
222
- sourceSpan,
223
- ...NEW_OP,
224
- ...TRAIT_DEPENDS_ON_SLOT_CONTEXT,
225
- ...TRAIT_CONSUMES_VARS,
226
- };
227
- }
228
- /**
229
- * Create an i18n expression op.
230
- */
231
- export function createI18nExpressionOp(context, target, i18nOwner, handle, expression, icuPlaceholder, i18nPlaceholder, resolutionTime, usage, name, sourceSpan) {
232
- return {
233
- kind: OpKind.I18nExpression,
234
- context,
235
- target,
236
- i18nOwner,
237
- handle,
238
- expression,
239
- icuPlaceholder,
240
- i18nPlaceholder,
241
- resolutionTime,
242
- usage,
243
- name,
244
- sourceSpan,
245
- ...NEW_OP,
246
- ...TRAIT_CONSUMES_VARS,
247
- ...TRAIT_DEPENDS_ON_SLOT_CONTEXT,
248
- };
249
- }
250
- /**
251
- * Creates an op to apply i18n expression ops.
252
- */
253
- export function createI18nApplyOp(owner, handle, sourceSpan) {
254
- return {
255
- kind: OpKind.I18nApply,
256
- owner,
257
- handle,
258
- sourceSpan,
259
- ...NEW_OP,
260
- };
261
- }
262
- /**
263
- * Creates a `StoreLetOp`.
264
- */
265
- export function createStoreLetOp(target, declaredName, value, sourceSpan) {
266
- return {
267
- kind: OpKind.StoreLet,
268
- target,
269
- declaredName,
270
- value,
271
- sourceSpan,
272
- ...TRAIT_DEPENDS_ON_SLOT_CONTEXT,
273
- ...TRAIT_CONSUMES_VARS,
274
- ...NEW_OP,
275
- };
276
- }
277
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXIvc3JjL3RlbXBsYXRlL3BpcGVsaW5lL2lyL3NyYy9vcHMvdXBkYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQU1ILE9BQU8sRUFJTCxNQUFNLEdBRVAsTUFBTSxVQUFVLENBQUM7QUFJbEIsT0FBTyxFQUdMLG1CQUFtQixFQUNuQiw2QkFBNkIsR0FDOUIsTUFBTSxXQUFXLENBQUM7QUFFbkIsT0FBTyxFQUFZLE1BQU0sRUFBMEIsTUFBTSxVQUFVLENBQUM7QUFrRHBFOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QixDQUNyQyxJQUFZLEVBQ1osYUFBNEIsRUFDNUIsVUFBMkI7SUFFM0IsT0FBTztRQUNMLElBQUksRUFBRSxNQUFNLENBQUMsZUFBZTtRQUM1QixNQUFNLEVBQUUsSUFBSTtRQUNaLGFBQWE7UUFDYixVQUFVO1FBQ1YsR0FBRyw2QkFBNkI7UUFDaEMsR0FBRyxtQkFBbUI7UUFDdEIsR0FBRyxNQUFNO0tBQ1YsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLE9BQU8sYUFBYTtJQUN4QixZQUNXLE9BQWlCLEVBQ2pCLFdBQTJCLEVBQzNCLGdCQUEwQjtRQUYxQixZQUFPLEdBQVAsT0FBTyxDQUFVO1FBQ2pCLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUMzQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQVU7UUFFbkMsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLGdCQUFnQixDQUFDLE1BQU0sS0FBSyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDcEYsTUFBTSxJQUFJLEtBQUssQ0FDYixZQUFZLFdBQVcsQ0FBQyxNQUFNLGtFQUFrRSxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FDMUgsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0NB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TUFBTTtRQUNOLFVBQVU7UUFDVixjQUFjO1FBQ2QsZUFBZTtRQUNmLGNBQWM7UUFDZCxLQUFLO1FBQ0wsSUFBSTtRQUNKLFVBQVU7UUFDVixHQUFHLE1BQU07UUFDVCxHQUFHLG1CQUFtQjtRQUN0QixHQUFHLDZCQUE2QjtLQUNqQyxDQUFDO0FBQ0osQ0FBQztBQXlCRDs7R0FFRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsS0FBYSxFQUNiLE1BQWtCLEVBQ2xCLFVBQTJCO0lBRTNCLE9BQU87UUFDTCxJQUFJLEVBQUUsTUFBTSxDQUFDLFNBQVM7UUFDdEIsS0FBSztRQUNMLE1BQU07UUFDTixVQUFVO1FBQ1YsR0FBRyxNQUFNO0tBQ1YsQ0FBQztBQUNKLENBQUM7QUFtQkQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLE1BQWMsRUFDZCxZQUFvQixFQUNwQixLQUFtQixFQUNuQixVQUEyQjtJQUUzQixPQUFPO1FBQ0wsSUFBSSxFQUFFLE1BQU0sQ0FBQyxRQUFRO1FBQ3JCLE1BQU07UUFDTixZQUFZO1FBQ1osS0FBSztRQUNMLFVBQVU7UUFDVixHQUFHLDZCQUE2QjtRQUNoQyxHQUFHLG1CQUFtQjtRQUN0QixHQUFHLE1BQU07S0FDVixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge1NlY3VyaXR5Q29udGV4dH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29yZSc7XG5pbXBvcnQgKiBhcyBpMThuIGZyb20gJy4uLy4uLy4uLy4uLy4uL2kxOG4vaTE4bl9hc3QnO1xuaW1wb3J0ICogYXMgbyBmcm9tICcuLi8uLi8uLi8uLi8uLi9vdXRwdXQvb3V0cHV0X2FzdCc7XG5pbXBvcnQge1BhcnNlU291cmNlU3Bhbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vcGFyc2VfdXRpbCc7XG5pbXBvcnQge1xuICBCaW5kaW5nS2luZCxcbiAgSTE4bkV4cHJlc3Npb25Gb3IsXG4gIEkxOG5QYXJhbVJlc29sdXRpb25UaW1lLFxuICBPcEtpbmQsXG4gIFRlbXBsYXRlS2luZCxcbn0gZnJvbSAnLi4vZW51bXMnO1xuaW1wb3J0IHR5cGUge0NvbmRpdGlvbmFsQ2FzZUV4cHJ9IGZyb20gJy4uL2V4cHJlc3Npb24nO1xuaW1wb3J0IHtTbG90SGFuZGxlfSBmcm9tICcuLi9oYW5kbGUnO1xuaW1wb3J0IHtPcCwgWHJlZklkfSBmcm9tICcuLi9vcGVyYXRpb25zJztcbmltcG9ydCB7XG4gIENvbnN1bWVzVmFyc1RyYWl0LFxuICBEZXBlbmRzT25TbG90Q29udGV4dE9wVHJhaXQsXG4gIFRSQUlUX0NPTlNVTUVTX1ZBUlMsXG4gIFRSQUlUX0RFUEVORFNfT05fU0xPVF9DT05URVhULFxufSBmcm9tICcuLi90cmFpdHMnO1xuaW1wb3J0IHR5cGUge0hvc3RQcm9wZXJ0eU9wfSBmcm9tICcuL2hvc3QnO1xuaW1wb3J0IHtMaXN0RW5kT3AsIE5FV19PUCwgU3RhdGVtZW50T3AsIFZhcmlhYmxlT3B9IGZyb20gJy4vc2hhcmVkJztcblxuLyoqXG4gKiBBbiBvcGVyYXRpb24gdXNhYmxlIG9uIHRoZSB1cGRhdGUgc2lkZSBvZiB0aGUgSVIuXG4gKi9cbmV4cG9ydCB0eXBlIFVwZGF0ZU9wID1cbiAgfCBMaXN0RW5kT3A8VXBkYXRlT3A+XG4gIHwgU3RhdGVtZW50T3A8VXBkYXRlT3A+XG4gIHwgUHJvcGVydHlPcFxuICB8IFR3b1dheVByb3BlcnR5T3BcbiAgfCBBdHRyaWJ1dGVPcFxuICB8IFN0eWxlUHJvcE9wXG4gIHwgQ2xhc3NQcm9wT3BcbiAgfCBTdHlsZU1hcE9wXG4gIHwgQ2xhc3NNYXBPcFxuICB8IEludGVycG9sYXRlVGV4dE9wXG4gIHwgQWR2YW5jZU9wXG4gIHwgVmFyaWFibGVPcDxVcGRhdGVPcD5cbiAgfCBCaW5kaW5nT3BcbiAgfCBIb3N0UHJvcGVydHlPcFxuICB8IENvbmRpdGlvbmFsT3BcbiAgfCBJMThuRXhwcmVzc2lvbk9wXG4gIHwgSTE4bkFwcGx5T3BcbiAgfCBSZXBlYXRlck9wXG4gIHwgRGVmZXJXaGVuT3BcbiAgfCBTdG9yZUxldE9wO1xuXG4vKipcbiAqIEEgbG9naWNhbCBvcGVyYXRpb24gdG8gcGVyZm9ybSBzdHJpbmcgaW50ZXJwb2xhdGlvbiBvbiBhIHRleHQgbm9kZS5cbiAqXG4gKiBJbnRlcnBvbGF0aW9uIGlucHV0cyBhcmUgc3RvcmVkIGFzIHN0YXRpYyBgc3RyaW5nYHMgYW5kIGR5bmFtaWMgYG8uRXhwcmVzc2lvbmBzLCBpbiBzZXBhcmF0ZVxuICogYXJyYXlzLiBUaHVzLCB0aGUgaW50ZXJwb2xhdGlvbiBgQXt7Yn19Q3t7ZH19RWAgaXMgc3RvcmVkIGFzIDMgc3RhdGljIHN0cmluZ3MgYFsnQScsICdDJywgJ0UnXWBcbiAqIGFuZCAyIGR5bmFtaWMgZXhwcmVzc2lvbnMgYFtiLCBkXWAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZXJwb2xhdGVUZXh0T3AgZXh0ZW5kcyBPcDxVcGRhdGVPcD4sIENvbnN1bWVzVmFyc1RyYWl0IHtcbiAga2luZDogT3BLaW5kLkludGVycG9sYXRlVGV4dDtcblxuICAvKipcbiAgICogUmVmZXJlbmNlIHRvIHRoZSB0ZXh0IG5vZGUgdG8gd2hpY2ggdGhlIGludGVycG9sYXRpb24gaXMgYm91bmQuXG4gICAqL1xuICB0YXJnZXQ6IFhyZWZJZDtcblxuICAvKipcbiAgICogVGhlIGludGVycG9sYXRlZCB2YWx1ZS5cbiAgICovXG4gIGludGVycG9sYXRpb246IEludGVycG9sYXRpb247XG5cbiAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhbiBgSW50ZXJwb2xhdGlvblRleHRPcGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVJbnRlcnBvbGF0ZVRleHRPcChcbiAgeHJlZjogWHJlZklkLFxuICBpbnRlcnBvbGF0aW9uOiBJbnRlcnBvbGF0aW9uLFxuICBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW4sXG4pOiBJbnRlcnBvbGF0ZVRleHRPcCB7XG4gIHJldHVybiB7XG4gICAga2luZDogT3BLaW5kLkludGVycG9sYXRlVGV4dCxcbiAgICB0YXJnZXQ6IHhyZWYsXG4gICAgaW50ZXJwb2xhdGlvbixcbiAgICBzb3VyY2VTcGFuLFxuICAgIC4uLlRSQUlUX0RFUEVORFNfT05fU0xPVF9DT05URVhULFxuICAgIC4uLlRSQUlUX0NPTlNVTUVTX1ZBUlMsXG4gICAgLi4uTkVXX09QLFxuICB9O1xufVxuXG5leHBvcnQgY2xhc3MgSW50ZXJwb2xhdGlvbiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHJlYWRvbmx5IHN0cmluZ3M6IHN0cmluZ1tdLFxuICAgIHJlYWRvbmx5IGV4cHJlc3Npb25zOiBvLkV4cHJlc3Npb25bXSxcbiAgICByZWFkb25seSBpMThuUGxhY2Vob2xkZXJzOiBzdHJpbmdbXSxcbiAgKSB7XG4gICAgaWYgKGkxOG5QbGFjZWhvbGRlcnMubGVuZ3RoICE9PSAwICYmIGkxOG5QbGFjZWhvbGRlcnMubGVuZ3RoICE9PSBleHByZXNzaW9ucy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEV4cGVjdGVkICR7ZXhwcmVzc2lvbnMubGVuZ3RofSBwbGFjZWhvbGRlcnMgdG8gbWF0Y2ggaW50ZXJwb2xhdGlvbiBleHByZXNzaW9uIGNvdW50LCBidXQgZ290ICR7aTE4blBsYWNlaG9sZGVycy5sZW5ndGh9YCxcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQW4gaW50ZXJtZWRpYXRlIGJpbmRpbmcgb3AsIHRoYXQgaGFzIG5vdCB5ZXQgYmVlbiBwcm9jZXNzZWQgaW50byBhbiBpbmRpdmlkdWFsIHByb3BlcnR5LFxuICogYXR0cmlidXRlLCBzdHlsZSwgZXRjLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJpbmRpbmdPcCBleHRlbmRzIE9wPFVwZGF0ZU9wPiB7XG4gIGtpbmQ6IE9wS2luZC5CaW5kaW5nO1xuXG4gIC8qKlxuICAgKiBSZWZlcmVuY2UgdG8gdGhlIGVsZW1lbnQgb24gd2hpY2ggdGhlIHByb3BlcnR5IGlzIGJvdW5kLlxuICAgKi9cbiAgdGFyZ2V0OiBYcmVmSWQ7XG5cbiAgLyoqXG4gICAqICBUaGUga2luZCBvZiBiaW5kaW5nIHJlcHJlc2VudGVkIGJ5IHRoaXMgb3AuXG4gICAqL1xuICBiaW5kaW5nS2luZDogQmluZGluZ0tpbmQ7XG5cbiAgLyoqXG4gICAqICBUaGUgbmFtZSBvZiB0aGlzIGJpbmRpbmcuXG4gICAqL1xuICBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEV4cHJlc3Npb24gd2hpY2ggaXMgYm91bmQgdG8gdGhlIHByb3BlcnR5LlxuICAgKi9cbiAgZXhwcmVzc2lvbjogby5FeHByZXNzaW9uIHwgSW50ZXJwb2xhdGlvbjtcblxuICAvKipcbiAgICogVGhlIHVuaXQgb2YgdGhlIGJvdW5kIHZhbHVlLlxuICAgKi9cbiAgdW5pdDogc3RyaW5nIHwgbnVsbDtcblxuICAvKipcbiAgICogVGhlIHNlY3VyaXR5IGNvbnRleHQgb2YgdGhlIGJpbmRpbmcuXG4gICAqL1xuICBzZWN1cml0eUNvbnRleHQ6IFNlY3VyaXR5Q29udGV4dCB8IFNlY3VyaXR5Q29udGV4dFtdO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBiaW5kaW5nIGlzIGEgVGV4dEF0dHJpYnV0ZSAoZS5nLiBgc29tZS1hdHRyPVwic29tZS12YWx1ZVwiYCkuXG4gICAqXG4gICAqIFRoaXMgbmVlZHMgdG8gYmUgdHJhY2tlZCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIGBUZW1wbGF0ZURlZmluaXRpb25CdWlsZGVyYCB3aGljaCB0cmVhdHNcbiAgICogYHN0eWxlYCBhbmQgYGNsYXNzYCBUZXh0QXR0cmlidXRlcyBkaWZmZXJlbnRseSBmcm9tIGBbYXR0ci5zdHlsZV1gIGFuZCBgW2F0dHIuY2xhc3NdYC5cbiAgICovXG4gIGlzVGV4dEF0dHJpYnV0ZTogYm9vbGVhbjtcblxuICBpc1N0cnVjdHVyYWxUZW1wbGF0ZUF0dHJpYnV0ZTogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGlzIGJpbmRpbmcgaXMgb24gYSBzdHJ1Y3R1cmFsIHRlbXBsYXRlLlxuICAgKi9cbiAgdGVtcGxhdGVLaW5kOiBUZW1wbGF0ZUtpbmQgfCBudWxsO1xuXG4gIGkxOG5Db250ZXh0OiBYcmVmSWQgfCBudWxsO1xuICBpMThuTWVzc2FnZTogaTE4bi5NZXNzYWdlIHwgbnVsbDtcblxuICBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW47XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgYEJpbmRpbmdPcGAsIG5vdCB5ZXQgdHJhbnNmb3JtZWQgaW50byBhIHBhcnRpY3VsYXIgdHlwZSBvZiBiaW5kaW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQmluZGluZ09wKFxuICB0YXJnZXQ6IFhyZWZJZCxcbiAga2luZDogQmluZGluZ0tpbmQsXG4gIG5hbWU6IHN0cmluZyxcbiAgZXhwcmVzc2lvbjogby5FeHByZXNzaW9uIHwgSW50ZXJwb2xhdGlvbixcbiAgdW5pdDogc3RyaW5nIHwgbnVsbCxcbiAgc2VjdXJpdHlDb250ZXh0OiBTZWN1cml0eUNvbnRleHQgfCBTZWN1cml0eUNvbnRleHRbXSxcbiAgaXNUZXh0QXR0cmlidXRlOiBib29sZWFuLFxuICBpc1N0cnVjdHVyYWxUZW1wbGF0ZUF0dHJpYnV0ZTogYm9vbGVhbixcbiAgdGVtcGxhdGVLaW5kOiBUZW1wbGF0ZUtpbmQgfCBudWxsLFxuICBpMThuTWVzc2FnZTogaTE4bi5NZXNzYWdlIHwgbnVsbCxcbiAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuLFxuKTogQmluZGluZ09wIHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiBPcEtpbmQuQmluZGluZyxcbiAgICBiaW5kaW5nS2luZDoga2luZCxcbiAgICB0YXJnZXQsXG4gICAgbmFtZSxcbiAgICBleHByZXNzaW9uLFxuICAgIHVuaXQsXG4gICAgc2VjdXJpdHlDb250ZXh0LFxuICAgIGlzVGV4dEF0dHJpYnV0ZSxcbiAgICBpc1N0cnVjdHVyYWxUZW1wbGF0ZUF0dHJpYnV0ZSxcbiAgICB0ZW1wbGF0ZUtpbmQsXG4gICAgaTE4bkNvbnRleHQ6IG51bGwsXG4gICAgaTE4bk1lc3NhZ2UsXG4gICAgc291cmNlU3BhbixcbiAgICAuLi5ORVdfT1AsXG4gIH07XG59XG5cbi8qKlxuICogQSBsb2dpY2FsIG9wZXJhdGlvbiByZXByZXNlbnRpbmcgYmluZGluZyB0byBhIHByb3BlcnR5IGluIHRoZSB1cGRhdGUgSVIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvcGVydHlPcCBleHRlbmRzIE9wPFVwZGF0ZU9wPiwgQ29uc3VtZXNWYXJzVHJhaXQsIERlcGVuZHNPblNsb3RDb250ZXh0T3BUcmFpdCB7XG4gIGtpbmQ6IE9wS2luZC5Qcm9wZXJ0eTtcblxuICAvKipcbiAgICogUmVmZXJlbmNlIHRvIHRoZSBlbGVtZW50IG9uIHdoaWNoIHRoZSBwcm9wZXJ0eSBpcyBib3VuZC5cbiAgICovXG4gIHRhcmdldDogWHJlZklkO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBib3VuZCBwcm9wZXJ0eS5cbiAgICovXG4gIG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogRXhwcmVzc2lvbiB3aGljaCBpcyBib3VuZCB0byB0aGUgcHJvcGVydHkuXG4gICAqL1xuICBleHByZXNzaW9uOiBvLkV4cHJlc3Npb24gfCBJbnRlcnBvbGF0aW9uO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgcHJvcGVydHkgaXMgYW4gYW5pbWF0aW9uIHRyaWdnZXIuXG4gICAqL1xuICBpc0FuaW1hdGlvblRyaWdnZXI6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBzZWN1cml0eSBjb250ZXh0IG9mIHRoZSBiaW5kaW5nLlxuICAgKi9cbiAgc2VjdXJpdHlDb250ZXh0OiBTZWN1cml0eUNvbnRleHQgfCBTZWN1cml0eUNvbnRleHRbXTtcblxuICAvKipcbiAgICogVGhlIHNhbml0aXplciBmb3IgdGhpcyBwcm9wZXJ0eS5cbiAgICovXG4gIHNhbml0aXplcjogby5FeHByZXNzaW9uIHwgbnVsbDtcblxuICBpc1N0cnVjdHVyYWxUZW1wbGF0ZUF0dHJpYnV0ZTogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGtpbmQgb2YgdGVtcGxhdGUgdGFyZ2V0ZWQgYnkgdGhlIGJpbmRpbmcsIG9yIG51bGwgaWYgdGhpcyBiaW5kaW5nIGRvZXMgbm90IHRhcmdldCBhXG4gICAqIHRlbXBsYXRlLlxuICAgKi9cbiAgdGVtcGxhdGVLaW5kOiBUZW1wbGF0ZUtpbmQgfCBudWxsO1xuXG4gIGkxOG5Db250ZXh0OiBYcmVmSWQgfCBudWxsO1xuICBpMThuTWVzc2FnZTogaTE4bi5NZXNzYWdlIHwgbnVsbDtcblxuICBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW47XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgYFByb3BlcnR5T3BgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUHJvcGVydHlPcChcbiAgdGFyZ2V0OiBYcmVmSWQsXG4gIG5hbWU6IHN0cmluZyxcbiAgZXhwcmVzc2lvbjogby5FeHByZXNzaW9uIHwgSW50ZXJwb2xhdGlvbixcbiAgaXNBbmltYXRpb25UcmlnZ2VyOiBib29sZWFuLFxuICBzZWN1cml0eUNvbnRleHQ6IFNlY3VyaXR5Q29udGV4dCB8IFNlY3VyaXR5Q29udGV4dFtdLFxuICBpc1N0cnVjdHVyYWxUZW1wbGF0ZUF0dHJpYnV0ZTogYm9vbGVhbixcbiAgdGVtcGxhdGVLaW5kOiBUZW1wbGF0ZUtpbmQgfCBudWxsLFxuICBpMThuQ29udGV4dDogWHJlZklkIHwgbnVsbCxcbiAgaTE4bk1lc3NhZ2U6IGkxOG4uTWVzc2FnZSB8IG51bGwsXG4gIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3Bhbixcbik6IFByb3BlcnR5T3Age1xuICByZXR1cm4ge1xuICAgIGtpbmQ6IE9wS2luZC5Qcm9wZXJ0eSxcbiAgICB0YXJnZXQsXG4gICAgbmFtZSxcbiAgICBleHByZXNzaW9uLFxuICAgIGlzQW5pbWF0aW9uVHJpZ2dlcixcbiAgICBzZWN1cml0eUNvbnRleHQsXG4gICAgc2FuaXRpemVyOiBudWxsLFxuICAgIGlzU3RydWN0dXJhbFRlbXBsYXRlQXR0cmlidXRlLFxuICAgIHRlbXBsYXRlS2luZCxcbiAgICBpMThuQ29udGV4dCxcbiAgICBpMThuTWVzc2FnZSxcbiAgICBzb3VyY2VTcGFuLFxuICAgIC4uLlRSQUlUX0RFUEVORFNfT05fU0xPVF9DT05URVhULFxuICAgIC4uLlRSQUlUX0NPTlNVTUVTX1ZBUlMsXG4gICAgLi4uTkVXX09QLFxuICB9O1xufVxuXG4vKipcbiAqIEEgbG9naWNhbCBvcGVyYXRpb24gcmVwcmVzZW50aW5nIHRoZSBwcm9wZXJ0eSBiaW5kaW5nIHNpZGUgb2YgYSB0d28td2F5IGJpbmRpbmcgaW4gdGhlIHVwZGF0ZSBJUi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUd29XYXlQcm9wZXJ0eU9wXG4gIGV4dGVuZHMgT3A8VXBkYXRlT3A+LFxuICAgIENvbnN1bWVzVmFyc1RyYWl0LFxuICAgIERlcGVuZHNPblNsb3RDb250ZXh0T3BUcmFpdCB7XG4gIGtpbmQ6IE9wS2luZC5Ud29XYXlQcm9wZXJ0eTtcblxuICAvKipcbiAgICogUmVmZXJlbmNlIHRvIHRoZSBlbGVtZW50IG9uIHdoaWNoIHRoZSBwcm9wZXJ0eSBpcyBib3VuZC5cbiAgICovXG4gIHRhcmdldDogWHJlZklkO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBwcm9wZXJ0eS5cbiAgICovXG4gIG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogRXhwcmVzc2lvbiB3aGljaCBpcyBib3VuZCB0byB0aGUgcHJvcGVydHkuXG4gICAqL1xuICBleHByZXNzaW9uOiBvLkV4cHJlc3Npb247XG5cbiAgLyoqXG4gICAqIFRoZSBzZWN1cml0eSBjb250ZXh0IG9mIHRoZSBiaW5kaW5nLlxuICAgKi9cbiAgc2VjdXJpdHlDb250ZXh0OiBTZWN1cml0eUNvbnRleHQgfCBTZWN1cml0eUNvbnRleHRbXTtcblxuICAvKipcbiAgICogVGhlIHNhbml0aXplciBmb3IgdGhpcyBwcm9wZXJ0eS5cbiAgICovXG4gIHNhbml0aXplcjogby5FeHByZXNzaW9uIHwgbnVsbDtcblxuICBpc1N0cnVjdHVyYWxUZW1wbGF0ZUF0dHJpYnV0ZTogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGtpbmQgb2YgdGVtcGxhdGUgdGFyZ2V0ZWQgYnkgdGhlIGJpbmRpbmcsIG9yIG51bGwgaWYgdGhpcyBiaW5kaW5nIGRvZXMgbm90IHRhcmdldCBhXG4gICAqIHRlbXBsYXRlLlxuICAgKi9cbiAgdGVtcGxhdGVLaW5kOiBUZW1wbGF0ZUtpbmQgfCBudWxsO1xuXG4gIGkxOG5Db250ZXh0OiBYcmVmSWQgfCBudWxsO1xuICBpMThuTWVzc2FnZTogaTE4bi5NZXNzYWdlIHwgbnVsbDtcblxuICBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW47XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgYFR3b1dheVByb3BlcnR5T3BgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHdvV2F5UHJvcGVydHlPcChcbiAgdGFyZ2V0OiBYcmVmSWQsXG4gIG5hbWU6IHN0cmluZyxcbiAgZXhwcmVzc2lvbjogby5FeHByZXNzaW9uLFxuICBzZWN1cml0eUNvbnRleHQ6IFNlY3VyaXR5Q29udGV4dCB8IFNlY3VyaXR5Q29udGV4dFtdLFxuICBpc1N0cnVjdHVyYWxUZW1wbGF0ZUF0dHJpYnV0ZTogYm9vbGVhbixcbiAgdGVtcGxhdGVLaW5kOiBUZW1wbGF0ZUtpbmQgfCBudWxsLFxuICBpMThuQ29udGV4dDogWHJlZklkIHwgbnVsbCxcbiAgaTE4bk1lc3NhZ2U6IGkxOG4uTWVzc2FnZSB8IG51bGwsXG4gIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3Bhbixcbik6IFR3b1dheVByb3BlcnR5T3Age1xuICByZXR1cm4ge1xuICAgIGtpbmQ6IE9wS2luZC5Ud29XYXlQcm9wZXJ0eSxcbiAgICB0YXJnZXQsXG4gICAgbmFtZSxcbiAgICBleHByZXNzaW9uLFxuICAgIHNlY3VyaXR5Q29udGV4dCxcbiAgICBzYW5pdGl6ZXI6IG51bGwsXG4gICAgaXNTdHJ1Y3R1cmFsVGVtcGxhdGVBdHRyaWJ1dGUsXG4gICAgdGVtcGxhdGVLaW5kLFxuICAgIGkxOG5Db250ZXh0LFxuICAgIGkxOG5NZXNzYWdlLFxuICAgIHNvdXJjZVNwYW4sXG4gICAgLi4uVFJBSVRfREVQRU5EU19PTl9TTE9UX0NPTlRFWFQsXG4gICAgLi4uVFJBSVRfQ09OU1VNRVNfVkFSUyxcbiAgICAuLi5ORVdfT1AsXG4gIH07XG59XG5cbi8qKlxuICogQSBsb2dpY2FsIG9wZXJhdGlvbiByZXByZXNlbnRpbmcgYmluZGluZyB0byBhIHN0eWxlIHByb3BlcnR5IGluIHRoZSB1cGRhdGUgSVIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3R5bGVQcm9wT3AgZXh0ZW5kcyBPcDxVcGRhdGVPcD4sIENvbnN1bWVzVmFyc1RyYWl0LCBEZXBlbmRzT25TbG90Q29udGV4dE9wVHJhaXQge1xuICBraW5kOiBPcEtpbmQuU3R5bGVQcm9wO1xuXG4gIC8qKlxuICAgKiBSZWZlcmVuY2UgdG8gdGhlIGVsZW1lbnQgb24gd2hpY2ggdGhlIHByb3BlcnR5IGlzIGJvdW5kLlxuICAgKi9cbiAgdGFyZ2V0OiBYcmVmSWQ7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIGJvdW5kIHByb3BlcnR5LlxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFeHByZXNzaW9uIHdoaWNoIGlzIGJvdW5kIHRvIHRoZSBwcm9wZXJ0eS5cbiAgICovXG4gIGV4cHJlc3Npb246IG8uRXhwcmVzc2lvbiB8IEludGVycG9sYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSB1bml0IG9mIHRoZSBib3VuZCB2YWx1ZS5cbiAgICovXG4gIHVuaXQ6IHN0cmluZyB8IG51bGw7XG5cbiAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuO1xufVxuXG4vKiogQ3JlYXRlIGEgYFN0eWxlUHJvcE9wYC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTdHlsZVByb3BPcChcbiAgeHJlZjogWHJlZklkLFxuICBuYW1lOiBzdHJpbmcsXG4gIGV4cHJlc3Npb246IG8uRXhwcmVzc2lvbiB8IEludGVycG9sYXRpb24sXG4gIHVuaXQ6IHN0cmluZyB8IG51bGwsXG4gIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3Bhbixcbik6IFN0eWxlUHJvcE9wIHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiBPcEtpbmQuU3R5bGVQcm9wLFxuICAgIHRhcmdldDogeHJlZixcbiAgICBuYW1lLFxuICAgIGV4cHJlc3Npb24sXG4gICAgdW5pdCxcbiAgICBzb3VyY2VTcGFuLFxuICAgIC4uLlRSQUlUX0RFUEVORFNfT05fU0xPVF9DT05URVhULFxuICAgIC4uLlRSQUlUX0NPTlNVTUVTX1ZBUlMsXG4gICAgLi4uTkVXX09QLFxuICB9O1xufVxuXG4vKipcbiAqIEEgbG9naWNhbCBvcGVyYXRpb24gcmVwcmVzZW50aW5nIGJpbmRpbmcgdG8gYSBjbGFzcyBwcm9wZXJ0eSBpbiB0aGUgdXBkYXRlIElSLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENsYXNzUHJvcE9wIGV4dGVuZHMgT3A8VXBkYXRlT3A+LCBDb25zdW1lc1ZhcnNUcmFpdCwgRGVwZW5kc09uU2xvdENvbnRleHRPcFRyYWl0IHtcbiAga2luZDogT3BLaW5kLkNsYXNzUHJvcDtcblxuICAvKipcbiAgICogUmVmZXJlbmNlIHRvIHRoZSBlbGVtZW50IG9uIHdoaWNoIHRoZSBwcm9wZXJ0eSBpcyBib3VuZC5cbiAgICovXG4gIHRhcmdldDogWHJlZklkO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBib3VuZCBwcm9wZXJ0eS5cbiAgICovXG4gIG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogRXhwcmVzc2lvbiB3aGljaCBpcyBib3VuZCB0byB0aGUgcHJvcGVydHkuXG4gICAqL1xuICBleHByZXNzaW9uOiBvLkV4cHJlc3Npb247XG5cbiAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIGBDbGFzc1Byb3BPcGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDbGFzc1Byb3BPcChcbiAgeHJlZjogWHJlZklkLFxuICBuYW1lOiBzdHJpbmcsXG4gIGV4cHJlc3Npb246IG8uRXhwcmVzc2lvbixcbiAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuLFxuKTogQ2xhc3NQcm9wT3Age1xuICByZXR1cm4ge1xuICAgIGtpbmQ6IE9wS2luZC5DbGFzc1Byb3AsXG4gICAgdGFyZ2V0OiB4cmVmLFxuICAgIG5hbWUsXG4gICAgZXhwcmVzc2lvbixcbiAgICBzb3VyY2VTcGFuLFxuICAgIC4uLlRSQUlUX0RFUEVORFNfT05fU0xPVF9DT05URVhULFxuICAgIC4uLlRSQUlUX0NPTlNVTUVTX1ZBUlMsXG4gICAgLi4uTkVXX09QLFxuICB9O1xufVxuXG4vKipcbiAqIEEgbG9naWNhbCBvcGVyYXRpb24gcmVwcmVzZW50aW5nIGJpbmRpbmcgdG8gYSBzdHlsZSBtYXAgaW4gdGhlIHVwZGF0ZSBJUi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdHlsZU1hcE9wIGV4dGVuZHMgT3A8VXBkYXRlT3A+LCBDb25zdW1lc1ZhcnNUcmFpdCwgRGVwZW5kc09uU2xvdENvbnRleHRPcFRyYWl0IHtcbiAga2luZDogT3BLaW5kLlN0eWxlTWFwO1xuXG4gIC8qKlxuICAgKiBSZWZlcmVuY2UgdG8gdGhlIGVsZW1lbnQgb24gd2hpY2ggdGhlIHByb3BlcnR5IGlzIGJvdW5kLlxuICAgKi9cbiAgdGFyZ2V0OiBYcmVmSWQ7XG5cbiAgLyoqXG4gICAqIEV4cHJlc3Npb24gd2hpY2ggaXMgYm91bmQgdG8gdGhlIHByb3BlcnR5LlxuICAgKi9cbiAgZXhwcmVzc2lvbjogby5FeHByZXNzaW9uIHwgSW50ZXJwb2xhdGlvbjtcblxuICBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW47XG59XG5cbi8qKiBDcmVhdGUgYSBgU3R5bGVNYXBPcGAuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU3R5bGVNYXBPcChcbiAgeHJlZjogWHJlZklkLFxuICBleHByZXNzaW9uOiBvLkV4cHJlc3Npb24gfCBJbnRlcnBvbGF0aW9uLFxuICBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW4sXG4pOiBTdHlsZU1hcE9wIHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiBPcEtpbmQuU3R5bGVNYXAsXG4gICAgdGFyZ2V0OiB4cmVmLFxuICAgIGV4cHJlc3Npb24sXG4gICAgc291cmNlU3BhbixcbiAgICAuLi5UUkFJVF9ERVBFTkRTX09OX1NMT1RfQ09OVEVYVCxcbiAgICAuLi5UUkFJVF9DT05TVU1FU19WQVJTLFxuICAgIC4uLk5FV19PUCxcbiAgfTtcbn1cblxuLyoqXG4gKiBBIGxvZ2ljYWwgb3BlcmF0aW9uIHJlcHJlc2VudGluZyBiaW5kaW5nIHRvIGEgc3R5bGUgbWFwIGluIHRoZSB1cGRhdGUgSVIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2xhc3NNYXBPcCBleHRlbmRzIE9wPFVwZGF0ZU9wPiwgQ29uc3VtZXNWYXJzVHJhaXQsIERlcGVuZHNPblNsb3RDb250ZXh0T3BUcmFpdCB7XG4gIGtpbmQ6IE9wS2luZC5DbGFzc01hcDtcblxuICAvKipcbiAgICogUmVmZXJlbmNlIHRvIHRoZSBlbGVtZW50IG9uIHdoaWNoIHRoZSBwcm9wZXJ0eSBpcyBib3VuZC5cbiAgICovXG4gIHRhcmdldDogWHJlZklkO1xuXG4gIC8qKlxuICAgKiBFeHByZXNzaW9uIHdoaWNoIGlzIGJvdW5kIHRvIHRoZSBwcm9wZXJ0eS5cbiAgICovXG4gIGV4cHJlc3Npb246IG8uRXhwcmVzc2lvbiB8IEludGVycG9sYXRpb247XG5cbiAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIGBDbGFzc01hcE9wYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNsYXNzTWFwT3AoXG4gIHhyZWY6IFhyZWZJZCxcbiAgZXhwcmVzc2lvbjogby5FeHByZXNzaW9uIHwgSW50ZXJwb2xhdGlvbixcbiAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuLFxuKTogQ2xhc3NNYXBPcCB7XG4gIHJldHVybiB7XG4gICAga2luZDogT3BLaW5kLkNsYXNzTWFwLFxuICAgIHRhcmdldDogeHJlZixcbiAgICBleHByZXNzaW9uLFxuICAgIHNvdXJjZVNwYW4sXG4gICAgLi4uVFJBSVRfREVQRU5EU19PTl9TTE9UX0NPTlRFWFQsXG4gICAgLi4uVFJBSVRfQ09OU1VNRVNfVkFSUyxcbiAgICAuLi5ORVdfT1AsXG4gIH07XG59XG5cbi8qKlxuICogQSBsb2dpY2FsIG9wZXJhdGlvbiByZXByZXNlbnRpbmcgc2V0dGluZyBhbiBhdHRyaWJ1dGUgb24gYW4gZWxlbWVudCBpbiB0aGUgdXBkYXRlIElSLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF0dHJpYnV0ZU9wIGV4dGVuZHMgT3A8VXBkYXRlT3A+IHtcbiAga2luZDogT3BLaW5kLkF0dHJpYnV0ZTtcblxuICAvKipcbiAgICogVGhlIGBYcmVmSWRgIG9mIHRoZSB0ZW1wbGF0ZS1saWtlIGVsZW1lbnQgdGhlIGF0dHJpYnV0ZSB3aWxsIGJlbG9uZyB0by5cbiAgICovXG4gIHRhcmdldDogWHJlZklkO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZXNwYWNlIG9mIHRoZSBhdHRyaWJ1dGUgKG9yIG51bGwgaWYgbm9uZSkuXG4gICAqL1xuICBuYW1lc3BhY2U6IHN0cmluZyB8IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBhdHRyaWJ1dGUuXG4gICAqL1xuICBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSBvZiB0aGUgYXR0cmlidXRlLlxuICAgKi9cbiAgZXhwcmVzc2lvbjogby5FeHByZXNzaW9uIHwgSW50ZXJwb2xhdGlvbjtcblxuICAvKipcbiAgICogVGhlIHNlY3VyaXR5IGNvbnRleHQgb2YgdGhlIGJpbmRpbmcuXG4gICAqL1xuICBzZWN1cml0eUNvbnRleHQ6IFNlY3VyaXR5Q29udGV4dCB8IFNlY3VyaXR5Q29udGV4dFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgc2FuaXRpemVyIGZvciB0aGlzIGF0dHJpYnV0ZS5cbiAgICovXG4gIHNhbml0aXplcjogby5FeHByZXNzaW9uIHwgbnVsbDtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgYmluZGluZyBpcyBhIFRleHRBdHRyaWJ1dGUgKGUuZy4gYHNvbWUtYXR0cj1cInNvbWUtdmFsdWVcImApLlxuICAgKlxuICAgKiBUaGlzIG5lZWRzIHRvIGJlIHRyYWNrZWQgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBgVGVtcGxhdGVEZWZpbml0aW9uQnVpbGRlcmAgd2hpY2ggdHJlYXRzXG4gICAqIGBzdHlsZWAgYW5kIGBjbGFzc2AgVGV4dEF0dHJpYnV0ZXMgZGlmZmVyZW50bHkgZnJvbSBgW2F0dHIuc3R5bGVdYCBhbmQgYFthdHRyLmNsYXNzXWAuXG4gICAqL1xuICBpc1RleHRBdHRyaWJ1dGU6IGJvb2xlYW47XG5cbiAgaXNTdHJ1Y3R1cmFsVGVtcGxhdGVBdHRyaWJ1dGU6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBraW5kIG9mIHRlbXBsYXRlIHRhcmdldGVkIGJ5IHRoZSBiaW5kaW5nLCBvciBudWxsIGlmIHRoaXMgYmluZGluZyBkb2VzIG5vdCB0YXJnZXQgYVxuICAgKiB0ZW1wbGF0ZS5cbiAgICovXG4gIHRlbXBsYXRlS2luZDogVGVtcGxhdGVLaW5kIHwgbnVsbDtcblxuICAvKipcbiAgICogVGhlIGkxOG4gY29udGV4dCwgaWYgdGhpcyBpcyBhbiBpMThuIGF0dHJpYnV0ZS5cbiAgICovXG4gIGkxOG5Db250ZXh0OiBYcmVmSWQgfCBudWxsO1xuXG4gIGkxOG5NZXNzYWdlOiBpMThuLk1lc3NhZ2UgfCBudWxsO1xuXG4gIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3Bhbjtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYW4gYEF0dHJpYnV0ZU9wYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUF0dHJpYnV0ZU9wKFxuICB0YXJnZXQ6IFhyZWZJZCxcbiAgbmFtZXNwYWNlOiBzdHJpbmcgfCBudWxsLFxuICBuYW1lOiBzdHJpbmcsXG4gIGV4cHJlc3Npb246IG8uRXhwcmVzc2lvbiB8IEludGVycG9sYXRpb24sXG4gIHNlY3VyaXR5Q29udGV4dDogU2VjdXJpdHlDb250ZXh0IHwgU2VjdXJpdHlDb250ZXh0W10sXG4gIGlzVGV4dEF0dHJpYnV0ZTogYm9vbGVhbixcbiAgaXNTdHJ1Y3R1cmFsVGVtcGxhdGVBdHRyaWJ1dGU6IGJvb2xlYW4sXG4gIHRlbXBsYXRlS2luZDogVGVtcGxhdGVLaW5kIHwgbnVsbCxcbiAgaTE4bk1lc3NhZ2U6IGkxOG4uTWVzc2FnZSB8IG51bGwsXG4gIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3Bhbixcbik6IEF0dHJpYnV0ZU9wIHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiBPcEtpbmQuQXR0cmlidXRlLFxuICAgIHRhcmdldCxcbiAgICBuYW1lc3BhY2UsXG4gICAgbmFtZSxcbiAgICBleHByZXNzaW9uLFxuICAgIHNlY3VyaXR5Q29udGV4dCxcbiAgICBzYW5pdGl6ZXI6IG51bGwsXG4gICAgaXNUZXh0QXR0cmlidXRlLFxuICAgIGlzU3RydWN0dXJhbFRlbXBsYXRlQXR0cmlidXRlLFxuICAgIHRlbXBsYXRlS2luZCxcbiAgICBpMThuQ29udGV4dDogbnVsbCxcbiAgICBpMThuTWVzc2FnZSxcbiAgICBzb3VyY2VTcGFuLFxuICAgIC4uLlRSQUlUX0RFUEVORFNfT05fU0xPVF9DT05URVhULFxuICAgIC4uLlRSQUlUX0NPTlNVTUVTX1ZBUlMsXG4gICAgLi4uTkVXX09QLFxuICB9O1xufVxuXG4vKipcbiAqIExvZ2ljYWwgb3BlcmF0aW9uIHRvIGFkdmFuY2UgdGhlIHJ1bnRpbWUncyBpbnRlcm5hbCBzbG90IHBvaW50ZXIgaW4gdGhlIHVwZGF0ZSBJUi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBZHZhbmNlT3AgZXh0ZW5kcyBPcDxVcGRhdGVPcD4ge1xuICBraW5kOiBPcEtpbmQuQWR2YW5jZTtcblxuICAvKipcbiAgICogRGVsdGEgYnkgd2hpY2ggdG8gYWR2YW5jZSB0aGUgcG9pbnRlci5cbiAgICovXG4gIGRlbHRhOiBudW1iZXI7XG5cbiAgLy8gU291cmNlIHNwYW4gb2YgdGhlIGJpbmRpbmcgdGhhdCBjYXVzZWQgdGhlIGFkdmFuY2VcbiAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhbiBgQWR2YW5jZU9wYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUFkdmFuY2VPcChkZWx0YTogbnVtYmVyLCBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW4pOiBBZHZhbmNlT3Age1xuICByZXR1cm4ge1xuICAgIGtpbmQ6IE9wS2luZC5BZHZhbmNlLFxuICAgIGRlbHRhLFxuICAgIHNvdXJjZVNwYW4sXG4gICAgLi4uTkVXX09QLFxuICB9O1xufVxuXG4vKipcbiAqIExvZ2ljYWwgb3BlcmF0aW9uIHJlcHJlc2VudGluZyBhIGNvbmRpdGlvbmFsIGV4cHJlc3Npb24gaW4gdGhlIHVwZGF0ZSBJUi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25kaXRpb25hbE9wXG4gIGV4dGVuZHMgT3A8Q29uZGl0aW9uYWxPcD4sXG4gICAgRGVwZW5kc09uU2xvdENvbnRleHRPcFRyYWl0LFxuICAgIENvbnN1bWVzVmFyc1RyYWl0IHtcbiAga2luZDogT3BLaW5kLkNvbmRpdGlvbmFsO1xuXG4gIC8qKlxuICAgKiBUaGUgaW5zZXJ0aW9uIHBvaW50LCB3aGljaCBpcyB0aGUgZmlyc3QgdGVtcGxhdGUgaW4gdGhlIGNyZWF0aW9uIGJsb2NrIGJlbG9uZ2luZyB0byB0aGlzXG4gICAqIGNvbmRpdGlvbi5cbiAgICovXG4gIHRhcmdldDogWHJlZklkO1xuXG4gIC8qKlxuICAgKiBUaGUgbWFpbiB0ZXN0IGV4cHJlc3Npb24gKGZvciBhIHN3aXRjaCksIG9yIGBudWxsYCAoZm9yIGFuIGlmLCB3aGljaCBoYXMgbm8gdGVzdFxuICAgKiBleHByZXNzaW9uKS5cbiAgICovXG4gIHRlc3Q6IG8uRXhwcmVzc2lvbiB8IG51bGw7XG5cbiAgLyoqXG4gICAqIEVhY2ggcG9zc2libGUgZW1iZWRkZWQgdmlldyB0aGF0IGNvdWxkIGJlIGRpc3BsYXllZCBoYXMgYSBjb25kaXRpb24gKG9yIGlzIGRlZmF1bHQpLiBUaGlzXG4gICAqIHN0cnVjdHVyZSBtYXBzIGVhY2ggdmlldyB4cmVmIHRvIGl0cyBjb3JyZXNwb25kaW5nIGNvbmRpdGlvbi5cbiAgICovXG4gIGNvbmRpdGlvbnM6IEFycmF5PENvbmRpdGlvbmFsQ2FzZUV4cHI+O1xuXG4gIC8qKlxuICAgKiBBZnRlciBwcm9jZXNzaW5nLCB0aGlzIHdpbGwgYmUgYSBzaW5nbGUgY29sbGFwc2VkIEpvb3N0LWV4cHJlc3Npb24gdGhhdCBldmFsdWF0ZXMgdGhlXG4gICAqIGNvbmRpdGlvbnMsIGFuZCB5aWVsZHMgdGhlIHNsb3QgbnVtYmVyIG9mIHRoZSB0ZW1wbGF0ZSB3aGljaCBzaG91bGQgYmUgZGlzcGxheWVkLlxuICAgKi9cbiAgcHJvY2Vzc2VkOiBvLkV4cHJlc3Npb24gfCBudWxsO1xuXG4gIC8qKlxuICAgKiBDb250cm9sIGZsb3cgY29uZGl0aW9uYWxzIGNhbiBhY2NlcHQgYSBjb250ZXh0IHZhbHVlICh0aGlzIGlzIGEgcmVzdWx0IG9mIHNwZWNpZnlpbmcgYW5cbiAgICogYWxpYXMpLiBUaGlzIGV4cHJlc3Npb24gd2lsbCBiZSBwYXNzZWQgdG8gdGhlIGNvbmRpdGlvbmFsIGluc3RydWN0aW9uJ3MgY29udGV4dCBwYXJhbWV0ZXIuXG4gICAqL1xuICBjb250ZXh0VmFsdWU6IG8uRXhwcmVzc2lvbiB8IG51bGw7XG5cbiAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIGNvbmRpdGlvbmFsIG9wLCB3aGljaCB3aWxsIGRpc3BsYXkgYW4gZW1iZWRkZWQgdmlldyBhY2NvcmRpbmcgdG8gYSBjb25kdGlvbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNvbmRpdGlvbmFsT3AoXG4gIHRhcmdldDogWHJlZklkLFxuICB0ZXN0OiBvLkV4cHJlc3Npb24gfCBudWxsLFxuICBjb25kaXRpb25zOiBBcnJheTxDb25kaXRpb25hbENhc2VFeHByPixcbiAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuLFxuKTogQ29uZGl0aW9uYWxPcCB7XG4gIHJldHVybiB7XG4gICAga2luZDogT3BLaW5kLkNvbmRpdGlvbmFsLFxuICAgIHRhcmdldCxcbiAgICB0ZXN0LFxuICAgIGNvbmRpdGlvbnMsXG4gICAgcHJvY2Vzc2VkOiBudWxsLFxuICAgIHNvdXJjZVNwYW4sXG4gICAgY29udGV4dFZhbHVlOiBudWxsLFxuICAgIC4uLk5FV19PUCxcbiAgICAuLi5UUkFJVF9ERVBFTkRTX09OX1NMT1RfQ09OVEVYVCxcbiAgICAuLi5UUkFJVF9DT05TVU1FU19WQVJTLFxuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlcGVhdGVyT3AgZXh0ZW5kcyBPcDxVcGRhdGVPcD4sIERlcGVuZHNPblNsb3RDb250ZXh0T3BUcmFpdCB7XG4gIGtpbmQ6IE9wS2luZC5SZXBlYXRlcjtcblxuICAvKipcbiAgICogVGhlIFJlcGVhdGVyQ3JlYXRlIG9wIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHJlcGVhdGVyLlxuICAgKi9cbiAgdGFyZ2V0OiBYcmVmSWQ7XG5cbiAgdGFyZ2V0U2xvdDogU2xvdEhhbmRsZTtcblxuICAvKipcbiAgICogVGhlIGNvbGxlY3Rpb24gcHJvdmlkZWQgdG8gdGhlIGZvciBsb29wIGFzIGl0cyBleHByZXNzaW9uLlxuICAgKi9cbiAgY29sbGVjdGlvbjogby5FeHByZXNzaW9uO1xuXG4gIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3Bhbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJlcGVhdGVyT3AoXG4gIHJlcGVhdGVyQ3JlYXRlOiBYcmVmSWQsXG4gIHRhcmdldFNsb3Q6IFNsb3RIYW5kbGUsXG4gIGNvbGxlY3Rpb246IG8uRXhwcmVzc2lvbixcbiAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuLFxuKTogUmVwZWF0ZXJPcCB7XG4gIHJldHVybiB7XG4gICAga2luZDogT3BLaW5kLlJlcGVhdGVyLFxuICAgIHRhcmdldDogcmVwZWF0ZXJDcmVhdGUsXG4gICAgdGFyZ2V0U2xvdCxcbiAgICBjb2xsZWN0aW9uLFxuICAgIHNvdXJjZVNwYW4sXG4gICAgLi4uTkVXX09QLFxuICAgIC4uLlRSQUlUX0RFUEVORFNfT05fU0xPVF9DT05URVhULFxuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlZmVyV2hlbk9wIGV4dGVuZHMgT3A8VXBkYXRlT3A+LCBEZXBlbmRzT25TbG90Q29udGV4dE9wVHJhaXQsIENvbnN1bWVzVmFyc1RyYWl0IHtcbiAga2luZDogT3BLaW5kLkRlZmVyV2hlbjtcblxuICAvKipcbiAgICogVGhlIGBkZWZlcmAgY3JlYXRlIG9wIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHdoZW4gY29uZGl0aW9uLlxuICAgKi9cbiAgdGFyZ2V0OiBYcmVmSWQ7XG5cbiAgLyoqXG4gICAqIEEgdXNlci1wcm92aWRlZCBleHByZXNzaW9uIHRoYXQgdHJpZ2dlcnMgdGhlIGRlZmVyIG9wLlxuICAgKi9cbiAgZXhwcjogby5FeHByZXNzaW9uO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGVtaXQgdGhlIHByZWZldGNoIHZlcnNpb24gb2YgdGhlIGluc3RydWN0aW9uLlxuICAgKi9cbiAgcHJlZmV0Y2g6IGJvb2xlYW47XG5cbiAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRGVmZXJXaGVuT3AoXG4gIHRhcmdldDogWHJlZklkLFxuICBleHByOiBvLkV4cHJlc3Npb24sXG4gIHByZWZldGNoOiBib29sZWFuLFxuICBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW4sXG4pOiBEZWZlcldoZW5PcCB7XG4gIHJldHVybiB7XG4gICAga2luZDogT3BLaW5kLkRlZmVyV2hlbixcbiAgICB0YXJnZXQsXG4gICAgZXhwcixcbiAgICBwcmVmZXRjaCxcbiAgICBzb3VyY2VTcGFuLFxuICAgIC4uLk5FV19PUCxcbiAgICAuLi5UUkFJVF9ERVBFTkRTX09OX1NMT1RfQ09OVEVYVCxcbiAgICAuLi5UUkFJVF9DT05TVU1FU19WQVJTLFxuICB9O1xufVxuXG4vKipcbiAqIEFuIG9wIHRoYXQgcmVwcmVzZW50cyBhbiBleHByZXNzaW9uIGluIGFuIGkxOG4gbWVzc2FnZS5cbiAqXG4gKiBUT0RPOiBUaGlzIGNhbiByZXByZXNlbnQgZXhwcmVzc2lvbnMgdXNlZCBpbiBib3RoIGkxOG4gYXR0cmlidXRlcyBhbmQgbm9ybWFsIGkxOG4gY29udGVudC4gV2VcbiAqIG1heSB3YW50IHRvIHNwbGl0IHRoZXNlIGludG8gdHdvIGRpZmZlcmVudCBvcCB0eXBlcywgZGVyaXZpbmcgZnJvbSB0aGUgc2FtZSBiYXNlIGNsYXNzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEkxOG5FeHByZXNzaW9uT3BcbiAgZXh0ZW5kcyBPcDxVcGRhdGVPcD4sXG4gICAgQ29uc3VtZXNWYXJzVHJhaXQsXG4gICAgRGVwZW5kc09uU2xvdENvbnRleHRPcFRyYWl0IHtcbiAga2luZDogT3BLaW5kLkkxOG5FeHByZXNzaW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgaTE4biBjb250ZXh0IHRoYXQgdGhpcyBleHByZXNzaW9uIGJlbG9uZ3MgdG8uXG4gICAqL1xuICBjb250ZXh0OiBYcmVmSWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBYcmVmIG9mIHRoZSBvcCB0aGF0IHdlIG5lZWQgdG8gYGFkdmFuY2VgIHRvLlxuICAgKlxuICAgKiBJbiBhbiBpMThuIGJsb2NrLCB0aGlzIGlzIGluaXRpYWxseSB0aGUgaTE4biBzdGFydCBvcCwgYnV0IHdpbGwgZXZlbnR1YWxseSBjb3JyZXNwb25kIHRvXG4gICAqIHRoZSBmaW5hbCBzbG90IGNvbnN1bWVyIGluIHRoZSBvd25pbmcgaTE4biBibG9jay5cbiAgICogVE9ETzogV2Ugc2hvdWxkIG1ha2UgdGV4dCBpMThuRXhwcmVzc2lvbnMgdGFyZ2V0IHRoZSBpMThuRW5kIGluc3RydWN0aW9uLCBpbnN0ZWFkIHRoZSBsYXN0XG4gICAqIHNsb3QgY29uc3VtZXIgaW4gdGhlIGkxOG4gYmxvY2suIFRoaXMgbWFrZXMgdGhlbSByZXNpbGllbnQgdG8gdGhhdCBsYXN0IGNvbnN1bWVyIGJlaW5nXG4gICAqIGRlbGV0ZWQuIChPciBuZXcgc2xvdCBjb25zdW1lcnMgYmVpbmcgYWRkZWQhKVxuICAgKlxuICAgKiBJbiBhbiBpMThuIGF0dHJpYnV0ZSwgdGhpcyBpcyB0aGUgeHJlZiBvZiB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50U3RhcnQvZWxlbWVudC5cbiAgICovXG4gIHRhcmdldDogWHJlZklkO1xuXG4gIC8qKlxuICAgKiBJbiBhbiBpMThuIGJsb2NrLCB0aGlzIHNob3VsZCBiZSB0aGUgaTE4biBzdGFydCBvcC5cbiAgICpcbiAgICogSW4gYW4gaTE4biBhdHRyaWJ1dGUsIHRoaXMgd2lsbCBiZSB0aGUgeHJlZiBvZiB0aGUgYXR0cmlidXRlIGNvbmZpZ3VyYXRpb24gaW5zdHJ1Y3Rpb24uXG4gICAqL1xuICBpMThuT3duZXI6IFhyZWZJZDtcblxuICAvKipcbiAgICogQSBoYW5kbGUgZm9yIHRoZSBzbG90IHRoYXQgdGhpcyBleHByZXNzaW9uIG1vZGlmaWVzLlxuICAgKiAtIEluIGFuIGkxOG4gYmxvY2ssIHRoaXMgaXMgdGhlIGhhbmRsZSBvZiB0aGUgYmxvY2suXG4gICAqIC0gSW4gYW4gaTE4biBhdHRyaWJ1dGUsIHRoaXMgaXMgdGhlIGhhbmRsZSBvZiB0aGUgY29ycmVzcG9uZGluZyBpMThuQXR0cmlidXRlcyBpbnN0cnVjdGlvbi5cbiAgICovXG4gIGhhbmRsZTogU2xvdEhhbmRsZTtcblxuICAvKipcbiAgICogVGhlIGV4cHJlc3Npb24gdmFsdWUuXG4gICAqL1xuICBleHByZXNzaW9uOiBvLkV4cHJlc3Npb247XG5cbiAgaWN1UGxhY2Vob2xkZXI6IFhyZWZJZCB8IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSBpMThuIHBsYWNlaG9sZGVyIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGV4cHJlc3Npb24uIFRoaXMgY2FuIGJlIG51bGwgaWYgdGhlIGV4cHJlc3Npb24gaXNcbiAgICogcGFydCBvZiBhbiBJQ1UgcGxhY2Vob2xkZXIuIEluIHRoaXMgY2FzZSBpdCBnZXRzIGNvbWJpbmVkIHdpdGggdGhlIHN0cmluZyBsaXRlcmFsIHZhbHVlIGFuZFxuICAgKiBvdGhlciBleHByZXNzaW9ucyBpbiB0aGUgSUNVIHBsYWNlaG9sZGVyIGFuZCBhc3NpZ25lZCB0byB0aGUgdHJhbnNsYXRlZCBtZXNzYWdlIHVuZGVyIHRoZSBJQ1VcbiAgICogcGxhY2Vob2xkZXIgbmFtZS5cbiAgICovXG4gIGkxOG5QbGFjZWhvbGRlcjogc3RyaW5nIHwgbnVsbDtcblxuICAvKipcbiAgICogVGhlIHRpbWUgdGhhdCB0aGlzIGV4cHJlc3Npb24gaXMgcmVzb2x2ZWQuXG4gICAqL1xuICByZXNvbHV0aW9uVGltZTogSTE4blBhcmFtUmVzb2x1dGlvblRpbWU7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBpMThuIGV4cHJlc3Npb24gYXBwbGllcyB0byBhIHRlbXBsYXRlIG9yIHRvIGEgYmluZGluZy5cbiAgICovXG4gIHVzYWdlOiBJMThuRXhwcmVzc2lvbkZvcjtcblxuICAvKipcbiAgICogSWYgdGhpcyBpcyBhbiBJMThuRXhwcmVzc2lvbkNvbnRleHQuQmluZGluZywgdGhpcyBleHByZXNzaW9uIGlzIGFzc29jaWF0ZWQgd2l0aCBhIG5hbWVkXG4gICAqIGF0dHJpYnV0ZS4gVGhhdCBuYW1lIGlzIHN0b3JlZCBoZXJlLlxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3Bhbjtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYW4gaTE4biBleHByZXNzaW9uIG9wLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSTE4bkV4cHJlc3Npb25PcChcbiAgY29udGV4dDogWHJlZklkLFxuICB0YXJnZXQ6IFhyZWZJZCxcbiAgaTE4bk93bmVyOiBYcmVmSWQsXG4gIGhhbmRsZTogU2xvdEhhbmRsZSxcbiAgZXhwcmVzc2lvbjogby5FeHByZXNzaW9uLFxuICBpY3VQbGFjZWhvbGRlcjogWHJlZklkIHwgbnVsbCxcbiAgaTE4blBsYWNlaG9sZGVyOiBzdHJpbmcgfCBudWxsLFxuICByZXNvbHV0aW9uVGltZTogSTE4blBhcmFtUmVzb2x1dGlvblRpbWUsXG4gIHVzYWdlOiBJMThuRXhwcmVzc2lvbkZvcixcbiAgbmFtZTogc3RyaW5nLFxuICBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW4sXG4pOiBJMThuRXhwcmVzc2lvbk9wIHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiBPcEtpbmQuSTE4bkV4cHJlc3Npb24sXG4gICAgY29udGV4dCxcbiAgICB0YXJnZXQsXG4gICAgaTE4bk93bmVyLFxuICAgIGhhbmRsZSxcbiAgICBleHByZXNzaW9uLFxuICAgIGljdVBsYWNlaG9sZGVyLFxuICAgIGkxOG5QbGFjZWhvbGRlcixcbiAgICByZXNvbHV0aW9uVGltZSxcbiAgICB1c2FnZSxcbiAgICBuYW1lLFxuICAgIHNvdXJjZVNwYW4sXG4gICAgLi4uTkVXX09QLFxuICAgIC4uLlRSQUlUX0NPTlNVTUVTX1ZBUlMsXG4gICAgLi4uVFJBSVRfREVQRU5EU19PTl9TTE9UX0NPTlRFWFQsXG4gIH07XG59XG5cbi8qKlxuICogQW4gb3AgdGhhdCByZXByZXNlbnRzIGFwcGx5aW5nIGEgc2V0IG9mIGkxOG4gZXhwcmVzc2lvbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSTE4bkFwcGx5T3AgZXh0ZW5kcyBPcDxVcGRhdGVPcD4ge1xuICBraW5kOiBPcEtpbmQuSTE4bkFwcGx5O1xuXG4gIC8qKlxuICAgKiBJbiBhbiBpMThuIGJsb2NrLCB0aGlzIHNob3VsZCBiZSB0aGUgaTE4biBzdGFydCBvcC5cbiAgICpcbiAgICogSW4gYW4gaTE4biBhdHRyaWJ1dGUsIHRoaXMgd2lsbCBiZSB0aGUgeHJlZiBvZiB0aGUgYXR0cmlidXRlIGNvbmZpZ3VyYXRpb24gaW5zdHJ1Y3Rpb24uXG4gICAqL1xuICBvd25lcjogWHJlZklkO1xuXG4gIC8qKlxuICAgKiBBIGhhbmRsZSBmb3IgdGhlIHNsb3QgdGhhdCBpMThuIGFwcGx5IGluc3RydWN0aW9uIHNob3VsZCBhcHBseSB0by4gSW4gYW4gaTE4biBibG9jaywgdGhpc1xuICAgKiBpcyB0aGUgc2xvdCBvZiB0aGUgaTE4biBibG9jayB0aGlzIGV4cHJlc3Npb24gYmVsb25ncyB0by4gSW4gYW4gaTE4biBhdHRyaWJ1dGUsIHRoaXMgaXMgdGhlXG4gICAqIHNsb3Qgb2YgdGhlIGNvcnJlc3BvbmRpbmcgaTE4bkF0dHJpYnV0ZXMgaW5zdHJ1Y3Rpb24uXG4gICAqL1xuICBoYW5kbGU6IFNsb3RIYW5kbGU7XG5cbiAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYW4gb3AgdG8gYXBwbHkgaTE4biBleHByZXNzaW9uIG9wcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUkxOG5BcHBseU9wKFxuICBvd25lcjogWHJlZklkLFxuICBoYW5kbGU6IFNsb3RIYW5kbGUsXG4gIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3Bhbixcbik6IEkxOG5BcHBseU9wIHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiBPcEtpbmQuSTE4bkFwcGx5LFxuICAgIG93bmVyLFxuICAgIGhhbmRsZSxcbiAgICBzb3VyY2VTcGFuLFxuICAgIC4uLk5FV19PUCxcbiAgfTtcbn1cblxuLyoqXG4gKiBPcCB0byBzdG9yZSB0aGUgY3VycmVudCB2YWx1ZSBvZiBhIGBAbGV0YCBkZWNsYXJhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdG9yZUxldE9wIGV4dGVuZHMgT3A8VXBkYXRlT3A+LCBDb25zdW1lc1ZhcnNUcmFpdCB7XG4gIGtpbmQ6IE9wS2luZC5TdG9yZUxldDtcbiAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuO1xuXG4gIC8qKiBOYW1lIHRoYXQgdGhlIHVzZXIgc2V0IHdoZW4gZGVjbGFyaW5nIHRoZSBgQGxldGAuICovXG4gIGRlY2xhcmVkTmFtZTogc3RyaW5nO1xuXG4gIC8qKiBYcmVmSWQgb2YgdGhlIHNsb3QgaW4gd2hpY2ggdGhlIGNhbGwgbWF5IHdyaXRlIGl0cyB2YWx1ZS4gKi9cbiAgdGFyZ2V0OiBYcmVmSWQ7XG5cbiAgLyoqIFZhbHVlIG9mIHRoZSBgQGxldGAgZGVjbGFyYXRpb24uICovXG4gIHZhbHVlOiBvLkV4cHJlc3Npb247XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIGBTdG9yZUxldE9wYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVN0b3JlTGV0T3AoXG4gIHRhcmdldDogWHJlZklkLFxuICBkZWNsYXJlZE5hbWU6IHN0cmluZyxcbiAgdmFsdWU6IG8uRXhwcmVzc2lvbixcbiAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuLFxuKTogU3RvcmVMZXRPcCB7XG4gIHJldHVybiB7XG4gICAga2luZDogT3BLaW5kLlN0b3JlTGV0LFxuICAgIHRhcmdldCxcbiAgICBkZWNsYXJlZE5hbWUsXG4gICAgdmFsdWUsXG4gICAgc291cmNlU3BhbixcbiAgICAuLi5UUkFJVF9ERVBFTkRTX09OX1NMT1RfQ09OVEVYVCxcbiAgICAuLi5UUkFJVF9DT05TVU1FU19WQVJTLFxuICAgIC4uLk5FV19PUCxcbiAgfTtcbn1cbiJdfQ==
@@ -1,64 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- /**
9
- * Marker symbol for `ConsumesSlotOpTrait`.
10
- */
11
- export const ConsumesSlot = Symbol('ConsumesSlot');
12
- /**
13
- * Marker symbol for `DependsOnSlotContextOpTrait`.
14
- */
15
- export const DependsOnSlotContext = Symbol('DependsOnSlotContext');
16
- /**
17
- * Marker symbol for `ConsumesVars` trait.
18
- */
19
- export const ConsumesVarsTrait = Symbol('ConsumesVars');
20
- /**
21
- * Marker symbol for `UsesVarOffset` trait.
22
- */
23
- export const UsesVarOffset = Symbol('UsesVarOffset');
24
- /**
25
- * Default values for most `ConsumesSlotOpTrait` fields (used with the spread operator to initialize
26
- * implementors of the trait).
27
- */
28
- export const TRAIT_CONSUMES_SLOT = {
29
- [ConsumesSlot]: true,
30
- numSlotsUsed: 1,
31
- };
32
- /**
33
- * Default values for most `DependsOnSlotContextOpTrait` fields (used with the spread operator to
34
- * initialize implementors of the trait).
35
- */
36
- export const TRAIT_DEPENDS_ON_SLOT_CONTEXT = {
37
- [DependsOnSlotContext]: true,
38
- };
39
- /**
40
- * Default values for `UsesVars` fields (used with the spread operator to initialize
41
- * implementors of the trait).
42
- */
43
- export const TRAIT_CONSUMES_VARS = {
44
- [ConsumesVarsTrait]: true,
45
- };
46
- /**
47
- * Test whether an operation implements `ConsumesSlotOpTrait`.
48
- */
49
- export function hasConsumesSlotTrait(op) {
50
- return op[ConsumesSlot] === true;
51
- }
52
- export function hasDependsOnSlotContextTrait(value) {
53
- return value[DependsOnSlotContext] === true;
54
- }
55
- export function hasConsumesVarsTrait(value) {
56
- return value[ConsumesVarsTrait] === true;
57
- }
58
- /**
59
- * Test whether an expression implements `UsesVarOffsetTrait`.
60
- */
61
- export function hasUsesVarOffsetTrait(expr) {
62
- return expr[UsesVarOffset] === true;
63
- }
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXIvc3JjL3RlbXBsYXRlL3BpcGVsaW5lL2lyL3NyYy90cmFpdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBUUg7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBRW5EOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7QUFFbkU7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7QUFFeEQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBa0VyRDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBaUQ7SUFDL0UsQ0FBQyxZQUFZLENBQUMsRUFBRSxJQUFJO0lBQ3BCLFlBQVksRUFBRSxDQUFDO0NBQ1AsQ0FBQztBQUVYOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUd0QztJQUNGLENBQUMsb0JBQW9CLENBQUMsRUFBRSxJQUFJO0NBQ3BCLENBQUM7QUFFWDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBc0I7SUFDcEQsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLElBQUk7Q0FDakIsQ0FBQztBQUVYOztHQUVHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQixDQUNsQyxFQUFPO0lBRVAsT0FBUSxFQUFtQyxDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksQ0FBQztBQUNyRSxDQUFDO0FBV0QsTUFBTSxVQUFVLDRCQUE0QixDQUFDLEtBQVU7SUFDckQsT0FBUSxLQUE4QyxDQUFDLG9CQUFvQixDQUFDLEtBQUssSUFBSSxDQUFDO0FBQ3hGLENBQUM7QUFTRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsS0FBVTtJQUM3QyxPQUFRLEtBQW9DLENBQUMsaUJBQWlCLENBQUMsS0FBSyxJQUFJLENBQUM7QUFDM0UsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQixDQUNuQyxJQUFXO0lBRVgsT0FBUSxJQUFvQyxDQUFDLGFBQWEsQ0FBQyxLQUFLLElBQUksQ0FBQztBQUN2RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB0eXBlIHtQYXJzZVNvdXJjZVNwYW59IGZyb20gJy4uLy4uLy4uLy4uL3BhcnNlX3V0aWwnO1xuaW1wb3J0IHR5cGUge0V4cHJlc3Npb259IGZyb20gJy4vZXhwcmVzc2lvbic7XG5pbXBvcnQgKiBhcyBvIGZyb20gJy4uLy4uLy4uLy4uL291dHB1dC9vdXRwdXRfYXN0JztcbmltcG9ydCB0eXBlIHtPcCwgWHJlZklkfSBmcm9tICcuL29wZXJhdGlvbnMnO1xuaW1wb3J0IHtTbG90SGFuZGxlfSBmcm9tICcuL2hhbmRsZSc7XG5cbi8qKlxuICogTWFya2VyIHN5bWJvbCBmb3IgYENvbnN1bWVzU2xvdE9wVHJhaXRgLlxuICovXG5leHBvcnQgY29uc3QgQ29uc3VtZXNTbG90ID0gU3ltYm9sKCdDb25zdW1lc1Nsb3QnKTtcblxuLyoqXG4gKiBNYXJrZXIgc3ltYm9sIGZvciBgRGVwZW5kc09uU2xvdENvbnRleHRPcFRyYWl0YC5cbiAqL1xuZXhwb3J0IGNvbnN0IERlcGVuZHNPblNsb3RDb250ZXh0ID0gU3ltYm9sKCdEZXBlbmRzT25TbG90Q29udGV4dCcpO1xuXG4vKipcbiAqIE1hcmtlciBzeW1ib2wgZm9yIGBDb25zdW1lc1ZhcnNgIHRyYWl0LlxuICovXG5leHBvcnQgY29uc3QgQ29uc3VtZXNWYXJzVHJhaXQgPSBTeW1ib2woJ0NvbnN1bWVzVmFycycpO1xuXG4vKipcbiAqIE1hcmtlciBzeW1ib2wgZm9yIGBVc2VzVmFyT2Zmc2V0YCB0cmFpdC5cbiAqL1xuZXhwb3J0IGNvbnN0IFVzZXNWYXJPZmZzZXQgPSBTeW1ib2woJ1VzZXNWYXJPZmZzZXQnKTtcblxuLyoqXG4gKiBNYXJrcyBhbiBvcGVyYXRpb24gYXMgcmVxdWlyaW5nIGFsbG9jYXRpb24gb2Ygb25lIG9yIG1vcmUgZGF0YSBzbG90cyBmb3Igc3RvcmFnZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25zdW1lc1Nsb3RPcFRyYWl0IHtcbiAgcmVhZG9ubHkgW0NvbnN1bWVzU2xvdF06IHRydWU7XG5cbiAgLyoqXG4gICAqIEFzc2lnbmVkIGRhdGEgc2xvdCAodGhlIHN0YXJ0aW5nIGluZGV4LCBpZiBtb3JlIHRoYW4gb25lIHNsb3QgaXMgbmVlZGVkKSBmb3IgdGhpcyBvcGVyYXRpb24sIG9yXG4gICAqIGBudWxsYCBpZiBzbG90cyBoYXZlIG5vdCB5ZXQgYmVlbiBhc3NpZ25lZC5cbiAgICovXG4gIGhhbmRsZTogU2xvdEhhbmRsZTtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBzbG90cyB3aGljaCB3aWxsIGJlIHVzZWQgYnkgdGhpcyBvcGVyYXRpb24uIEJ5IGRlZmF1bHQgMSwgYnV0IGNhbiBiZSBpbmNyZWFzZWQgaWZcbiAgICogbmVjZXNzYXJ5LlxuICAgKi9cbiAgbnVtU2xvdHNVc2VkOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIGBYcmVmSWRgIG9mIHRoaXMgb3BlcmF0aW9uIChlLmcuIHRoZSBlbGVtZW50IHN0b3JlZCBpbiB0aGUgYXNzaWduZWQgc2xvdCkuIFRoaXMgYFhyZWZJZGAgaXNcbiAgICogdXNlZCB0byBsaW5rIHRoaXMgYENvbnN1bWVzU2xvdE9wVHJhaXRgIG9wZXJhdGlvbiB3aXRoIGBEZXBlbmRzT25TbG90Q29udGV4dFRyYWl0YCBvclxuICAgKiBgVXNlc1Nsb3RJbmRleEV4cHJUcmFpdGAgaW1wbGVtZW50b3JzIGFuZCBlbnN1cmUgdGhhdCB0aGUgYXNzaWduZWQgc2xvdCBpcyBwcm9wYWdhdGVkIHRocm91Z2hcbiAgICogdGhlIElSIHRvIGFsbCBjb25zdW1lcnMuXG4gICAqL1xuICB4cmVmOiBYcmVmSWQ7XG59XG5cbi8qKlxuICogTWFya3MgYW4gb3BlcmF0aW9uIGFzIGRlcGVuZGluZyBvbiB0aGUgcnVudGltZSdzIGltcGxpY2l0IHNsb3QgY29udGV4dCBiZWluZyBzZXQgdG8gYSBwYXJ0aWN1bGFyXG4gKiBzbG90LlxuICpcbiAqIFRoZSBydW50aW1lIGhhcyBhbiBpbXBsaWNpdCBzbG90IGNvbnRleHQgd2hpY2ggaXMgYWRqdXN0ZWQgdXNpbmcgdGhlIGBhZHZhbmNlKClgIGluc3RydWN0aW9uXG4gKiBkdXJpbmcgdGhlIGV4ZWN1dGlvbiBvZiB0ZW1wbGF0ZSB1cGRhdGUgZnVuY3Rpb25zLiBUaGlzIHRyYWl0IG1hcmtzIGFuIG9wZXJhdGlvbiBhcyByZXF1aXJpbmdcbiAqIHRoaXMgaW1wbGljaXQgY29udGV4dCB0byBiZSBgYWR2YW5jZSgpYCdkIHRvIHBvaW50IGF0IGEgcGFydGljdWxhciBzbG90IHByaW9yIHRvIGV4ZWN1dGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZXBlbmRzT25TbG90Q29udGV4dE9wVHJhaXQge1xuICByZWFkb25seSBbRGVwZW5kc09uU2xvdENvbnRleHRdOiB0cnVlO1xuXG4gIC8qKlxuICAgKiBgWHJlZklkYCBvZiB0aGUgYENvbnN1bWVzU2xvdE9wVHJhaXRgIHdoaWNoIHRoZSBpbXBsaWNpdCBzbG90IGNvbnRleHQgbXVzdCByZWZlcmVuY2UgYmVmb3JlXG4gICAqIHRoaXMgb3BlcmF0aW9uIGNhbiBiZSBleGVjdXRlZC5cbiAgICovXG4gIHRhcmdldDogWHJlZklkO1xuXG4gIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3Bhbjtcbn1cblxuLyoqXG4gKiBNYXJrZXIgdHJhaXQgaW5kaWNhdGluZyB0aGF0IGFuIG9wZXJhdGlvbiBvciBleHByZXNzaW9uIGNvbnN1bWVzIHZhcmlhYmxlIHN0b3JhZ2Ugc3BhY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29uc3VtZXNWYXJzVHJhaXQge1xuICBbQ29uc3VtZXNWYXJzVHJhaXRdOiB0cnVlO1xufVxuXG4vKipcbiAqIE1hcmtlciB0cmFpdCBpbmRpY2F0aW5nIHRoYXQgYW4gZXhwcmVzc2lvbiByZXF1aXJlcyBrbm93bGVkZ2Ugb2YgdGhlIG51bWJlciBvZiB2YXJpYWJsZSBzdG9yYWdlXG4gKiBzbG90cyB1c2VkIHByaW9yIHRvIGl0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFVzZXNWYXJPZmZzZXRUcmFpdCB7XG4gIFtVc2VzVmFyT2Zmc2V0XTogdHJ1ZTtcblxuICB2YXJPZmZzZXQ6IG51bWJlciB8IG51bGw7XG59XG5cbi8qKlxuICogRGVmYXVsdCB2YWx1ZXMgZm9yIG1vc3QgYENvbnN1bWVzU2xvdE9wVHJhaXRgIGZpZWxkcyAodXNlZCB3aXRoIHRoZSBzcHJlYWQgb3BlcmF0b3IgdG8gaW5pdGlhbGl6ZVxuICogaW1wbGVtZW50b3JzIG9mIHRoZSB0cmFpdCkuXG4gKi9cbmV4cG9ydCBjb25zdCBUUkFJVF9DT05TVU1FU19TTE9UOiBPbWl0PENvbnN1bWVzU2xvdE9wVHJhaXQsICd4cmVmJyB8ICdoYW5kbGUnPiA9IHtcbiAgW0NvbnN1bWVzU2xvdF06IHRydWUsXG4gIG51bVNsb3RzVXNlZDogMSxcbn0gYXMgY29uc3Q7XG5cbi8qKlxuICogRGVmYXVsdCB2YWx1ZXMgZm9yIG1vc3QgYERlcGVuZHNPblNsb3RDb250ZXh0T3BUcmFpdGAgZmllbGRzICh1c2VkIHdpdGggdGhlIHNwcmVhZCBvcGVyYXRvciB0b1xuICogaW5pdGlhbGl6ZSBpbXBsZW1lbnRvcnMgb2YgdGhlIHRyYWl0KS5cbiAqL1xuZXhwb3J0IGNvbnN0IFRSQUlUX0RFUEVORFNfT05fU0xPVF9DT05URVhUOiBPbWl0PFxuICBEZXBlbmRzT25TbG90Q29udGV4dE9wVHJhaXQsXG4gICd0YXJnZXQnIHwgJ3NvdXJjZVNwYW4nXG4+ID0ge1xuICBbRGVwZW5kc09uU2xvdENvbnRleHRdOiB0cnVlLFxufSBhcyBjb25zdDtcblxuLyoqXG4gKiBEZWZhdWx0IHZhbHVlcyBmb3IgYFVzZXNWYXJzYCBmaWVsZHMgKHVzZWQgd2l0aCB0aGUgc3ByZWFkIG9wZXJhdG9yIHRvIGluaXRpYWxpemVcbiAqIGltcGxlbWVudG9ycyBvZiB0aGUgdHJhaXQpLlxuICovXG5leHBvcnQgY29uc3QgVFJBSVRfQ09OU1VNRVNfVkFSUzogQ29uc3VtZXNWYXJzVHJhaXQgPSB7XG4gIFtDb25zdW1lc1ZhcnNUcmFpdF06IHRydWUsXG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIFRlc3Qgd2hldGhlciBhbiBvcGVyYXRpb24gaW1wbGVtZW50cyBgQ29uc3VtZXNTbG90T3BUcmFpdGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNDb25zdW1lc1Nsb3RUcmFpdDxPcFQgZXh0ZW5kcyBPcDxPcFQ+PihcbiAgb3A6IE9wVCxcbik6IG9wIGlzIE9wVCAmIENvbnN1bWVzU2xvdE9wVHJhaXQge1xuICByZXR1cm4gKG9wIGFzIFBhcnRpYWw8Q29uc3VtZXNTbG90T3BUcmFpdD4pW0NvbnN1bWVzU2xvdF0gPT09IHRydWU7XG59XG5cbi8qKlxuICogVGVzdCB3aGV0aGVyIGFuIG9wZXJhdGlvbiBpbXBsZW1lbnRzIGBEZXBlbmRzT25TbG90Q29udGV4dE9wVHJhaXRgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFzRGVwZW5kc09uU2xvdENvbnRleHRUcmFpdDxFeHByVCBleHRlbmRzIG8uRXhwcmVzc2lvbj4oXG4gIGV4cHI6IEV4cHJULFxuKTogZXhwciBpcyBFeHByVCAmIERlcGVuZHNPblNsb3RDb250ZXh0T3BUcmFpdDtcbmV4cG9ydCBmdW5jdGlvbiBoYXNEZXBlbmRzT25TbG90Q29udGV4dFRyYWl0PE9wVCBleHRlbmRzIE9wPE9wVD4+KFxuICBvcDogT3BULFxuKTogb3AgaXMgT3BUICYgRGVwZW5kc09uU2xvdENvbnRleHRPcFRyYWl0O1xuZXhwb3J0IGZ1bmN0aW9uIGhhc0RlcGVuZHNPblNsb3RDb250ZXh0VHJhaXQodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICByZXR1cm4gKHZhbHVlIGFzIFBhcnRpYWw8RGVwZW5kc09uU2xvdENvbnRleHRPcFRyYWl0PilbRGVwZW5kc09uU2xvdENvbnRleHRdID09PSB0cnVlO1xufVxuXG4vKipcbiAqIFRlc3Qgd2hldGhlciBhbiBvcGVyYXRpb24gaW1wbGVtZW50cyBgQ29uc3VtZXNWYXJzVHJhaXRgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFzQ29uc3VtZXNWYXJzVHJhaXQ8RXhwclQgZXh0ZW5kcyBFeHByZXNzaW9uPihcbiAgZXhwcjogRXhwclQsXG4pOiBleHByIGlzIEV4cHJUICYgQ29uc3VtZXNWYXJzVHJhaXQ7XG5leHBvcnQgZnVuY3Rpb24gaGFzQ29uc3VtZXNWYXJzVHJhaXQ8T3BUIGV4dGVuZHMgT3A8T3BUPj4ob3A6IE9wVCk6IG9wIGlzIE9wVCAmIENvbnN1bWVzVmFyc1RyYWl0O1xuZXhwb3J0IGZ1bmN0aW9uIGhhc0NvbnN1bWVzVmFyc1RyYWl0KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgcmV0dXJuICh2YWx1ZSBhcyBQYXJ0aWFsPENvbnN1bWVzVmFyc1RyYWl0PilbQ29uc3VtZXNWYXJzVHJhaXRdID09PSB0cnVlO1xufVxuXG4vKipcbiAqIFRlc3Qgd2hldGhlciBhbiBleHByZXNzaW9uIGltcGxlbWVudHMgYFVzZXNWYXJPZmZzZXRUcmFpdGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNVc2VzVmFyT2Zmc2V0VHJhaXQ8RXhwclQgZXh0ZW5kcyBFeHByZXNzaW9uPihcbiAgZXhwcjogRXhwclQsXG4pOiBleHByIGlzIEV4cHJUICYgVXNlc1Zhck9mZnNldFRyYWl0IHtcbiAgcmV0dXJuIChleHByIGFzIFBhcnRpYWw8VXNlc1Zhck9mZnNldFRyYWl0PilbVXNlc1Zhck9mZnNldF0gPT09IHRydWU7XG59XG4iXX0=
@@ -1,13 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- /**
9
- * When referenced in the template's context parameters, this indicates a reference to the entire
10
- * context object, rather than a specific parameter.
11
- */
12
- export const CTX_REF = 'CTX_REF_MARKER';
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci9zcmMvdGVtcGxhdGUvcGlwZWxpbmUvaXIvc3JjL3ZhcmlhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQXdCSDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0ICogYXMgbyBmcm9tICcuLi8uLi8uLi8uLi9vdXRwdXQvb3V0cHV0X2FzdCc7XG5pbXBvcnQgdHlwZSB7U2VtYW50aWNWYXJpYWJsZUtpbmR9IGZyb20gJy4vZW51bXMnO1xuaW1wb3J0IHR5cGUge1hyZWZJZH0gZnJvbSAnLi9vcGVyYXRpb25zJztcblxuLyoqXG4gKiBVbmlvbiB0eXBlIGZvciB0aGUgZGlmZmVyZW50IGtpbmRzIG9mIHZhcmlhYmxlcy5cbiAqL1xuZXhwb3J0IHR5cGUgU2VtYW50aWNWYXJpYWJsZSA9XG4gIHwgQ29udGV4dFZhcmlhYmxlXG4gIHwgSWRlbnRpZmllclZhcmlhYmxlXG4gIHwgU2F2ZWRWaWV3VmFyaWFibGVcbiAgfCBBbGlhc1ZhcmlhYmxlO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlbWFudGljVmFyaWFibGVCYXNlIHtcbiAga2luZDogU2VtYW50aWNWYXJpYWJsZUtpbmQ7XG5cbiAgLyoqXG4gICAqIE5hbWUgYXNzaWduZWQgdG8gdGhpcyB2YXJpYWJsZSBpbiBnZW5lcmF0ZWQgY29kZSwgb3IgYG51bGxgIGlmIG5vdCB5ZXQgYXNzaWduZWQuXG4gICAqL1xuICBuYW1lOiBzdHJpbmcgfCBudWxsO1xufVxuXG4vKipcbiAqIFdoZW4gcmVmZXJlbmNlZCBpbiB0aGUgdGVtcGxhdGUncyBjb250ZXh0IHBhcmFtZXRlcnMsIHRoaXMgaW5kaWNhdGVzIGEgcmVmZXJlbmNlIHRvIHRoZSBlbnRpcmVcbiAqIGNvbnRleHQgb2JqZWN0LCByYXRoZXIgdGhhbiBhIHNwZWNpZmljIHBhcmFtZXRlci5cbiAqL1xuZXhwb3J0IGNvbnN0IENUWF9SRUYgPSAnQ1RYX1JFRl9NQVJLRVInO1xuXG4vKipcbiAqIEEgdmFyaWFibGUgdGhhdCByZXByZXNlbnRzIHRoZSBjb250ZXh0IG9mIGEgcGFydGljdWxhciB2aWV3LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbnRleHRWYXJpYWJsZSBleHRlbmRzIFNlbWFudGljVmFyaWFibGVCYXNlIHtcbiAga2luZDogU2VtYW50aWNWYXJpYWJsZUtpbmQuQ29udGV4dDtcblxuICAvKipcbiAgICogYFhyZWZJZGAgb2YgdGhlIHZpZXcgdGhhdCB0aGlzIHZhcmlhYmxlIHJlcHJlc2VudHMuXG4gICAqL1xuICB2aWV3OiBYcmVmSWQ7XG59XG5cbi8qKlxuICogQSB2YXJpYWJsZSB0aGF0IHJlcHJlc2VudHMgYSBzcGVjaWZpYyBpZGVudGlmaWVyIHdpdGhpbiBhIHRlbXBsYXRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElkZW50aWZpZXJWYXJpYWJsZSBleHRlbmRzIFNlbWFudGljVmFyaWFibGVCYXNlIHtcbiAga2luZDogU2VtYW50aWNWYXJpYWJsZUtpbmQuSWRlbnRpZmllcjtcblxuICAvKipcbiAgICogVGhlIGlkZW50aWZpZXIgd2hvc2UgdmFsdWUgaW4gdGhlIHRlbXBsYXRlIGlzIHRyYWNrZWQgaW4gdGhpcyB2YXJpYWJsZS5cbiAgICovXG4gIGlkZW50aWZpZXI6IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgdmFyaWFibGUgd2FzIGRlY2xhcmVkIGxvY2FsbHkgd2l0aGluIHRoZSBzYW1lIHZpZXcgb3Igc29tZXdoZXJlIGVsc2UuXG4gICAqL1xuICBsb2NhbDogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBBIHZhcmlhYmxlIHRoYXQgcmVwcmVzZW50cyBhIHNhdmVkIHZpZXcgY29udGV4dC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTYXZlZFZpZXdWYXJpYWJsZSBleHRlbmRzIFNlbWFudGljVmFyaWFibGVCYXNlIHtcbiAga2luZDogU2VtYW50aWNWYXJpYWJsZUtpbmQuU2F2ZWRWaWV3O1xuXG4gIC8qKlxuICAgKiBUaGUgdmlldyBjb250ZXh0IHNhdmVkIGluIHRoaXMgdmFyaWFibGUuXG4gICAqL1xuICB2aWV3OiBYcmVmSWQ7XG59XG5cbi8qKlxuICogQSB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgaW5saW5lZCBhdCBldmVyeSBsb2NhdGlvbiBpdCBpcyB1c2VkLiBBbiBhbGlhcyBpcyBhbHNvIGFsbG93ZWQgdG8gZGVwZW5kXG4gKiBvbiB0aGUgdmFsdWUgb2YgYSBzZW1hbnRpYyB2YXJpYWJsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBbGlhc1ZhcmlhYmxlIGV4dGVuZHMgU2VtYW50aWNWYXJpYWJsZUJhc2Uge1xuICBraW5kOiBTZW1hbnRpY1ZhcmlhYmxlS2luZC5BbGlhcztcbiAgaWRlbnRpZmllcjogc3RyaW5nO1xuICBleHByZXNzaW9uOiBvLkV4cHJlc3Npb247XG59XG4iXX0=