@angular/compiler 17.0.3 → 17.1.0-next.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.
- package/esm2022/src/assertions.mjs +5 -5
- package/esm2022/src/compiler_util/expression_converter.mjs +1 -1
- package/esm2022/src/constant_pool.mjs +1 -1
- package/esm2022/src/core.mjs +1 -1
- package/esm2022/src/expression_parser/ast.mjs +1 -1
- package/esm2022/src/expression_parser/lexer.mjs +1 -1
- package/esm2022/src/expression_parser/parser.mjs +1 -1
- package/esm2022/src/i18n/digest.mjs +1 -1
- package/esm2022/src/i18n/extractor_merger.mjs +1 -1
- package/esm2022/src/i18n/i18n_ast.mjs +1 -1
- package/esm2022/src/i18n/i18n_html_parser.mjs +1 -1
- package/esm2022/src/i18n/i18n_parser.mjs +1 -1
- package/esm2022/src/i18n/message_bundle.mjs +1 -1
- package/esm2022/src/i18n/serializers/placeholder.mjs +1 -1
- package/esm2022/src/i18n/serializers/serializer.mjs +1 -1
- package/esm2022/src/i18n/serializers/xliff.mjs +1 -1
- package/esm2022/src/i18n/serializers/xliff2.mjs +1 -1
- package/esm2022/src/i18n/serializers/xmb.mjs +1 -1
- package/esm2022/src/i18n/serializers/xml_helper.mjs +1 -1
- package/esm2022/src/i18n/serializers/xtb.mjs +1 -1
- package/esm2022/src/i18n/translation_bundle.mjs +1 -1
- package/esm2022/src/injectable_compiler_2.mjs +1 -1
- package/esm2022/src/jit_compiler_facade.mjs +2 -2
- package/esm2022/src/ml_parser/ast.mjs +1 -1
- package/esm2022/src/ml_parser/html_tags.mjs +1 -1
- package/esm2022/src/ml_parser/html_whitespaces.mjs +1 -1
- package/esm2022/src/ml_parser/icu_ast_expander.mjs +1 -1
- package/esm2022/src/ml_parser/interpolation_config.mjs +1 -1
- package/esm2022/src/ml_parser/lexer.mjs +1 -1
- package/esm2022/src/ml_parser/parser.mjs +1 -1
- package/esm2022/src/ml_parser/tags.mjs +1 -1
- package/esm2022/src/output/abstract_emitter.mjs +1 -1
- package/esm2022/src/output/abstract_js_emitter.mjs +1 -1
- package/esm2022/src/output/output_ast.mjs +1 -1
- package/esm2022/src/output/output_jit.mjs +1 -1
- package/esm2022/src/output/output_jit_trusted_types.mjs +1 -1
- package/esm2022/src/output/source_map.mjs +1 -1
- package/esm2022/src/parse_util.mjs +1 -1
- package/esm2022/src/render3/partial/class_metadata.mjs +1 -1
- package/esm2022/src/render3/partial/component.mjs +1 -1
- package/esm2022/src/render3/partial/directive.mjs +2 -2
- package/esm2022/src/render3/partial/factory.mjs +1 -1
- package/esm2022/src/render3/partial/injectable.mjs +2 -2
- package/esm2022/src/render3/partial/injector.mjs +2 -2
- package/esm2022/src/render3/partial/ng_module.mjs +2 -2
- package/esm2022/src/render3/partial/pipe.mjs +2 -2
- package/esm2022/src/render3/partial/util.mjs +1 -1
- package/esm2022/src/render3/r3_ast.mjs +1 -1
- package/esm2022/src/render3/r3_class_debug_info_compiler.mjs +1 -1
- package/esm2022/src/render3/r3_class_metadata_compiler.mjs +1 -1
- package/esm2022/src/render3/r3_control_flow.mjs +1 -1
- package/esm2022/src/render3/r3_deferred_blocks.mjs +1 -1
- package/esm2022/src/render3/r3_deferred_triggers.mjs +3 -3
- package/esm2022/src/render3/r3_factory.mjs +1 -1
- package/esm2022/src/render3/r3_injector_compiler.mjs +1 -1
- package/esm2022/src/render3/r3_jit.mjs +1 -1
- package/esm2022/src/render3/r3_module_compiler.mjs +1 -1
- package/esm2022/src/render3/r3_pipe_compiler.mjs +1 -1
- package/esm2022/src/render3/r3_template_transform.mjs +1 -1
- package/esm2022/src/render3/util.mjs +1 -1
- package/esm2022/src/render3/view/compiler.mjs +1 -1
- package/esm2022/src/render3/view/i18n/context.mjs +1 -1
- package/esm2022/src/render3/view/i18n/get_msg_utils.mjs +1 -1
- package/esm2022/src/render3/view/i18n/localize_utils.mjs +1 -1
- package/esm2022/src/render3/view/i18n/meta.mjs +1 -1
- package/esm2022/src/render3/view/i18n/util.mjs +1 -1
- package/esm2022/src/render3/view/style_parser.mjs +1 -1
- package/esm2022/src/render3/view/styling_builder.mjs +1 -1
- package/esm2022/src/render3/view/t2_binder.mjs +1 -1
- package/esm2022/src/render3/view/template.mjs +1 -1
- package/esm2022/src/render3/view/util.mjs +1 -1
- package/esm2022/src/schema/dom_element_schema_registry.mjs +1 -1
- package/esm2022/src/schema/dom_security_schema.mjs +1 -1
- package/esm2022/src/selector.mjs +1 -1
- package/esm2022/src/shadow_css.mjs +1 -1
- package/esm2022/src/template/pipeline/ir/src/expression.mjs +1 -1
- package/esm2022/src/template/pipeline/ir/src/operations.mjs +1 -1
- package/esm2022/src/template/pipeline/ir/src/ops/create.mjs +1 -1
- package/esm2022/src/template/pipeline/src/compilation.mjs +1 -1
- package/esm2022/src/template/pipeline/src/conversion.mjs +1 -1
- package/esm2022/src/template/pipeline/src/emit.mjs +2 -2
- package/esm2022/src/template/pipeline/src/ingest.mjs +1 -1
- package/esm2022/src/template/pipeline/src/instruction.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/any_cast.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/apply_i18n_expressions.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/assign_i18n_slot_dependencies.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/attribute_extraction.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/binding_specialization.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/chaining.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/collapse_singleton_interpolations.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/conditionals.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/const_collection.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/create_defer_deps_fns.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/create_i18n_contexts.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/defer_configs.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/defer_resolve_targets.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/empty_elements.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/expand_safe_reads.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/extract_i18n_messages.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/generate_advance.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/generate_projection_def.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/generate_variables.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/has_const_expression_collection.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/host_style_property_parsing.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/i18n_const_collection.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/i18n_text_extraction.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/local_refs.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/merge_i18n_contexts.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/namespace.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/naming.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/next_context_merging.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/ng_container.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/nonbindable.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/nullish_coalescing.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/ordering.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/parse_extracted_styles.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/phase_remove_content_selectors.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/pipe_creation.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/pipe_variadic.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/propagate_i18n_blocks.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/pure_function_extraction.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/pure_literal_structures.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/reify.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/remove_empty_bindings.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/remove_i18n_contexts.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/repeater_derived_vars.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/resolve_contexts.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/resolve_dollar_event.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/resolve_i18n_element_placeholders.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/resolve_i18n_expression_placeholders.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/resolve_i18n_icu_placeholders.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/resolve_names.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/resolve_sanitizers.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/save_restore_view.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/slot_allocation.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/style_binding_specialization.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/temporary_variables.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/track_fn_generation.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/track_fn_optimization.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/track_variables.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/var_counting.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/variable_optimization.mjs +1 -1
- package/esm2022/src/template/pipeline/src/phases/wrap_icus.mjs +1 -1
- package/esm2022/src/template/pipeline/src/util/elements.mjs +1 -1
- package/esm2022/src/template_parser/binding_parser.mjs +1 -1
- package/esm2022/src/template_parser/template_preparser.mjs +1 -1
- package/esm2022/src/util.mjs +1 -1
- package/esm2022/src/version.mjs +1 -1
- package/fesm2022/compiler.mjs +17 -17
- package/fesm2022/compiler.mjs.map +1 -1
- package/index.d.ts +1 -1
- package/package.json +2 -2
|
@@ -321,4 +321,4 @@ export function literalOrArrayLiteral(value) {
|
|
|
321
321
|
}
|
|
322
322
|
return o.literal(value, o.INFERRED_TYPE);
|
|
323
323
|
}
|
|
324
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXIvc3JjL3RlbXBsYXRlL3BpcGVsaW5lL2lyL3NyYy9vcHMvY3JlYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUdILE9BQU8sS0FBSyxDQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFHdEQsT0FBTyxFQUFxRCxTQUFTLEVBQUUsTUFBTSxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQy9GLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxFQUFLLE1BQU0sRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQXNCLG1CQUFtQixFQUFDLE1BQU0sV0FBVyxDQUFDO0FBRW5FLE9BQU8sRUFBWSxNQUFNLEVBQTBCLE1BQU0sVUFBVSxDQUFDO0FBbUJwRTs7R0FFRztBQUNILE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxHQUFHLENBQUM7SUFDdEMsTUFBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLGNBQWMsRUFBRSxNQUFNLENBQUMsUUFBUTtJQUM3RixNQUFNLENBQUMsY0FBYztDQUN0QixDQUFDLENBQUM7QUFFSDs7R0FFRztBQUNILE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxFQUFZO0lBQ2pELE9BQU8sdUJBQXVCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBa0ZEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQixDQUNoQyxHQUFXLEVBQUUsSUFBWSxFQUFFLFNBQW9CLEVBQUUsZUFBOEMsRUFDL0YsVUFBMkI7SUFDN0IsT0FBTztRQUNMLElBQUksRUFBRSxNQUFNLENBQUMsWUFBWTtRQUN6QixJQUFJO1FBQ0osR0FBRztRQUNILE1BQU0sRUFBRSxJQUFJLFVBQVUsRUFBRTtRQUN4QixVQUFVLEVBQUUsSUFBSTtRQUNoQixTQUFTLEVBQUUsRUFBRTtRQUNiLFdBQVcsRUFBRSxLQUFLO1FBQ2xCLFNBQVM7UUFDVCxlQUFlO1FBQ2YsVUFBVTtRQUNWLEdBQUcsbUJBQW1CO1FBQ3RCLEdBQUcsTUFBTTtLQUNWLENBQUM7QUFDSixDQUFDO0FBMkNEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUM1QixJQUFZLEVBQUUsR0FBZ0IsRUFBRSxrQkFBMEIsRUFBRSxTQUFvQixFQUNoRixlQUE4QyxFQUFFLFVBQTJCO0lBQzdFLE9BQU87UUFDTCxJQUFJLEVBQUUsTUFBTSxDQUFDLFFBQVE7UUFDckIsSUFBSTtRQUNKLFVBQVUsRUFBRSxJQUFJO1FBQ2hCLEdBQUc7UUFDSCxNQUFNLEVBQUUsSUFBSSxVQUFVLEVBQUU7UUFDeEIsa0JBQWtCO1FBQ2xCLEtBQUssRUFBRSxJQUFJO1FBQ1gsSUFBSSxFQUFFLElBQUk7UUFDVixTQUFTLEVBQUUsRUFBRTtRQUNiLFdBQVcsRUFBRSxLQUFLO1FBQ2xCLFNBQVM7UUFDVCxlQUFlO1FBQ2YsVUFBVTtRQUNWLEdBQUcsbUJBQW1CO1FBQ3RCLEdBQUcsTUFBTTtLQUNWLENBQUM7QUFDSixDQUFDO0FBaUVELE1BQU0sVUFBVSxzQkFBc0IsQ0FDbEMsV0FBbUIsRUFBRSxTQUFzQixFQUFFLEdBQWdCLEVBQUUsS0FBbUIsRUFDbEYsUUFBMEIsRUFBRSxVQUEyQjtJQUN6RCxPQUFPO1FBQ0wsSUFBSSxFQUFFLE1BQU0sQ0FBQyxjQUFjO1FBQzNCLFVBQVUsRUFBRSxJQUFJO1FBQ2hCLElBQUksRUFBRSxXQUFXO1FBQ2pCLE1BQU0sRUFBRSxJQUFJLFVBQVUsRUFBRTtRQUN4QixTQUFTO1FBQ1QsS0FBSztRQUNMLFNBQVMsRUFBRSxJQUFJO1FBQ2YsR0FBRztRQUNILGtCQUFrQixFQUFFLEtBQUs7UUFDekIsU0FBUyxFQUFFLFNBQVMsQ0FBQyxJQUFJO1FBQ3pCLFdBQVcsRUFBRSxLQUFLO1FBQ2xCLFNBQVMsRUFBRSxFQUFFO1FBQ2IsS0FBSyxFQUFFLElBQUk7UUFDWCxJQUFJLEVBQUUsSUFBSTtRQUNWLFFBQVE7UUFDUixxQkFBcUIsRUFBRSxLQUFLO1FBQzVCLFVBQVU7UUFDVixHQUFHLG1CQUFtQjtRQUN0QixHQUFHLE1BQU07UUFDVCxZQUFZLEVBQUUsU0FBUyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3pDLENBQUM7QUFDSixDQUFDO0FBa0JEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFDLElBQVksRUFBRSxVQUFnQztJQUMvRSxPQUFPO1FBQ0wsSUFBSSxFQUFFLE1BQU0sQ0FBQyxVQUFVO1FBQ3ZCLElBQUk7UUFDSixVQUFVO1FBQ1YsR0FBRyxNQUFNO0tBQ1YsQ0FBQztBQUNKLENBQUM7QUE0Q0QsTUFBTSxVQUFVLHVCQUF1QixDQUFDLElBQVk7SUFDbEQsT0FBTztRQUNMLElBQUksRUFBRSxNQUFNLENBQUMsZUFBZTtRQUM1QixJQUFJO1FBQ0osR0FBRyxNQUFNO0tBQ1YsQ0FBQztBQUNKLENBQUM7QUFlRCxNQUFNLFVBQVUsc0JBQXNCLENBQUMsSUFBWTtJQUNqRCxPQUFPO1FBQ0wsSUFBSSxFQUFFLE1BQU0sQ0FBQyxjQUFjO1FBQzNCLElBQUk7UUFDSixHQUFHLE1BQU07S0FDVixDQUFDO0FBQ0osQ0FBQztBQXFCRDs7R0FFRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQ3hCLElBQVksRUFBRSxZQUFvQixFQUFFLFVBQWdDO0lBQ3RFLE9BQU87UUFDTCxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7UUFDakIsSUFBSTtRQUNKLE1BQU0sRUFBRSxJQUFJLFVBQVUsRUFBRTtRQUN4QixZQUFZO1FBQ1osVUFBVTtRQUNWLEdBQUcsbUJBQW1CO1FBQ3RCLEdBQUcsTUFBTTtLQUNWLENBQUM7QUFDSixDQUFDO0FBdUREOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUM1QixNQUFjLEVBQUUsVUFBc0IsRUFBRSxJQUFZLEVBQUUsR0FBZ0IsRUFDdEUsY0FBMkIsRUFBRSxZQUFxQixFQUFFLFVBQTJCO0lBQ2pGLE9BQU87UUFDTCxJQUFJLEVBQUUsTUFBTSxDQUFDLFFBQVE7UUFDckIsTUFBTTtRQUNOLFVBQVU7UUFDVixHQUFHO1FBQ0gsWUFBWTtRQUNaLElBQUk7UUFDSixVQUFVLEVBQUUsSUFBSSxNQUFNLEVBQUU7UUFDeEIsYUFBYSxFQUFFLElBQUk7UUFDbkIsbUJBQW1CLEVBQUUsS0FBSztRQUMxQixtQkFBbUIsRUFBRSxjQUFjLEtBQUssSUFBSTtRQUM1QyxjQUFjLEVBQUUsY0FBYztRQUM5QixVQUFVO1FBQ1YsR0FBRyxNQUFNO0tBQ1YsQ0FBQztBQUNKLENBQUM7QUFRRCxNQUFNLFVBQVUsWUFBWSxDQUFDLElBQVksRUFBRSxJQUFnQixFQUFFLElBQVk7SUFDdkUsT0FBTztRQUNMLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtRQUNqQixJQUFJO1FBQ0osTUFBTSxFQUFFLElBQUk7UUFDWixJQUFJO1FBQ0osR0FBRyxNQUFNO1FBQ1QsR0FBRyxtQkFBbUI7S0FDdkIsQ0FBQztBQUNKLENBQUM7QUFVRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsU0FBb0I7SUFDcEQsT0FBTztRQUNMLElBQUksRUFBRSxNQUFNLENBQUMsU0FBUztRQUN0QixNQUFNLEVBQUUsU0FBUztRQUNqQixHQUFHLE1BQU07S0FDVixDQUFDO0FBQ0osQ0FBQztBQVlELE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxHQUFzQjtJQUMxRCxPQUFPO1FBQ0wsSUFBSSxFQUFFLE1BQU0sQ0FBQyxhQUFhO1FBQzFCLEdBQUc7UUFDSCxHQUFHLE1BQU07S0FDVixDQUFDO0FBQ0osQ0FBQztBQXFCRCxNQUFNLFVBQVUsa0JBQWtCLENBQzlCLElBQVksRUFBRSxRQUFnQixFQUFFLFVBQTJCO0lBQzdELE9BQU87UUFDTCxJQUFJLEVBQUUsTUFBTSxDQUFDLFVBQVU7UUFDdkIsSUFBSTtRQUNKLE1BQU0sRUFBRSxJQUFJLFVBQVUsRUFBRTtRQUN4QixRQUFRO1FBQ1IsbUJBQW1CLEVBQUUsQ0FBQztRQUN0QixVQUFVLEVBQUUsRUFBRTtRQUNkLFNBQVMsRUFBRSxFQUFFO1FBQ2IsVUFBVTtRQUNWLEdBQUcsTUFBTTtRQUNULEdBQUcsbUJBQW1CO0tBQ3ZCLENBQUM7QUFDSixDQUFDO0FBNkJEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLDBCQUEwQixDQUN0QyxNQUFjLEVBQUUsV0FBd0IsRUFBRSxJQUFZLEVBQ3RELFVBQTZCO0lBQy9CLE9BQU87UUFDTCxJQUFJLEVBQUUsTUFBTSxDQUFDLGtCQUFrQjtRQUMvQixNQUFNO1FBQ04sV0FBVztRQUNYLElBQUk7UUFDSixVQUFVO1FBQ1YsR0FBRyxNQUFNO0tBQ1YsQ0FBQztBQUNKLENBQUM7QUEyREQsTUFBTSxVQUFVLGFBQWEsQ0FDekIsSUFBWSxFQUFFLElBQVksRUFBRSxRQUFvQixFQUFFLFFBQThCLEVBQ2hGLFVBQTJCO0lBQzdCLE9BQU87UUFDTCxJQUFJLEVBQUUsTUFBTSxDQUFDLEtBQUs7UUFDbEIsSUFBSTtRQUNKLE1BQU0sRUFBRSxJQUFJLFVBQVUsRUFBRTtRQUN4QixRQUFRLEVBQUUsSUFBSTtRQUNkLFFBQVE7UUFDUixXQUFXLEVBQUUsSUFBSTtRQUNqQixXQUFXLEVBQUUsSUFBSTtRQUNqQixhQUFhLEVBQUUsSUFBSTtRQUNuQixrQkFBa0IsRUFBRSxJQUFJO1FBQ3hCLGdCQUFnQixFQUFFLElBQUk7UUFDdEIsZUFBZSxFQUFFLElBQUk7UUFDckIsZUFBZSxFQUFFLElBQUk7UUFDckIsaUJBQWlCLEVBQUUsSUFBSTtRQUN2QixzQkFBc0IsRUFBRSxJQUFJO1FBQzVCLFNBQVMsRUFBRSxJQUFJO1FBQ2YsU0FBUyxFQUFFLElBQUk7UUFDZixRQUFRO1FBQ1IsVUFBVSxFQUFFLElBQUk7UUFDaEIsVUFBVTtRQUNWLEdBQUcsTUFBTTtRQUNULEdBQUcsbUJBQW1CO1FBQ3RCLFlBQVksRUFBRSxDQUFDO0tBQ2hCLENBQUM7QUFDSixDQUFDO0FBNkVELE1BQU0sVUFBVSxlQUFlLENBQzNCLEtBQWEsRUFBRSxPQUFxQixFQUFFLFFBQWlCLEVBQ3ZELFVBQTJCO0lBQzdCLE9BQU87UUFDTCxJQUFJLEVBQUUsTUFBTSxDQUFDLE9BQU87UUFDcEIsS0FBSztRQUNMLE9BQU87UUFDUCxRQUFRO1FBQ1IsVUFBVTtRQUNWLEdBQUcsTUFBTTtLQUNWLENBQUM7QUFDSixDQUFDO0FBdUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUMvQixJQUFZLEVBQUUsU0FBaUIsRUFBRSxPQUFxQixFQUFFLGtCQUErQixFQUN2RixNQUFpQyxFQUFFLG9CQUErQyxFQUNsRixtQkFBNEI7SUFDOUIsT0FBTztRQUNMLElBQUksRUFBRSxNQUFNLENBQUMsV0FBVztRQUN4QixJQUFJO1FBQ0osU0FBUztRQUNULE9BQU87UUFDUCxrQkFBa0I7UUFDbEIsTUFBTTtRQUNOLG9CQUFvQjtRQUNwQixtQkFBbUI7UUFDbkIsV0FBVyxFQUFFLEVBQUU7UUFDZixHQUFHLE1BQU07S0FDVixDQUFDO0FBQ0osQ0FBQztBQW1ERDs7R0FFRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxJQUFZLEVBQUUsT0FBcUIsRUFBRSxJQUFhO0lBQ2xGLE9BQU87UUFDTCxJQUFJLEVBQUUsTUFBTSxDQUFDLFNBQVM7UUFDdEIsSUFBSTtRQUNKLE1BQU0sRUFBRSxJQUFJLFVBQVUsRUFBRTtRQUN4QixJQUFJLEVBQUUsSUFBSSxJQUFJLElBQUk7UUFDbEIsT0FBTztRQUNQLFlBQVksRUFBRSxJQUFJO1FBQ2xCLGdCQUFnQixFQUFFLElBQUk7UUFDdEIsT0FBTyxFQUFFLElBQUk7UUFDYixHQUFHLE1BQU07UUFDVCxHQUFHLG1CQUFtQjtLQUN2QixDQUFDO0FBQ0osQ0FBQztBQWNEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FBQyxJQUFZO0lBQzFDLE9BQU87UUFDTCxJQUFJLEVBQUUsTUFBTSxDQUFDLE9BQU87UUFDcEIsSUFBSTtRQUNKLEdBQUcsTUFBTTtLQUNWLENBQUM7QUFDSixDQUFDO0FBK0JEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUM1QixJQUFZLEVBQUUsT0FBcUIsRUFBRSxrQkFBMEIsRUFDL0QsVUFBMkI7SUFDN0IsT0FBTztRQUNMLElBQUksRUFBRSxNQUFNLENBQUMsUUFBUTtRQUNyQixJQUFJO1FBQ0osT0FBTztRQUNQLGtCQUFrQjtRQUNsQixPQUFPLEVBQUUsSUFBSTtRQUNiLFVBQVU7UUFDVixHQUFHLE1BQU07S0FDVixDQUFDO0FBQ0osQ0FBQztBQWNEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxJQUFZO0lBQ3pDLE9BQU87UUFDTCxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU07UUFDbkIsSUFBSTtRQUNKLEdBQUcsTUFBTTtLQUNWLENBQUM7QUFDSixDQUFDO0FBb0RELE1BQU0sVUFBVSxtQkFBbUIsQ0FDL0IsSUFBWSxFQUFFLFNBQWlCLEVBQUUsT0FBcUIsRUFDdEQsVUFBMkI7SUFDN0IsT0FBTztRQUNMLElBQUksRUFBRSxNQUFNLENBQUMsV0FBVztRQUN4QixJQUFJO1FBQ0osU0FBUztRQUNULE9BQU87UUFDUCxVQUFVO1FBQ1YsTUFBTSxFQUFFLElBQUksR0FBRyxFQUFFO1FBQ2pCLG9CQUFvQixFQUFFLElBQUksR0FBRyxFQUFFO1FBQy9CLEdBQUcsTUFBTTtLQUNWLENBQUM7QUFDSixDQUFDO0FBUUQsTUFBTSxVQUFVLHFCQUFxQixDQUFDLEtBQVU7SUFDOUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ3hCLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQztLQUN2RDtJQUNELE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQzNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0ICogYXMgaTE4biBmcm9tICcuLi8uLi8uLi8uLi8uLi9pMThuL2kxOG5fYXN0JztcbmltcG9ydCAqIGFzIG8gZnJvbSAnLi4vLi4vLi4vLi4vLi4vb3V0cHV0L291dHB1dF9hc3QnO1xuaW1wb3J0IHtQYXJzZVNvdXJjZVNwYW59IGZyb20gJy4uLy4uLy4uLy4uLy4uL3BhcnNlX3V0aWwnO1xuaW1wb3J0IHtSM0RlZmVyQmxvY2tNZXRhZGF0YX0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vcmVuZGVyMy92aWV3L2FwaSc7XG5pbXBvcnQge0JpbmRpbmdLaW5kLCBEZWZlclRyaWdnZXJLaW5kLCBJMThuUGFyYW1WYWx1ZUZsYWdzLCBOYW1lc3BhY2UsIE9wS2luZH0gZnJvbSAnLi4vZW51bXMnO1xuaW1wb3J0IHtTbG90SGFuZGxlfSBmcm9tICcuLi9oYW5kbGUnO1xuaW1wb3J0IHtPcCwgT3BMaXN0LCBYcmVmSWR9IGZyb20gJy4uL29wZXJhdGlvbnMnO1xuaW1wb3J0IHtDb25zdW1lc1Nsb3RPcFRyYWl0LCBUUkFJVF9DT05TVU1FU19TTE9UfSBmcm9tICcuLi90cmFpdHMnO1xuXG5pbXBvcnQge0xpc3RFbmRPcCwgTkVXX09QLCBTdGF0ZW1lbnRPcCwgVmFyaWFibGVPcH0gZnJvbSAnLi9zaGFyZWQnO1xuXG5pbXBvcnQgdHlwZSB7VXBkYXRlT3B9IGZyb20gJy4vdXBkYXRlJztcblxuLyoqXG4gKiBBbiBvcGVyYXRpb24gdXNhYmxlIG9uIHRoZSBjcmVhdGlvbiBzaWRlIG9mIHRoZSBJUi5cbiAqL1xuZXhwb3J0IHR5cGUgQ3JlYXRlT3AgPSBMaXN0RW5kT3A8Q3JlYXRlT3A+fFN0YXRlbWVudE9wPENyZWF0ZU9wPnxFbGVtZW50T3B8RWxlbWVudFN0YXJ0T3B8XG4gICAgRWxlbWVudEVuZE9wfENvbnRhaW5lck9wfENvbnRhaW5lclN0YXJ0T3B8Q29udGFpbmVyRW5kT3B8VGVtcGxhdGVPcHxFbmFibGVCaW5kaW5nc09wfFxuICAgIERpc2FibGVCaW5kaW5nc09wfFRleHRPcHxMaXN0ZW5lck9wfFBpcGVPcHxWYXJpYWJsZU9wPENyZWF0ZU9wPnxOYW1lc3BhY2VPcHxQcm9qZWN0aW9uRGVmT3B8XG4gICAgUHJvamVjdGlvbk9wfEV4dHJhY3RlZEF0dHJpYnV0ZU9wfERlZmVyT3B8RGVmZXJPbk9wfFJlcGVhdGVyQ3JlYXRlT3B8STE4bk1lc3NhZ2VPcHxJMThuT3B8XG4gICAgSTE4blN0YXJ0T3B8STE4bkVuZE9wfEljdVN0YXJ0T3B8SWN1RW5kT3B8STE4bkNvbnRleHRPcDtcblxuLyoqXG4gKiBBbiBvcGVyYXRpb24gcmVwcmVzZW50aW5nIHRoZSBjcmVhdGlvbiBvZiBhbiBlbGVtZW50IG9yIGNvbnRhaW5lci5cbiAqL1xuZXhwb3J0IHR5cGUgRWxlbWVudE9yQ29udGFpbmVyT3BzID1cbiAgICBFbGVtZW50T3B8RWxlbWVudFN0YXJ0T3B8Q29udGFpbmVyT3B8Q29udGFpbmVyU3RhcnRPcHxUZW1wbGF0ZU9wfFJlcGVhdGVyQ3JlYXRlT3A7XG5cbi8qKlxuICogVGhlIHNldCBvZiBPcEtpbmRzIHRoYXQgcmVwcmVzZW50IHRoZSBjcmVhdGlvbiBvZiBhbiBlbGVtZW50IG9yIGNvbnRhaW5lclxuICovXG5jb25zdCBlbGVtZW50Q29udGFpbmVyT3BLaW5kcyA9IG5ldyBTZXQoW1xuICBPcEtpbmQuRWxlbWVudCwgT3BLaW5kLkVsZW1lbnRTdGFydCwgT3BLaW5kLkNvbnRhaW5lciwgT3BLaW5kLkNvbnRhaW5lclN0YXJ0LCBPcEtpbmQuVGVtcGxhdGUsXG4gIE9wS2luZC5SZXBlYXRlckNyZWF0ZVxuXSk7XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIG9wZXJhdGlvbiByZXByZXNlbnRzIHRoZSBjcmVhdGlvbiBvZiBhbiBlbGVtZW50IG9yIGNvbnRhaW5lci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRWxlbWVudE9yQ29udGFpbmVyT3Aob3A6IENyZWF0ZU9wKTogb3AgaXMgRWxlbWVudE9yQ29udGFpbmVyT3BzIHtcbiAgcmV0dXJuIGVsZW1lbnRDb250YWluZXJPcEtpbmRzLmhhcyhvcC5raW5kKTtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRhdGlvbiBvZiBhIGxvY2FsIHJlZmVyZW5jZSBvbiBhbiBlbGVtZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvY2FsUmVmIHtcbiAgLyoqXG4gICAqIFVzZXItZGVmaW5lZCBuYW1lIG9mIHRoZSBsb2NhbCByZWYgdmFyaWFibGUuXG4gICAqL1xuICBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRhcmdldCBvZiB0aGUgbG9jYWwgcmVmZXJlbmNlIHZhcmlhYmxlIChvZnRlbiBgJydgKS5cbiAgICovXG4gIHRhcmdldDogc3RyaW5nO1xufVxuXG4vKipcbiAqIEJhc2UgaW50ZXJmYWNlIGZvciBgRWxlbWVudGAsIGBFbGVtZW50U3RhcnRgLCBhbmQgYFRlbXBsYXRlYCBvcGVyYXRpb25zLCBjb250YWluaW5nIGNvbW1vbiBmaWVsZHNcbiAqIHVzZWQgdG8gcmVwcmVzZW50IHRoZWlyIGVsZW1lbnQtbGlrZSBuYXR1cmUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRWxlbWVudE9yQ29udGFpbmVyT3BCYXNlIGV4dGVuZHMgT3A8Q3JlYXRlT3A+LCBDb25zdW1lc1Nsb3RPcFRyYWl0IHtcbiAga2luZDogRWxlbWVudE9yQ29udGFpbmVyT3BzWydraW5kJ107XG5cbiAgLyoqXG4gICAqIGBYcmVmSWRgIGFsbG9jYXRlZCBmb3IgdGhpcyBlbGVtZW50LlxuICAgKlxuICAgKiBUaGlzIElEIGlzIHVzZWQgdG8gcmVmZXJlbmNlIHRoaXMgZWxlbWVudCBmcm9tIG90aGVyIElSIHN0cnVjdHVyZXMuXG4gICAqL1xuICB4cmVmOiBYcmVmSWQ7XG5cbiAgLyoqXG4gICAqIEF0dHJpYnV0ZXMgb2YgdmFyaW91cyBraW5kcyBvbiB0aGlzIGVsZW1lbnQuIFJlcHJlc2VudGVkIGFzIGEgYENvbnN0SW5kZXhgIHBvaW50ZXIgaW50byB0aGVcbiAgICogc2hhcmVkIGBjb25zdHNgIGFycmF5IG9mIHRoZSBjb21wb25lbnQgY29tcGlsYXRpb24uXG4gICAqL1xuICBhdHRyaWJ1dGVzOiBDb25zdEluZGV4fG51bGw7XG5cbiAgLyoqXG4gICAqIExvY2FsIHJlZmVyZW5jZXMgdG8gdGhpcyBlbGVtZW50LlxuICAgKlxuICAgKiBCZWZvcmUgbG9jYWwgcmVmIHByb2Nlc3NpbmcsIHRoaXMgaXMgYW4gYXJyYXkgb2YgYExvY2FsUmVmYCBkZWNsYXJhdGlvbnMuXG4gICAqXG4gICAqIEFmdGVyIHByb2Nlc3NpbmcsIGl0J3MgYSBgQ29uc3RJbmRleGAgcG9pbnRlciBpbnRvIHRoZSBzaGFyZWQgYGNvbnN0c2AgYXJyYXkgb2YgdGhlIGNvbXBvbmVudFxuICAgKiBjb21waWxhdGlvbi5cbiAgICovXG4gIGxvY2FsUmVmczogTG9jYWxSZWZbXXxDb25zdEluZGV4fG51bGw7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBjb250YWluZXIgaXMgbWFya2VkIGBuZ05vbkJpbmRhYmxlYCwgd2hpY2ggZGlzYWJsZWQgQW5ndWxhciBiaW5kaW5nIGZvciBpdHNlbGYgYW5kXG4gICAqIGFsbCBkZXNjZW5kYW50cy5cbiAgICovXG4gIG5vbkJpbmRhYmxlOiBib29sZWFuO1xuXG4gIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3Bhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbGVtZW50T3BCYXNlIGV4dGVuZHMgRWxlbWVudE9yQ29udGFpbmVyT3BCYXNlIHtcbiAga2luZDogT3BLaW5kLkVsZW1lbnR8T3BLaW5kLkVsZW1lbnRTdGFydHxPcEtpbmQuVGVtcGxhdGV8T3BLaW5kLlJlcGVhdGVyQ3JlYXRlO1xuXG4gIC8qKlxuICAgKiBUaGUgSFRNTCB0YWcgbmFtZSBmb3IgdGhpcyBlbGVtZW50LlxuICAgKi9cbiAgdGFnOiBzdHJpbmd8bnVsbDtcblxuICAvKipcbiAgICogVGhlIG5hbWVzcGFjZSBvZiB0aGlzIGVsZW1lbnQsIHdoaWNoIGNvbnRyb2xzIHRoZSBwcmVjZWRpbmcgbmFtZXNwYWNlIGluc3RydWN0aW9uLlxuICAgKi9cbiAgbmFtZXNwYWNlOiBOYW1lc3BhY2U7XG59XG5cbi8qKlxuICogTG9naWNhbCBvcGVyYXRpb24gcmVwcmVzZW50aW5nIHRoZSBzdGFydCBvZiBhbiBlbGVtZW50IGluIHRoZSBjcmVhdGlvbiBJUi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbGVtZW50U3RhcnRPcCBleHRlbmRzIEVsZW1lbnRPcEJhc2Uge1xuICBraW5kOiBPcEtpbmQuRWxlbWVudFN0YXJ0O1xuXG4gIC8qKlxuICAgKiBUaGUgaTE4biBwbGFjZWhvbGRlciBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGVsZW1lbnQuXG4gICAqL1xuICBpMThuUGxhY2Vob2xkZXI/OiBpMThuLlRhZ1BsYWNlaG9sZGVyO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhbiBgRWxlbWVudFN0YXJ0T3BgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRWxlbWVudFN0YXJ0T3AoXG4gICAgdGFnOiBzdHJpbmcsIHhyZWY6IFhyZWZJZCwgbmFtZXNwYWNlOiBOYW1lc3BhY2UsIGkxOG5QbGFjZWhvbGRlcjogaTE4bi5UYWdQbGFjZWhvbGRlcnx1bmRlZmluZWQsXG4gICAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuKTogRWxlbWVudFN0YXJ0T3Age1xuICByZXR1cm4ge1xuICAgIGtpbmQ6IE9wS2luZC5FbGVtZW50U3RhcnQsXG4gICAgeHJlZixcbiAgICB0YWcsXG4gICAgaGFuZGxlOiBuZXcgU2xvdEhhbmRsZSgpLFxuICAgIGF0dHJpYnV0ZXM6IG51bGwsXG4gICAgbG9jYWxSZWZzOiBbXSxcbiAgICBub25CaW5kYWJsZTogZmFsc2UsXG4gICAgbmFtZXNwYWNlLFxuICAgIGkxOG5QbGFjZWhvbGRlcixcbiAgICBzb3VyY2VTcGFuLFxuICAgIC4uLlRSQUlUX0NPTlNVTUVTX1NMT1QsXG4gICAgLi4uTkVXX09QLFxuICB9O1xufVxuXG4vKipcbiAqIExvZ2ljYWwgb3BlcmF0aW9uIHJlcHJlc2VudGluZyBhbiBlbGVtZW50IHdpdGggbm8gY2hpbGRyZW4gaW4gdGhlIGNyZWF0aW9uIElSLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVsZW1lbnRPcCBleHRlbmRzIEVsZW1lbnRPcEJhc2Uge1xuICBraW5kOiBPcEtpbmQuRWxlbWVudDtcblxuICAvKipcbiAgICogVGhlIGkxOG4gcGxhY2Vob2xkZXIgZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhpcyBlbGVtZW50LlxuICAgKi9cbiAgaTE4blBsYWNlaG9sZGVyPzogaTE4bi5UYWdQbGFjZWhvbGRlcjtcbn1cblxuLyoqXG4gKiBMb2dpY2FsIG9wZXJhdGlvbiByZXByZXNlbnRpbmcgYW4gZW1iZWRkZWQgdmlldyBkZWNsYXJhdGlvbiBpbiB0aGUgY3JlYXRpb24gSVIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGVtcGxhdGVPcCBleHRlbmRzIEVsZW1lbnRPcEJhc2Uge1xuICBraW5kOiBPcEtpbmQuVGVtcGxhdGU7XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgZGVjbGFyYXRpb24gc2xvdHMgdXNlZCBieSB0aGlzIHRlbXBsYXRlLCBvciBgbnVsbGAgaWYgc2xvdHMgaGF2ZSBub3QgeWV0IGJlZW5cbiAgICogYXNzaWduZWQuXG4gICAqL1xuICBkZWNsczogbnVtYmVyfG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgYmluZGluZyB2YXJpYWJsZSBzbG90cyB1c2VkIGJ5IHRoaXMgdGVtcGxhdGUsIG9yIGBudWxsYCBpZiBiaW5kaW5nIHZhcmlhYmxlcyBoYXZlXG4gICAqIG5vdCB5ZXQgYmVlbiBjb3VudGVkLlxuICAgKi9cbiAgdmFyczogbnVtYmVyfG51bGw7XG5cbiAgLyoqXG4gICAqIFN1ZmZpeCB0byBhZGQgdG8gdGhlIG5hbWUgb2YgdGhlIGdlbmVyYXRlZCB0ZW1wbGF0ZSBmdW5jdGlvbi5cbiAgICovXG4gIGZ1bmN0aW9uTmFtZVN1ZmZpeDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgaTE4biBwbGFjZWhvbGRlciBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRlbXBsYXRlLlxuICAgKi9cbiAgaTE4blBsYWNlaG9sZGVyPzogaTE4bi5UYWdQbGFjZWhvbGRlcjtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBgVGVtcGxhdGVPcGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUZW1wbGF0ZU9wKFxuICAgIHhyZWY6IFhyZWZJZCwgdGFnOiBzdHJpbmd8bnVsbCwgZnVuY3Rpb25OYW1lU3VmZml4OiBzdHJpbmcsIG5hbWVzcGFjZTogTmFtZXNwYWNlLFxuICAgIGkxOG5QbGFjZWhvbGRlcjogaTE4bi5UYWdQbGFjZWhvbGRlcnx1bmRlZmluZWQsIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3Bhbik6IFRlbXBsYXRlT3Age1xuICByZXR1cm4ge1xuICAgIGtpbmQ6IE9wS2luZC5UZW1wbGF0ZSxcbiAgICB4cmVmLFxuICAgIGF0dHJpYnV0ZXM6IG51bGwsXG4gICAgdGFnLFxuICAgIGhhbmRsZTogbmV3IFNsb3RIYW5kbGUoKSxcbiAgICBmdW5jdGlvbk5hbWVTdWZmaXgsXG4gICAgZGVjbHM6IG51bGwsXG4gICAgdmFyczogbnVsbCxcbiAgICBsb2NhbFJlZnM6IFtdLFxuICAgIG5vbkJpbmRhYmxlOiBmYWxzZSxcbiAgICBuYW1lc3BhY2UsXG4gICAgaTE4blBsYWNlaG9sZGVyLFxuICAgIHNvdXJjZVNwYW4sXG4gICAgLi4uVFJBSVRfQ09OU1VNRVNfU0xPVCxcbiAgICAuLi5ORVdfT1AsXG4gIH07XG59XG5cbi8qKlxuICogQW4gb3AgdGhhdCBjcmVhdGVzIGEgcmVwZWF0ZXIgKGUuZy4gYSBmb3IgbG9vcCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVwZWF0ZXJDcmVhdGVPcCBleHRlbmRzIEVsZW1lbnRPcEJhc2Uge1xuICBraW5kOiBPcEtpbmQuUmVwZWF0ZXJDcmVhdGU7XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgZGVjbGFyYXRpb24gc2xvdHMgdXNlZCBieSB0aGlzIHJlcGVhdGVyJ3MgdGVtcGxhdGUsIG9yIGBudWxsYCBpZiBzbG90cyBoYXZlIG5vdFxuICAgKiB5ZXQgYmVlbiBhc3NpZ25lZC5cbiAgICovXG4gIGRlY2xzOiBudW1iZXJ8bnVsbDtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBiaW5kaW5nIHZhcmlhYmxlIHNsb3RzIHVzZWQgYnkgdGhpcyByZXBlYXRlcidzLCBvciBgbnVsbGAgaWYgYmluZGluZyB2YXJpYWJsZXNcbiAgICogaGF2ZSBub3QgeWV0IGJlZW4gY291bnRlZC5cbiAgICovXG4gIHZhcnM6IG51bWJlcnxudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgWHJlZiBvZiB0aGUgZW1wdHkgdmlldyBmdW5jdGlvbi4gKEZvciB0aGUgcHJpbWFyeSB2aWV3IGZ1bmN0aW9uLCB1c2UgdGhlIGB4cmVmYCBwcm9wZXJ0eSkuXG4gICAqL1xuICBlbXB0eVZpZXc6IFhyZWZJZHxudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgdHJhY2sgZXhwcmVzc2lvbiB0byB1c2Ugd2hpbGUgaXRlcmF0aW5nLlxuICAgKi9cbiAgdHJhY2s6IG8uRXhwcmVzc2lvbjtcblxuICAvKipcbiAgICogYG51bGxgIGluaXRpYWxseSwgdGhlbiBhbiBgby5FeHByZXNzaW9uYC4gTWlnaHQgYmUgYSB0cmFjayBleHByZXNzaW9uLCBvciBtaWdodCBiZSBhIHJlZmVyZW5jZVxuICAgKiBpbnRvIHRoZSBjb25zdGFudCBwb29sLlxuICAgKi9cbiAgdHJhY2tCeUZuOiBvLkV4cHJlc3Npb258bnVsbDtcblxuICAvKipcbiAgICogQ29udGV4dCB2YXJpYWJsZXMgYXZhaWFsYWJsZSBpbiB0aGlzIGJsb2NrLlxuICAgKi9cbiAgdmFyTmFtZXM6IFJlcGVhdGVyVmFyTmFtZXM7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHJlcGVhdGVyIHRyYWNrIGZ1bmN0aW9uIHJlbGllcyBvbiB0aGUgY29tcG9uZW50IGluc3RhbmNlLlxuICAgKi9cbiAgdXNlc0NvbXBvbmVudEluc3RhbmNlOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTdWZmaXggdG8gYWRkIHRvIHRoZSBuYW1lIG9mIHRoZSBnZW5lcmF0ZWQgdGVtcGxhdGUgZnVuY3Rpb24uXG4gICAqL1xuICBmdW5jdGlvbk5hbWVTdWZmaXg6IHN0cmluZztcblxuICBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW47XG59XG5cbi8vIFRPRE86IGFkZCBzb3VyY2Ugc3BhbnM/XG5leHBvcnQgaW50ZXJmYWNlIFJlcGVhdGVyVmFyTmFtZXMge1xuICAkaW5kZXg6IHN0cmluZztcbiAgJGNvdW50OiBzdHJpbmc7XG4gICRmaXJzdDogc3RyaW5nO1xuICAkbGFzdDogc3RyaW5nO1xuICAkZXZlbjogc3RyaW5nO1xuICAkb2RkOiBzdHJpbmc7XG4gICRpbXBsaWNpdDogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUmVwZWF0ZXJDcmVhdGVPcChcbiAgICBwcmltYXJ5VmlldzogWHJlZklkLCBlbXB0eVZpZXc6IFhyZWZJZHxudWxsLCB0YWc6IHN0cmluZ3xudWxsLCB0cmFjazogby5FeHByZXNzaW9uLFxuICAgIHZhck5hbWVzOiBSZXBlYXRlclZhck5hbWVzLCBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW4pOiBSZXBlYXRlckNyZWF0ZU9wIHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiBPcEtpbmQuUmVwZWF0ZXJDcmVhdGUsXG4gICAgYXR0cmlidXRlczogbnVsbCxcbiAgICB4cmVmOiBwcmltYXJ5VmlldyxcbiAgICBoYW5kbGU6IG5ldyBTbG90SGFuZGxlKCksXG4gICAgZW1wdHlWaWV3LFxuICAgIHRyYWNrLFxuICAgIHRyYWNrQnlGbjogbnVsbCxcbiAgICB0YWcsXG4gICAgZnVuY3Rpb25OYW1lU3VmZml4OiAnRm9yJyxcbiAgICBuYW1lc3BhY2U6IE5hbWVzcGFjZS5IVE1MLFxuICAgIG5vbkJpbmRhYmxlOiBmYWxzZSxcbiAgICBsb2NhbFJlZnM6IFtdLFxuICAgIGRlY2xzOiBudWxsLFxuICAgIHZhcnM6IG51bGwsXG4gICAgdmFyTmFtZXMsXG4gICAgdXNlc0NvbXBvbmVudEluc3RhbmNlOiBmYWxzZSxcbiAgICBzb3VyY2VTcGFuLFxuICAgIC4uLlRSQUlUX0NPTlNVTUVTX1NMT1QsXG4gICAgLi4uTkVXX09QLFxuICAgIG51bVNsb3RzVXNlZDogZW1wdHlWaWV3ID09PSBudWxsID8gMiA6IDMsXG4gIH07XG59XG5cbi8qKlxuICogTG9naWNhbCBvcGVyYXRpb24gcmVwcmVzZW50aW5nIHRoZSBlbmQgb2YgYW4gZWxlbWVudCBzdHJ1Y3R1cmUgaW4gdGhlIGNyZWF0aW9uIElSLlxuICpcbiAqIFBhaXJzIHdpdGggYW4gYEVsZW1lbnRTdGFydGAgb3BlcmF0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVsZW1lbnRFbmRPcCBleHRlbmRzIE9wPENyZWF0ZU9wPiB7XG4gIGtpbmQ6IE9wS2luZC5FbGVtZW50RW5kO1xuXG4gIC8qKlxuICAgKiBUaGUgYFhyZWZJZGAgb2YgdGhlIGVsZW1lbnQgZGVjbGFyZWQgdmlhIGBFbGVtZW50U3RhcnRgLlxuICAgKi9cbiAgeHJlZjogWHJlZklkO1xuXG4gIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3BhbnxudWxsO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhbiBgRWxlbWVudEVuZE9wYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnRFbmRPcCh4cmVmOiBYcmVmSWQsIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3BhbnxudWxsKTogRWxlbWVudEVuZE9wIHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiBPcEtpbmQuRWxlbWVudEVuZCxcbiAgICB4cmVmLFxuICAgIHNvdXJjZVNwYW4sXG4gICAgLi4uTkVXX09QLFxuICB9O1xufVxuXG4vKipcbiAqIExvZ2ljYWwgb3BlcmF0aW9uIHJlcHJlc2VudGluZyB0aGUgc3RhcnQgb2YgYSBjb250YWluZXIgaW4gdGhlIGNyZWF0aW9uIElSLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbnRhaW5lclN0YXJ0T3AgZXh0ZW5kcyBFbGVtZW50T3JDb250YWluZXJPcEJhc2Uge1xuICBraW5kOiBPcEtpbmQuQ29udGFpbmVyU3RhcnQ7XG59XG5cbi8qKlxuICogTG9naWNhbCBvcGVyYXRpb24gcmVwcmVzZW50aW5nIGFuIGVtcHR5IGNvbnRhaW5lciBpbiB0aGUgY3JlYXRpb24gSVIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGFpbmVyT3AgZXh0ZW5kcyBFbGVtZW50T3JDb250YWluZXJPcEJhc2Uge1xuICBraW5kOiBPcEtpbmQuQ29udGFpbmVyO1xufVxuXG4vKipcbiAqIExvZ2ljYWwgb3BlcmF0aW9uIHJlcHJlc2VudGluZyB0aGUgZW5kIG9mIGEgY29udGFpbmVyIHN0cnVjdHVyZSBpbiB0aGUgY3JlYXRpb24gSVIuXG4gKlxuICogUGFpcnMgd2l0aCBhbiBgQ29udGFpbmVyU3RhcnRgIG9wZXJhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb250YWluZXJFbmRPcCBleHRlbmRzIE9wPENyZWF0ZU9wPiB7XG4gIGtpbmQ6IE9wS2luZC5Db250YWluZXJFbmQ7XG5cbiAgLyoqXG4gICAqIFRoZSBgWHJlZklkYCBvZiB0aGUgZWxlbWVudCBkZWNsYXJlZCB2aWEgYENvbnRhaW5lclN0YXJ0YC5cbiAgICovXG4gIHhyZWY6IFhyZWZJZDtcblxuICBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW47XG59XG5cbi8qKlxuICogTG9naWNhbCBvcGVyYXRpb24gY2F1c2luZyBiaW5kaW5nIHRvIGJlIGRpc2FibGVkIGluIGRlc2NlbmRlbnRzIG9mIGEgbm9uLWJpbmRhYmxlIGNvbnRhaW5lci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEaXNhYmxlQmluZGluZ3NPcCBleHRlbmRzIE9wPENyZWF0ZU9wPiB7XG4gIGtpbmQ6IE9wS2luZC5EaXNhYmxlQmluZGluZ3M7XG5cbiAgLyoqXG4gICAqIGBYcmVmSWRgIG9mIHRoZSBlbGVtZW50IHRoYXQgd2FzIG1hcmtlZCBub24tYmluZGFibGUuXG4gICAqL1xuICB4cmVmOiBYcmVmSWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEaXNhYmxlQmluZGluZ3NPcCh4cmVmOiBYcmVmSWQpOiBEaXNhYmxlQmluZGluZ3NPcCB7XG4gIHJldHVybiB7XG4gICAga2luZDogT3BLaW5kLkRpc2FibGVCaW5kaW5ncyxcbiAgICB4cmVmLFxuICAgIC4uLk5FV19PUCxcbiAgfTtcbn1cblxuLyoqXG4gKiBMb2dpY2FsIG9wZXJhdGlvbiBjYXVzaW5nIGJpbmRpbmcgdG8gYmUgcmUtZW5hYmxlZCBhZnRlciB2aXNpdGluZyBkZXNjZW5kYW50cyBvZiBhXG4gKiBub24tYmluZGFibGUgY29udGFpbmVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVuYWJsZUJpbmRpbmdzT3AgZXh0ZW5kcyBPcDxDcmVhdGVPcD4ge1xuICBraW5kOiBPcEtpbmQuRW5hYmxlQmluZGluZ3M7XG5cbiAgLyoqXG4gICAqIGBYcmVmSWRgIG9mIHRoZSBlbGVtZW50IHRoYXQgd2FzIG1hcmtlZCBub24tYmluZGFibGUuXG4gICAqL1xuICB4cmVmOiBYcmVmSWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVFbmFibGVCaW5kaW5nc09wKHhyZWY6IFhyZWZJZCk6IEVuYWJsZUJpbmRpbmdzT3Age1xuICByZXR1cm4ge1xuICAgIGtpbmQ6IE9wS2luZC5FbmFibGVCaW5kaW5ncyxcbiAgICB4cmVmLFxuICAgIC4uLk5FV19PUCxcbiAgfTtcbn1cblxuLyoqXG4gKiBMb2dpY2FsIG9wZXJhdGlvbiByZXByZXNlbnRpbmcgYSB0ZXh0IG5vZGUgaW4gdGhlIGNyZWF0aW9uIElSLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRleHRPcCBleHRlbmRzIE9wPENyZWF0ZU9wPiwgQ29uc3VtZXNTbG90T3BUcmFpdCB7XG4gIGtpbmQ6IE9wS2luZC5UZXh0O1xuXG4gIC8qKlxuICAgKiBgWHJlZklkYCB1c2VkIHRvIHJlZmVyZW5jZSB0aGlzIHRleHQgbm9kZSBpbiBvdGhlciBJUiBzdHJ1Y3R1cmVzLlxuICAgKi9cbiAgeHJlZjogWHJlZklkO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhdGljIGluaXRpYWwgdmFsdWUgb2YgdGhlIHRleHQgbm9kZS5cbiAgICovXG4gIGluaXRpYWxWYWx1ZTogc3RyaW5nO1xuXG4gIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3BhbnxudWxsO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIGBUZXh0T3BgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVGV4dE9wKFxuICAgIHhyZWY6IFhyZWZJZCwgaW5pdGlhbFZhbHVlOiBzdHJpbmcsIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3BhbnxudWxsKTogVGV4dE9wIHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiBPcEtpbmQuVGV4dCxcbiAgICB4cmVmLFxuICAgIGhhbmRsZTogbmV3IFNsb3RIYW5kbGUoKSxcbiAgICBpbml0aWFsVmFsdWUsXG4gICAgc291cmNlU3BhbixcbiAgICAuLi5UUkFJVF9DT05TVU1FU19TTE9ULFxuICAgIC4uLk5FV19PUCxcbiAgfTtcbn1cblxuLyoqXG4gKiBMb2dpY2FsIG9wZXJhdGlvbiByZXByZXNlbnRpbmcgYW4gZXZlbnQgbGlzdGVuZXIgb24gYW4gZWxlbWVudCBpbiB0aGUgY3JlYXRpb24gSVIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdGVuZXJPcCBleHRlbmRzIE9wPENyZWF0ZU9wPiB7XG4gIGtpbmQ6IE9wS2luZC5MaXN0ZW5lcjtcblxuICB0YXJnZXQ6IFhyZWZJZDtcbiAgdGFyZ2V0U2xvdDogU2xvdEhhbmRsZTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGlzIGxpc3RlbmVyIGlzIGZyb20gYSBob3N0IGJpbmRpbmcuXG4gICAqL1xuICBob3N0TGlzdGVuZXI6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIGV2ZW50IHdoaWNoIGlzIGJlaW5nIGxpc3RlbmVkIHRvLlxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUYWcgbmFtZSBvZiB0aGUgZWxlbWVudCBvbiB3aGljaCB0aGlzIGxpc3RlbmVyIGlzIHBsYWNlZC4gTWlnaHQgYmUgbnVsbCwgaWYgdGhpcyBsaXN0ZW5lclxuICAgKiBiZWxvbmdzIHRvIGEgaG9zdCBiaW5kaW5nLlxuICAgKi9cbiAgdGFnOiBzdHJpbmd8bnVsbDtcblxuICAvKipcbiAgICogQSBsaXN0IG9mIGBVcGRhdGVPcGBzIHJlcHJlc2VudGluZyB0aGUgYm9keSBvZiB0aGUgZXZlbnQgbGlzdGVuZXIuXG4gICAqL1xuICBoYW5kbGVyT3BzOiBPcExpc3Q8VXBkYXRlT3A+O1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBmdW5jdGlvblxuICAgKi9cbiAgaGFuZGxlckZuTmFtZTogc3RyaW5nfG51bGw7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBsaXN0ZW5lciBpcyBrbm93biB0byBjb25zdW1lIGAkZXZlbnRgIGluIGl0cyBib2R5LlxuICAgKi9cbiAgY29uc3VtZXNEb2xsYXJFdmVudDogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgbGlzdGVuZXIgaXMgbGlzdGVuaW5nIGZvciBhbiBhbmltYXRpb24gZXZlbnQuXG4gICAqL1xuICBpc0FuaW1hdGlvbkxpc3RlbmVyOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgYW5pbWF0aW9uIHBoYXNlIG9mIHRoZSBsaXN0ZW5lci5cbiAgICovXG4gIGFuaW1hdGlvblBoYXNlOiBzdHJpbmd8bnVsbDtcblxuICBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW47XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgYExpc3RlbmVyT3BgLiBIb3N0IGJpbmRpbmdzIHJldXNlIGFsbCB0aGUgbGlzdGVuZXIgbG9naWMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVMaXN0ZW5lck9wKFxuICAgIHRhcmdldDogWHJlZklkLCB0YXJnZXRTbG90OiBTbG90SGFuZGxlLCBuYW1lOiBzdHJpbmcsIHRhZzogc3RyaW5nfG51bGwsXG4gICAgYW5pbWF0aW9uUGhhc2U6IHN0cmluZ3xudWxsLCBob3N0TGlzdGVuZXI6IGJvb2xlYW4sIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3Bhbik6IExpc3RlbmVyT3Age1xuICByZXR1cm4ge1xuICAgIGtpbmQ6IE9wS2luZC5MaXN0ZW5lcixcbiAgICB0YXJnZXQsXG4gICAgdGFyZ2V0U2xvdCxcbiAgICB0YWcsXG4gICAgaG9zdExpc3RlbmVyLFxuICAgIG5hbWUsXG4gICAgaGFuZGxlck9wczogbmV3IE9wTGlzdCgpLFxuICAgIGhhbmRsZXJGbk5hbWU6IG51bGwsXG4gICAgY29uc3VtZXNEb2xsYXJFdmVudDogZmFsc2UsXG4gICAgaXNBbmltYXRpb25MaXN0ZW5lcjogYW5pbWF0aW9uUGhhc2UgIT09IG51bGwsXG4gICAgYW5pbWF0aW9uUGhhc2U6IGFuaW1hdGlvblBoYXNlLFxuICAgIHNvdXJjZVNwYW4sXG4gICAgLi4uTkVXX09QLFxuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpcGVPcCBleHRlbmRzIE9wPENyZWF0ZU9wPiwgQ29uc3VtZXNTbG90T3BUcmFpdCB7XG4gIGtpbmQ6IE9wS2luZC5QaXBlO1xuICB4cmVmOiBYcmVmSWQ7XG4gIG5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBpcGVPcCh4cmVmOiBYcmVmSWQsIHNsb3Q6IFNsb3RIYW5kbGUsIG5hbWU6IHN0cmluZyk6IFBpcGVPcCB7XG4gIHJldHVybiB7XG4gICAga2luZDogT3BLaW5kLlBpcGUsXG4gICAgeHJlZixcbiAgICBoYW5kbGU6IHNsb3QsXG4gICAgbmFtZSxcbiAgICAuLi5ORVdfT1AsXG4gICAgLi4uVFJBSVRfQ09OU1VNRVNfU0xPVCxcbiAgfTtcbn1cblxuLyoqXG4gKiBBbiBvcCBjb3JyZXNwb25kaW5nIHRvIGEgbmFtZXNwYWNlIGluc3RydWN0aW9uLCBmb3Igc3dpdGNoaW5nIGJldHdlZW4gSFRNTCwgU1ZHLCBhbmQgTWF0aE1MLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5hbWVzcGFjZU9wIGV4dGVuZHMgT3A8Q3JlYXRlT3A+IHtcbiAga2luZDogT3BLaW5kLk5hbWVzcGFjZTtcbiAgYWN0aXZlOiBOYW1lc3BhY2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVOYW1lc3BhY2VPcChuYW1lc3BhY2U6IE5hbWVzcGFjZSk6IE5hbWVzcGFjZU9wIHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiBPcEtpbmQuTmFtZXNwYWNlLFxuICAgIGFjdGl2ZTogbmFtZXNwYWNlLFxuICAgIC4uLk5FV19PUCxcbiAgfTtcbn1cblxuLyoqXG4gKiBBbiBvcCB0aGF0IGNyZWF0ZXMgYSBjb250ZW50IHByb2plY3Rpb24gc2xvdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9qZWN0aW9uRGVmT3AgZXh0ZW5kcyBPcDxDcmVhdGVPcD4ge1xuICBraW5kOiBPcEtpbmQuUHJvamVjdGlvbkRlZjtcblxuICAvLyBUaGUgcGFyc2VkIHNlbGVjdG9yIGluZm9ybWF0aW9uIGZvciB0aGlzIHByb2plY3Rpb24gZGVmLlxuICBkZWY6IG8uRXhwcmVzc2lvbnxudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUHJvamVjdGlvbkRlZk9wKGRlZjogby5FeHByZXNzaW9ufG51bGwpOiBQcm9qZWN0aW9uRGVmT3Age1xuICByZXR1cm4ge1xuICAgIGtpbmQ6IE9wS2luZC5Qcm9qZWN0aW9uRGVmLFxuICAgIGRlZixcbiAgICAuLi5ORVdfT1AsXG4gIH07XG59XG5cbi8qKlxuICogQW4gb3AgdGhhdCBjcmVhdGVzIGEgY29udGVudCBwcm9qZWN0aW9uIHNsb3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvamVjdGlvbk9wIGV4dGVuZHMgT3A8Q3JlYXRlT3A+LCBDb25zdW1lc1Nsb3RPcFRyYWl0IHtcbiAga2luZDogT3BLaW5kLlByb2plY3Rpb247XG5cbiAgeHJlZjogWHJlZklkO1xuXG4gIHByb2plY3Rpb25TbG90SW5kZXg6IG51bWJlcjtcblxuICBhdHRyaWJ1dGVzOiBzdHJpbmdbXTtcblxuICBsb2NhbFJlZnM6IHN0cmluZ1tdO1xuXG4gIHNlbGVjdG9yOiBzdHJpbmc7XG5cbiAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUHJvamVjdGlvbk9wKFxuICAgIHhyZWY6IFhyZWZJZCwgc2VsZWN0b3I6IHN0cmluZywgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuKTogUHJvamVjdGlvbk9wIHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiBPcEtpbmQuUHJvamVjdGlvbixcbiAgICB4cmVmLFxuICAgIGhhbmRsZTogbmV3IFNsb3RIYW5kbGUoKSxcbiAgICBzZWxlY3RvcixcbiAgICBwcm9qZWN0aW9uU2xvdEluZGV4OiAwLFxuICAgIGF0dHJpYnV0ZXM6IFtdLFxuICAgIGxvY2FsUmVmczogW10sXG4gICAgc291cmNlU3BhbixcbiAgICAuLi5ORVdfT1AsXG4gICAgLi4uVFJBSVRfQ09OU1VNRVNfU0xPVCxcbiAgfTtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIGF0dHJpYnV0ZSB0aGF0IGhhcyBiZWVuIGV4dHJhY3RlZCBmb3IgaW5jbHVzaW9uIGluIHRoZSBjb25zdHMgYXJyYXkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXh0cmFjdGVkQXR0cmlidXRlT3AgZXh0ZW5kcyBPcDxDcmVhdGVPcD4ge1xuICBraW5kOiBPcEtpbmQuRXh0cmFjdGVkQXR0cmlidXRlO1xuXG4gIC8qKlxuICAgKiBUaGUgYFhyZWZJZGAgb2YgdGhlIHRlbXBsYXRlLWxpa2UgZWxlbWVudCB0aGUgZXh0cmFjdGVkIGF0dHJpYnV0ZSB3aWxsIGJlbG9uZyB0by5cbiAgICovXG4gIHRhcmdldDogWHJlZklkO1xuXG4gIC8qKlxuICAgKiAgVGhlIGtpbmQgb2YgYmluZGluZyByZXByZXNlbnRlZCBieSB0aGlzIGV4dHJhY3RlZCBhdHRyaWJ1dGUuXG4gICAqL1xuICBiaW5kaW5nS2luZDogQmluZGluZ0tpbmQ7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBleHRyYWN0ZWQgYXR0cmlidXRlLlxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgZXhwcmVzc2lvbiBvZiB0aGUgZXh0cmFjdGVkIGF0dHJpYnV0ZS5cbiAgICovXG4gIGV4cHJlc3Npb246IG8uRXhwcmVzc2lvbnxudWxsO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhbiBgRXh0cmFjdGVkQXR0cmlidXRlT3BgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRXh0cmFjdGVkQXR0cmlidXRlT3AoXG4gICAgdGFyZ2V0OiBYcmVmSWQsIGJpbmRpbmdLaW5kOiBCaW5kaW5nS2luZCwgbmFtZTogc3RyaW5nLFxuICAgIGV4cHJlc3Npb246IG8uRXhwcmVzc2lvbnxudWxsKTogRXh0cmFjdGVkQXR0cmlidXRlT3Age1xuICByZXR1cm4ge1xuICAgIGtpbmQ6IE9wS2luZC5FeHRyYWN0ZWRBdHRyaWJ1dGUsXG4gICAgdGFyZ2V0LFxuICAgIGJpbmRpbmdLaW5kLFxuICAgIG5hbWUsXG4gICAgZXhwcmVzc2lvbixcbiAgICAuLi5ORVdfT1AsXG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVmZXJPcCBleHRlbmRzIE9wPENyZWF0ZU9wPiwgQ29uc3VtZXNTbG90T3BUcmFpdCB7XG4gIGtpbmQ6IE9wS2luZC5EZWZlcjtcblxuICAvKipcbiAgICogVGhlIHhyZWYgb2YgdGhpcyBkZWZlciBvcC5cbiAgICovXG4gIHhyZWY6IFhyZWZJZDtcblxuICAvKipcbiAgICogVGhlIHhyZWYgb2YgdGhlIG1haW4gdmlldy5cbiAgICovXG4gIG1haW5WaWV3OiBYcmVmSWQ7XG5cbiAgbWFpblNsb3Q6IFNsb3RIYW5kbGU7XG5cbiAgLyoqXG4gICAqIFNlY29uZGFyeSBsb2FkaW5nIGJsb2NrIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGRlZmVyIG9wLlxuICAgKi9cbiAgbG9hZGluZ1ZpZXc6IFhyZWZJZHxudWxsO1xuXG4gIGxvYWRpbmdTbG90OiBTbG90SGFuZGxlfG51bGw7XG5cbiAgLyoqXG4gICAqIFNlY29uZGFyeSBwbGFjZWhvbGRlciBibG9jayBhc3NvY2lhdGVkIHdpdGggdGhpcyBkZWZlciBvcC5cbiAgICovXG4gIHBsYWNlaG9sZGVyVmlldzogWHJlZklkfG51bGw7XG5cbiAgcGxhY2Vob2xkZXJTbG90OiBTbG90SGFuZGxlfG51bGw7XG5cbiAgLyoqXG4gICAqIFNlY29uZGFyeSBlcnJvciBibG9jayBhc3NvY2lhdGVkIHdpdGggdGhpcyBkZWZlciBvcC5cbiAgICovXG4gIGVycm9yVmlldzogWHJlZklkfG51bGw7XG5cbiAgZXJyb3JTbG90OiBTbG90SGFuZGxlfG51bGw7XG5cbiAgcGxhY2Vob2xkZXJNaW5pbXVtVGltZTogbnVtYmVyfG51bGw7XG4gIGxvYWRpbmdNaW5pbXVtVGltZTogbnVtYmVyfG51bGw7XG4gIGxvYWRpbmdBZnRlclRpbWU6IG51bWJlcnxudWxsO1xuXG4gIHBsYWNlaG9sZGVyQ29uZmlnOiBvLkV4cHJlc3Npb258bnVsbDtcbiAgbG9hZGluZ0NvbmZpZzogby5FeHByZXNzaW9ufG51bGw7XG5cbiAgLyoqXG4gICAqIE1ldGFkYXRhIGFib3V0IHRoaXMgZGVmZXIgYmxvY2ssIHByb3ZpZGVkIGJ5IHRoZSBwYXJzZXIuXG4gICAqL1xuICBtZXRhZGF0YTogUjNEZWZlckJsb2NrTWV0YWRhdGE7XG5cbiAgLyoqXG4gICAqIEFmdGVyIHByb2Nlc3NpbmcsIHRoZSByZXNvbHZlciBmdW5jdGlvbiBmb3IgdGhlIGRlZmVyIGRlcHMgd2lsbCBiZSBleHRyYWN0ZWQgdG8gdGhlIGNvbnN0YW50XG4gICAqIHBvb2wsIGFuZCBhIHJlZmVyZW5jZSB0byB0aGF0IGZ1bmN0aW9uIHdpbGwgYmUgcG9wdWxhdGVkIGhlcmUuXG4gICAqL1xuICByZXNvbHZlckZuOiBvLkV4cHJlc3Npb258bnVsbDtcblxuICBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEZWZlck9wKFxuICAgIHhyZWY6IFhyZWZJZCwgbWFpbjogWHJlZklkLCBtYWluU2xvdDogU2xvdEhhbmRsZSwgbWV0YWRhdGE6IFIzRGVmZXJCbG9ja01ldGFkYXRhLFxuICAgIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3Bhbik6IERlZmVyT3Age1xuICByZXR1cm4ge1xuICAgIGtpbmQ6IE9wS2luZC5EZWZlcixcbiAgICB4cmVmLFxuICAgIGhhbmRsZTogbmV3IFNsb3RIYW5kbGUoKSxcbiAgICBtYWluVmlldzogbWFpbixcbiAgICBtYWluU2xvdCxcbiAgICBsb2FkaW5nVmlldzogbnVsbCxcbiAgICBsb2FkaW5nU2xvdDogbnVsbCxcbiAgICBsb2FkaW5nQ29uZmlnOiBudWxsLFxuICAgIGxvYWRpbmdNaW5pbXVtVGltZTogbnVsbCxcbiAgICBsb2FkaW5nQWZ0ZXJUaW1lOiBudWxsLFxuICAgIHBsYWNlaG9sZGVyVmlldzogbnVsbCxcbiAgICBwbGFjZWhvbGRlclNsb3Q6IG51bGwsXG4gICAgcGxhY2Vob2xkZXJDb25maWc6IG51bGwsXG4gICAgcGxhY2Vob2xkZXJNaW5pbXVtVGltZTogbnVsbCxcbiAgICBlcnJvclZpZXc6IG51bGwsXG4gICAgZXJyb3JTbG90OiBudWxsLFxuICAgIG1ldGFkYXRhLFxuICAgIHJlc29sdmVyRm46IG51bGwsXG4gICAgc291cmNlU3BhbixcbiAgICAuLi5ORVdfT1AsXG4gICAgLi4uVFJBSVRfQ09OU1VNRVNfU0xPVCxcbiAgICBudW1TbG90c1VzZWQ6IDIsXG4gIH07XG59XG5pbnRlcmZhY2UgRGVmZXJUcmlnZ2VyQmFzZSB7XG4gIGtpbmQ6IERlZmVyVHJpZ2dlcktpbmQ7XG59XG5cbmludGVyZmFjZSBEZWZlclRyaWdnZXJXaXRoVGFyZ2V0QmFzZSBleHRlbmRzIERlZmVyVHJpZ2dlckJhc2Uge1xuICB0YXJnZXROYW1lOiBzdHJpbmd8bnVsbDtcblxuICAvKipcbiAgICogVGhlIFhyZWYgb2YgdGhlIHRhcmdldGVkIG5hbWUuIE1heSBiZSBpbiBhIGRpZmZlcmVudCB2aWV3LlxuICAgKi9cbiAgdGFyZ2V0WHJlZjogWHJlZklkfG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSBzbG90IGluZGV4IG9mIHRoZSBuYW1lZCByZWZlcmVuY2UsIGluc2lkZSB0aGUgdmlldyBwcm92aWRlZCBiZWxvdy4gVGhpcyBzbG90IG1heSBub3QgYmVcbiAgICogaW5zaWRlIHRoZSBjdXJyZW50IHZpZXcsIGFuZCBpcyBoYW5kbGVkIHNwZWNpYWxseSBhcyBhIHJlc3VsdC5cbiAgICovXG4gIHRhcmdldFNsb3Q6IFNsb3RIYW5kbGV8bnVsbDtcblxuICB0YXJnZXRWaWV3OiBYcmVmSWR8bnVsbDtcblxuICAvKipcbiAgICogTnVtYmVyIG9mIHN0ZXBzIHRvIHdhbGsgdXAgb3IgZG93biB0aGUgdmlldyB0cmVlIHRvIGZpbmQgdGhlIHRhcmdldCBsb2NhbFJlZi5cbiAgICovXG4gIHRhcmdldFNsb3RWaWV3U3RlcHM6IG51bWJlcnxudWxsO1xufVxuXG5pbnRlcmZhY2UgRGVmZXJJZGxlVHJpZ2dlciBleHRlbmRzIERlZmVyVHJpZ2dlckJhc2Uge1xuICBraW5kOiBEZWZlclRyaWdnZXJLaW5kLklkbGU7XG59XG5cbmludGVyZmFjZSBEZWZlckltbWVkaWF0ZVRyaWdnZXIgZXh0ZW5kcyBEZWZlclRyaWdnZXJCYXNlIHtcbiAga2luZDogRGVmZXJUcmlnZ2VyS2luZC5JbW1lZGlhdGU7XG59XG5cbmludGVyZmFjZSBEZWZlckhvdmVyVHJpZ2dlciBleHRlbmRzIERlZmVyVHJpZ2dlcldpdGhUYXJnZXRCYXNlIHtcbiAga2luZDogRGVmZXJUcmlnZ2VyS2luZC5Ib3Zlcjtcbn1cblxuaW50ZXJmYWNlIERlZmVyVGltZXJUcmlnZ2VyIGV4dGVuZHMgRGVmZXJUcmlnZ2VyQmFzZSB7XG4gIGtpbmQ6IERlZmVyVHJpZ2dlcktpbmQuVGltZXI7XG5cbiAgZGVsYXk6IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIERlZmVySW50ZXJhY3Rpb25UcmlnZ2VyIGV4dGVuZHMgRGVmZXJUcmlnZ2VyV2l0aFRhcmdldEJhc2Uge1xuICBraW5kOiBEZWZlclRyaWdnZXJLaW5kLkludGVyYWN0aW9uO1xufVxuXG5pbnRlcmZhY2UgRGVmZXJWaWV3cG9ydFRyaWdnZXIgZXh0ZW5kcyBEZWZlclRyaWdnZXJXaXRoVGFyZ2V0QmFzZSB7XG4gIGtpbmQ6IERlZmVyVHJpZ2dlcktpbmQuVmlld3BvcnQ7XG59XG5cbi8qKlxuICogVGhlIHVuaW9uIHR5cGUgb2YgYWxsIGRlZmVyIHRyaWdnZXIgaW50ZXJmYWNlcy5cbiAqL1xuZXhwb3J0IHR5cGUgRGVmZXJUcmlnZ2VyID0gRGVmZXJJZGxlVHJpZ2dlcnxEZWZlckltbWVkaWF0ZVRyaWdnZXJ8RGVmZXJUaW1lclRyaWdnZXJ8XG4gICAgRGVmZXJIb3ZlclRyaWdnZXJ8RGVmZXJJbnRlcmFjdGlvblRyaWdnZXJ8RGVmZXJWaWV3cG9ydFRyaWdnZXI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVmZXJPbk9wIGV4dGVuZHMgT3A8Q3JlYXRlT3A+IHtcbiAga2luZDogT3BLaW5kLkRlZmVyT247XG5cbiAgZGVmZXI6IFhyZWZJZDtcblxuICAvKipcbiAgICogVGhlIHRyaWdnZXIgZm9yIHRoaXMgZGVmZXIgb3AgKGUuZy4gaWRsZSwgaG92ZXIsIGV0YykuXG4gICAqL1xuICB0cmlnZ2VyOiBEZWZlclRyaWdnZXI7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZW1pdCB0aGUgcHJlZmV0Y2ggdmVyc2lvbiBvZiB0aGUgaW5zdHJ1Y3Rpb24uXG4gICAqL1xuICBwcmVmZXRjaDogYm9vbGVhbjtcblxuICBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEZWZlck9uT3AoXG4gICAgZGVmZXI6IFhyZWZJZCwgdHJpZ2dlcjogRGVmZXJUcmlnZ2VyLCBwcmVmZXRjaDogYm9vbGVhbixcbiAgICBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW4pOiBEZWZlck9uT3Age1xuICByZXR1cm4ge1xuICAgIGtpbmQ6IE9wS2luZC5EZWZlck9uLFxuICAgIGRlZmVyLFxuICAgIHRyaWdnZXIsXG4gICAgcHJlZmV0Y2gsXG4gICAgc291cmNlU3BhbixcbiAgICAuLi5ORVdfT1AsXG4gIH07XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHNpbmdsZSB2YWx1ZSBpbiBhbiBpMThuIHBhcmFtIG1hcC4gRWFjaCBwbGFjZWhvbGRlciBpbiB0aGUgbWFwIG1heSBoYXZlIG11bHRpcGxlIG9mXG4gKiB0aGVzZSB2YWx1ZXMgYXNzb2NpYXRlZCB3aXRoIGl0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEkxOG5QYXJhbVZhbHVlIHtcbiAgLyoqXG4gICAqIFRoZSB2YWx1ZS5cbiAgICovXG4gIHZhbHVlOiBzdHJpbmd8bnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgc3ViLXRlbXBsYXRlIGluZGV4IGFzc29jaWF0ZWQgd2l0aCB0aGUgdmFsdWUuXG4gICAqL1xuICBzdWJUZW1wbGF0ZUluZGV4OiBudW1iZXJ8bnVsbDtcblxuICAvKipcbiAgICogRmxhZ3MgYXNzb2NpYXRlZCB3aXRoIHRoZSB2YWx1ZS5cbiAgICovXG4gIGZsYWdzOiBJMThuUGFyYW1WYWx1ZUZsYWdzO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gaTE4biBtZXNzYWdlIHRoYXQgaGFzIGJlZW4gZXh0cmFjdGVkIGZvciBpbmNsdXNpb24gaW4gdGhlIGNvbnN0cyBhcnJheS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJMThuTWVzc2FnZU9wIGV4dGVuZHMgT3A8Q3JlYXRlT3A+IHtcbiAga2luZDogT3BLaW5kLkkxOG5NZXNzYWdlO1xuXG4gIC8qKlxuICAgKiBBbiBpZCB1c2VkIHRvIHJlZmVyZW5jZSB0aGlzIG1lc3NhZ2UuXG4gICAqL1xuICB4cmVmOiBYcmVmSWQ7XG5cbiAgLyoqXG4gICAqIEEgcmVmZXJlbmNlIHRvIHRoZSBpMThuIG9wIHRoaXMgbWVzc2FnZSB3YXMgZXh0cmFjdGVkIGZyb20uXG4gICAqL1xuICBpMThuQmxvY2s6IFhyZWZJZDtcblxuICAvKipcbiAgICogVGhlIGkxOG4gbWVzc2FnZSByZXByZXNlbnRlZCBieSB0aGlzIG9wLlxuICAgKi9cbiAgbWVzc2FnZTogaTE4bi5NZXNzYWdlO1xuXG4gIC8qKlxuICAgKiBUaGUgcGxhY2Vob2xkZXIgdXNlZCBmb3IgdGhpcyBtZXNzYWdlIHdoZW4gaXQgaXMgcmVmZXJlbmNlZCBpbiBhbm90aGVyIG1lc3NhZ2UuXG4gICAqIEZvciBhIHRvcC1sZXZlbCBtZXNzYWdlIHRoYXQgaXNuJ3QgcmVmZXJlbmNlZCBmcm9tIGFub3RoZXIgbWVzc2FnZSwgdGhpcyB3aWxsIGJlIG51bGwuXG4gICAqL1xuICBtZXNzYWdlUGxhY2Vob2xkZXI6IHN0cmluZ3xudWxsO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgbWVzc2FnZSBuZWVkcyBwb3N0LXByb2Nlc3NpbmcuXG4gICAqL1xuICBuZWVkc1Bvc3Rwcm9jZXNzaW5nOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFyYW0gbWFwLCB3aXRoIHBsYWNlaG9sZGVycyByZXByZXNlbnRlZCBhcyBhbiBgRXhwcmVzc2lvbmAuXG4gICAqL1xuICBwYXJhbXM6IE1hcDxzdHJpbmcsIG8uRXhwcmVzc2lvbj47XG5cbiAgLyoqXG4gICAqIFRoZSBwb3N0LXByb2Nlc3NpbmcgcGFyYW0gbWFwLCB3aXRoIHBsYWNlaG9sZGVycyByZXByZXNlbnRlZCBhcyBhbiBgRXhwcmVzc2lvbmAuXG4gICAqL1xuICBwb3N0cHJvY2Vzc2luZ1BhcmFtczogTWFwPHN0cmluZywgby5FeHByZXNzaW9uPjtcblxuICAvKipcbiAgICogQSBsaXN0IG9mIHN1Yi1tZXNzYWdlcyB0aGF0IGFyZSByZWZlcmVuY2VkIGJ5IHRoaXMgbWVzc2FnZS5cbiAgICovXG4gIHN1Yk1lc3NhZ2VzOiBYcmVmSWRbXTtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYW4gYEV4dHJhY3RlZE1lc3NhZ2VPcGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVJMThuTWVzc2FnZU9wKFxuICAgIHhyZWY6IFhyZWZJZCwgaTE4bkJsb2NrOiBYcmVmSWQsIG1lc3NhZ2U6IGkxOG4uTWVzc2FnZSwgbWVzc2FnZVBsYWNlaG9sZGVyOiBzdHJpbmd8bnVsbCxcbiAgICBwYXJhbXM6IE1hcDxzdHJpbmcsIG8uRXhwcmVzc2lvbj4sIHBvc3Rwcm9jZXNzaW5nUGFyYW1zOiBNYXA8c3RyaW5nLCBvLkV4cHJlc3Npb24+LFxuICAgIG5lZWRzUG9zdHByb2Nlc3Npbmc6IGJvb2xlYW4pOiBJMThuTWVzc2FnZU9wIHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiBPcEtpbmQuSTE4bk1lc3NhZ2UsXG4gICAgeHJlZixcbiAgICBpMThuQmxvY2ssXG4gICAgbWVzc2FnZSxcbiAgICBtZXNzYWdlUGxhY2Vob2xkZXIsXG4gICAgcGFyYW1zLFxuICAgIHBvc3Rwcm9jZXNzaW5nUGFyYW1zLFxuICAgIG5lZWRzUG9zdHByb2Nlc3NpbmcsXG4gICAgc3ViTWVzc2FnZXM6IFtdLFxuICAgIC4uLk5FV19PUCxcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJMThuT3BCYXNlIGV4dGVuZHMgT3A8Q3JlYXRlT3A+LCBDb25zdW1lc1Nsb3RPcFRyYWl0IHtcbiAga2luZDogT3BLaW5kLkkxOG5TdGFydHxPcEtpbmQuSTE4bjtcblxuICAvKipcbiAgICogYFhyZWZJZGAgYWxsb2NhdGVkIGZvciB0aGlzIGkxOG4gYmxvY2suXG4gICAqL1xuICB4cmVmOiBYcmVmSWQ7XG5cbiAgLyoqXG4gICAqIEEgcmVmZXJlbmNlIHRvIHRoZSByb290IGkxOG4gYmxvY2sgdGhhdCB0aGlzIG9uZSBiZWxvbmdzIHRvLiBGb3IgYSByb290IGkxOG4gYmxvY2ssIHRoaXMgaXNcbiAgICogdGhlIHNhbWUgYXMgeHJlZi5cbiAgICovXG4gIHJvb3Q6IFhyZWZJZDtcblxuICAvKipcbiAgICogVGhlIGkxOG4gbWV0YWRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoaXMgb3AuXG4gICAqL1xuICBtZXNzYWdlOiBpMThuLk1lc3NhZ2U7XG5cbiAgLyoqXG4gICAqIFRoZSBpbmRleCBpbiB0aGUgY29uc3RzIGFycmF5IHdoZXJlIHRoZSBtZXNzYWdlIGkxOG4gbWVzc2FnZSBpcyBzdG9yZWQuXG4gICAqL1xuICBtZXNzYWdlSW5kZXg6IENvbnN0SW5kZXh8bnVsbDtcblxuICAvKipcbiAgICogVGhlIGluZGV4IG9mIHRoaXMgc3ViLWJsb2NrIGluIHRoZSBpMThuIG1lc3NhZ2UuIEZvciBhIHJvb3QgaTE4biBibG9jaywgdGhpcyBpcyBudWxsLlxuICAgKi9cbiAgc3ViVGVtcGxhdGVJbmRleDogbnVtYmVyfG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSBpMThuIGNvbnRleHQgZ2VuZXJhdGVkIGZyb20gdGhpcyBibG9jay4gSW5pdGlhbGx5IG51bGwsIHVudGlsIHRoZSBjb250ZXh0IGlzIGNyZWF0ZWQuXG4gICAqL1xuICBjb250ZXh0OiBYcmVmSWR8bnVsbDtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIGVtcHR5IGkxOG4gYmxvY2suXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSTE4bk9wIGV4dGVuZHMgSTE4bk9wQmFzZSB7XG4gIGtpbmQ6IE9wS2luZC5JMThuO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHN0YXJ0IG9mIGFuIGkxOG4gYmxvY2suXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSTE4blN0YXJ0T3AgZXh0ZW5kcyBJMThuT3BCYXNlIHtcbiAga2luZDogT3BLaW5kLkkxOG5TdGFydDtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYW4gYEkxOG5TdGFydE9wYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUkxOG5TdGFydE9wKHhyZWY6IFhyZWZJZCwgbWVzc2FnZTogaTE4bi5NZXNzYWdlLCByb290PzogWHJlZklkKTogSTE4blN0YXJ0T3Age1xuICByZXR1cm4ge1xuICAgIGtpbmQ6IE9wS2luZC5JMThuU3RhcnQsXG4gICAgeHJlZixcbiAgICBoYW5kbGU6IG5ldyBTbG90SGFuZGxlKCksXG4gICAgcm9vdDogcm9vdCA/PyB4cmVmLFxuICAgIG1lc3NhZ2UsXG4gICAgbWVzc2FnZUluZGV4OiBudWxsLFxuICAgIHN1YlRlbXBsYXRlSW5kZXg6IG51bGwsXG4gICAgY29udGV4dDogbnVsbCxcbiAgICAuLi5ORVdfT1AsXG4gICAgLi4uVFJBSVRfQ09OU1VNRVNfU0xPVCxcbiAgfTtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBlbmQgb2YgYW4gaTE4biBibG9jay5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJMThuRW5kT3AgZXh0ZW5kcyBPcDxDcmVhdGVPcD4ge1xuICBraW5kOiBPcEtpbmQuSTE4bkVuZDtcblxuICAvKipcbiAgICogVGhlIGBYcmVmSWRgIG9mIHRoZSBgSTE4blN0YXJ0T3BgIHRoYXQgY3JlYXRlZCB0aGlzIGJsb2NrLlxuICAgKi9cbiAgeHJlZjogWHJlZklkO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhbiBgSTE4bkVuZE9wYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUkxOG5FbmRPcCh4cmVmOiBYcmVmSWQpOiBJMThuRW5kT3Age1xuICByZXR1cm4ge1xuICAgIGtpbmQ6IE9wS2luZC5JMThuRW5kLFxuICAgIHhyZWYsXG4gICAgLi4uTkVXX09QLFxuICB9O1xufVxuXG4vKipcbiAqIEFuIG9wIHRoYXQgcmVwcmVzZW50cyB0aGUgc3RhcnQgb2YgYW4gSUNVIGV4cHJlc3Npb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSWN1U3RhcnRPcCBleHRlbmRzIE9wPENyZWF0ZU9wPiB7XG4gIGtpbmQ6IE9wS2luZC5JY3VTdGFydDtcblxuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBJQ1UuXG4gICAqL1xuICB4cmVmOiBYcmVmSWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBpMThuIG1lc3NhZ2UgZm9yIHRoaXMgSUNVLlxuICAgKi9cbiAgbWVzc2FnZTogaTE4bi5NZXNzYWdlO1xuXG4gIC8qKlxuICAgKiBQbGFjZWhvbGRlciB1c2VkIHRvIHJlZmVyZW5jZSB0aGlzIElDVSBpbiBvdGhlciBpMThuIG1lc3NhZ2VzLlxuICAgKi9cbiAgbWVzc2FnZVBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgcmVmZXJlbmNlIHRvIHRoZSBpMThuIGNvbnRleHQgZm9yIHRoaXMgb3AuIEluaXRpYWxseSBudWxsLCB1bnRpbCB0aGUgY29udGV4dCBpcyBjcmVhdGVkLlxuICAgKi9cbiAgY29udGV4dDogWHJlZklkfG51bGw7XG5cbiAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYW4gSUNVIHN0YXJ0IG9wLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSWN1U3RhcnRPcChcbiAgICB4cmVmOiBYcmVmSWQsIG1lc3NhZ2U6IGkxOG4uTWVzc2FnZSwgbWVzc2FnZVBsYWNlaG9sZGVyOiBzdHJpbmcsXG4gICAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuKTogSWN1U3RhcnRPcCB7XG4gIHJldHVybiB7XG4gICAga2luZDogT3BLaW5kLkljdVN0YXJ0LFxuICAgIHhyZWYsXG4gICAgbWVzc2FnZSxcbiAgICBtZXNzYWdlUGxhY2Vob2xkZXIsXG4gICAgY29udGV4dDogbnVsbCxcbiAgICBzb3VyY2VTcGFuLFxuICAgIC4uLk5FV19PUCxcbiAgfTtcbn1cblxuLyoqXG4gKiBBbiBvcCB0aGF0IHJlcHJlc2VudHMgdGhlIGVuZCBvZiBhbiBJQ1UgZXhwcmVzc2lvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJY3VFbmRPcCBleHRlbmRzIE9wPENyZWF0ZU9wPiB7XG4gIGtpbmQ6IE9wS2luZC5JY3VFbmQ7XG5cbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGUgY29ycmVzcG9uZGluZyBJY3VTdGFydE9wLlxuICAgKi9cbiAgeHJlZjogWHJlZklkO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYW4gSUNVIGVuZCBvcC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUljdUVuZE9wKHhyZWY6IFhyZWZJZCk6IEljdUVuZE9wIHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiBPcEtpbmQuSWN1RW5kLFxuICAgIHhyZWYsXG4gICAgLi4uTkVXX09QLFxuICB9O1xufVxuXG4vKipcbiAqIEFuIGkxOG4gY29udGV4dCB0aGF0IGlzIHVzZWQgdG8gZ2VuZXJhdGUgc25pcHBldHMgb2YgYSBmdWxsIHRyYW5zbGF0ZWQgbWVzc2FnZS5cbiAqIEEgc2VwYXJhdGUgY29udGV4dCBpcyBjcmVhdGVkIGluIGEgZmV3IGRpZmZlcmVudCBzY2VuYXJpb3M6XG4gKlxuICogMS4gRm9yIGVhY2ggdG9wLWxldmVsIGkxOG4gYmxvY2suIEEgY29udGV4dCBnZW5lcmF0ZWQgZm9yIGEgdG9wLWxldmVsIGkxOG4gYmxvY2ssIHdpbGwgYmUgdXNlZCB0b1xuICogICAgZXZlbnR1YWxseSBnZW5lcmF0ZSB0aGUgdHJhbnNsYXRlZCBtZXNzYWdlIGZvciB0aGF0IGJsb2NrIHRoYXQgaXMgZXh0cmFjdGVkIGludG8gdGhlIGNvbnN0XG4gKiAgICBhcnJheS5cbiAqIDIuIEZvciBlYWNoIGNoaWxkIGkxOG4gYmxvY2sgKHJlc3VsdGluZyBmcm9tIHVzaW5nIGFuIG5nLXRlbXBsYXRlIGluc2lkZSBvZiBhbm90aGVyIGkxOG4gYmxvY2spLlxuICogICAgQSBjb250ZXh0IGdlbmVyYXRlZCBmb3IgYSBjaGlsZCBpMThuIGJsb2NrIHdpbGwgYmUgdXNlZCB0byBnZW5lcmF0ZSB0aGUgcG9ydGlvbiBvZiB0aGUgZmluYWxcbiAqICAgIG1lc3NhZ2UgcmVwcmVzZW50ZWQgYnkgdGhlIHRlbXBsYXRlLiBJdCB3aWxsIG5vdCByZXN1bHQgaW4gYSBzZXBhcmF0ZSBtZXNzYWdlIGluIHRoZSBjb25zdHNcbiAqICAgIGFycmF5LCBidXQgd2lsbCBpbnN0ZWFkIGJlIHJvbGxlZCBpbnRvIHRoZSByb290IG1lc3NhZ2UgdGhhdCBzcGF3bmVkIGl0LlxuICogMy4gRm9yIGVhY2ggSUNVIHJlZmVyZW5jZWQgYXMgYSBzdWItbWVzc2FnZS4gSUNVcyB0aGF0IGFyZSByZWZlcmVuY2VkIGFzIGEgc3ViLW1lc3NhZ2Ugd2lsbCBiZVxuICogICAgdXNlZCB0byBnZW5lcmF0ZSBhIHNlcGFyYXRlIGkxOG4gbWVzc2FnZSwgYnV0IHdpbGwgbm90IGJlIGV4dHJhY3RlZCBkaXJlY3RseSBpbnRvIHRoZSBjb25zdHNcbiAqICAgIGFycmF5LiBJbnN0ZWFkIHRoZXkgd2lsbCBiZSBwdWxsZWQgaW4gYXMgcGFydCBvZiB0aGUgaW5pdGlhbGl6YXRpb24gc3RhdGVtZW50cyBmb3IgdGhlIG1lc3NhZ2VcbiAqICAgIHRoYXQgcmVmZXJlbmNlcyB0aGVtLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEkxOG5Db250ZXh0T3AgZXh0ZW5kcyBPcDxDcmVhdGVPcD4ge1xuICBraW5kOiBPcEtpbmQuSTE4bkNvbnRleHQ7XG5cbiAgLyoqXG4gICAqICBUaGUgaWQgb2YgdGhpcyBjb250ZXh0LlxuICAgKi9cbiAgeHJlZjogWHJlZklkO1xuXG4gIC8qKlxuICAgKiBBIHJlZmVyZW5jZSB0byB0aGUgSTE4blN0YXJ0T3Agb3IgSTE4bk9wIHRoaXMgY29udGV4dCBiZWxvbmdzIHRvLlxuICAgKlxuICAgKiBJdCBpcyBwb3NzaWJsZSBmb3IgbXVsdGlwbGUgY29udGV4dHMgdG8gYmVsb25nIHRvIHRoZSBzYW1lIGJsb2NrLCBzaW5jZSBib3RoIHRoZSBibG9jayBhbmQgYW55XG4gICAqIElDVXMgaW5zaWRlIHRoZSBibG9jayB3aWxsIGVhY2ggZ2V0IHRoZWlyIG93biBjb250ZXh0LlxuICAgKi9cbiAgaTE4bkJsb2NrOiBYcmVmSWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBpMThuIG1lc3NhZ2UgYXNzb2NpYXRlZCB3aXRoIHRoaXMgY29udGV4dC5cbiAgICovXG4gIG1lc3NhZ2U6IGkxOG4uTWVzc2FnZTtcblxuICAvKipcbiAgICogVGhlIHBhcmFtIG1hcCBmb3IgdGhpcyBjb250ZXh0LlxuICAgKi9cbiAgcGFyYW1zOiBNYXA8c3RyaW5nLCBJMThuUGFyYW1WYWx1ZVtdPjtcblxuICAvKipcbiAgICogVGhlIHBvc3QtcHJvY2Vzc2luZyBwYXJhbSBtYXAgZm9yIHRoaXMgY29udGV4dC5cbiAgICovXG4gIHBvc3Rwcm9jZXNzaW5nUGFyYW1zOiBNYXA8c3RyaW5nLCBJMThuUGFyYW1WYWx1ZVtdPjtcblxuICBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVJMThuQ29udGV4dE9wKFxuICAgIHhyZWY6IFhyZWZJZCwgaTE4bkJsb2NrOiBYcmVmSWQsIG1lc3NhZ2U6IGkxOG4uTWVzc2FnZSxcbiAgICBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW4pOiBJMThuQ29udGV4dE9wIHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiBPcEtpbmQuSTE4bkNvbnRleHQsXG4gICAgeHJlZixcbiAgICBpMThuQmxvY2ssXG4gICAgbWVzc2FnZSxcbiAgICBzb3VyY2VTcGFuLFxuICAgIHBhcmFtczogbmV3IE1hcCgpLFxuICAgIHBvc3Rwcm9jZXNzaW5nUGFyYW1zOiBuZXcgTWFwKCksXG4gICAgLi4uTkVXX09QLFxuICB9O1xufVxuXG4vKipcbiAqIEFuIGluZGV4IGludG8gdGhlIGBjb25zdHNgIGFycmF5IHdoaWNoIGlzIHNoYXJlZCBhY3Jvc3MgdGhlIGNvbXBpbGF0aW9uIG9mIGFsbCB2aWV3cyBpbiBhXG4gKiBjb21wb25lbnQuXG4gKi9cbmV4cG9ydCB0eXBlIENvbnN0SW5kZXggPSBudW1iZXIme19fYnJhbmQ6ICdDb25zdEluZGV4J307XG5cbmV4cG9ydCBmdW5jdGlvbiBsaXRlcmFsT3JBcnJheUxpdGVyYWwodmFsdWU6IGFueSk6IG8uRXhwcmVzc2lvbiB7XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiBvLmxpdGVyYWxBcnIodmFsdWUubWFwKGxpdGVyYWxPckFycmF5TGl0ZXJhbCkpO1xuICB9XG4gIHJldHVybiBvLmxpdGVyYWwodmFsdWUsIG8uSU5GRVJSRURfVFlQRSk7XG59XG4iXX0=
|
|
324
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcGlsZXIvc3JjL3RlbXBsYXRlL3BpcGVsaW5lL2lyL3NyYy9vcHMvY3JlYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUdILE9BQU8sS0FBSyxDQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFHdEQsT0FBTyxFQUFxRCxTQUFTLEVBQUUsTUFBTSxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQy9GLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxFQUFLLE1BQU0sRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQXNCLG1CQUFtQixFQUFDLE1BQU0sV0FBVyxDQUFDO0FBRW5FLE9BQU8sRUFBWSxNQUFNLEVBQTBCLE1BQU0sVUFBVSxDQUFDO0FBbUJwRTs7R0FFRztBQUNILE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxHQUFHLENBQUM7SUFDdEMsTUFBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLGNBQWMsRUFBRSxNQUFNLENBQUMsUUFBUTtJQUM3RixNQUFNLENBQUMsY0FBYztDQUN0QixDQUFDLENBQUM7QUFFSDs7R0FFRztBQUNILE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxFQUFZO0lBQ2pELE9BQU8sdUJBQXVCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBa0ZEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQixDQUNoQyxHQUFXLEVBQUUsSUFBWSxFQUFFLFNBQW9CLEVBQUUsZUFBOEMsRUFDL0YsVUFBMkI7SUFDN0IsT0FBTztRQUNMLElBQUksRUFBRSxNQUFNLENBQUMsWUFBWTtRQUN6QixJQUFJO1FBQ0osR0FB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QUFVLGdCQUFnQixDQUM1QixJQUFZLEVBQUUsT0FBcUIsRUFBRSxrQkFBMEIsRUFDL0QsVUFBMkI7SUFDN0IsT0FBTztRQUNMLElBQUksRUFBRSxNQUFNLENBQUMsUUFBUTtRQUNyQixJQUFJO1FBQ0osT0FBTztRQUNQLGtCQUFrQjtRQUNsQixPQUFPLEVBQUUsSUFBSTtRQUNiLFVBQVU7UUFDVixHQUFHLE1BQU07S0FDVixDQUFDO0FBQ0osQ0FBQztBQWNEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxJQUFZO0lBQ3pDLE9BQU87UUFDTCxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU07UUFDbkIsSUFBSTtRQUNKLEdBQUcsTUFBTTtLQUNWLENBQUM7QUFDSixDQUFDO0FBb0RELE1BQU0sVUFBVSxtQkFBbUIsQ0FDL0IsSUFBWSxFQUFFLFNBQWlCLEVBQUUsT0FBcUIsRUFDdEQsVUFBMkI7SUFDN0IsT0FBTztRQUNMLElBQUksRUFBRSxNQUFNLENBQUMsV0FBVztRQUN4QixJQUFJO1FBQ0osU0FBUztRQUNULE9BQU87UUFDUCxVQUFVO1FBQ1YsTUFBTSxFQUFFLElBQUksR0FBRyxFQUFFO1FBQ2pCLG9CQUFvQixFQUFFLElBQUksR0FBRyxFQUFFO1FBQy9CLEdBQUcsTUFBTTtLQUNWLENBQUM7QUFDSixDQUFDO0FBUUQsTUFBTSxVQUFVLHFCQUFxQixDQUFDLEtBQVU7SUFDOUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDekIsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFDRCxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUMzQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCAqIGFzIGkxOG4gZnJvbSAnLi4vLi4vLi4vLi4vLi4vaTE4bi9pMThuX2FzdCc7XG5pbXBvcnQgKiBhcyBvIGZyb20gJy4uLy4uLy4uLy4uLy4uL291dHB1dC9vdXRwdXRfYXN0JztcbmltcG9ydCB7UGFyc2VTb3VyY2VTcGFufSBmcm9tICcuLi8uLi8uLi8uLi8uLi9wYXJzZV91dGlsJztcbmltcG9ydCB7UjNEZWZlckJsb2NrTWV0YWRhdGF9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3JlbmRlcjMvdmlldy9hcGknO1xuaW1wb3J0IHtCaW5kaW5nS2luZCwgRGVmZXJUcmlnZ2VyS2luZCwgSTE4blBhcmFtVmFsdWVGbGFncywgTmFtZXNwYWNlLCBPcEtpbmR9IGZyb20gJy4uL2VudW1zJztcbmltcG9ydCB7U2xvdEhhbmRsZX0gZnJvbSAnLi4vaGFuZGxlJztcbmltcG9ydCB7T3AsIE9wTGlzdCwgWHJlZklkfSBmcm9tICcuLi9vcGVyYXRpb25zJztcbmltcG9ydCB7Q29uc3VtZXNTbG90T3BUcmFpdCwgVFJBSVRfQ09OU1VNRVNfU0xPVH0gZnJvbSAnLi4vdHJhaXRzJztcblxuaW1wb3J0IHtMaXN0RW5kT3AsIE5FV19PUCwgU3RhdGVtZW50T3AsIFZhcmlhYmxlT3B9IGZyb20gJy4vc2hhcmVkJztcblxuaW1wb3J0IHR5cGUge1VwZGF0ZU9wfSBmcm9tICcuL3VwZGF0ZSc7XG5cbi8qKlxuICogQW4gb3BlcmF0aW9uIHVzYWJsZSBvbiB0aGUgY3JlYXRpb24gc2lkZSBvZiB0aGUgSVIuXG4gKi9cbmV4cG9ydCB0eXBlIENyZWF0ZU9wID0gTGlzdEVuZE9wPENyZWF0ZU9wPnxTdGF0ZW1lbnRPcDxDcmVhdGVPcD58RWxlbWVudE9wfEVsZW1lbnRTdGFydE9wfFxuICAgIEVsZW1lbnRFbmRPcHxDb250YWluZXJPcHxDb250YWluZXJTdGFydE9wfENvbnRhaW5lckVuZE9wfFRlbXBsYXRlT3B8RW5hYmxlQmluZGluZ3NPcHxcbiAgICBEaXNhYmxlQmluZGluZ3NPcHxUZXh0T3B8TGlzdGVuZXJPcHxQaXBlT3B8VmFyaWFibGVPcDxDcmVhdGVPcD58TmFtZXNwYWNlT3B8UHJvamVjdGlvbkRlZk9wfFxuICAgIFByb2plY3Rpb25PcHxFeHRyYWN0ZWRBdHRyaWJ1dGVPcHxEZWZlck9wfERlZmVyT25PcHxSZXBlYXRlckNyZWF0ZU9wfEkxOG5NZXNzYWdlT3B8STE4bk9wfFxuICAgIEkxOG5TdGFydE9wfEkxOG5FbmRPcHxJY3VTdGFydE9wfEljdUVuZE9wfEkxOG5Db250ZXh0T3A7XG5cbi8qKlxuICogQW4gb3BlcmF0aW9uIHJlcHJlc2VudGluZyB0aGUgY3JlYXRpb24gb2YgYW4gZWxlbWVudCBvciBjb250YWluZXIuXG4gKi9cbmV4cG9ydCB0eXBlIEVsZW1lbnRPckNvbnRhaW5lck9wcyA9XG4gICAgRWxlbWVudE9wfEVsZW1lbnRTdGFydE9wfENvbnRhaW5lck9wfENvbnRhaW5lclN0YXJ0T3B8VGVtcGxhdGVPcHxSZXBlYXRlckNyZWF0ZU9wO1xuXG4vKipcbiAqIFRoZSBzZXQgb2YgT3BLaW5kcyB0aGF0IHJlcHJlc2VudCB0aGUgY3JlYXRpb24gb2YgYW4gZWxlbWVudCBvciBjb250YWluZXJcbiAqL1xuY29uc3QgZWxlbWVudENvbnRhaW5lck9wS2luZHMgPSBuZXcgU2V0KFtcbiAgT3BLaW5kLkVsZW1lbnQsIE9wS2luZC5FbGVtZW50U3RhcnQsIE9wS2luZC5Db250YWluZXIsIE9wS2luZC5Db250YWluZXJTdGFydCwgT3BLaW5kLlRlbXBsYXRlLFxuICBPcEtpbmQuUmVwZWF0ZXJDcmVhdGVcbl0pO1xuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBnaXZlbiBvcGVyYXRpb24gcmVwcmVzZW50cyB0aGUgY3JlYXRpb24gb2YgYW4gZWxlbWVudCBvciBjb250YWluZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0VsZW1lbnRPckNvbnRhaW5lck9wKG9wOiBDcmVhdGVPcCk6IG9wIGlzIEVsZW1lbnRPckNvbnRhaW5lck9wcyB7XG4gIHJldHVybiBlbGVtZW50Q29udGFpbmVyT3BLaW5kcy5oYXMob3Aua2luZCk7XG59XG5cbi8qKlxuICogUmVwcmVzZW50YXRpb24gb2YgYSBsb2NhbCByZWZlcmVuY2Ugb24gYW4gZWxlbWVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2NhbFJlZiB7XG4gIC8qKlxuICAgKiBVc2VyLWRlZmluZWQgbmFtZSBvZiB0aGUgbG9jYWwgcmVmIHZhcmlhYmxlLlxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUYXJnZXQgb2YgdGhlIGxvY2FsIHJlZmVyZW5jZSB2YXJpYWJsZSAob2Z0ZW4gYCcnYCkuXG4gICAqL1xuICB0YXJnZXQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBCYXNlIGludGVyZmFjZSBmb3IgYEVsZW1lbnRgLCBgRWxlbWVudFN0YXJ0YCwgYW5kIGBUZW1wbGF0ZWAgb3BlcmF0aW9ucywgY29udGFpbmluZyBjb21tb24gZmllbGRzXG4gKiB1c2VkIHRvIHJlcHJlc2VudCB0aGVpciBlbGVtZW50LWxpa2UgbmF0dXJlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVsZW1lbnRPckNvbnRhaW5lck9wQmFzZSBleHRlbmRzIE9wPENyZWF0ZU9wPiwgQ29uc3VtZXNTbG90T3BUcmFpdCB7XG4gIGtpbmQ6IEVsZW1lbnRPckNvbnRhaW5lck9wc1sna2luZCddO1xuXG4gIC8qKlxuICAgKiBgWHJlZklkYCBhbGxvY2F0ZWQgZm9yIHRoaXMgZWxlbWVudC5cbiAgICpcbiAgICogVGhpcyBJRCBpcyB1c2VkIHRvIHJlZmVyZW5jZSB0aGlzIGVsZW1lbnQgZnJvbSBvdGhlciBJUiBzdHJ1Y3R1cmVzLlxuICAgKi9cbiAgeHJlZjogWHJlZklkO1xuXG4gIC8qKlxuICAgKiBBdHRyaWJ1dGVzIG9mIHZhcmlvdXMga2luZHMgb24gdGhpcyBlbGVtZW50LiBSZXByZXNlbnRlZCBhcyBhIGBDb25zdEluZGV4YCBwb2ludGVyIGludG8gdGhlXG4gICAqIHNoYXJlZCBgY29uc3RzYCBhcnJheSBvZiB0aGUgY29tcG9uZW50IGNvbXBpbGF0aW9uLlxuICAgKi9cbiAgYXR0cmlidXRlczogQ29uc3RJbmRleHxudWxsO1xuXG4gIC8qKlxuICAgKiBMb2NhbCByZWZlcmVuY2VzIHRvIHRoaXMgZWxlbWVudC5cbiAgICpcbiAgICogQmVmb3JlIGxvY2FsIHJlZiBwcm9jZXNzaW5nLCB0aGlzIGlzIGFuIGFycmF5IG9mIGBMb2NhbFJlZmAgZGVjbGFyYXRpb25zLlxuICAgKlxuICAgKiBBZnRlciBwcm9jZXNzaW5nLCBpdCdzIGEgYENvbnN0SW5kZXhgIHBvaW50ZXIgaW50byB0aGUgc2hhcmVkIGBjb25zdHNgIGFycmF5IG9mIHRoZSBjb21wb25lbnRcbiAgICogY29tcGlsYXRpb24uXG4gICAqL1xuICBsb2NhbFJlZnM6IExvY2FsUmVmW118Q29uc3RJbmRleHxudWxsO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgY29udGFpbmVyIGlzIG1hcmtlZCBgbmdOb25CaW5kYWJsZWAsIHdoaWNoIGRpc2FibGVkIEFuZ3VsYXIgYmluZGluZyBmb3IgaXRzZWxmIGFuZFxuICAgKiBhbGwgZGVzY2VuZGFudHMuXG4gICAqL1xuICBub25CaW5kYWJsZTogYm9vbGVhbjtcblxuICBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRWxlbWVudE9wQmFzZSBleHRlbmRzIEVsZW1lbnRPckNvbnRhaW5lck9wQmFzZSB7XG4gIGtpbmQ6IE9wS2luZC5FbGVtZW50fE9wS2luZC5FbGVtZW50U3RhcnR8T3BLaW5kLlRlbXBsYXRlfE9wS2luZC5SZXBlYXRlckNyZWF0ZTtcblxuICAvKipcbiAgICogVGhlIEhUTUwgdGFnIG5hbWUgZm9yIHRoaXMgZWxlbWVudC5cbiAgICovXG4gIHRhZzogc3RyaW5nfG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lc3BhY2Ugb2YgdGhpcyBlbGVtZW50LCB3aGljaCBjb250cm9scyB0aGUgcHJlY2VkaW5nIG5hbWVzcGFjZSBpbnN0cnVjdGlvbi5cbiAgICovXG4gIG5hbWVzcGFjZTogTmFtZXNwYWNlO1xufVxuXG4vKipcbiAqIExvZ2ljYWwgb3BlcmF0aW9uIHJlcHJlc2VudGluZyB0aGUgc3RhcnQgb2YgYW4gZWxlbWVudCBpbiB0aGUgY3JlYXRpb24gSVIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRWxlbWVudFN0YXJ0T3AgZXh0ZW5kcyBFbGVtZW50T3BCYXNlIHtcbiAga2luZDogT3BLaW5kLkVsZW1lbnRTdGFydDtcblxuICAvKipcbiAgICogVGhlIGkxOG4gcGxhY2Vob2xkZXIgZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhpcyBlbGVtZW50LlxuICAgKi9cbiAgaTE4blBsYWNlaG9sZGVyPzogaTE4bi5UYWdQbGFjZWhvbGRlcjtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYW4gYEVsZW1lbnRTdGFydE9wYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnRTdGFydE9wKFxuICAgIHRhZzogc3RyaW5nLCB4cmVmOiBYcmVmSWQsIG5hbWVzcGFjZTogTmFtZXNwYWNlLCBpMThuUGxhY2Vob2xkZXI6IGkxOG4uVGFnUGxhY2Vob2xkZXJ8dW5kZWZpbmVkLFxuICAgIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3Bhbik6IEVsZW1lbnRTdGFydE9wIHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiBPcEtpbmQuRWxlbWVudFN0YXJ0LFxuICAgIHhyZWYsXG4gICAgdGFnLFxuICAgIGhhbmRsZTogbmV3IFNsb3RIYW5kbGUoKSxcbiAgICBhdHRyaWJ1dGVzOiBudWxsLFxuICAgIGxvY2FsUmVmczogW10sXG4gICAgbm9uQmluZGFibGU6IGZhbHNlLFxuICAgIG5hbWVzcGFjZSxcbiAgICBpMThuUGxhY2Vob2xkZXIsXG4gICAgc291cmNlU3BhbixcbiAgICAuLi5UUkFJVF9DT05TVU1FU19TTE9ULFxuICAgIC4uLk5FV19PUCxcbiAgfTtcbn1cblxuLyoqXG4gKiBMb2dpY2FsIG9wZXJhdGlvbiByZXByZXNlbnRpbmcgYW4gZWxlbWVudCB3aXRoIG5vIGNoaWxkcmVuIGluIHRoZSBjcmVhdGlvbiBJUi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbGVtZW50T3AgZXh0ZW5kcyBFbGVtZW50T3BCYXNlIHtcbiAga2luZDogT3BLaW5kLkVsZW1lbnQ7XG5cbiAgLyoqXG4gICAqIFRoZSBpMThuIHBsYWNlaG9sZGVyIGRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZWxlbWVudC5cbiAgICovXG4gIGkxOG5QbGFjZWhvbGRlcj86IGkxOG4uVGFnUGxhY2Vob2xkZXI7XG59XG5cbi8qKlxuICogTG9naWNhbCBvcGVyYXRpb24gcmVwcmVzZW50aW5nIGFuIGVtYmVkZGVkIHZpZXcgZGVjbGFyYXRpb24gaW4gdGhlIGNyZWF0aW9uIElSLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlT3AgZXh0ZW5kcyBFbGVtZW50T3BCYXNlIHtcbiAga2luZDogT3BLaW5kLlRlbXBsYXRlO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGRlY2xhcmF0aW9uIHNsb3RzIHVzZWQgYnkgdGhpcyB0ZW1wbGF0ZSwgb3IgYG51bGxgIGlmIHNsb3RzIGhhdmUgbm90IHlldCBiZWVuXG4gICAqIGFzc2lnbmVkLlxuICAgKi9cbiAgZGVjbHM6IG51bWJlcnxudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGJpbmRpbmcgdmFyaWFibGUgc2xvdHMgdXNlZCBieSB0aGlzIHRlbXBsYXRlLCBvciBgbnVsbGAgaWYgYmluZGluZyB2YXJpYWJsZXMgaGF2ZVxuICAgKiBub3QgeWV0IGJlZW4gY291bnRlZC5cbiAgICovXG4gIHZhcnM6IG51bWJlcnxudWxsO1xuXG4gIC8qKlxuICAgKiBTdWZmaXggdG8gYWRkIHRvIHRoZSBuYW1lIG9mIHRoZSBnZW5lcmF0ZWQgdGVtcGxhdGUgZnVuY3Rpb24uXG4gICAqL1xuICBmdW5jdGlvbk5hbWVTdWZmaXg6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGkxOG4gcGxhY2Vob2xkZXIgZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhpcyB0ZW1wbGF0ZS5cbiAgICovXG4gIGkxOG5QbGFjZWhvbGRlcj86IGkxOG4uVGFnUGxhY2Vob2xkZXI7XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgYFRlbXBsYXRlT3BgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVGVtcGxhdGVPcChcbiAgICB4cmVmOiBYcmVmSWQsIHRhZzogc3RyaW5nfG51bGwsIGZ1bmN0aW9uTmFtZVN1ZmZpeDogc3RyaW5nLCBuYW1lc3BhY2U6IE5hbWVzcGFjZSxcbiAgICBpMThuUGxhY2Vob2xkZXI6IGkxOG4uVGFnUGxhY2Vob2xkZXJ8dW5kZWZpbmVkLCBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW4pOiBUZW1wbGF0ZU9wIHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiBPcEtpbmQuVGVtcGxhdGUsXG4gICAgeHJlZixcbiAgICBhdHRyaWJ1dGVzOiBudWxsLFxuICAgIHRhZyxcbiAgICBoYW5kbGU6IG5ldyBTbG90SGFuZGxlKCksXG4gICAgZnVuY3Rpb25OYW1lU3VmZml4LFxuICAgIGRlY2xzOiBudWxsLFxuICAgIHZhcnM6IG51bGwsXG4gICAgbG9jYWxSZWZzOiBbXSxcbiAgICBub25CaW5kYWJsZTogZmFsc2UsXG4gICAgbmFtZXNwYWNlLFxuICAgIGkxOG5QbGFjZWhvbGRlcixcbiAgICBzb3VyY2VTcGFuLFxuICAgIC4uLlRSQUlUX0NPTlNVTUVTX1NMT1QsXG4gICAgLi4uTkVXX09QLFxuICB9O1xufVxuXG4vKipcbiAqIEFuIG9wIHRoYXQgY3JlYXRlcyBhIHJlcGVhdGVyIChlLmcuIGEgZm9yIGxvb3ApLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlcGVhdGVyQ3JlYXRlT3AgZXh0ZW5kcyBFbGVtZW50T3BCYXNlIHtcbiAga2luZDogT3BLaW5kLlJlcGVhdGVyQ3JlYXRlO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGRlY2xhcmF0aW9uIHNsb3RzIHVzZWQgYnkgdGhpcyByZXBlYXRlcidzIHRlbXBsYXRlLCBvciBgbnVsbGAgaWYgc2xvdHMgaGF2ZSBub3RcbiAgICogeWV0IGJlZW4gYXNzaWduZWQuXG4gICAqL1xuICBkZWNsczogbnVtYmVyfG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgYmluZGluZyB2YXJpYWJsZSBzbG90cyB1c2VkIGJ5IHRoaXMgcmVwZWF0ZXIncywgb3IgYG51bGxgIGlmIGJpbmRpbmcgdmFyaWFibGVzXG4gICAqIGhhdmUgbm90IHlldCBiZWVuIGNvdW50ZWQuXG4gICAqL1xuICB2YXJzOiBudW1iZXJ8bnVsbDtcblxuICAvKipcbiAgICogVGhlIFhyZWYgb2YgdGhlIGVtcHR5IHZpZXcgZnVuY3Rpb24uIChGb3IgdGhlIHByaW1hcnkgdmlldyBmdW5jdGlvbiwgdXNlIHRoZSBgeHJlZmAgcHJvcGVydHkpLlxuICAgKi9cbiAgZW1wdHlWaWV3OiBYcmVmSWR8bnVsbDtcblxuICAvKipcbiAgICogVGhlIHRyYWNrIGV4cHJlc3Npb24gdG8gdXNlIHdoaWxlIGl0ZXJhdGluZy5cbiAgICovXG4gIHRyYWNrOiBvLkV4cHJlc3Npb247XG5cbiAgLyoqXG4gICAqIGBudWxsYCBpbml0aWFsbHksIHRoZW4gYW4gYG8uRXhwcmVzc2lvbmAuIE1pZ2h0IGJlIGEgdHJhY2sgZXhwcmVzc2lvbiwgb3IgbWlnaHQgYmUgYSByZWZlcmVuY2VcbiAgICogaW50byB0aGUgY29uc3RhbnQgcG9vbC5cbiAgICovXG4gIHRyYWNrQnlGbjogby5FeHByZXNzaW9ufG51bGw7XG5cbiAgLyoqXG4gICAqIENvbnRleHQgdmFyaWFibGVzIGF2YWlhbGFibGUgaW4gdGhpcyBibG9jay5cbiAgICovXG4gIHZhck5hbWVzOiBSZXBlYXRlclZhck5hbWVzO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSByZXBlYXRlciB0cmFjayBmdW5jdGlvbiByZWxpZXMgb24gdGhlIGNvbXBvbmVudCBpbnN0YW5jZS5cbiAgICovXG4gIHVzZXNDb21wb25lbnRJbnN0YW5jZTogYm9vbGVhbjtcblxuICAvKipcbiAgICogU3VmZml4IHRvIGFkZCB0byB0aGUgbmFtZSBvZiB0aGUgZ2VuZXJhdGVkIHRlbXBsYXRlIGZ1bmN0aW9uLlxuICAgKi9cbiAgZnVuY3Rpb25OYW1lU3VmZml4OiBzdHJpbmc7XG5cbiAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuO1xufVxuXG4vLyBUT0RPOiBhZGQgc291cmNlIHNwYW5zP1xuZXhwb3J0IGludGVyZmFjZSBSZXBlYXRlclZhck5hbWVzIHtcbiAgJGluZGV4OiBzdHJpbmc7XG4gICRjb3VudDogc3RyaW5nO1xuICAkZmlyc3Q6IHN0cmluZztcbiAgJGxhc3Q6IHN0cmluZztcbiAgJGV2ZW46IHN0cmluZztcbiAgJG9kZDogc3RyaW5nO1xuICAkaW1wbGljaXQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJlcGVhdGVyQ3JlYXRlT3AoXG4gICAgcHJpbWFyeVZpZXc6IFhyZWZJZCwgZW1wdHlWaWV3OiBYcmVmSWR8bnVsbCwgdGFnOiBzdHJpbmd8bnVsbCwgdHJhY2s6IG8uRXhwcmVzc2lvbixcbiAgICB2YXJOYW1lczogUmVwZWF0ZXJWYXJOYW1lcywgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuKTogUmVwZWF0ZXJDcmVhdGVPcCB7XG4gIHJldHVybiB7XG4gICAga2luZDogT3BLaW5kLlJlcGVhdGVyQ3JlYXRlLFxuICAgIGF0dHJpYnV0ZXM6IG51bGwsXG4gICAgeHJlZjogcHJpbWFyeVZpZXcsXG4gICAgaGFuZGxlOiBuZXcgU2xvdEhhbmRsZSgpLFxuICAgIGVtcHR5VmlldyxcbiAgICB0cmFjayxcbiAgICB0cmFja0J5Rm46IG51bGwsXG4gICAgdGFnLFxuICAgIGZ1bmN0aW9uTmFtZVN1ZmZpeDogJ0ZvcicsXG4gICAgbmFtZXNwYWNlOiBOYW1lc3BhY2UuSFRNTCxcbiAgICBub25CaW5kYWJsZTogZmFsc2UsXG4gICAgbG9jYWxSZWZzOiBbXSxcbiAgICBkZWNsczogbnVsbCxcbiAgICB2YXJzOiBudWxsLFxuICAgIHZhck5hbWVzLFxuICAgIHVzZXNDb21wb25lbnRJbnN0YW5jZTogZmFsc2UsXG4gICAgc291cmNlU3BhbixcbiAgICAuLi5UUkFJVF9DT05TVU1FU19TTE9ULFxuICAgIC4uLk5FV19PUCxcbiAgICBudW1TbG90c1VzZWQ6IGVtcHR5VmlldyA9PT0gbnVsbCA/IDIgOiAzLFxuICB9O1xufVxuXG4vKipcbiAqIExvZ2ljYWwgb3BlcmF0aW9uIHJlcHJlc2VudGluZyB0aGUgZW5kIG9mIGFuIGVsZW1lbnQgc3RydWN0dXJlIGluIHRoZSBjcmVhdGlvbiBJUi5cbiAqXG4gKiBQYWlycyB3aXRoIGFuIGBFbGVtZW50U3RhcnRgIG9wZXJhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbGVtZW50RW5kT3AgZXh0ZW5kcyBPcDxDcmVhdGVPcD4ge1xuICBraW5kOiBPcEtpbmQuRWxlbWVudEVuZDtcblxuICAvKipcbiAgICogVGhlIGBYcmVmSWRgIG9mIHRoZSBlbGVtZW50IGRlY2xhcmVkIHZpYSBgRWxlbWVudFN0YXJ0YC5cbiAgICovXG4gIHhyZWY6IFhyZWZJZDtcblxuICBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW58bnVsbDtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYW4gYEVsZW1lbnRFbmRPcGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVFbGVtZW50RW5kT3AoeHJlZjogWHJlZklkLCBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW58bnVsbCk6IEVsZW1lbnRFbmRPcCB7XG4gIHJldHVybiB7XG4gICAga2luZDogT3BLaW5kLkVsZW1lbnRFbmQsXG4gICAgeHJlZixcbiAgICBzb3VyY2VTcGFuLFxuICAgIC4uLk5FV19PUCxcbiAgfTtcbn1cblxuLyoqXG4gKiBMb2dpY2FsIG9wZXJhdGlvbiByZXByZXNlbnRpbmcgdGhlIHN0YXJ0IG9mIGEgY29udGFpbmVyIGluIHRoZSBjcmVhdGlvbiBJUi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb250YWluZXJTdGFydE9wIGV4dGVuZHMgRWxlbWVudE9yQ29udGFpbmVyT3BCYXNlIHtcbiAga2luZDogT3BLaW5kLkNvbnRhaW5lclN0YXJ0O1xufVxuXG4vKipcbiAqIExvZ2ljYWwgb3BlcmF0aW9uIHJlcHJlc2VudGluZyBhbiBlbXB0eSBjb250YWluZXIgaW4gdGhlIGNyZWF0aW9uIElSLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbnRhaW5lck9wIGV4dGVuZHMgRWxlbWVudE9yQ29udGFpbmVyT3BCYXNlIHtcbiAga2luZDogT3BLaW5kLkNvbnRhaW5lcjtcbn1cblxuLyoqXG4gKiBMb2dpY2FsIG9wZXJhdGlvbiByZXByZXNlbnRpbmcgdGhlIGVuZCBvZiBhIGNvbnRhaW5lciBzdHJ1Y3R1cmUgaW4gdGhlIGNyZWF0aW9uIElSLlxuICpcbiAqIFBhaXJzIHdpdGggYW4gYENvbnRhaW5lclN0YXJ0YCBvcGVyYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGFpbmVyRW5kT3AgZXh0ZW5kcyBPcDxDcmVhdGVPcD4ge1xuICBraW5kOiBPcEtpbmQuQ29udGFpbmVyRW5kO1xuXG4gIC8qKlxuICAgKiBUaGUgYFhyZWZJZGAgb2YgdGhlIGVsZW1lbnQgZGVjbGFyZWQgdmlhIGBDb250YWluZXJTdGFydGAuXG4gICAqL1xuICB4cmVmOiBYcmVmSWQ7XG5cbiAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuO1xufVxuXG4vKipcbiAqIExvZ2ljYWwgb3BlcmF0aW9uIGNhdXNpbmcgYmluZGluZyB0byBiZSBkaXNhYmxlZCBpbiBkZXNjZW5kZW50cyBvZiBhIG5vbi1iaW5kYWJsZSBjb250YWluZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGlzYWJsZUJpbmRpbmdzT3AgZXh0ZW5kcyBPcDxDcmVhdGVPcD4ge1xuICBraW5kOiBPcEtpbmQuRGlzYWJsZUJpbmRpbmdzO1xuXG4gIC8qKlxuICAgKiBgWHJlZklkYCBvZiB0aGUgZWxlbWVudCB0aGF0IHdhcyBtYXJrZWQgbm9uLWJpbmRhYmxlLlxuICAgKi9cbiAgeHJlZjogWHJlZklkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRGlzYWJsZUJpbmRpbmdzT3AoeHJlZjogWHJlZklkKTogRGlzYWJsZUJpbmRpbmdzT3Age1xuICByZXR1cm4ge1xuICAgIGtpbmQ6IE9wS2luZC5EaXNhYmxlQmluZGluZ3MsXG4gICAgeHJlZixcbiAgICAuLi5ORVdfT1AsXG4gIH07XG59XG5cbi8qKlxuICogTG9naWNhbCBvcGVyYXRpb24gY2F1c2luZyBiaW5kaW5nIHRvIGJlIHJlLWVuYWJsZWQgYWZ0ZXIgdmlzaXRpbmcgZGVzY2VuZGFudHMgb2YgYVxuICogbm9uLWJpbmRhYmxlIGNvbnRhaW5lci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbmFibGVCaW5kaW5nc09wIGV4dGVuZHMgT3A8Q3JlYXRlT3A+IHtcbiAga2luZDogT3BLaW5kLkVuYWJsZUJpbmRpbmdzO1xuXG4gIC8qKlxuICAgKiBgWHJlZklkYCBvZiB0aGUgZWxlbWVudCB0aGF0IHdhcyBtYXJrZWQgbm9uLWJpbmRhYmxlLlxuICAgKi9cbiAgeHJlZjogWHJlZklkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRW5hYmxlQmluZGluZ3NPcCh4cmVmOiBYcmVmSWQpOiBFbmFibGVCaW5kaW5nc09wIHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiBPcEtpbmQuRW5hYmxlQmluZGluZ3MsXG4gICAgeHJlZixcbiAgICAuLi5ORVdfT1AsXG4gIH07XG59XG5cbi8qKlxuICogTG9naWNhbCBvcGVyYXRpb24gcmVwcmVzZW50aW5nIGEgdGV4dCBub2RlIGluIHRoZSBjcmVhdGlvbiBJUi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUZXh0T3AgZXh0ZW5kcyBPcDxDcmVhdGVPcD4sIENvbnN1bWVzU2xvdE9wVHJhaXQge1xuICBraW5kOiBPcEtpbmQuVGV4dDtcblxuICAvKipcbiAgICogYFhyZWZJZGAgdXNlZCB0byByZWZlcmVuY2UgdGhpcyB0ZXh0IG5vZGUgaW4gb3RoZXIgSVIgc3RydWN0dXJlcy5cbiAgICovXG4gIHhyZWY6IFhyZWZJZDtcblxuICAvKipcbiAgICogVGhlIHN0YXRpYyBpbml0aWFsIHZhbHVlIG9mIHRoZSB0ZXh0IG5vZGUuXG4gICAqL1xuICBpbml0aWFsVmFsdWU6IHN0cmluZztcblxuICBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW58bnVsbDtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBgVGV4dE9wYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRleHRPcChcbiAgICB4cmVmOiBYcmVmSWQsIGluaXRpYWxWYWx1ZTogc3RyaW5nLCBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW58bnVsbCk6IFRleHRPcCB7XG4gIHJldHVybiB7XG4gICAga2luZDogT3BLaW5kLlRleHQsXG4gICAgeHJlZixcbiAgICBoYW5kbGU6IG5ldyBTbG90SGFuZGxlKCksXG4gICAgaW5pdGlhbFZhbHVlLFxuICAgIHNvdXJjZVNwYW4sXG4gICAgLi4uVFJBSVRfQ09OU1VNRVNfU0xPVCxcbiAgICAuLi5ORVdfT1AsXG4gIH07XG59XG5cbi8qKlxuICogTG9naWNhbCBvcGVyYXRpb24gcmVwcmVzZW50aW5nIGFuIGV2ZW50IGxpc3RlbmVyIG9uIGFuIGVsZW1lbnQgaW4gdGhlIGNyZWF0aW9uIElSLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExpc3RlbmVyT3AgZXh0ZW5kcyBPcDxDcmVhdGVPcD4ge1xuICBraW5kOiBPcEtpbmQuTGlzdGVuZXI7XG5cbiAgdGFyZ2V0OiBYcmVmSWQ7XG4gIHRhcmdldFNsb3Q6IFNsb3RIYW5kbGU7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBsaXN0ZW5lciBpcyBmcm9tIGEgaG9zdCBiaW5kaW5nLlxuICAgKi9cbiAgaG9zdExpc3RlbmVyOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBldmVudCB3aGljaCBpcyBiZWluZyBsaXN0ZW5lZCB0by5cbiAgICovXG4gIG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGFnIG5hbWUgb2YgdGhlIGVsZW1lbnQgb24gd2hpY2ggdGhpcyBsaXN0ZW5lciBpcyBwbGFjZWQuIE1pZ2h0IGJlIG51bGwsIGlmIHRoaXMgbGlzdGVuZXJcbiAgICogYmVsb25ncyB0byBhIGhvc3QgYmluZGluZy5cbiAgICovXG4gIHRhZzogc3RyaW5nfG51bGw7XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBgVXBkYXRlT3BgcyByZXByZXNlbnRpbmcgdGhlIGJvZHkgb2YgdGhlIGV2ZW50IGxpc3RlbmVyLlxuICAgKi9cbiAgaGFuZGxlck9wczogT3BMaXN0PFVwZGF0ZU9wPjtcblxuICAvKipcbiAgICogTmFtZSBvZiB0aGUgZnVuY3Rpb25cbiAgICovXG4gIGhhbmRsZXJGbk5hbWU6IHN0cmluZ3xudWxsO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgbGlzdGVuZXIgaXMga25vd24gdG8gY29uc3VtZSBgJGV2ZW50YCBpbiBpdHMgYm9keS5cbiAgICovXG4gIGNvbnN1bWVzRG9sbGFyRXZlbnQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGxpc3RlbmVyIGlzIGxpc3RlbmluZyBmb3IgYW4gYW5pbWF0aW9uIGV2ZW50LlxuICAgKi9cbiAgaXNBbmltYXRpb25MaXN0ZW5lcjogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGFuaW1hdGlvbiBwaGFzZSBvZiB0aGUgbGlzdGVuZXIuXG4gICAqL1xuICBhbmltYXRpb25QaGFzZTogc3RyaW5nfG51bGw7XG5cbiAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIGBMaXN0ZW5lck9wYC4gSG9zdCBiaW5kaW5ncyByZXVzZSBhbGwgdGhlIGxpc3RlbmVyIGxvZ2ljLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTGlzdGVuZXJPcChcbiAgICB0YXJnZXQ6IFhyZWZJZCwgdGFyZ2V0U2xvdDogU2xvdEhhbmRsZSwgbmFtZTogc3RyaW5nLCB0YWc6IHN0cmluZ3xudWxsLFxuICAgIGFuaW1hdGlvblBoYXNlOiBzdHJpbmd8bnVsbCwgaG9zdExpc3RlbmVyOiBib29sZWFuLCBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW4pOiBMaXN0ZW5lck9wIHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiBPcEtpbmQuTGlzdGVuZXIsXG4gICAgdGFyZ2V0LFxuICAgIHRhcmdldFNsb3QsXG4gICAgdGFnLFxuICAgIGhvc3RMaXN0ZW5lcixcbiAgICBuYW1lLFxuICAgIGhhbmRsZXJPcHM6IG5ldyBPcExpc3QoKSxcbiAgICBoYW5kbGVyRm5OYW1lOiBudWxsLFxuICAgIGNvbnN1bWVzRG9sbGFyRXZlbnQ6IGZhbHNlLFxuICAgIGlzQW5pbWF0aW9uTGlzdGVuZXI6IGFuaW1hdGlvblBoYXNlICE9PSBudWxsLFxuICAgIGFuaW1hdGlvblBoYXNlOiBhbmltYXRpb25QaGFzZSxcbiAgICBzb3VyY2VTcGFuLFxuICAgIC4uLk5FV19PUCxcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaXBlT3AgZXh0ZW5kcyBPcDxDcmVhdGVPcD4sIENvbnN1bWVzU2xvdE9wVHJhaXQge1xuICBraW5kOiBPcEtpbmQuUGlwZTtcbiAgeHJlZjogWHJlZklkO1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQaXBlT3AoeHJlZjogWHJlZklkLCBzbG90OiBTbG90SGFuZGxlLCBuYW1lOiBzdHJpbmcpOiBQaXBlT3Age1xuICByZXR1cm4ge1xuICAgIGtpbmQ6IE9wS2luZC5QaXBlLFxuICAgIHhyZWYsXG4gICAgaGFuZGxlOiBzbG90LFxuICAgIG5hbWUsXG4gICAgLi4uTkVXX09QLFxuICAgIC4uLlRSQUlUX0NPTlNVTUVTX1NMT1QsXG4gIH07XG59XG5cbi8qKlxuICogQW4gb3AgY29ycmVzcG9uZGluZyB0byBhIG5hbWVzcGFjZSBpbnN0cnVjdGlvbiwgZm9yIHN3aXRjaGluZyBiZXR3ZWVuIEhUTUwsIFNWRywgYW5kIE1hdGhNTC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOYW1lc3BhY2VPcCBleHRlbmRzIE9wPENyZWF0ZU9wPiB7XG4gIGtpbmQ6IE9wS2luZC5OYW1lc3BhY2U7XG4gIGFjdGl2ZTogTmFtZXNwYWNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTmFtZXNwYWNlT3AobmFtZXNwYWNlOiBOYW1lc3BhY2UpOiBOYW1lc3BhY2VPcCB7XG4gIHJldHVybiB7XG4gICAga2luZDogT3BLaW5kLk5hbWVzcGFjZSxcbiAgICBhY3RpdmU6IG5hbWVzcGFjZSxcbiAgICAuLi5ORVdfT1AsXG4gIH07XG59XG5cbi8qKlxuICogQW4gb3AgdGhhdCBjcmVhdGVzIGEgY29udGVudCBwcm9qZWN0aW9uIHNsb3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvamVjdGlvbkRlZk9wIGV4dGVuZHMgT3A8Q3JlYXRlT3A+IHtcbiAga2luZDogT3BLaW5kLlByb2plY3Rpb25EZWY7XG5cbiAgLy8gVGhlIHBhcnNlZCBzZWxlY3RvciBpbmZvcm1hdGlvbiBmb3IgdGhpcyBwcm9qZWN0aW9uIGRlZi5cbiAgZGVmOiBvLkV4cHJlc3Npb258bnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVByb2plY3Rpb25EZWZPcChkZWY6IG8uRXhwcmVzc2lvbnxudWxsKTogUHJvamVjdGlvbkRlZk9wIHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiBPcEtpbmQuUHJvamVjdGlvbkRlZixcbiAgICBkZWYsXG4gICAgLi4uTkVXX09QLFxuICB9O1xufVxuXG4vKipcbiAqIEFuIG9wIHRoYXQgY3JlYXRlcyBhIGNvbnRlbnQgcHJvamVjdGlvbiBzbG90LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2plY3Rpb25PcCBleHRlbmRzIE9wPENyZWF0ZU9wPiwgQ29uc3VtZXNTbG90T3BUcmFpdCB7XG4gIGtpbmQ6IE9wS2luZC5Qcm9qZWN0aW9uO1xuXG4gIHhyZWY6IFhyZWZJZDtcblxuICBwcm9qZWN0aW9uU2xvdEluZGV4OiBudW1iZXI7XG5cbiAgYXR0cmlidXRlczogc3RyaW5nW107XG5cbiAgbG9jYWxSZWZzOiBzdHJpbmdbXTtcblxuICBzZWxlY3Rvcjogc3RyaW5nO1xuXG4gIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3Bhbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVByb2plY3Rpb25PcChcbiAgICB4cmVmOiBYcmVmSWQsIHNlbGVjdG9yOiBzdHJpbmcsIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3Bhbik6IFByb2plY3Rpb25PcCB7XG4gIHJldHVybiB7XG4gICAga2luZDogT3BLaW5kLlByb2plY3Rpb24sXG4gICAgeHJlZixcbiAgICBoYW5kbGU6IG5ldyBTbG90SGFuZGxlKCksXG4gICAgc2VsZWN0b3IsXG4gICAgcHJvamVjdGlvblNsb3RJbmRleDogMCxcbiAgICBhdHRyaWJ1dGVzOiBbXSxcbiAgICBsb2NhbFJlZnM6IFtdLFxuICAgIHNvdXJjZVNwYW4sXG4gICAgLi4uTkVXX09QLFxuICAgIC4uLlRSQUlUX0NPTlNVTUVTX1NMT1QsXG4gIH07XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBhdHRyaWJ1dGUgdGhhdCBoYXMgYmVlbiBleHRyYWN0ZWQgZm9yIGluY2x1c2lvbiBpbiB0aGUgY29uc3RzIGFycmF5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4dHJhY3RlZEF0dHJpYnV0ZU9wIGV4dGVuZHMgT3A8Q3JlYXRlT3A+IHtcbiAga2luZDogT3BLaW5kLkV4dHJhY3RlZEF0dHJpYnV0ZTtcblxuICAvKipcbiAgICogVGhlIGBYcmVmSWRgIG9mIHRoZSB0ZW1wbGF0ZS1saWtlIGVsZW1lbnQgdGhlIGV4dHJhY3RlZCBhdHRyaWJ1dGUgd2lsbCBiZWxvbmcgdG8uXG4gICAqL1xuICB0YXJnZXQ6IFhyZWZJZDtcblxuICAvKipcbiAgICogIFRoZSBraW5kIG9mIGJpbmRpbmcgcmVwcmVzZW50ZWQgYnkgdGhpcyBleHRyYWN0ZWQgYXR0cmlidXRlLlxuICAgKi9cbiAgYmluZGluZ0tpbmQ6IEJpbmRpbmdLaW5kO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZXh0cmFjdGVkIGF0dHJpYnV0ZS5cbiAgICovXG4gIG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHZhbHVlIGV4cHJlc3Npb24gb2YgdGhlIGV4dHJhY3RlZCBhdHRyaWJ1dGUuXG4gICAqL1xuICBleHByZXNzaW9uOiBvLkV4cHJlc3Npb258bnVsbDtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYW4gYEV4dHJhY3RlZEF0dHJpYnV0ZU9wYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUV4dHJhY3RlZEF0dHJpYnV0ZU9wKFxuICAgIHRhcmdldDogWHJlZklkLCBiaW5kaW5nS2luZDogQmluZGluZ0tpbmQsIG5hbWU6IHN0cmluZyxcbiAgICBleHByZXNzaW9uOiBvLkV4cHJlc3Npb258bnVsbCk6IEV4dHJhY3RlZEF0dHJpYnV0ZU9wIHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiBPcEtpbmQuRXh0cmFjdGVkQXR0cmlidXRlLFxuICAgIHRhcmdldCxcbiAgICBiaW5kaW5nS2luZCxcbiAgICBuYW1lLFxuICAgIGV4cHJlc3Npb24sXG4gICAgLi4uTkVXX09QLFxuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlZmVyT3AgZXh0ZW5kcyBPcDxDcmVhdGVPcD4sIENvbnN1bWVzU2xvdE9wVHJhaXQge1xuICBraW5kOiBPcEtpbmQuRGVmZXI7XG5cbiAgLyoqXG4gICAqIFRoZSB4cmVmIG9mIHRoaXMgZGVmZXIgb3AuXG4gICAqL1xuICB4cmVmOiBYcmVmSWQ7XG5cbiAgLyoqXG4gICAqIFRoZSB4cmVmIG9mIHRoZSBtYWluIHZpZXcuXG4gICAqL1xuICBtYWluVmlldzogWHJlZklkO1xuXG4gIG1haW5TbG90OiBTbG90SGFuZGxlO1xuXG4gIC8qKlxuICAgKiBTZWNvbmRhcnkgbG9hZGluZyBibG9jayBhc3NvY2lhdGVkIHdpdGggdGhpcyBkZWZlciBvcC5cbiAgICovXG4gIGxvYWRpbmdWaWV3OiBYcmVmSWR8bnVsbDtcblxuICBsb2FkaW5nU2xvdDogU2xvdEhhbmRsZXxudWxsO1xuXG4gIC8qKlxuICAgKiBTZWNvbmRhcnkgcGxhY2Vob2xkZXIgYmxvY2sgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZGVmZXIgb3AuXG4gICAqL1xuICBwbGFjZWhvbGRlclZpZXc6IFhyZWZJZHxudWxsO1xuXG4gIHBsYWNlaG9sZGVyU2xvdDogU2xvdEhhbmRsZXxudWxsO1xuXG4gIC8qKlxuICAgKiBTZWNvbmRhcnkgZXJyb3IgYmxvY2sgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZGVmZXIgb3AuXG4gICAqL1xuICBlcnJvclZpZXc6IFhyZWZJZHxudWxsO1xuXG4gIGVycm9yU2xvdDogU2xvdEhhbmRsZXxudWxsO1xuXG4gIHBsYWNlaG9sZGVyTWluaW11bVRpbWU6IG51bWJlcnxudWxsO1xuICBsb2FkaW5nTWluaW11bVRpbWU6IG51bWJlcnxudWxsO1xuICBsb2FkaW5nQWZ0ZXJUaW1lOiBudW1iZXJ8bnVsbDtcblxuICBwbGFjZWhvbGRlckNvbmZpZzogby5FeHByZXNzaW9ufG51bGw7XG4gIGxvYWRpbmdDb25maWc6IG8uRXhwcmVzc2lvbnxudWxsO1xuXG4gIC8qKlxuICAgKiBNZXRhZGF0YSBhYm91dCB0aGlzIGRlZmVyIGJsb2NrLCBwcm92aWRlZCBieSB0aGUgcGFyc2VyLlxuICAgKi9cbiAgbWV0YWRhdGE6IFIzRGVmZXJCbG9ja01ldGFkYXRhO1xuXG4gIC8qKlxuICAgKiBBZnRlciBwcm9jZXNzaW5nLCB0aGUgcmVzb2x2ZXIgZnVuY3Rpb24gZm9yIHRoZSBkZWZlciBkZXBzIHdpbGwgYmUgZXh0cmFjdGVkIHRvIHRoZSBjb25zdGFudFxuICAgKiBwb29sLCBhbmQgYSByZWZlcmVuY2UgdG8gdGhhdCBmdW5jdGlvbiB3aWxsIGJlIHBvcHVsYXRlZCBoZXJlLlxuICAgKi9cbiAgcmVzb2x2ZXJGbjogby5FeHByZXNzaW9ufG51bGw7XG5cbiAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRGVmZXJPcChcbiAgICB4cmVmOiBYcmVmSWQsIG1haW46IFhyZWZJZCwgbWFpblNsb3Q6IFNsb3RIYW5kbGUsIG1ldGFkYXRhOiBSM0RlZmVyQmxvY2tNZXRhZGF0YSxcbiAgICBzb3VyY2VTcGFuOiBQYXJzZVNvdXJjZVNwYW4pOiBEZWZlck9wIHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiBPcEtpbmQuRGVmZXIsXG4gICAgeHJlZixcbiAgICBoYW5kbGU6IG5ldyBTbG90SGFuZGxlKCksXG4gICAgbWFpblZpZXc6IG1haW4sXG4gICAgbWFpblNsb3QsXG4gICAgbG9hZGluZ1ZpZXc6IG51bGwsXG4gICAgbG9hZGluZ1Nsb3Q6IG51bGwsXG4gICAgbG9hZGluZ0NvbmZpZzogbnVsbCxcbiAgICBsb2FkaW5nTWluaW11bVRpbWU6IG51bGwsXG4gICAgbG9hZGluZ0FmdGVyVGltZTogbnVsbCxcbiAgICBwbGFjZWhvbGRlclZpZXc6IG51bGwsXG4gICAgcGxhY2Vob2xkZXJTbG90OiBudWxsLFxuICAgIHBsYWNlaG9sZGVyQ29uZmlnOiBudWxsLFxuICAgIHBsYWNlaG9sZGVyTWluaW11bVRpbWU6IG51bGwsXG4gICAgZXJyb3JWaWV3OiBudWxsLFxuICAgIGVycm9yU2xvdDogbnVsbCxcbiAgICBtZXRhZGF0YSxcbiAgICByZXNvbHZlckZuOiBudWxsLFxuICAgIHNvdXJjZVNwYW4sXG4gICAgLi4uTkVXX09QLFxuICAgIC4uLlRSQUlUX0NPTlNVTUVTX1NMT1QsXG4gICAgbnVtU2xvdHNVc2VkOiAyLFxuICB9O1xufVxuaW50ZXJmYWNlIERlZmVyVHJpZ2dlckJhc2Uge1xuICBraW5kOiBEZWZlclRyaWdnZXJLaW5kO1xufVxuXG5pbnRlcmZhY2UgRGVmZXJUcmlnZ2VyV2l0aFRhcmdldEJhc2UgZXh0ZW5kcyBEZWZlclRyaWdnZXJCYXNlIHtcbiAgdGFyZ2V0TmFtZTogc3RyaW5nfG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSBYcmVmIG9mIHRoZSB0YXJnZXRlZCBuYW1lLiBNYXkgYmUgaW4gYSBkaWZmZXJlbnQgdmlldy5cbiAgICovXG4gIHRhcmdldFhyZWY6IFhyZWZJZHxudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgc2xvdCBpbmRleCBvZiB0aGUgbmFtZWQgcmVmZXJlbmNlLCBpbnNpZGUgdGhlIHZpZXcgcHJvdmlkZWQgYmVsb3cuIFRoaXMgc2xvdCBtYXkgbm90IGJlXG4gICAqIGluc2lkZSB0aGUgY3VycmVudCB2aWV3LCBhbmQgaXMgaGFuZGxlZCBzcGVjaWFsbHkgYXMgYSByZXN1bHQuXG4gICAqL1xuICB0YXJnZXRTbG90OiBTbG90SGFuZGxlfG51bGw7XG5cbiAgdGFyZ2V0VmlldzogWHJlZklkfG51bGw7XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBzdGVwcyB0byB3YWxrIHVwIG9yIGRvd24gdGhlIHZpZXcgdHJlZSB0byBmaW5kIHRoZSB0YXJnZXQgbG9jYWxSZWYuXG4gICAqL1xuICB0YXJnZXRTbG90Vmlld1N0ZXBzOiBudW1iZXJ8bnVsbDtcbn1cblxuaW50ZXJmYWNlIERlZmVySWRsZVRyaWdnZXIgZXh0ZW5kcyBEZWZlclRyaWdnZXJCYXNlIHtcbiAga2luZDogRGVmZXJUcmlnZ2VyS2luZC5JZGxlO1xufVxuXG5pbnRlcmZhY2UgRGVmZXJJbW1lZGlhdGVUcmlnZ2VyIGV4dGVuZHMgRGVmZXJUcmlnZ2VyQmFzZSB7XG4gIGtpbmQ6IERlZmVyVHJpZ2dlcktpbmQuSW1tZWRpYXRlO1xufVxuXG5pbnRlcmZhY2UgRGVmZXJIb3ZlclRyaWdnZXIgZXh0ZW5kcyBEZWZlclRyaWdnZXJXaXRoVGFyZ2V0QmFzZSB7XG4gIGtpbmQ6IERlZmVyVHJpZ2dlcktpbmQuSG92ZXI7XG59XG5cbmludGVyZmFjZSBEZWZlclRpbWVyVHJpZ2dlciBleHRlbmRzIERlZmVyVHJpZ2dlckJhc2Uge1xuICBraW5kOiBEZWZlclRyaWdnZXJLaW5kLlRpbWVyO1xuXG4gIGRlbGF5OiBudW1iZXI7XG59XG5cbmludGVyZmFjZSBEZWZlckludGVyYWN0aW9uVHJpZ2dlciBleHRlbmRzIERlZmVyVHJpZ2dlcldpdGhUYXJnZXRCYXNlIHtcbiAga2luZDogRGVmZXJUcmlnZ2VyS2luZC5JbnRlcmFjdGlvbjtcbn1cblxuaW50ZXJmYWNlIERlZmVyVmlld3BvcnRUcmlnZ2VyIGV4dGVuZHMgRGVmZXJUcmlnZ2VyV2l0aFRhcmdldEJhc2Uge1xuICBraW5kOiBEZWZlclRyaWdnZXJLaW5kLlZpZXdwb3J0O1xufVxuXG4vKipcbiAqIFRoZSB1bmlvbiB0eXBlIG9mIGFsbCBkZWZlciB0cmlnZ2VyIGludGVyZmFjZXMuXG4gKi9cbmV4cG9ydCB0eXBlIERlZmVyVHJpZ2dlciA9IERlZmVySWRsZVRyaWdnZXJ8RGVmZXJJbW1lZGlhdGVUcmlnZ2VyfERlZmVyVGltZXJUcmlnZ2VyfFxuICAgIERlZmVySG92ZXJUcmlnZ2VyfERlZmVySW50ZXJhY3Rpb25UcmlnZ2VyfERlZmVyVmlld3BvcnRUcmlnZ2VyO1xuXG5leHBvcnQgaW50ZXJmYWNlIERlZmVyT25PcCBleHRlbmRzIE9wPENyZWF0ZU9wPiB7XG4gIGtpbmQ6IE9wS2luZC5EZWZlck9uO1xuXG4gIGRlZmVyOiBYcmVmSWQ7XG5cbiAgLyoqXG4gICAqIFRoZSB0cmlnZ2VyIGZvciB0aGlzIGRlZmVyIG9wIChlLmcuIGlkbGUsIGhvdmVyLCBldGMpLlxuICAgKi9cbiAgdHJpZ2dlcjogRGVmZXJUcmlnZ2VyO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGVtaXQgdGhlIHByZWZldGNoIHZlcnNpb24gb2YgdGhlIGluc3RydWN0aW9uLlxuICAgKi9cbiAgcHJlZmV0Y2g6IGJvb2xlYW47XG5cbiAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRGVmZXJPbk9wKFxuICAgIGRlZmVyOiBYcmVmSWQsIHRyaWdnZXI6IERlZmVyVHJpZ2dlciwgcHJlZmV0Y2g6IGJvb2xlYW4sXG4gICAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuKTogRGVmZXJPbk9wIHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiBPcEtpbmQuRGVmZXJPbixcbiAgICBkZWZlcixcbiAgICB0cmlnZ2VyLFxuICAgIHByZWZldGNoLFxuICAgIHNvdXJjZVNwYW4sXG4gICAgLi4uTkVXX09QLFxuICB9O1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBzaW5nbGUgdmFsdWUgaW4gYW4gaTE4biBwYXJhbSBtYXAuIEVhY2ggcGxhY2Vob2xkZXIgaW4gdGhlIG1hcCBtYXkgaGF2ZSBtdWx0aXBsZSBvZlxuICogdGhlc2UgdmFsdWVzIGFzc29jaWF0ZWQgd2l0aCBpdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJMThuUGFyYW1WYWx1ZSB7XG4gIC8qKlxuICAgKiBUaGUgdmFsdWUuXG4gICAqL1xuICB2YWx1ZTogc3RyaW5nfG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHN1Yi10ZW1wbGF0ZSBpbmRleCBhc3NvY2lhdGVkIHdpdGggdGhlIHZhbHVlLlxuICAgKi9cbiAgc3ViVGVtcGxhdGVJbmRleDogbnVtYmVyfG51bGw7XG5cbiAgLyoqXG4gICAqIEZsYWdzIGFzc29jaWF0ZWQgd2l0aCB0aGUgdmFsdWUuXG4gICAqL1xuICBmbGFnczogSTE4blBhcmFtVmFsdWVGbGFncztcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIGkxOG4gbWVzc2FnZSB0aGF0IGhhcyBiZWVuIGV4dHJhY3RlZCBmb3IgaW5jbHVzaW9uIGluIHRoZSBjb25zdHMgYXJyYXkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSTE4bk1lc3NhZ2VPcCBleHRlbmRzIE9wPENyZWF0ZU9wPiB7XG4gIGtpbmQ6IE9wS2luZC5JMThuTWVzc2FnZTtcblxuICAvKipcbiAgICogQW4gaWQgdXNlZCB0byByZWZlcmVuY2UgdGhpcyBtZXNzYWdlLlxuICAgKi9cbiAgeHJlZjogWHJlZklkO1xuXG4gIC8qKlxuICAgKiBBIHJlZmVyZW5jZSB0byB0aGUgaTE4biBvcCB0aGlzIG1lc3NhZ2Ugd2FzIGV4dHJhY3RlZCBmcm9tLlxuICAgKi9cbiAgaTE4bkJsb2NrOiBYcmVmSWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBpMThuIG1lc3NhZ2UgcmVwcmVzZW50ZWQgYnkgdGhpcyBvcC5cbiAgICovXG4gIG1lc3NhZ2U6IGkxOG4uTWVzc2FnZTtcblxuICAvKipcbiAgICogVGhlIHBsYWNlaG9sZGVyIHVzZWQgZm9yIHRoaXMgbWVzc2FnZSB3aGVuIGl0IGlzIHJlZmVyZW5jZWQgaW4gYW5vdGhlciBtZXNzYWdlLlxuICAgKiBGb3IgYSB0b3AtbGV2ZWwgbWVzc2FnZSB0aGF0IGlzbid0IHJlZmVyZW5jZWQgZnJvbSBhbm90aGVyIG1lc3NhZ2UsIHRoaXMgd2lsbCBiZSBudWxsLlxuICAgKi9cbiAgbWVzc2FnZVBsYWNlaG9sZGVyOiBzdHJpbmd8bnVsbDtcblxuICAvKipcbiAgICogV2hldGhlciB0aGlzIG1lc3NhZ2UgbmVlZHMgcG9zdC1wcm9jZXNzaW5nLlxuICAgKi9cbiAgbmVlZHNQb3N0cHJvY2Vzc2luZzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIHBhcmFtIG1hcCwgd2l0aCBwbGFjZWhvbGRlcnMgcmVwcmVzZW50ZWQgYXMgYW4gYEV4cHJlc3Npb25gLlxuICAgKi9cbiAgcGFyYW1zOiBNYXA8c3RyaW5nLCBvLkV4cHJlc3Npb24+O1xuXG4gIC8qKlxuICAgKiBUaGUgcG9zdC1wcm9jZXNzaW5nIHBhcmFtIG1hcCwgd2l0aCBwbGFjZWhvbGRlcnMgcmVwcmVzZW50ZWQgYXMgYW4gYEV4cHJlc3Npb25gLlxuICAgKi9cbiAgcG9zdHByb2Nlc3NpbmdQYXJhbXM6IE1hcDxzdHJpbmcsIG8uRXhwcmVzc2lvbj47XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBzdWItbWVzc2FnZXMgdGhhdCBhcmUgcmVmZXJlbmNlZCBieSB0aGlzIG1lc3NhZ2UuXG4gICAqL1xuICBzdWJNZXNzYWdlczogWHJlZklkW107XG59XG5cbi8qKlxuICogQ3JlYXRlIGFuIGBFeHRyYWN0ZWRNZXNzYWdlT3BgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSTE4bk1lc3NhZ2VPcChcbiAgICB4cmVmOiBYcmVmSWQsIGkxOG5CbG9jazogWHJlZklkLCBtZXNzYWdlOiBpMThuLk1lc3NhZ2UsIG1lc3NhZ2VQbGFjZWhvbGRlcjogc3RyaW5nfG51bGwsXG4gICAgcGFyYW1zOiBNYXA8c3RyaW5nLCBvLkV4cHJlc3Npb24+LCBwb3N0cHJvY2Vzc2luZ1BhcmFtczogTWFwPHN0cmluZywgby5FeHByZXNzaW9uPixcbiAgICBuZWVkc1Bvc3Rwcm9jZXNzaW5nOiBib29sZWFuKTogSTE4bk1lc3NhZ2VPcCB7XG4gIHJldHVybiB7XG4gICAga2luZDogT3BLaW5kLkkxOG5NZXNzYWdlLFxuICAgIHhyZWYsXG4gICAgaTE4bkJsb2NrLFxuICAgIG1lc3NhZ2UsXG4gICAgbWVzc2FnZVBsYWNlaG9sZGVyLFxuICAgIHBhcmFtcyxcbiAgICBwb3N0cHJvY2Vzc2luZ1BhcmFtcyxcbiAgICBuZWVkc1Bvc3Rwcm9jZXNzaW5nLFxuICAgIHN1Yk1lc3NhZ2VzOiBbXSxcbiAgICAuLi5ORVdfT1AsXG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSTE4bk9wQmFzZSBleHRlbmRzIE9wPENyZWF0ZU9wPiwgQ29uc3VtZXNTbG90T3BUcmFpdCB7XG4gIGtpbmQ6IE9wS2luZC5JMThuU3RhcnR8T3BLaW5kLkkxOG47XG5cbiAgLyoqXG4gICAqIGBYcmVmSWRgIGFsbG9jYXRlZCBmb3IgdGhpcyBpMThuIGJsb2NrLlxuICAgKi9cbiAgeHJlZjogWHJlZklkO1xuXG4gIC8qKlxuICAgKiBBIHJlZmVyZW5jZSB0byB0aGUgcm9vdCBpMThuIGJsb2NrIHRoYXQgdGhpcyBvbmUgYmVsb25ncyB0by4gRm9yIGEgcm9vdCBpMThuIGJsb2NrLCB0aGlzIGlzXG4gICAqIHRoZSBzYW1lIGFzIHhyZWYuXG4gICAqL1xuICByb290OiBYcmVmSWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBpMThuIG1ldGFkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGlzIG9wLlxuICAgKi9cbiAgbWVzc2FnZTogaTE4bi5NZXNzYWdlO1xuXG4gIC8qKlxuICAgKiBUaGUgaW5kZXggaW4gdGhlIGNvbnN0cyBhcnJheSB3aGVyZSB0aGUgbWVzc2FnZSBpMThuIG1lc3NhZ2UgaXMgc3RvcmVkLlxuICAgKi9cbiAgbWVzc2FnZUluZGV4OiBDb25zdEluZGV4fG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSBpbmRleCBvZiB0aGlzIHN1Yi1ibG9jayBpbiB0aGUgaTE4biBtZXNzYWdlLiBGb3IgYSByb290IGkxOG4gYmxvY2ssIHRoaXMgaXMgbnVsbC5cbiAgICovXG4gIHN1YlRlbXBsYXRlSW5kZXg6IG51bWJlcnxudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgaTE4biBjb250ZXh0IGdlbmVyYXRlZCBmcm9tIHRoaXMgYmxvY2suIEluaXRpYWxseSBudWxsLCB1bnRpbCB0aGUgY29udGV4dCBpcyBjcmVhdGVkLlxuICAgKi9cbiAgY29udGV4dDogWHJlZklkfG51bGw7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBlbXB0eSBpMThuIGJsb2NrLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEkxOG5PcCBleHRlbmRzIEkxOG5PcEJhc2Uge1xuICBraW5kOiBPcEtpbmQuSTE4bjtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBzdGFydCBvZiBhbiBpMThuIGJsb2NrLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEkxOG5TdGFydE9wIGV4dGVuZHMgSTE4bk9wQmFzZSB7XG4gIGtpbmQ6IE9wS2luZC5JMThuU3RhcnQ7XG59XG5cbi8qKlxuICogQ3JlYXRlIGFuIGBJMThuU3RhcnRPcGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVJMThuU3RhcnRPcCh4cmVmOiBYcmVmSWQsIG1lc3NhZ2U6IGkxOG4uTWVzc2FnZSwgcm9vdD86IFhyZWZJZCk6IEkxOG5TdGFydE9wIHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiBPcEtpbmQuSTE4blN0YXJ0LFxuICAgIHhyZWYsXG4gICAgaGFuZGxlOiBuZXcgU2xvdEhhbmRsZSgpLFxuICAgIHJvb3Q6IHJvb3QgPz8geHJlZixcbiAgICBtZXNzYWdlLFxuICAgIG1lc3NhZ2VJbmRleDogbnVsbCxcbiAgICBzdWJUZW1wbGF0ZUluZGV4OiBudWxsLFxuICAgIGNvbnRleHQ6IG51bGwsXG4gICAgLi4uTkVXX09QLFxuICAgIC4uLlRSQUlUX0NPTlNVTUVTX1NMT1QsXG4gIH07XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgZW5kIG9mIGFuIGkxOG4gYmxvY2suXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSTE4bkVuZE9wIGV4dGVuZHMgT3A8Q3JlYXRlT3A+IHtcbiAga2luZDogT3BLaW5kLkkxOG5FbmQ7XG5cbiAgLyoqXG4gICAqIFRoZSBgWHJlZklkYCBvZiB0aGUgYEkxOG5TdGFydE9wYCB0aGF0IGNyZWF0ZWQgdGhpcyBibG9jay5cbiAgICovXG4gIHhyZWY6IFhyZWZJZDtcbn1cblxuLyoqXG4gKiBDcmVhdGUgYW4gYEkxOG5FbmRPcGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVJMThuRW5kT3AoeHJlZjogWHJlZklkKTogSTE4bkVuZE9wIHtcbiAgcmV0dXJuIHtcbiAgICBraW5kOiBPcEtpbmQuSTE4bkVuZCxcbiAgICB4cmVmLFxuICAgIC4uLk5FV19PUCxcbiAgfTtcbn1cblxuLyoqXG4gKiBBbiBvcCB0aGF0IHJlcHJlc2VudHMgdGhlIHN0YXJ0IG9mIGFuIElDVSBleHByZXNzaW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEljdVN0YXJ0T3AgZXh0ZW5kcyBPcDxDcmVhdGVPcD4ge1xuICBraW5kOiBPcEtpbmQuSWN1U3RhcnQ7XG5cbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGUgSUNVLlxuICAgKi9cbiAgeHJlZjogWHJlZklkO1xuXG4gIC8qKlxuICAgKiBUaGUgaTE4biBtZXNzYWdlIGZvciB0aGlzIElDVS5cbiAgICovXG4gIG1lc3NhZ2U6IGkxOG4uTWVzc2FnZTtcblxuICAvKipcbiAgICogUGxhY2Vob2xkZXIgdXNlZCB0byByZWZlcmVuY2UgdGhpcyBJQ1UgaW4gb3RoZXIgaTE4biBtZXNzYWdlcy5cbiAgICovXG4gIG1lc3NhZ2VQbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHJlZmVyZW5jZSB0byB0aGUgaTE4biBjb250ZXh0IGZvciB0aGlzIG9wLiBJbml0aWFsbHkgbnVsbCwgdW50aWwgdGhlIGNvbnRleHQgaXMgY3JlYXRlZC5cbiAgICovXG4gIGNvbnRleHQ6IFhyZWZJZHxudWxsO1xuXG4gIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3Bhbjtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuIElDVSBzdGFydCBvcC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUljdVN0YXJ0T3AoXG4gICAgeHJlZjogWHJlZklkLCBtZXNzYWdlOiBpMThuLk1lc3NhZ2UsIG1lc3NhZ2VQbGFjZWhvbGRlcjogc3RyaW5nLFxuICAgIHNvdXJjZVNwYW46IFBhcnNlU291cmNlU3Bhbik6IEljdVN0YXJ0T3Age1xuICByZXR1cm4ge1xuICAgIGtpbmQ6IE9wS2luZC5JY3VTdGFydCxcbiAgICB4cmVmLFxuICAgIG1lc3NhZ2UsXG4gICAgbWVzc2FnZVBsYWNlaG9sZGVyLFxuICAgIGNvbnRleHQ6IG51bGwsXG4gICAgc291cmNlU3BhbixcbiAgICAuLi5ORVdfT1AsXG4gIH07XG59XG5cbi8qKlxuICogQW4gb3AgdGhhdCByZXByZXNlbnRzIHRoZSBlbmQgb2YgYW4gSUNVIGV4cHJlc3Npb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSWN1RW5kT3AgZXh0ZW5kcyBPcDxDcmVhdGVPcD4ge1xuICBraW5kOiBPcEtpbmQuSWN1RW5kO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIGNvcnJlc3BvbmRpbmcgSWN1U3RhcnRPcC5cbiAgICovXG4gIHhyZWY6IFhyZWZJZDtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuIElDVSBlbmQgb3AuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVJY3VFbmRPcCh4cmVmOiBYcmVmSWQpOiBJY3VFbmRPcCB7XG4gIHJldHVybiB7XG4gICAga2luZDogT3BLaW5kLkljdUVuZCxcbiAgICB4cmVmLFxuICAgIC4uLk5FV19PUCxcbiAgfTtcbn1cblxuLyoqXG4gKiBBbiBpMThuIGNvbnRleHQgdGhhdCBpcyB1c2VkIHRvIGdlbmVyYXRlIHNuaXBwZXRzIG9mIGEgZnVsbCB0cmFuc2xhdGVkIG1lc3NhZ2UuXG4gKiBBIHNlcGFyYXRlIGNvbnRleHQgaXMgY3JlYXRlZCBpbiBhIGZldyBkaWZmZXJlbnQgc2NlbmFyaW9zOlxuICpcbiAqIDEuIEZvciBlYWNoIHRvcC1sZXZlbCBpMThuIGJsb2NrLiBBIGNvbnRleHQgZ2VuZXJhdGVkIGZvciBhIHRvcC1sZXZlbCBpMThuIGJsb2NrLCB3aWxsIGJlIHVzZWQgdG9cbiAqICAgIGV2ZW50dWFsbHkgZ2VuZXJhdGUgdGhlIHRyYW5zbGF0ZWQgbWVzc2FnZSBmb3IgdGhhdCBibG9jayB0aGF0IGlzIGV4dHJhY3RlZCBpbnRvIHRoZSBjb25zdFxuICogICAgYXJyYXkuXG4gKiAyLiBGb3IgZWFjaCBjaGlsZCBpMThuIGJsb2NrIChyZXN1bHRpbmcgZnJvbSB1c2luZyBhbiBuZy10ZW1wbGF0ZSBpbnNpZGUgb2YgYW5vdGhlciBpMThuIGJsb2NrKS5cbiAqICAgIEEgY29udGV4dCBnZW5lcmF0ZWQgZm9yIGEgY2hpbGQgaTE4biBibG9jayB3aWxsIGJlIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIHBvcnRpb24gb2YgdGhlIGZpbmFsXG4gKiAgICBtZXNzYWdlIHJlcHJlc2VudGVkIGJ5IHRoZSB0ZW1wbGF0ZS4gSXQgd2lsbCBub3QgcmVzdWx0IGluIGEgc2VwYXJhdGUgbWVzc2FnZSBpbiB0aGUgY29uc3RzXG4gKiAgICBhcnJheSwgYnV0IHdpbGwgaW5zdGVhZCBiZSByb2xsZWQgaW50byB0aGUgcm9vdCBtZXNzYWdlIHRoYXQgc3Bhd25lZCBpdC5cbiAqIDMuIEZvciBlYWNoIElDVSByZWZlcmVuY2VkIGFzIGEgc3ViLW1lc3NhZ2UuIElDVXMgdGhhdCBhcmUgcmVmZXJlbmNlZCBhcyBhIHN1Yi1tZXNzYWdlIHdpbGwgYmVcbiAqICAgIHVzZWQgdG8gZ2VuZXJhdGUgYSBzZXBhcmF0ZSBpMThuIG1lc3NhZ2UsIGJ1dCB3aWxsIG5vdCBiZSBleHRyYWN0ZWQgZGlyZWN0bHkgaW50byB0aGUgY29uc3RzXG4gKiAgICBhcnJheS4gSW5zdGVhZCB0aGV5IHdpbGwgYmUgcHVsbGVkIGluIGFzIHBhcnQgb2YgdGhlIGluaXRpYWxpemF0aW9uIHN0YXRlbWVudHMgZm9yIHRoZSBtZXNzYWdlXG4gKiAgICB0aGF0IHJlZmVyZW5jZXMgdGhlbS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJMThuQ29udGV4dE9wIGV4dGVuZHMgT3A8Q3JlYXRlT3A+IHtcbiAga2luZDogT3BLaW5kLkkxOG5Db250ZXh0O1xuXG4gIC8qKlxuICAgKiAgVGhlIGlkIG9mIHRoaXMgY29udGV4dC5cbiAgICovXG4gIHhyZWY6IFhyZWZJZDtcblxuICAvKipcbiAgICogQSByZWZlcmVuY2UgdG8gdGhlIEkxOG5TdGFydE9wIG9yIEkxOG5PcCB0aGlzIGNvbnRleHQgYmVsb25ncyB0by5cbiAgICpcbiAgICogSXQgaXMgcG9zc2libGUgZm9yIG11bHRpcGxlIGNvbnRleHRzIHRvIGJlbG9uZyB0byB0aGUgc2FtZSBibG9jaywgc2luY2UgYm90aCB0aGUgYmxvY2sgYW5kIGFueVxuICAgKiBJQ1VzIGluc2lkZSB0aGUgYmxvY2sgd2lsbCBlYWNoIGdldCB0aGVpciBvd24gY29udGV4dC5cbiAgICovXG4gIGkxOG5CbG9jazogWHJlZklkO1xuXG4gIC8qKlxuICAgKiBUaGUgaTE4biBtZXNzYWdlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNvbnRleHQuXG4gICAqL1xuICBtZXNzYWdlOiBpMThuLk1lc3NhZ2U7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXJhbSBtYXAgZm9yIHRoaXMgY29udGV4dC5cbiAgICovXG4gIHBhcmFtczogTWFwPHN0cmluZywgSTE4blBhcmFtVmFsdWVbXT47XG5cbiAgLyoqXG4gICAqIFRoZSBwb3N0LXByb2Nlc3NpbmcgcGFyYW0gbWFwIGZvciB0aGlzIGNvbnRleHQuXG4gICAqL1xuICBwb3N0cHJvY2Vzc2luZ1BhcmFtczogTWFwPHN0cmluZywgSTE4blBhcmFtVmFsdWVbXT47XG5cbiAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSTE4bkNvbnRleHRPcChcbiAgICB4cmVmOiBYcmVmSWQsIGkxOG5CbG9jazogWHJlZklkLCBtZXNzYWdlOiBpMThuLk1lc3NhZ2UsXG4gICAgc291cmNlU3BhbjogUGFyc2VTb3VyY2VTcGFuKTogSTE4bkNvbnRleHRPcCB7XG4gIHJldHVybiB7XG4gICAga2luZDogT3BLaW5kLkkxOG5Db250ZXh0LFxuICAgIHhyZWYsXG4gICAgaTE4bkJsb2NrLFxuICAgIG1lc3NhZ2UsXG4gICAgc291cmNlU3BhbixcbiAgICBwYXJhbXM6IG5ldyBNYXAoKSxcbiAgICBwb3N0cHJvY2Vzc2luZ1BhcmFtczogbmV3IE1hcCgpLFxuICAgIC4uLk5FV19PUCxcbiAgfTtcbn1cblxuLyoqXG4gKiBBbiBpbmRleCBpbnRvIHRoZSBgY29uc3RzYCBhcnJheSB3aGljaCBpcyBzaGFyZWQgYWNyb3NzIHRoZSBjb21waWxhdGlvbiBvZiBhbGwgdmlld3MgaW4gYVxuICogY29tcG9uZW50LlxuICovXG5leHBvcnQgdHlwZSBDb25zdEluZGV4ID0gbnVtYmVyJntfX2JyYW5kOiAnQ29uc3RJbmRleCd9O1xuXG5leHBvcnQgZnVuY3Rpb24gbGl0ZXJhbE9yQXJyYXlMaXRlcmFsKHZhbHVlOiBhbnkpOiBvLkV4cHJlc3Npb24ge1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gby5saXRlcmFsQXJyKHZhbHVlLm1hcChsaXRlcmFsT3JBcnJheUxpdGVyYWwpKTtcbiAgfVxuICByZXR1cm4gby5saXRlcmFsKHZhbHVlLCBvLklORkVSUkVEX1RZUEUpO1xufVxuIl19
|
|
@@ -190,4 +190,4 @@ export class HostBindingCompilationUnit extends CompilationUnit {
|
|
|
190
190
|
this.attributes = null;
|
|
191
191
|
}
|
|
192
192
|
}
|
|
193
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGlsYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci9zcmMvdGVtcGxhdGUvcGlwZWxpbmUvc3JjL2NvbXBpbGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQU1ILE9BQU8sS0FBSyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRTVCLE1BQU0sQ0FBTixJQUFZLGtCQUlYO0FBSkQsV0FBWSxrQkFBa0I7SUFDNUIsMkRBQUksQ0FBQTtJQUNKLDJEQUFJLENBQUE7SUFDSiwyREFBSSxDQUFBO0FBQ04sQ0FBQyxFQUpXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFJN0I7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLE9BQWdCLGNBQWM7SUFDbEMsWUFDYSxhQUFxQixFQUFXLElBQWtCLEVBQ2xELGFBQW1DO1FBRG5DLGtCQUFhLEdBQWIsYUFBYSxDQUFRO1FBQVcsU0FBSSxHQUFKLElBQUksQ0FBYztRQUNsRCxrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7UUFFaEQsU0FBSSxHQUF1QixrQkFBa0IsQ0FBQyxJQUFJLENBQUM7UUEwQm5EOztXQUVHO1FBQ0ssZUFBVSxHQUFjLENBQWMsQ0FBQztJQS9CSSxDQUFDO0lBcUJwRDs7T0FFRztJQUNILGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxVQUFVLEVBQWUsQ0FBQztJQUN4QyxDQUFDO0NBTUY7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsY0FBYztJQUN6RCxZQUNJLGFBQXFCLEVBQUUsSUFBa0IsRUFBRSxhQUFtQyxFQUNyRSx1QkFBK0IsRUFBVyxrQkFBMkIsRUFDckUsZUFBMkQ7UUFDdEUsS0FBSyxDQUFDLGFBQWEsRUFBRSxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFGL0IsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUFRO1FBQVcsdUJBQWtCLEdBQWxCLGtCQUFr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TEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7Q29uc3RhbnRQb29sfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudF9wb29sJztcbmltcG9ydCAqIGFzIG8gZnJvbSAnLi4vLi4vLi4vb3V0cHV0L291dHB1dF9hc3QnO1xuaW1wb3J0ICogYXMgdCBmcm9tICcuLi8uLi8uLi9yZW5kZXIzL3IzX2FzdCc7XG5pbXBvcnQge1IzRGVmZXJCbG9ja01ldGFkYXRhfSBmcm9tICcuLi8uLi8uLi9yZW5kZXIzL3ZpZXcvYXBpJztcbmltcG9ydCAqIGFzIGlyIGZyb20gJy4uL2lyJztcblxuZXhwb3J0IGVudW0gQ29tcGlsYXRpb25Kb2JLaW5kIHtcbiAgVG1wbCxcbiAgSG9zdCxcbiAgQm90aCwgIC8vIEEgc3BlY2lhbCB2YWx1ZSB1c2VkIHRvIGluZGljYXRlIHRoYXQgc29tZSBsb2dpYyBhcHBsaWVzIHRvIGJvdGggY29tcGlsYXRpb24gdHlwZXNcbn1cblxuLyoqXG4gKiBBbiBlbnRpcmUgb25nb2luZyBjb21waWxhdGlvbiwgd2hpY2ggd2lsbCByZXN1bHQgaW4gb25lIG9yIG1vcmUgdGVtcGxhdGUgZnVuY3Rpb25zIHdoZW4gY29tcGxldGUuXG4gKiBDb250YWlucyBvbmUgb3IgbW9yZSBjb3JyZXNwb25kaW5nIGNvbXBpbGF0aW9uIHVuaXRzLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ29tcGlsYXRpb25Kb2Ige1xuICBjb25zdHJ1Y3RvcihcbiAgICAgIHJlYWRvbmx5IGNvbXBvbmVudE5hbWU6IHN0cmluZywgcmVhZG9ubHkgcG9vbDogQ29uc3RhbnRQb29sLFxuICAgICAgcmVhZG9ubHkgY29tcGF0aWJpbGl0eTogaXIuQ29tcGF0aWJpbGl0eU1vZGUpIHt9XG5cbiAga2luZDogQ29tcGlsYXRpb25Kb2JLaW5kID0gQ29tcGlsYXRpb25Kb2JLaW5kLkJvdGg7XG5cbiAgLyoqXG4gICAqIEEgY29tcGlsYXRpb24gam9iIHdpbGwgY29udGFpbiBvbmUgb3IgbW9yZSBjb21waWxhdGlvbiB1bml0cy5cbiAgICovXG4gIGFic3RyYWN0IGdldCB1bml0cygpOiBJdGVyYWJsZTxDb21waWxhdGlvblVuaXQ+O1xuXG4gIC8qKlxuICAgKiBUaGUgcm9vdCBjb21waWxhdGlvbiB1bml0LCBzdWNoIGFzIHRoZSBjb21wb25lbnQncyB0ZW1wbGF0ZSwgb3IgdGhlIGhvc3QgYmluZGluZydzIGNvbXBpbGF0aW9uXG4gICAqIHVuaXQuXG4gICAqL1xuICBhYnN0cmFjdCByb290OiBDb21waWxhdGlvblVuaXQ7XG5cbiAgLyoqXG4gICAqIEEgdW5pcXVlIHN0cmluZyB1c2VkIHRvIGlkZW50aWZ5IHRoaXMga2luZCBvZiBqb2IsIGFuZCBnZW5lcmF0ZSB0aGUgdGVtcGxhdGUgZnVuY3Rpb24gKGFzIGFcbiAgICogc3VmZml4IG9mIHRoZSBuYW1lKS5cbiAgICovXG4gIGFic3RyYWN0IGZuU3VmZml4OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlIGEgbmV3IHVuaXF1ZSBgaXIuWHJlZklkYCBpbiB0aGlzIGpvYi5cbiAgICovXG4gIGFsbG9jYXRlWHJlZklkKCk6IGlyLlhyZWZJZCB7XG4gICAgcmV0dXJuIHRoaXMubmV4dFhyZWZJZCsrIGFzIGlyLlhyZWZJZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFja3MgdGhlIG5leHQgYGlyLlhyZWZJZGAgd2hpY2ggY2FuIGJlIGFzc2lnbmVkIGFzIHRlbXBsYXRlIHN0cnVjdHVyZXMgYXJlIGluZ2VzdGVkLlxuICAgKi9cbiAgcHJpdmF0ZSBuZXh0WHJlZklkOiBpci5YcmVmSWQgPSAwIGFzIGlyLlhyZWZJZDtcbn1cblxuLyoqXG4gKiBDb21waWxhdGlvbi1pbi1wcm9ncmVzcyBvZiBhIHdob2xlIGNvbXBvbmVudCdzIHRlbXBsYXRlLCBpbmNsdWRpbmcgdGhlIG1haW4gdGVtcGxhdGUgYW5kIGFueVxuICogZW1iZWRkZWQgdmlld3Mgb3IgaG9zdCBiaW5kaW5ncy5cbiAqL1xuZXhwb3J0IGNsYXNzIENvbXBvbmVudENvbXBpbGF0aW9uSm9iIGV4dGVuZHMgQ29tcGlsYXRpb25Kb2Ige1xuICBjb25zdHJ1Y3RvcihcbiAgICAgIGNvbXBvbmVudE5hbWU6IHN0cmluZywgcG9vbDogQ29uc3RhbnRQb29sLCBjb21wYXRpYmlsaXR5OiBpci5Db21wYXRpYmlsaXR5TW9kZSxcbiAgICAgIHJlYWRvbmx5IHJlbGF0aXZlQ29udGV4dEZpbGVQYXRoOiBzdHJpbmcsIHJlYWRvbmx5IGkxOG5Vc2VFeHRlcm5hbElkczogYm9vbGVhbixcbiAgICAgIHJlYWRvbmx5IGRlZmVyQmxvY2tzTWV0YTogTWFwPHQuRGVmZXJyZWRCbG9jaywgUjNEZWZlckJsb2NrTWV0YWRhdGE+KSB7XG4gICAgc3VwZXIoY29tcG9uZW50TmFtZSwgcG9vbCwgY29tcGF0aWJpbGl0eSk7XG4gICAgdGhpcy5yb290ID0gbmV3IFZpZXdDb21waWxhdGlvblVuaXQodGhpcywgdGhpcy5hbGxvY2F0ZVhyZWZJZCgpLCBudWxsKTtcbiAgICB0aGlzLnZpZXdzLnNldCh0aGlzLnJvb3QueHJlZiwgdGhpcy5yb290KTtcbiAgfVxuXG4gIG92ZXJyaWRlIGtpbmQgPSBDb21waWxhdGlvbkpvYktpbmQuVG1wbDtcblxuICBvdmVycmlkZSByZWFkb25seSBmblN1ZmZpeDogc3RyaW5nID0gJ1RlbXBsYXRlJztcblxuICAvKipcbiAgICogVGhlIHJvb3QgdmlldywgcmVwcmVzZW50aW5nIHRoZSBjb21wb25lbnQncyB0ZW1wbGF0ZS5cbiAgICovXG4gIG92ZXJyaWRlIHJlYWRvbmx5IHJvb3Q6IFZpZXdDb21waWxhdGlvblVuaXQ7XG5cbiAgcmVhZG9ubHkgdmlld3MgPSBuZXcgTWFwPGlyLlhyZWZJZCwgVmlld0NvbXBpbGF0aW9uVW5pdD4oKTtcblxuICAvKipcbiAgICogQ2F1c2VzIG5nQ29udGVudFNlbGVjdG9ycyB0byBiZSBlbWl0dGVkLCBmb3IgY29udGVudCBwcm9qZWN0aW9uIHNsb3RzIGluIHRoZSB2aWV3LiBQb3NzaWJseSBhXG4gICAqIHJlZmVyZW5jZSBpbnRvIHRoZSBjb25zdGFudCBwb29sLlxuICAgKi9cbiAgcHVibGljIGNvbnRlbnRTZWxlY3RvcnM6IG8uRXhwcmVzc2lvbnxudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogQWRkIGEgYFZpZXdDb21waWxhdGlvbmAgZm9yIGEgbmV3IGVtYmVkZGVkIHZpZXcgdG8gdGhpcyBjb21waWxhdGlvbi5cbiAgICovXG4gIGFsbG9jYXRlVmlldyhwYXJlbnQ6IGlyLlhyZWZJZCk6IFZpZXdDb21waWxhdGlvblVuaXQge1xuICAgIGNvbnN0IHZpZXcgPSBuZXcgVmlld0NvbXBpbGF0aW9uVW5pdCh0aGlzLCB0aGlzLmFsbG9jYXRlWHJlZklkKCksIHBhcmVudCk7XG4gICAgdGhpcy52aWV3cy5zZXQodmlldy54cmVmLCB2aWV3KTtcbiAgICByZXR1cm4gdmlldztcbiAgfVxuXG4gIG92ZXJyaWRlIGdldCB1bml0cygpOiBJdGVyYWJsZTxWaWV3Q29tcGlsYXRpb25Vbml0PiB7XG4gICAgcmV0dXJuIHRoaXMudmlld3MudmFsdWVzKCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgY29uc3RhbnQgYG8uRXhwcmVzc2lvbmAgdG8gdGhlIGNvbXBpbGF0aW9uIGFuZCByZXR1cm4gaXRzIGluZGV4IGluIHRoZSBgY29uc3RzYCBhcnJheS5cbiAgICovXG4gIGFkZENvbnN0KG5ld0NvbnN0OiBvLkV4cHJlc3Npb24sIGluaXRpYWxpemVycz86IG8uU3RhdGVtZW50W10pOiBpci5Db25zdEluZGV4IHtcbiAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCB0aGlzLmNvbnN0cy5sZW5ndGg7IGlkeCsrKSB7XG4gICAgICBpZiAodGhpcy5jb25zdHNbaWR4XS5pc0VxdWl2YWxlbnQobmV3Q29uc3QpKSB7XG4gICAgICAgIHJldHVybiBpZHggYXMgaXIuQ29uc3RJbmRleDtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgaWR4ID0gdGhpcy5jb25zdHMubGVuZ3RoO1xuICAgIHRoaXMuY29uc3RzLnB1c2gobmV3Q29uc3QpO1xuICAgIGlmIChpbml0aWFsaXplcnMpIHtcbiAgICAgIHRoaXMuY29uc3RzSW5pdGlhbGl6ZXJzLnB1c2goLi4uaW5pdGlhbGl6ZXJzKTtcbiAgICB9XG4gICAgcmV0dXJuIGlkeCBhcyBpci5Db25zdEluZGV4O1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnN0YW50IGV4cHJlc3Npb25zIHVzZWQgYnkgb3BlcmF0aW9ucyB3aXRoaW4gdGhpcyBjb21wb25lbnQncyBjb21waWxhdGlvbi5cbiAgICpcbiAgICogVGhpcyB3aWxsIGV2ZW50dWFsbHkgYmVjb21lIHRoZSBgY29uc3RzYCBhcnJheSBpbiB0aGUgY29tcG9uZW50IGRlZmluaXRpb24uXG4gICAqL1xuICByZWFkb25seSBjb25zdHM6IG8uRXhwcmVzc2lvbltdID0gW107XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemF0aW9uIHN0YXRlbWVudHMgbmVlZGVkIHRvIHNldCB1cCB0aGUgY29uc3RzLlxuICAgKi9cbiAgcmVhZG9ubHkgY29uc3RzSW5pdGlhbGl6ZXJzOiBvLlN0YXRlbWVudFtdID0gW107XG59XG5cbi8qKlxuICogQSBjb21waWxhdGlvbiB1bml0IGlzIGNvbXBpbGVkIGludG8gYSB0ZW1wbGF0ZSBmdW5jdGlvbi4gU29tZSBleGFtcGxlIHVuaXRzIGFyZSB2aWV3cyBhbmQgaG9zdFxuICogYmluZGluZ3MuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb21waWxhdGlvblVuaXQge1xuICBjb25zdHJ1Y3RvcihyZWFkb25seSB4cmVmOiBpci5YcmVmSWQpIHt9XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgY3JlYXRpb24gb3BlcmF0aW9ucyBmb3IgdGhpcyB2aWV3LlxuICAgKlxuICAgKiBDcmVhdGlvbiBvcGVyYXRpb25zIG1heSBpbnRlcm5hbGx5IGNvbnRhaW4gb3RoZXIgb3BlcmF0aW9ucywgaW5jbHVkaW5nIHVwZGF0ZSBvcGVyYXRpb25zLlxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlID0gbmV3IGlyLk9wTGlzdDxpci5DcmVhdGVPcD4oKTtcblxuICAvKipcbiAgICogTGlzdCBvZiB1cGRhdGUgb3BlcmF0aW9ucyBmb3IgdGhpcyB2aWV3LlxuICAgKi9cbiAgcmVhZG9ubHkgdXBkYXRlID0gbmV3IGlyLk9wTGlzdDxpci5VcGRhdGVPcD4oKTtcblxuICAvKipcbiAgICogVGhlIGVuY2xvc2luZyBqb2IsIHdoaWNoIG1pZ2h0IGNvbnRhaW4gc2V2ZXJhbCBpbmRpdmlkdWFsIGNvbXBpbGF0aW9uIHVuaXRzLlxuICAgKi9cbiAgYWJzdHJhY3QgcmVhZG9ubHkgam9iOiBDb21waWxhdGlvbkpvYjtcblxuICAvKipcbiAgICogTmFtZSBvZiB0aGUgZnVuY3Rpb24gd2hpY2ggd2lsbCBiZSBnZW5lcmF0ZWQgZm9yIHRoaXMgdW5pdC5cbiAgICpcbiAgICogTWF5IGJlIGBudWxsYCBpZiBub3QgeWV0IGRldGVybWluZWQuXG4gICAqL1xuICBmbk5hbWU6IHN0cmluZ3xudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogTnVtYmVyIG9mIHZhcmlhYmxlIHNsb3RzIHVzZWQgd2l0aGluIHRoaXMgdmlldywgb3IgYG51bGxgIGlmIHZhcmlhYmxlcyBoYXZlIG5vdCB5ZXQgYmVlblxuICAgKiBjb3VudGVkLlxuICAgKi9cbiAgdmFyczogbnVtYmVyfG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBJdGVyYXRlIG92ZXIgYWxsIGBpci5PcGBzIHdpdGhpbiB0aGlzIHZpZXcuXG4gICAqXG4gICAqIFNvbWUgb3BlcmF0aW9ucyBtYXkgaGF2ZSBjaGlsZCBvcGVyYXRpb25zLCB3aGljaCB0aGlzIGl0ZXJhdG9yIHdpbGwgdmlzaXQuXG4gICAqL1xuICAqIG9wcygpOiBHZW5lcmF0b3I8aXIuQ3JlYXRlT3B8aXIuVXBkYXRlT3A+IHtcbiAgICBmb3IgKGNvbnN0IG9wIG9mIHRoaXMuY3JlYXRlKSB7XG4gICAgICB5aWVsZCBvcDtcbiAgICAgIGlmIChvcC5raW5kID09PSBpci5PcEtpbmQuTGlzdGVuZXIpIHtcbiAgICAgICAgZm9yIChjb25zdCBsaXN0ZW5lck9wIG9mIG9wLmhhbmRsZXJPcHMpIHtcbiAgICAgICAgICB5aWVsZCBsaXN0ZW5lck9wO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGZvciAoY29uc3Qgb3Agb2YgdGhpcy51cGRhdGUpIHtcbiAgICAgIHlpZWxkIG9wO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIENvbXBpbGF0aW9uLWluLXByb2dyZXNzIG9mIGFuIGluZGl2aWR1YWwgdmlldyB3aXRoaW4gYSB0ZW1wbGF0ZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFZpZXdDb21waWxhdGlvblVuaXQgZXh0ZW5kcyBDb21waWxhdGlvblVuaXQge1xuICBjb25zdHJ1Y3RvcihcbiAgICAgIHJlYWRvbmx5IGpvYjogQ29tcG9uZW50Q29tcGlsYXRpb25Kb2IsIHhyZWY6IGlyLlhyZWZJZCwgcmVhZG9ubHkgcGFyZW50OiBpci5YcmVmSWR8bnVsbCkge1xuICAgIHN1cGVyKHhyZWYpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hcCBvZiBkZWNsYXJlZCB2YXJpYWJsZXMgYXZhaWxhYmxlIHdpdGhpbiB0aGlzIHZpZXcgdG8gdGhlIHByb3BlcnR5IG9uIHRoZSBjb250ZXh0IG9iamVjdFxuICAgKiB3aGljaCB0aGV5IGFsaWFzLlxuICAgKi9cbiAgcmVhZG9ubHkgY29udGV4dFZhcmlhYmxlcyA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG5cbiAgLyoqXG4gICAqIFNldCBvZiBhbGlhc2VzIGF2YWlsYWJsZSB3aXRoaW4gdGhpcyB2aWV3LiBBbiBhbGlhcyBpcyBhIHZhcmlhYmxlIHdob3NlIHByb3ZpZGVkIGV4cHJlc3Npb24gaXNcbiAgICogaW5saW5lZCBhdCBldmVyeSBsb2NhdGlvbiBpdCBpcyB1c2VkLiBJdCBtYXkgYWxzbyBkZXBlbmQgb24gY29udGV4dCB2YXJpYWJsZXMsIGJ5IG5hbWUuXG4gICAqL1xuICByZWFkb25seSBhbGlhc2VzID0gbmV3IFNldDxpci5BbGlhc1ZhcmlhYmxlPigpO1xuXG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgZGVjbGFyYXRpb24gc2xvdHMgdXNlZCB3aXRoaW4gdGhpcyB2aWV3LCBvciBgbnVsbGAgaWYgc2xvdHMgaGF2ZSBub3QgeWV0IGJlZW5cbiAgICogYWxsb2NhdGVkLlxuICAgKi9cbiAgZGVjbHM6IG51bWJlcnxudWxsID0gbnVsbDtcbn1cblxuLyoqXG4gKiBDb21waWxhdGlvbi1pbi1wcm9ncmVzcyBvZiBhIGhvc3QgYmluZGluZywgd2hpY2ggY29udGFpbnMgYSBzaW5nbGUgdW5pdCBmb3IgdGhhdCBob3N0IGJpbmRpbmcuXG4gKi9cbmV4cG9ydCBjbGFzcyBIb3N0QmluZGluZ0NvbXBpbGF0aW9uSm9iIGV4dGVuZHMgQ29tcGlsYXRpb25Kb2Ige1xuICBjb25zdHJ1Y3Rvcihjb21wb25lbnROYW1lOiBzdHJpbmcsIHBvb2w6IENvbnN0YW50UG9vbCwgY29tcGF0aWJpbGl0eTogaXIuQ29tcGF0aWJpbGl0eU1vZGUpIHtcbiAgICBzdXBlcihjb21wb25lbnROYW1lLCBwb29sLCBjb21wYXRpYmlsaXR5KTtcbiAgICB0aGlzLnJvb3QgPSBuZXcgSG9zdEJpbmRpbmdDb21waWxhdGlvblVuaXQodGhpcyk7XG4gIH1cblxuICBvdmVycmlkZSBraW5kID0gQ29tcGlsYXRpb25Kb2JLaW5kLkhvc3Q7XG5cbiAgb3ZlcnJpZGUgcmVhZG9ubHkgZm5TdWZmaXg6IHN0cmluZyA9ICdIb3N0QmluZGluZ3MnO1xuXG4gIG92ZXJyaWRlIHJlYWRvbmx5IHJvb3Q6IEhvc3RCaW5kaW5nQ29tcGlsYXRpb25Vbml0O1xuXG4gIG92ZXJyaWRlIGdldCB1bml0cygpOiBJdGVyYWJsZTxIb3N0QmluZGluZ0NvbXBpbGF0aW9uVW5pdD4ge1xuICAgIHJldHVybiBbdGhpcy5yb290XTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgSG9zdEJpbmRpbmdDb21waWxhdGlvblVuaXQgZXh0ZW5kcyBDb21waWxhdGlvblVuaXQge1xuICBjb25zdHJ1Y3RvcihyZWFkb25seSBqb2I6IEhvc3RCaW5kaW5nQ29tcGlsYXRpb25Kb2IpIHtcbiAgICBzdXBlcigwIGFzIGlyLlhyZWZJZCk7XG4gIH1cblxuICAvKipcbiAgICogTXVjaCBsaWtlIGFuIGVsZW1lbnQgY2FuIGhhdmUgYXR0cmlidXRlcywgc28gY2FuIGEgaG9zdCBiaW5kaW5nIGZ1bmN0aW9uLlxuICAgKi9cbiAgYXR0cmlidXRlczogby5MaXRlcmFsQXJyYXlFeHByfG51bGwgPSBudWxsO1xufVxuIl19
|
|
193
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGlsYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci9zcmMvdGVtcGxhdGUvcGlwZWxpbmUvc3JjL2NvbXBpbGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQU1ILE9BQU8sS0FBSyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRTVCLE1BQU0sQ0FBTixJQUFZLGtCQUlYO0FBSkQsV0FBWSxrQkFBa0I7SUFDNUIsMkRBQUksQ0FBQTtJQUNKLDJEQUFJLENBQUE7SUFDSiwyREFBSSxDQUFBO0FBQ04sQ0FBQyxFQUpXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFJN0I7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLE9BQWdCLGNBQWM7SUFDbEMsWUFDYSxhQUFxQixFQUFXLElBQWtCLEVBQ2xELGFBQW1DO1FBRG5DLGtCQUFhLEdBQWIsYUFBYSxDQUFRO1FBQVcsU0FBSSxHQUFKLElBQUksQ0FBYztRQUNsRCxrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7UUFFaEQsU0FBSSxHQUF1QixrQkFBa0IsQ0FBQyxJQUFJLENBQUM7UUEwQm5EOztXQUVHO1FBQ0ssZUFBVSxHQUFjLENBQWMsQ0FBQztJQS9CSSxDQUFDO0lBcUJwRDs7T0FFRztJQUNILGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxVQUFVLEVBQWUsQ0FBQztJQUN4QyxDQUFDO0NBTUY7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsY0FBYztJQUN6RCxZQUNJLGFBQXFCLEVBQUUsSUFBa0IsRUFBRSxhQUFtQyxFQUNyRSx1QkFBK0IsRUFBVyxrQkFBMkIsRUFDckUsZUFBMkQ7UUFDdEUsS0FBSyxDQUFDLGFBQWEsRUFBRSxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFGL0IsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUFRO1FBQVcsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFTO1FBQ3JFLG9CQUFlLEdBQWYsZUFBZSxDQUE0QztRQU0vRCxTQUFJLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDO1FBRXRCLGFBQVEsR0FBVyxVQUFVLENBQUM7UUFPdkMsVUFBSyxHQUFHLElBQUksR0FBRyxFQUFrQyxDQUFDO1FBRTNEOzs7V0FHRztRQUNJLHFCQUFnQixHQUFzQixJQUFJLENBQUM7UUFnQ2xEOzs7O1dBSUc7UUFDTSxXQUFNLEdBQW1CLEVBQUUsQ0FBQztRQUVyQzs7V0FFRztRQUNNLHVCQUFrQixHQUFrQixFQUFFLENBQUM7UUE3RDlDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBbUJEOztPQUVHO0lBQ0gsWUFBWSxDQUFDLE1BQWlCO1FBQzVCLE1BQU0sSUFBSSxHQUFHLElBQUksbUJBQW1CLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQWEsS0FBSztRQUNoQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUSxDQUFDLFFBQXNCLEVBQUUsWUFBNEI7UUFDM0QsS0FBSyxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUM7WUFDbEQsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO2dCQUM1QyxPQUFPLEdBQW9CLENBQUM7WUFDOUIsQ0FBQztRQUNILENBQUM7UUFDRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzQixJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxZQUFZLENBQUMsQ0FBQztRQUNoRCxDQUFDO1FBQ0QsT0FBTyxHQUFvQixDQUFDO0lBQzlCLENBQUM7Q0FhRjtBQUVEOzs7R0FHRztBQUNILE1BQU0sT0FBZ0IsZUFBZTtJQUNuQyxZQUFxQixJQUFlO1FBQWYsU0FBSSxHQUFKLElBQUksQ0FBVztRQUVwQzs7OztXQUlHO1FBQ00sV0FBTSxHQUFHLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBZSxDQUFDO1FBRS9DOztXQUVHO1FBQ00sV0FBTSxHQUFHLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBZSxDQUFDO1FBTy9DOzs7O1dBSUc7UUFDSCxXQUFNLEdBQWdCLElBQUksQ0FBQztRQUUzQjs7O1dBR0c7UUFDSCxTQUFJLEdBQWdCLElBQUksQ0FBQztJQTlCYyxDQUFDO0lBZ0N4Qzs7OztPQUlHO0lBQ0gsQ0FBRSxHQUFHO1FBQ0gsS0FBSyxNQUFNLEVBQUUsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDN0IsTUFBTSxFQUFFLENBQUM7WUFDVCxJQUFJLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDbkMsS0FBSyxNQUFNLFVBQVUsSUFBSSxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUM7b0JBQ3ZDLE1BQU0sVUFBVSxDQUFDO2dCQUNuQixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFDRCxLQUFLLE1BQU0sRUFBRSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM3QixNQUFNLEVBQUUsQ0FBQztRQUNYLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFFRDs7R0FFRztBQUNILE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxlQUFlO0lBQ3RELFlBQ2EsR0FBNEIsRUFBRSxJQUFlLEVBQVcsTUFBc0I7UUFDekYsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBREQsUUFBRyxHQUFILEdBQUcsQ0FBeUI7UUFBNEIsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFJM0Y7OztXQUdHO1FBQ00scUJBQWdCLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7UUFFdEQ7OztXQUdHO1FBQ00sWUFBTyxHQUFHLElBQUksR0FBRyxFQUFvQixDQUFDO1FBRS9DOzs7V0FHRztRQUNILFVBQUssR0FBZ0IsSUFBSSxDQUFDO0lBbEIxQixDQUFDO0NBbUJGO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsY0FBYztJQUMzRCxZQUFZLGFBQXFCLEVBQUUsSUFBa0IsRUFBRSxhQUFtQztRQUN4RixLQUFLLENBQUMsYUFBYSxFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQztRQUluQyxTQUFJLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDO1FBRXRCLGFBQVEsR0FBVyxjQUFjLENBQUM7UUFMbEQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLDBCQUEwQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFRRCxJQUFhLEtBQUs7UUFDaEIsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsZUFBZTtJQUM3RCxZQUFxQixHQUE4QjtRQUNqRCxLQUFLLENBQUMsQ0FBYyxDQUFDLENBQUM7UUFESCxRQUFHLEdBQUgsR0FBRyxDQUEyQjtRQUluRDs7V0FFRztRQUNILGVBQVUsR0FBNEIsSUFBSSxDQUFDO0lBTDNDLENBQUM7Q0FNRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge0NvbnN0YW50UG9vbH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRfcG9vbCc7XG5pbXBvcnQgKiBhcyBvIGZyb20gJy4uLy4uLy4uL291dHB1dC9vdXRwdXRfYXN0JztcbmltcG9ydCAqIGFzIHQgZnJvbSAnLi4vLi4vLi4vcmVuZGVyMy9yM19hc3QnO1xuaW1wb3J0IHtSM0RlZmVyQmxvY2tNZXRhZGF0YX0gZnJvbSAnLi4vLi4vLi4vcmVuZGVyMy92aWV3L2FwaSc7XG5pbXBvcnQgKiBhcyBpciBmcm9tICcuLi9pcic7XG5cbmV4cG9ydCBlbnVtIENvbXBpbGF0aW9uSm9iS2luZCB7XG4gIFRtcGwsXG4gIEhvc3QsXG4gIEJvdGgsICAvLyBBIHNwZWNpYWwgdmFsdWUgdXNlZCB0byBpbmRpY2F0ZSB0aGF0IHNvbWUgbG9naWMgYXBwbGllcyB0byBib3RoIGNvbXBpbGF0aW9uIHR5cGVzXG59XG5cbi8qKlxuICogQW4gZW50aXJlIG9uZ29pbmcgY29tcGlsYXRpb24sIHdoaWNoIHdpbGwgcmVzdWx0IGluIG9uZSBvciBtb3JlIHRlbXBsYXRlIGZ1bmN0aW9ucyB3aGVuIGNvbXBsZXRlLlxuICogQ29udGFpbnMgb25lIG9yIG1vcmUgY29ycmVzcG9uZGluZyBjb21waWxhdGlvbiB1bml0cy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENvbXBpbGF0aW9uSm9iIHtcbiAgY29uc3RydWN0b3IoXG4gICAgICByZWFkb25seSBjb21wb25lbnROYW1lOiBzdHJpbmcsIHJlYWRvbmx5IHBvb2w6IENvbnN0YW50UG9vbCxcbiAgICAgIHJlYWRvbmx5IGNvbXBhdGliaWxpdHk6IGlyLkNvbXBhdGliaWxpdHlNb2RlKSB7fVxuXG4gIGtpbmQ6IENvbXBpbGF0aW9uSm9iS2luZCA9IENvbXBpbGF0aW9uSm9iS2luZC5Cb3RoO1xuXG4gIC8qKlxuICAgKiBBIGNvbXBpbGF0aW9uIGpvYiB3aWxsIGNvbnRhaW4gb25lIG9yIG1vcmUgY29tcGlsYXRpb24gdW5pdHMuXG4gICAqL1xuICBhYnN0cmFjdCBnZXQgdW5pdHMoKTogSXRlcmFibGU8Q29tcGlsYXRpb25Vbml0PjtcblxuICAvKipcbiAgICogVGhlIHJvb3QgY29tcGlsYXRpb24gdW5pdCwgc3VjaCBhcyB0aGUgY29tcG9uZW50J3MgdGVtcGxhdGUsIG9yIHRoZSBob3N0IGJpbmRpbmcncyBjb21waWxhdGlvblxuICAgKiB1bml0LlxuICAgKi9cbiAgYWJzdHJhY3Qgcm9vdDogQ29tcGlsYXRpb25Vbml0O1xuXG4gIC8qKlxuICAgKiBBIHVuaXF1ZSBzdHJpbmcgdXNlZCB0byBpZGVudGlmeSB0aGlzIGtpbmQgb2Ygam9iLCBhbmQgZ2VuZXJhdGUgdGhlIHRlbXBsYXRlIGZ1bmN0aW9uIChhcyBhXG4gICAqIHN1ZmZpeCBvZiB0aGUgbmFtZSkuXG4gICAqL1xuICBhYnN0cmFjdCBmblN1ZmZpeDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZSBhIG5ldyB1bmlxdWUgYGlyLlhyZWZJZGAgaW4gdGhpcyBqb2IuXG4gICAqL1xuICBhbGxvY2F0ZVhyZWZJZCgpOiBpci5YcmVmSWQge1xuICAgIHJldHVybiB0aGlzLm5leHRYcmVmSWQrKyBhcyBpci5YcmVmSWQ7XG4gIH1cblxuICAvKipcbiAgICogVHJhY2tzIHRoZSBuZXh0IGBpci5YcmVmSWRgIHdoaWNoIGNhbiBiZSBhc3NpZ25lZCBhcyB0ZW1wbGF0ZSBzdHJ1Y3R1cmVzIGFyZSBpbmdlc3RlZC5cbiAgICovXG4gIHByaXZhdGUgbmV4dFhyZWZJZDogaXIuWHJlZklkID0gMCBhcyBpci5YcmVmSWQ7XG59XG5cbi8qKlxuICogQ29tcGlsYXRpb24taW4tcHJvZ3Jlc3Mgb2YgYSB3aG9sZSBjb21wb25lbnQncyB0ZW1wbGF0ZSwgaW5jbHVkaW5nIHRoZSBtYWluIHRlbXBsYXRlIGFuZCBhbnlcbiAqIGVtYmVkZGVkIHZpZXdzIG9yIGhvc3QgYmluZGluZ3MuXG4gKi9cbmV4cG9ydCBjbGFzcyBDb21wb25lbnRDb21waWxhdGlvbkpvYiBleHRlbmRzIENvbXBpbGF0aW9uSm9iIHtcbiAgY29uc3RydWN0b3IoXG4gICAgICBjb21wb25lbnROYW1lOiBzdHJpbmcsIHBvb2w6IENvbnN0YW50UG9vbCwgY29tcGF0aWJpbGl0eTogaXIuQ29tcGF0aWJpbGl0eU1vZGUsXG4gICAgICByZWFkb25seSByZWxhdGl2ZUNvbnRleHRGaWxlUGF0aDogc3RyaW5nLCByZWFkb25seSBpMThuVXNlRXh0ZXJuYWxJZHM6IGJvb2xlYW4sXG4gICAgICByZWFkb25seSBkZWZlckJsb2Nrc01ldGE6IE1hcDx0LkRlZmVycmVkQmxvY2ssIFIzRGVmZXJCbG9ja01ldGFkYXRhPikge1xuICAgIHN1cGVyKGNvbXBvbmVudE5hbWUsIHBvb2wsIGNvbXBhdGliaWxpdHkpO1xuICAgIHRoaXMucm9vdCA9IG5ldyBWaWV3Q29tcGlsYXRpb25Vbml0KHRoaXMsIHRoaXMuYWxsb2NhdGVYcmVmSWQoKSwgbnVsbCk7XG4gICAgdGhpcy52aWV3cy5zZXQodGhpcy5yb290LnhyZWYsIHRoaXMucm9vdCk7XG4gIH1cblxuICBvdmVycmlkZSBraW5kID0gQ29tcGlsYXRpb25Kb2JLaW5kLlRtcGw7XG5cbiAgb3ZlcnJpZGUgcmVhZG9ubHkgZm5TdWZmaXg6IHN0cmluZyA9ICdUZW1wbGF0ZSc7XG5cbiAgLyoqXG4gICAqIFRoZSByb290IHZpZXcsIHJlcHJlc2VudGluZyB0aGUgY29tcG9uZW50J3MgdGVtcGxhdGUuXG4gICAqL1xuICBvdmVycmlkZSByZWFkb25seSByb290OiBWaWV3Q29tcGlsYXRpb25Vbml0O1xuXG4gIHJlYWRvbmx5IHZpZXdzID0gbmV3IE1hcDxpci5YcmVmSWQsIFZpZXdDb21waWxhdGlvblVuaXQ+KCk7XG5cbiAgLyoqXG4gICAqIENhdXNlcyBuZ0NvbnRlbnRTZWxlY3RvcnMgdG8gYmUgZW1pdHRlZCwgZm9yIGNvbnRlbnQgcHJvamVjdGlvbiBzbG90cyBpbiB0aGUgdmlldy4gUG9zc2libHkgYVxuICAgKiByZWZlcmVuY2UgaW50byB0aGUgY29uc3RhbnQgcG9vbC5cbiAgICovXG4gIHB1YmxpYyBjb250ZW50U2VsZWN0b3JzOiBvLkV4cHJlc3Npb258bnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIEFkZCBhIGBWaWV3Q29tcGlsYXRpb25gIGZvciBhIG5ldyBlbWJlZGRlZCB2aWV3IHRvIHRoaXMgY29tcGlsYXRpb24uXG4gICAqL1xuICBhbGxvY2F0ZVZpZXcocGFyZW50OiBpci5YcmVmSWQpOiBWaWV3Q29tcGlsYXRpb25Vbml0IHtcbiAgICBjb25zdCB2aWV3ID0gbmV3IFZpZXdDb21waWxhdGlvblVuaXQodGhpcywgdGhpcy5hbGxvY2F0ZVhyZWZJZCgpLCBwYXJlbnQpO1xuICAgIHRoaXMudmlld3Muc2V0KHZpZXcueHJlZiwgdmlldyk7XG4gICAgcmV0dXJuIHZpZXc7XG4gIH1cblxuICBvdmVycmlkZSBnZXQgdW5pdHMoKTogSXRlcmFibGU8Vmlld0NvbXBpbGF0aW9uVW5pdD4ge1xuICAgIHJldHVybiB0aGlzLnZpZXdzLnZhbHVlcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIGNvbnN0YW50IGBvLkV4cHJlc3Npb25gIHRvIHRoZSBjb21waWxhdGlvbiBhbmQgcmV0dXJuIGl0cyBpbmRleCBpbiB0aGUgYGNvbnN0c2AgYXJyYXkuXG4gICAqL1xuICBhZGRDb25zdChuZXdDb25zdDogby5FeHByZXNzaW9uLCBpbml0aWFsaXplcnM/OiBvLlN0YXRlbWVudFtdKTogaXIuQ29uc3RJbmRleCB7XG4gICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgdGhpcy5jb25zdHMubGVuZ3RoOyBpZHgrKykge1xuICAgICAgaWYgKHRoaXMuY29uc3RzW2lkeF0uaXNFcXVpdmFsZW50KG5ld0NvbnN0KSkge1xuICAgICAgICByZXR1cm4gaWR4IGFzIGlyLkNvbnN0SW5kZXg7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGlkeCA9IHRoaXMuY29uc3RzLmxlbmd0aDtcbiAgICB0aGlzLmNvbnN0cy5wdXNoKG5ld0NvbnN0KTtcbiAgICBpZiAoaW5pdGlhbGl6ZXJzKSB7XG4gICAgICB0aGlzLmNvbnN0c0luaXRpYWxpemVycy5wdXNoKC4uLmluaXRpYWxpemVycyk7XG4gICAgfVxuICAgIHJldHVybiBpZHggYXMgaXIuQ29uc3RJbmRleDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25zdGFudCBleHByZXNzaW9ucyB1c2VkIGJ5IG9wZXJhdGlvbnMgd2l0aGluIHRoaXMgY29tcG9uZW50J3MgY29tcGlsYXRpb24uXG4gICAqXG4gICAqIFRoaXMgd2lsbCBldmVudHVhbGx5IGJlY29tZSB0aGUgYGNvbnN0c2AgYXJyYXkgaW4gdGhlIGNvbXBvbmVudCBkZWZpbml0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgY29uc3RzOiBvLkV4cHJlc3Npb25bXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsaXphdGlvbiBzdGF0ZW1lbnRzIG5lZWRlZCB0byBzZXQgdXAgdGhlIGNvbnN0cy5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnN0c0luaXRpYWxpemVyczogby5TdGF0ZW1lbnRbXSA9IFtdO1xufVxuXG4vKipcbiAqIEEgY29tcGlsYXRpb24gdW5pdCBpcyBjb21waWxlZCBpbnRvIGEgdGVtcGxhdGUgZnVuY3Rpb24uIFNvbWUgZXhhbXBsZSB1bml0cyBhcmUgdmlld3MgYW5kIGhvc3RcbiAqIGJpbmRpbmdzLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ29tcGlsYXRpb25Vbml0IHtcbiAgY29uc3RydWN0b3IocmVhZG9ubHkgeHJlZjogaXIuWHJlZklkKSB7fVxuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGNyZWF0aW9uIG9wZXJhdGlvbnMgZm9yIHRoaXMgdmlldy5cbiAgICpcbiAgICogQ3JlYXRpb24gb3BlcmF0aW9ucyBtYXkgaW50ZXJuYWxseSBjb250YWluIG90aGVyIG9wZXJhdGlvbnMsIGluY2x1ZGluZyB1cGRhdGUgb3BlcmF0aW9ucy5cbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZSA9IG5ldyBpci5PcExpc3Q8aXIuQ3JlYXRlT3A+KCk7XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgdXBkYXRlIG9wZXJhdGlvbnMgZm9yIHRoaXMgdmlldy5cbiAgICovXG4gIHJlYWRvbmx5IHVwZGF0ZSA9IG5ldyBpci5PcExpc3Q8aXIuVXBkYXRlT3A+KCk7XG5cbiAgLyoqXG4gICAqIFRoZSBlbmNsb3Npbmcgam9iLCB3aGljaCBtaWdodCBjb250YWluIHNldmVyYWwgaW5kaXZpZHVhbCBjb21waWxhdGlvbiB1bml0cy5cbiAgICovXG4gIGFic3RyYWN0IHJlYWRvbmx5IGpvYjogQ29tcGlsYXRpb25Kb2I7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIGZ1bmN0aW9uIHdoaWNoIHdpbGwgYmUgZ2VuZXJhdGVkIGZvciB0aGlzIHVuaXQuXG4gICAqXG4gICAqIE1heSBiZSBgbnVsbGAgaWYgbm90IHlldCBkZXRlcm1pbmVkLlxuICAgKi9cbiAgZm5OYW1lOiBzdHJpbmd8bnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiB2YXJpYWJsZSBzbG90cyB1c2VkIHdpdGhpbiB0aGlzIHZpZXcsIG9yIGBudWxsYCBpZiB2YXJpYWJsZXMgaGF2ZSBub3QgeWV0IGJlZW5cbiAgICogY291bnRlZC5cbiAgICovXG4gIHZhcnM6IG51bWJlcnxudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogSXRlcmF0ZSBvdmVyIGFsbCBgaXIuT3BgcyB3aXRoaW4gdGhpcyB2aWV3LlxuICAgKlxuICAgKiBTb21lIG9wZXJhdGlvbnMgbWF5IGhhdmUgY2hpbGQgb3BlcmF0aW9ucywgd2hpY2ggdGhpcyBpdGVyYXRvciB3aWxsIHZpc2l0LlxuICAgKi9cbiAgKiBvcHMoKTogR2VuZXJhdG9yPGlyLkNyZWF0ZU9wfGlyLlVwZGF0ZU9wPiB7XG4gICAgZm9yIChjb25zdCBvcCBvZiB0aGlzLmNyZWF0ZSkge1xuICAgICAgeWllbGQgb3A7XG4gICAgICBpZiAob3Aua2luZCA9PT0gaXIuT3BLaW5kLkxpc3RlbmVyKSB7XG4gICAgICAgIGZvciAoY29uc3QgbGlzdGVuZXJPcCBvZiBvcC5oYW5kbGVyT3BzKSB7XG4gICAgICAgICAgeWllbGQgbGlzdGVuZXJPcDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGNvbnN0IG9wIG9mIHRoaXMudXBkYXRlKSB7XG4gICAgICB5aWVsZCBvcDtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBDb21waWxhdGlvbi1pbi1wcm9ncmVzcyBvZiBhbiBpbmRpdmlkdWFsIHZpZXcgd2l0aGluIGEgdGVtcGxhdGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBWaWV3Q29tcGlsYXRpb25Vbml0IGV4dGVuZHMgQ29tcGlsYXRpb25Vbml0IHtcbiAgY29uc3RydWN0b3IoXG4gICAgICByZWFkb25seSBqb2I6IENvbXBvbmVudENvbXBpbGF0aW9uSm9iLCB4cmVmOiBpci5YcmVmSWQsIHJlYWRvbmx5IHBhcmVudDogaXIuWHJlZklkfG51bGwpIHtcbiAgICBzdXBlcih4cmVmKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXAgb2YgZGVjbGFyZWQgdmFyaWFibGVzIGF2YWlsYWJsZSB3aXRoaW4gdGhpcyB2aWV3IHRvIHRoZSBwcm9wZXJ0eSBvbiB0aGUgY29udGV4dCBvYmplY3RcbiAgICogd2hpY2ggdGhleSBhbGlhcy5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHRWYXJpYWJsZXMgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuXG4gIC8qKlxuICAgKiBTZXQgb2YgYWxpYXNlcyBhdmFpbGFibGUgd2l0aGluIHRoaXMgdmlldy4gQW4gYWxpYXMgaXMgYSB2YXJpYWJsZSB3aG9zZSBwcm92aWRlZCBleHByZXNzaW9uIGlzXG4gICAqIGlubGluZWQgYXQgZXZlcnkgbG9jYXRpb24gaXQgaXMgdXNlZC4gSXQgbWF5IGFsc28gZGVwZW5kIG9uIGNvbnRleHQgdmFyaWFibGVzLCBieSBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgYWxpYXNlcyA9IG5ldyBTZXQ8aXIuQWxpYXNWYXJpYWJsZT4oKTtcblxuICAvKipcbiAgICogTnVtYmVyIG9mIGRlY2xhcmF0aW9uIHNsb3RzIHVzZWQgd2l0aGluIHRoaXMgdmlldywgb3IgYG51bGxgIGlmIHNsb3RzIGhhdmUgbm90IHlldCBiZWVuXG4gICAqIGFsbG9jYXRlZC5cbiAgICovXG4gIGRlY2xzOiBudW1iZXJ8bnVsbCA9IG51bGw7XG59XG5cbi8qKlxuICogQ29tcGlsYXRpb24taW4tcHJvZ3Jlc3Mgb2YgYSBob3N0IGJpbmRpbmcsIHdoaWNoIGNvbnRhaW5zIGEgc2luZ2xlIHVuaXQgZm9yIHRoYXQgaG9zdCBiaW5kaW5nLlxuICovXG5leHBvcnQgY2xhc3MgSG9zdEJpbmRpbmdDb21waWxhdGlvbkpvYiBleHRlbmRzIENvbXBpbGF0aW9uSm9iIHtcbiAgY29uc3RydWN0b3IoY29tcG9uZW50TmFtZTogc3RyaW5nLCBwb29sOiBDb25zdGFudFBvb2wsIGNvbXBhdGliaWxpdHk6IGlyLkNvbXBhdGliaWxpdHlNb2RlKSB7XG4gICAgc3VwZXIoY29tcG9uZW50TmFtZSwgcG9vbCwgY29tcGF0aWJpbGl0eSk7XG4gICAgdGhpcy5yb290ID0gbmV3IEhvc3RCaW5kaW5nQ29tcGlsYXRpb25Vbml0KHRoaXMpO1xuICB9XG5cbiAgb3ZlcnJpZGUga2luZCA9IENvbXBpbGF0aW9uSm9iS2luZC5Ib3N0O1xuXG4gIG92ZXJyaWRlIHJlYWRvbmx5IGZuU3VmZml4OiBzdHJpbmcgPSAnSG9zdEJpbmRpbmdzJztcblxuICBvdmVycmlkZSByZWFkb25seSByb290OiBIb3N0QmluZGluZ0NvbXBpbGF0aW9uVW5pdDtcblxuICBvdmVycmlkZSBnZXQgdW5pdHMoKTogSXRlcmFibGU8SG9zdEJpbmRpbmdDb21waWxhdGlvblVuaXQ+IHtcbiAgICByZXR1cm4gW3RoaXMucm9vdF07XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEhvc3RCaW5kaW5nQ29tcGlsYXRpb25Vbml0IGV4dGVuZHMgQ29tcGlsYXRpb25Vbml0IHtcbiAgY29uc3RydWN0b3IocmVhZG9ubHkgam9iOiBIb3N0QmluZGluZ0NvbXBpbGF0aW9uSm9iKSB7XG4gICAgc3VwZXIoMCBhcyBpci5YcmVmSWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIE11Y2ggbGlrZSBhbiBlbGVtZW50IGNhbiBoYXZlIGF0dHJpYnV0ZXMsIHNvIGNhbiBhIGhvc3QgYmluZGluZyBmdW5jdGlvbi5cbiAgICovXG4gIGF0dHJpYnV0ZXM6IG8uTGl0ZXJhbEFycmF5RXhwcnxudWxsID0gbnVsbDtcbn1cbiJdfQ==
|
|
@@ -54,4 +54,4 @@ export function literalOrArrayLiteral(value) {
|
|
|
54
54
|
}
|
|
55
55
|
return o.literal(value);
|
|
56
56
|
}
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyL3NyYy90ZW1wbGF0ZS9waXBlbGluZS9zcmMvY29udmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEtBQUssQ0FBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2hELE9BQU8sS0FBSyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRTVCLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLElBQUksR0FBRyxDQUFDO0lBQ3RDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDO0lBQzVCLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO0lBQzlCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDO0lBQ3JDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO0lBQ2xDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO0lBQzlCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO0lBQy9CLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO0lBQ25DLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO0lBQzdCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDO0lBQ3BDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO0lBQzdCLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO0lBQzlCLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO0lBQ2hDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO0lBQ2xDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDO0lBQ3RDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDO0lBQ3hDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO0lBQzNCLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDO0NBQzdCLENBQUMsQ0FBQztBQUVILE1BQU0sVUFBVSxlQUFlLENBQUMsa0JBQStCO0lBQzdELE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRixJQUFJLGtCQUFrQixLQUFLLElBQUksRUFBRSxDQUFDO1FBQ2hDLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7SUFDM0IsQ0FBQztJQUNELE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO0FBQ2pFLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFDLFNBQXVCO0lBQ3JELE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRixLQUFLLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDMUMsSUFBSSxDQUFDLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDcEIsT0FBTyxDQUFDLENBQUM7UUFDWCxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDLENBQUUsK0JBQStCO0FBQy9DLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsV0FBbUIsRUFBRSxTQUF1QjtJQUM5RSxJQUFJLFNBQVMsS0FBSyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3BDLE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFDRCxPQUFPLElBQUksZUFBZSxDQUFDLFNBQVMsQ0FBQyxJQUFJLFdBQVcsRUFBRSxDQUFDO0FBQ3pELENBQUM7QUFJRCxNQUFNLFVBQVUscUJBQXFCLENBQUMsS0FBa0I7SUFDdEQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDekIsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFDRCxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDMUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgKiBhcyBvIGZyb20gJy4uLy4uLy4uL291dHB1dC9vdXRwdXRfYXN0JztcbmltcG9ydCAqIGFzIGlyIGZyb20gJy4uL2lyJztcblxuZXhwb3J0IGNvbnN0IEJJTkFSWV9PUEVSQVRPUlMgPSBuZXcgTWFwKFtcbiAgWycmJicsIG8uQmluYXJ5T3BlcmF0b3IuQW5kXSxcbiAgWyc+Jywgby5CaW5hcnlPcGVyYXRvci5CaWdnZXJdLFxuICBbJz49Jywgby5CaW5hcnlPcGVyYXRvci5CaWdnZXJFcXVhbHNdLFxuICBbJyYnLCBvLkJpbmFyeU9wZXJhdG9yLkJpdHdpc2VBbmRdLFxuICBbJy8nLCBvLkJpbmFyeU9wZXJhdG9yLkRpdmlkZV0sXG4gIFsnPT0nLCBvLkJpbmFyeU9wZXJhdG9yLkVxdWFsc10sXG4gIFsnPT09Jywgby5CaW5hcnlPcGVyYXRvci5JZGVudGljYWxdLFxuICBbJzwnLCBvLkJpbmFyeU9wZXJhdG9yLkxvd2VyXSxcbiAgWyc8PScsIG8uQmluYXJ5T3BlcmF0b3IuTG93ZXJFcXVhbHNdLFxuICBbJy0nLCBvLkJpbmFyeU9wZXJhdG9yLk1pbnVzXSxcbiAgWyclJywgby5CaW5hcnlPcGVyYXRvci5Nb2R1bG9dLFxuICBbJyonLCBvLkJpbmFyeU9wZXJhdG9yLk11bHRpcGx5XSxcbiAgWychPScsIG8uQmluYXJ5T3BlcmF0b3IuTm90RXF1YWxzXSxcbiAgWychPT0nLCBvLkJpbmFyeU9wZXJhdG9yLk5vdElkZW50aWNhbF0sXG4gIFsnPz8nLCBvLkJpbmFyeU9wZXJhdG9yLk51bGxpc2hDb2FsZXNjZV0sXG4gIFsnfHwnLCBvLkJpbmFyeU9wZXJhdG9yLk9yXSxcbiAgWycrJywgby5CaW5hcnlPcGVyYXRvci5QbHVzXSxcbl0pO1xuXG5leHBvcnQgZnVuY3Rpb24gbmFtZXNwYWNlRm9yS2V5KG5hbWVzcGFjZVByZWZpeEtleTogc3RyaW5nfG51bGwpOiBpci5OYW1lc3BhY2Uge1xuICBjb25zdCBOQU1FU1BBQ0VTID0gbmV3IE1hcChbWydzdmcnLCBpci5OYW1lc3BhY2UuU1ZHXSwgWydtYXRoJywgaXIuTmFtZXNwYWNlLk1hdGhdXSk7XG4gIGlmIChuYW1lc3BhY2VQcmVmaXhLZXkgPT09IG51bGwpIHtcbiAgICByZXR1cm4gaXIuTmFtZXNwYWNlLkhUTUw7XG4gIH1cbiAgcmV0dXJuIE5BTUVTUEFDRVMuZ2V0KG5hbWVzcGFjZVByZWZpeEtleSkgPz8gaXIuTmFtZXNwYWNlLkhUTUw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBrZXlGb3JOYW1lc3BhY2UobmFtZXNwYWNlOiBpci5OYW1lc3BhY2UpOiBzdHJpbmd8bnVsbCB7XG4gIGNvbnN0IE5BTUVTUEFDRVMgPSBuZXcgTWFwKFtbJ3N2ZycsIGlyLk5hbWVzcGFjZS5TVkddLCBbJ21hdGgnLCBpci5OYW1lc3BhY2UuTWF0aF1dKTtcbiAgZm9yIChjb25zdCBbaywgbl0gb2YgTkFNRVNQQUNFUy5lbnRyaWVzKCkpIHtcbiAgICBpZiAobiA9PT0gbmFtZXNwYWNlKSB7XG4gICAgICByZXR1cm4gaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG51bGw7ICAvLyBObyBuYW1lc3BhY2UgcHJlZml4IGZvciBIVE1MXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmVmaXhXaXRoTmFtZXNwYWNlKHN0cmlwcGVkVGFnOiBzdHJpbmcsIG5hbWVzcGFjZTogaXIuTmFtZXNwYWNlKTogc3RyaW5nIHtcbiAgaWYgKG5hbWVzcGFjZSA9PT0gaXIuTmFtZXNwYWNlLkhUTUwpIHtcbiAgICByZXR1cm4gc3RyaXBwZWRUYWc7XG4gIH1cbiAgcmV0dXJuIGA6JHtrZXlGb3JOYW1lc3BhY2UobmFtZXNwYWNlKX06JHtzdHJpcHBlZFRhZ31gO1xufVxuXG5leHBvcnQgdHlwZSBMaXRlcmFsVHlwZSA9IHN0cmluZ3xudW1iZXJ8Ym9vbGVhbnxudWxsfEFycmF5PExpdGVyYWxUeXBlPjtcblxuZXhwb3J0IGZ1bmN0aW9uIGxpdGVyYWxPckFycmF5TGl0ZXJhbCh2YWx1ZTogTGl0ZXJhbFR5cGUpOiBvLkV4cHJlc3Npb24ge1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gby5saXRlcmFsQXJyKHZhbHVlLm1hcChsaXRlcmFsT3JBcnJheUxpdGVyYWwpKTtcbiAgfVxuICByZXR1cm4gby5saXRlcmFsKHZhbHVlKTtcbn1cbiJdfQ==
|
|
@@ -101,7 +101,7 @@ const phases = [
|
|
|
101
101
|
{ kind: Kind.Tmpl, fn: resolveDeferTargetNames },
|
|
102
102
|
{ kind: Kind.Tmpl, fn: optimizeTrackFns },
|
|
103
103
|
{ kind: Kind.Both, fn: resolveContexts },
|
|
104
|
-
{ kind: Kind.Tmpl, fn: resolveSanitizers },
|
|
104
|
+
{ kind: Kind.Tmpl, fn: resolveSanitizers }, // TODO: run in both
|
|
105
105
|
{ kind: Kind.Tmpl, fn: liftLocalRefs },
|
|
106
106
|
{ kind: Kind.Both, fn: generateNullishCoalesceExpressions },
|
|
107
107
|
{ kind: Kind.Both, fn: expandSafeReads },
|
|
@@ -237,4 +237,4 @@ export function emitHostBindingFunction(job) {
|
|
|
237
237
|
],
|
|
238
238
|
/* type */ undefined, /* sourceSpan */ undefined, job.root.fnName);
|
|
239
239
|
}
|
|
240
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1pdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyL3NyYy90ZW1wbGF0ZS9waXBlbGluZS9zcmMvZW1pdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztHQU9HO0FBRUgsT0FBTyxLQUFLLENBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUV2RCxPQUFPLEtBQUssRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUU1QixPQUFPLEVBQWlCLGtCQUFrQixJQUFJLElBQUksRUFBeUYsTUFBTSxlQUFlLENBQUM7QUFFakssT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQ2xGLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUN4QyxPQUFPLEVBQUMsK0JBQStCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUMzRixPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEVB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QkFBZ0IsQ0FBQyxDQUFDO0lBQzdELE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FDUDtRQUNFLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztLQUNyQixFQUNEO1FBQ0UsR0FBRyxVQUFVO1FBQ2IsR0FBRyxVQUFVO0tBQ2Q7SUFDRCxVQUFVLENBQUMsU0FBUyxFQUFFLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3pFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCAqIGFzIG8gZnJvbSAnLi4vLi4vLi4vLi4vc3JjL291dHB1dC9vdXRwdXRfYXN0JztcbmltcG9ydCB7Q29uc3RhbnRQb29sfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudF9wb29sJztcbmltcG9ydCAqIGFzIGlyIGZyb20gJy4uL2lyJztcblxuaW1wb3J0IHtDb21waWxhdGlvbkpvYiwgQ29tcGlsYXRpb25Kb2JLaW5kIGFzIEtpbmQsIHR5cGUgQ29tcG9uZW50Q29tcGlsYXRpb25Kb2IsIHR5cGUgSG9zdEJpbmRpbmdDb21waWxhdGlvbkpvYiwgdHlwZSBWaWV3Q29tcGlsYXRpb25Vbml0fSBmcm9tICcuL2NvbXBpbGF0aW9uJztcblxuaW1wb3J0IHtkZWxldGVBbnlDYXN0c30gZnJvbSAnLi9waGFzZXMvYW55X2Nhc3QnO1xuaW1wb3J0IHthcHBseUkxOG5FeHByZXNzaW9uc30gZnJvbSAnLi9waGFzZXMvYXBwbHlfaTE4bl9leHByZXNzaW9ucyc7XG5pbXBvcnQge2Fzc2lnbkkxOG5TbG90RGVwZW5kZW5jaWVzfSBmcm9tICcuL3BoYXNlcy9hc3NpZ25faTE4bl9zbG90X2RlcGVuZGVuY2llcyc7XG5pbXBvcnQge2V4dHJhY3RBdHRyaWJ1dGVzfSBmcm9tICcuL3BoYXNlcy9hdHRyaWJ1dGVfZXh0cmFjdGlvbic7XG5pbXBvcnQge3NwZWNpYWxpemVCaW5kaW5nc30gZnJvbSAnLi9waGFzZXMvYmluZGluZ19zcGVjaWFsaXphdGlvbic7XG5pbXBvcnQge2NoYWlufSBmcm9tICcuL3BoYXNlcy9jaGFpbmluZyc7XG5pbXBvcnQge2NvbGxhcHNlU2luZ2xldG9uSW50ZXJwb2xhdGlvbnN9IGZyb20gJy4vcGhhc2VzL2NvbGxhcHNlX3NpbmdsZXRvbl9pbnRlcnBvbGF0aW9ucyc7XG5pbXBvcnQge2dlbmVyYXRlQ29uZGl0aW9uYWxFeHByZXNzaW9uc30gZnJvbSAnLi9waGFzZXMvY29uZGl0aW9uYWxzJztcbmltcG9ydCB7Y29sbGVjdEVsZW1lbnRDb25zdHN9IGZyb20gJy4vcGhhc2VzL2NvbnN0X2NvbGxlY3Rpb24nO1xuaW1wb3J0IHtjcmVhdGVEZWZlckRlcHNGbnN9IGZyb20gJy4vcGhhc2VzL2NyZWF0ZV9kZWZlcl9kZXBzX2Zucyc7XG5pbXBvcnQge2NyZWF0ZUkxOG5Db250ZXh0c30gZnJvbSAnLi9waGFzZXMvY3JlYXRlX2kxOG5fY29udGV4dHMnO1xuaW1wb3J0IHtjb25maWd1cmVEZWZlckluc3RydWN0aW9uc30gZnJvbSAnLi9waGFzZXMvZGVmZXJfY29uZmlncyc7XG5pbXBvcnQge3Jlc29sdmVEZWZlclRhcmdldE5hbWVzfSBmcm9tICcuL3BoYXNlcy9kZWZlcl9yZXNvbHZlX3RhcmdldHMnO1xuaW1wb3J0IHtjb2xsYXBzZUVtcHR5SW5zdHJ1Y3Rpb25zfSBmcm9tICcuL3BoYXNlcy9lbXB0eV9lbGVtZW50cyc7XG5pbXBvcnQge2V4cGFuZFNhZmVSZWFkc30gZnJvbSAnLi9waGFzZXMvZXhwYW5kX3NhZmVfcmVhZHMnO1xuaW1wb3J0IHtleHRyYWN0STE4bk1lc3NhZ2VzfSBmcm9tICcuL3BoYXNlcy9leHRyYWN0X2kxOG5fbWVzc2FnZXMnO1xuaW1wb3J0IHtnZW5lcmF0ZUFkdmFuY2V9IGZyb20gJy4vcGhhc2VzL2dlbmVyYXRlX2FkdmFuY2UnO1xuaW1wb3J0IHtnZW5lcmF0ZVByb2plY3Rpb25EZWZzfSBmcm9tICcuL3BoYXNlcy9nZW5lcmF0ZV9wcm9qZWN0aW9uX2RlZic7XG5pbXBvcnQge2dlbmVyYXRlVmFyaWFibGVzfSBmcm9tICcuL3BoYXNlcy9nZW5lcmF0ZV92YXJpYWJsZXMnO1xuaW1wb3J0IHtjb2xsZWN0Q29uc3RFeHByZXNzaW9uc30gZnJvbSAnLi9waGFzZXMvaGFzX2NvbnN0X2V4cHJlc3Npb25fY29sbGVjdGlvbic7XG5pbXBvcnQge3BhcnNlSG9zdFN0eWxlUHJvcGVydGllc30gZnJvbSAnLi9waGFzZXMvaG9zdF9zdHlsZV9wcm9wZXJ0eV9wYXJzaW5nJztcbmltcG9ydCB7Y29sbGVjdEkxOG5Db25zdHN9IGZyb20gJy4vcGhhc2VzL2kxOG5fY29uc3RfY29sbGVjdGlvbic7XG5pbXBvcnQge2V4dHJhY3RJMThuVGV4dH0gZnJvbSAnLi9waGFzZXMvaTE4bl90ZXh0X2V4dHJhY3Rpb24nO1xuaW1wb3J0IHtsaWZ0TG9jYWxSZWZzfSBmcm9tICcuL3BoYXNlcy9sb2NhbF9yZWZzJztcbmltcG9ydCB7bWVyZ2VJMThuQ29udGV4dHN9IGZyb20gJy4vcGhhc2VzL21lcmdlX2kxOG5fY29udGV4dHMnO1xuaW1wb3J0IHtlbWl0TmFtZXNwYWNlQ2hhbmdlc30gZnJvbSAnLi9waGFzZXMvbmFtZXNwYWNlJztcbmltcG9ydCB7bmFtZUZ1bmN0aW9uc0FuZFZhcmlhYmxlc30gZnJvbSAnLi9waGFzZXMvbmFtaW5nJztcbmltcG9ydCB7bWVyZ2VOZXh0Q29udGV4dEV4cHJlc3Npb25zfSBmcm9tICcuL3BoYXNlcy9uZXh0X2NvbnRleHRfbWVyZ2luZyc7XG5pbXBvcnQge2dlbmVyYXRlTmdDb250YWluZXJPcHN9IGZyb20gJy4vcGhhc2VzL25nX2NvbnRhaW5lcic7XG5pbXBvcnQge2Rpc2FibGVCaW5kaW5nc30gZnJvbSAnLi9waGFzZXMvbm9uYmluZGFibGUnO1xuaW1wb3J0IHtnZW5lcmF0ZU51bGxpc2hDb2FsZXNjZUV4cHJlc3Npb25zfSBmcm9tICcuL3BoYXNlcy9udWxsaXNoX2NvYWxlc2NpbmcnO1xuaW1wb3J0IHtvcmRlck9wc30gZnJvbSAnLi9waGFzZXMvb3JkZXJpbmcnO1xuaW1wb3J0IHtwYXJzZUV4dHJhY3RlZFN0eWxlc30gZnJvbSAnLi9waGFzZXMvcGFyc2VfZXh0cmFjdGVkX3N0eWxlcyc7XG5pbXBvcnQge3JlbW92ZUNvbnRlbnRTZWxlY3RvcnN9IGZyb20gJy4vcGhhc2VzL3BoYXNlX3JlbW92ZV9jb250ZW50X3NlbGVjdG9ycyc7XG5pbXBvcnQge2NyZWF0ZVBpcGVzfSBmcm9tICcuL3BoYXNlcy9waXBlX2NyZWF0aW9uJztcbmltcG9ydCB7Y3JlYXRlVmFyaWFkaWNQaXBlc30gZnJvbSAnLi9waGFzZXMvcGlwZV92YXJpYWRpYyc7XG5pbXBvcnQge3Byb3BhZ2F0ZUkxOG5CbG9ja3N9IGZyb20gJy4vcGhhc2VzL3Byb3BhZ2F0ZV9pMThuX2Jsb2Nrcyc7XG5pbXBvcnQge2V4dHJhY3RQdXJlRnVuY3Rpb25zfSBmcm9tICcuL3BoYXNlcy9wdXJlX2Z1bmN0aW9uX2V4dHJhY3Rpb24nO1xuaW1wb3J0IHtnZW5lcmF0ZVB1cmVMaXRlcmFsU3RydWN0dXJlc30gZnJvbSAnLi9waGFzZXMvcHVyZV9saXRlcmFsX3N0cnVjdHVyZXMnO1xuaW1wb3J0IHtyZWlmeX0gZnJvbSAnLi9waGFzZXMvcmVpZnknO1xuaW1wb3J0IHtyZW1vdmVFbXB0eUJpbmRpbmdzfSBmcm9tICcuL3BoYXNlcy9yZW1vdmVfZW1wdHlfYmluZGluZ3MnO1xuaW1wb3J0IHtyZW1vdmVJMThuQ29udGV4dHN9IGZyb20gJy4vcGhhc2VzL3JlbW92ZV9pMThuX2NvbnRleHRzJztcbmltcG9ydCB7Z2VuZXJhdGVSZXBlYXRlckRlcml2ZWRWYXJzfSBmcm9tICcuL3BoYXNlcy9yZXBlYXRlcl9kZXJpdmVkX3ZhcnMnO1xuaW1wb3J0IHtyZXNvbHZlQ29udGV4dHN9IGZyb20gJy4vcGhhc2VzL3Jlc29sdmVfY29udGV4dHMnO1xuaW1wb3J0IHtyZXNvbHZlRG9sbGFyRXZlbnR9IGZyb20gJy4vcGhhc2VzL3Jlc29sdmVfZG9sbGFyX2V2ZW50JztcbmltcG9ydCB7cmVzb2x2ZUkxOG5FbGVtZW50UGxhY2Vob2xkZXJzfSBmcm9tICcuL3BoYXNlcy9yZXNvbHZlX2kxOG5fZWxlbWVudF9wbGFjZWhvbGRlcnMnO1xuaW1wb3J0IHtyZXNvbHZlSTE4bkV4cHJlc3Npb25QbGFjZWhvbGRlcnN9IGZyb20gJy4vcGhhc2VzL3Jlc29sdmVfaTE4bl9leHByZXNzaW9uX3BsYWNlaG9sZGVycyc7XG5pbXBvcnQge3Jlc29sdmVJMThuSWN1UGxhY2Vob2xkZXJzfSBmcm9tICcuL3BoYXNlcy9yZXNvbHZlX2kxOG5faWN1X3BsYWNlaG9sZGVycyc7XG5pbXBvcnQge3Jlc29sdmVOYW1lc30gZnJvbSAnLi9waGFzZXMvcmVzb2x2ZV9uYW1lcyc7XG5pbXBvcnQge3Jlc29sdmVTYW5pdGl6ZXJzfSBmcm9tICcuL3BoYXNlcy9yZXNvbHZlX3Nhbml0aXplcnMnO1xuaW1wb3J0IHtzYXZlQW5kUmVzdG9yZVZpZXd9IGZyb20gJy4vcGhhc2VzL3NhdmVfcmVzdG9yZV92aWV3JztcbmltcG9ydCB7YWxsb2NhdGVTbG90c30gZnJvbSAnLi9waGFzZXMvc2xvdF9hbGxvY2F0aW9uJztcbmltcG9ydCB7c3BlY2lhbGl6ZVN0eWxlQmluZGluZ3N9IGZyb20gJy4vcGhhc2VzL3N0eWxlX2JpbmRpbmdfc3BlY2lhbGl6YXRpb24nO1xuaW1wb3J0IHtnZW5lcmF0ZVRlbXBvcmFyeVZhcmlhYmxlc30gZnJvbSAnLi9waGFzZXMvdGVtcG9yYXJ5X3ZhcmlhYmxlcyc7XG5pbXBvcnQge2dlbmVyYXRlVHJhY2tGbnN9IGZyb20gJy4vcGhhc2VzL3RyYWNrX2ZuX2dlbmVyYXRpb24nO1xuaW1wb3J0IHtvcHRpbWl6ZVRyYWNrRm5zfSBmcm9tICcuL3BoYXNlcy90cmFja19mbl9vcHRpbWl6YXRpb24nO1xuaW1wb3J0IHtnZW5lcmF0ZVRyYWNrVmFyaWFibGVzfSBmcm9tICcuL3BoYXNlcy90cmFja192YXJpYWJsZXMnO1xuaW1wb3J0IHtjb3VudFZhcmlhYmxlc30gZnJvbSAnLi9waGFzZXMvdmFyX2NvdW50aW5nJztcbmltcG9ydCB7b3B0aW1pemVWYXJpYWJsZXN9IGZyb20gJy4vcGhhc2VzL3ZhcmlhYmxlX29wdGltaXphdGlvbic7XG5pbXBvcnQge3dyYXBJMThuSWN1c30gZnJvbSAnLi9waGFzZXMvd3JhcF9pY3VzJztcblxudHlwZSBQaGFzZSA9IHtcbiAgZm46IChqb2I6IENvbXBpbGF0aW9uSm9iKSA9PiB2b2lkOyBraW5kOiBLaW5kLkJvdGggfCBLaW5kLkhvc3QgfCBLaW5kLlRtcGw7XG59fHtcbiAgZm46IChqb2I6IENvbXBvbmVudENvbXBpbGF0aW9uSm9iKSA9PiB2b2lkO1xuICBraW5kOiBLaW5kLlRtcGw7XG59XG58e1xuICBmbjogKGpvYjogSG9zdEJpbmRpbmdDb21waWxhdGlvbkpvYikgPT4gdm9pZDtcbiAga2luZDogS2luZC5Ib3N0O1xufTtcblxuY29uc3QgcGhhc2VzOiBQaGFzZVtdID0gW1xuICB7a2luZDogS2luZC5UbXBsLCBmbjogcmVtb3ZlQ29udGVudFNlbGVjdG9yc30sXG4gIHtraW5kOiBLaW5kLkhvc3QsIGZuOiBwYXJzZUhvc3RTdHlsZVByb3BlcnRpZXN9LFxuICB7a2luZDogS2luZC5UbXBsLCBmbjogZW1pdE5hbWVzcGFjZUNoYW5nZXN9LFxuICB7a2luZDogS2luZC5Cb3RoLCBmbjogc3BlY2lhbGl6ZVN0eWxlQmluZGluZ3N9LFxuICB7a2luZDogS2luZC5Cb3RoLCBmbjogc3BlY2lhbGl6ZUJpbmRpbmdzfSxcbiAge2tpbmQ6IEtpbmQuVG1wbCwgZm46IHByb3BhZ2F0ZUkxOG5CbG9ja3N9LFxuICB7a2luZDogS2luZC5UbXBsLCBmbjogd3JhcEkxOG5JY3VzfSxcbiAge2tpbmQ6IEtpbmQuVG1wbCwgZm46IGNyZWF0ZUkxOG5Db250ZXh0c30sXG4gIHtraW5kOiBLaW5kLkJvdGgsIGZuOiBleHRyYWN0QXR0cmlidXRlc30sXG4gIHtraW5kOiBLaW5kLkJvdGgsIGZuOiBwYXJzZUV4dHJhY3RlZFN0eWxlc30sXG4gIHtraW5kOiBLaW5kLlRtcGwsIGZuOiByZW1vdmVFbXB0eUJpbmRpbmdzfSxcbiAge2tpbmQ6IEtpbmQuQm90aCwgZm46IGNvbGxhcHNlU2luZ2xldG9uSW50ZXJwb2xhdGlvbnN9LFxuICB7a2luZDogS2luZC5Cb3RoLCBmbjogb3JkZXJPcHN9LFxuICB7a2luZDogS2luZC5UbXBsLCBmbjogZ2VuZXJhdGVDb25kaXRpb25hbEV4cHJlc3Npb25zfSxcbiAge2tpbmQ6IEtpbmQuVG1wbCwgZm46IGNyZWF0ZVBpcGVzfSxcbiAge2tpbmQ6IEtpbmQuVG1wbCwgZm46IGNvbmZpZ3VyZURlZmVySW5zdHJ1Y3Rpb25zfSxcbiAge2tpbmQ6IEtpbmQuVG1wbCwgZm46IGV4dHJhY3RJMThuVGV4dH0sXG4gIHtraW5kOiBLaW5kLlRtcGwsIGZuOiBhcHBseUkxOG5FeHByZXNzaW9uc30sXG4gIHtraW5kOiBLaW5kLlRtcGwsIGZuOiBjcmVhdGVWYXJpYWRpY1BpcGVzfSxcbiAge2tpbmQ6IEtpbmQuQm90aCwgZm46IGdlbmVyYXRlUHVyZUxpdGVyYWxTdHJ1Y3R1cmVzfSxcbiAge2tpbmQ6IEtpbmQuVG1wbCwgZm46IGdlbmVyYXRlUHJvamVjdGlvbkRlZnN9LFxuICB7a2luZDogS2luZC5UbXBsLCBmbjogZ2VuZXJhdGVWYXJpYWJsZXN9LFxuICB7a2luZDogS2luZC5UbXBsLCBmbjogc2F2ZUFuZFJlc3RvcmVWaWV3fSxcbiAge2tpbmQ6IEtpbmQuVG1wbCwgZm46IGRlbGV0ZUFueUNhc3RzfSxcbiAge2tpbmQ6IEtpbmQuQm90aCwgZm46IHJlc29sdmVEb2xsYXJFdmVudH0sXG4gIHtraW5kOiBLaW5kLlRtcGwsIGZuOiBnZW5lcmF0ZVJlcGVhdGVyRGVyaXZlZFZhcnN9LFxuICB7a2luZDogS2luZC5UbXBsLCBmbjogZ2VuZXJhdGVUcmFja1ZhcmlhYmxlc30sXG4gIHtraW5kOiBLaW5kLkJvdGgsIGZuOiByZXNvbHZlTmFtZXN9LFxuICB7a2luZDogS2luZC5UbXBsLCBmbjogcmVzb2x2ZURlZmVyVGFyZ2V0TmFtZXN9LFxuICB7a2luZDogS2luZC5UbXBsLCBmbjogb3B0aW1pemVUcmFja0Zuc30sXG4gIHtraW5kOiBLaW5kLkJvdGgsIGZuOiByZXNvbHZlQ29udGV4dHN9LFxuICB7a2luZDogS2luZC5UbXBsLCBmbjogcmVzb2x2ZVNhbml0aXplcnN9LCAgLy8gVE9ETzogcnVuIGluIGJvdGhcbiAge2tpbmQ6IEtpbmQuVG1wbCwgZm46IGxpZnRMb2NhbFJlZnN9LFxuICB7a2luZDogS2luZC5Cb3RoLCBmbjogZ2VuZXJhdGVOdWxsaXNoQ29hbGVzY2VFeHByZXNzaW9uc30sXG4gIHtraW5kOiBLaW5kLkJvdGgsIGZuOiBleHBhbmRTYWZlUmVhZHN9LFxuICB7a2luZDogS2luZC5Cb3RoLCBmbjogZ2VuZXJhdGVUZW1wb3JhcnlWYXJpYWJsZXN9LFxuICB7a2luZDogS2luZC5UbXBsLCBmbjogYWxsb2NhdGVTbG90c30sXG4gIHtraW5kOiBLaW5kLlRtcGwsIGZuOiBjcmVhdGVEZWZlckRlcHNGbnN9LFxuICB7a2luZDogS2luZC5UbXBsLCBmbjogcmVzb2x2ZUkxOG5FbGVtZW50UGxhY2Vob2xkZXJzfSxcbiAge2tpbmQ6IEtpbmQuVG1wbCwgZm46IHJlc29sdmVJMThuRXhwcmVzc2lvblBsYWNlaG9sZGVyc30sXG4gIHtraW5kOiBLaW5kLlRtcGwsIGZuOiByZXNvbHZlSTE4bkljdVBsYWNlaG9sZGVyc30sXG4gIHtraW5kOiBLaW5kLlRtcGwsIGZuOiBtZXJnZUkxOG5Db250ZXh0c30sXG4gIHtraW5kOiBLaW5kLlRtcGwsIGZuOiBleHRyYWN0STE4bk1lc3NhZ2VzfSxcbiAge2tpbmQ6IEtpbmQuVG1wbCwgZm46IGdlbmVyYXRlVHJhY2tGbnN9LFxuICB7a2luZDogS2luZC5UbXBsLCBmbjogY29sbGVjdEkxOG5Db25zdHN9LFxuICB7a2luZDogS2luZC5UbXBsLCBmbjogY29sbGVjdENvbnN0RXhwcmVzc2lvbnN9LFxuICB7a2luZDogS2luZC5Cb3RoLCBmbjogY29sbGVjdEVsZW1lbnRDb25zdHN9LFxuICB7a2luZDogS2luZC5UbXBsLCBmbjogYXNzaWduSTE4blNsb3REZXBlbmRlbmNpZXN9LFxuICB7a2luZDogS2luZC5UbXBsLCBmbjogcmVtb3ZlSTE4bkNvbnRleHRzfSxcbiAge2tpbmQ6IEtpbmQuQm90aCwgZm46IGNvdW50VmFyaWFibGVzfSxcbiAge2tpbmQ6IEtpbmQuVG1wbCwgZm46IGdlbmVyYXRlQWR2YW5jZX0sXG4gIHtraW5kOiBLaW5kLkJvdGgsIGZuOiBvcHRpbWl6ZVZhcmlhYmxlc30sXG4gIHtraW5kOiBLaW5kLkJvdGgsIGZuOiBuYW1lRnVuY3Rpb25zQW5kVmFyaWFibGVzfSxcbiAge2tpbmQ6IEtpbmQuVG1wbCwgZm46IG1lcmdlTmV4dENvbnRleHRFeHByZXNzaW9uc30sXG4gIHtraW5kOiBLaW5kLlRtcGwsIGZuOiBnZW5lcmF0ZU5nQ29udGFpbmVyT3BzfSxcbiAge2tpbmQ6IEtpbmQuVG1wbCwgZm46IGNvbGxhcHNlRW1wdHlJbnN0cnVjdGlvbnN9LFxuICB7a2luZDogS2luZC5UbXBsLCBmbjogZGlzYWJsZUJpbmRpbmdzfSxcbiAge2tpbmQ6IEtpbmQuQm90aCwgZm46IGV4dHJhY3RQdXJlRnVuY3Rpb25zfSxcbiAge2tpbmQ6IEtpbmQuQm90aCwgZm46IHJlaWZ5fSxcbiAge2tpbmQ6IEtpbmQuQm90aCwgZm46IGNoYWlufSxcbl07XG5cbi8qKlxuICogUnVuIGFsbCB0cmFuc2Zvcm1hdGlvbiBwaGFzZXMgaW4gdGhlIGNvcnJlY3Qgb3JkZXIgYWdhaW5zdCBhIGNvbXBpbGF0aW9uIGpvYi4gQWZ0ZXIgdGhpc1xuICogcHJvY2Vzc2luZywgdGhlIGNvbXBpbGF0aW9uIHNob3VsZCBiZSBpbiBhIHN0YXRlIHdoZXJlIGl0IGNhbiBiZSBlbWl0dGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtKGpvYjogQ29tcGlsYXRpb25Kb2IsIGtpbmQ6IEtpbmQpOiB2b2lkIHtcbiAgZm9yIChjb25zdCBwaGFzZSBvZiBwaGFzZXMpIHtcbiAgICBpZiAocGhhc2Uua2luZCA9PT0ga2luZCB8fCBwaGFzZS5raW5kID09PSBLaW5kLkJvdGgpIHtcbiAgICAgIC8vIFRoZSB0eXBlIG9mIGBQaGFzZWAgYWJvdmUgZW5zdXJlcyBpdCBpcyBpbXBvc3NpYmxlIHRvIGNhbGwgYSBwaGFzZSB0aGF0IGRvZXNuJ3Qgc3VwcG9ydCB0aGVcbiAgICAgIC8vIGpvYiBraW5kLlxuICAgICAgcGhhc2UuZm4oam9iIGFzIENvbXBpbGF0aW9uSm9iICYgQ29tcG9uZW50Q29tcGlsYXRpb25Kb2IgJiBIb3N0QmluZGluZ0NvbXBpbGF0aW9uSm9iKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBDb21waWxlIGFsbCB2aWV3cyBpbiB0aGUgZ2l2ZW4gYENvbXBvbmVudENvbXBpbGF0aW9uYCBpbnRvIHRoZSBmaW5hbCB0ZW1wbGF0ZSBmdW5jdGlvbiwgd2hpY2ggbWF5XG4gKiByZWZlcmVuY2UgY29uc3RhbnRzIGRlZmluZWQgaW4gYSBgQ29uc3RhbnRQb29sYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVtaXRUZW1wbGF0ZUZuKHRwbDogQ29tcG9uZW50Q29tcGlsYXRpb25Kb2IsIHBvb2w6IENvbnN0YW50UG9vbCk6IG8uRnVuY3Rpb25FeHByIHtcbiAgY29uc3Qgcm9vdEZuID0gZW1pdFZpZXcodHBsLnJvb3QpO1xuICBlbWl0Q2hpbGRWaWV3cyh0cGwucm9vdCwgcG9vbCk7XG4gIHJldHVybiByb290Rm47XG59XG5cbmZ1bmN0aW9uIGVtaXRDaGlsZFZpZXdzKHBhcmVudDogVmlld0NvbXBpbGF0aW9uVW5pdCwgcG9vbDogQ29uc3RhbnRQb29sKTogdm9pZCB7XG4gIGZvciAoY29uc3QgdW5pdCBvZiBwYXJlbnQuam9iLnVuaXRzKSB7XG4gICAgaWYgKHVuaXQucGFyZW50ICE9PSBwYXJlbnQueHJlZikge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgLy8gQ2hpbGQgdmlld3MgYXJlIGVtaXR0ZWQgZGVwdGgtZmlyc3QuXG4gICAgZW1pdENoaWxkVmlld3ModW5pdCwgcG9vbCk7XG5cbiAgICBjb25zdCB2aWV3Rm4gPSBlbWl0Vmlldyh1bml0KTtcbiAgICBwb29sLnN0YXRlbWVudHMucHVzaCh2aWV3Rm4udG9EZWNsU3RtdCh2aWV3Rm4ubmFtZSEpKTtcbiAgfVxufVxuXG4vKipcbiAqIEVtaXQgYSB0ZW1wbGF0ZSBmdW5jdGlvbiBmb3IgYW4gaW5kaXZpZHVhbCBgVmlld0NvbXBpbGF0aW9uYCAod2hpY2ggbWF5IGJlIGVpdGhlciB0aGUgcm9vdCB2aWV3XG4gKiBvciBhbiBlbWJlZGRlZCB2aWV3KS5cbiAqL1xuZnVuY3Rpb24gZW1pdFZpZXcodmlldzogVmlld0NvbXBpbGF0aW9uVW5pdCk6IG8uRnVuY3Rpb25FeHByIHtcbiAgaWYgKHZpZXcuZm5OYW1lID09PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBBc3NlcnRpb25FcnJvcjogdmlldyAke3ZpZXcueHJlZn0gaXMgdW5uYW1lZGApO1xuICB9XG5cbiAgY29uc3QgY3JlYXRlU3RhdGVtZW50czogby5TdGF0ZW1lbnRbXSA9IFtdO1xuICBmb3IgKGNvbnN0IG9wIG9mIHZpZXcuY3JlYXRlKSB7XG4gICAgaWYgKG9wLmtpbmQgIT09IGlyLk9wS2luZC5TdGF0ZW1lbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQXNzZXJ0aW9uRXJyb3I6IGV4cGVjdGVkIGFsbCBjcmVhdGUgb3BzIHRvIGhhdmUgYmVlbiBjb21waWxlZCwgYnV0IGdvdCAke1xuICAgICAgICAgIGlyLk9wS2luZFtvcC5raW5kXX1gKTtcbiAgICB9XG4gICAgY3JlYXRlU3RhdGVtZW50cy5wdXNoKG9wLnN0YXRlbWVudCk7XG4gIH1cbiAgY29uc3QgdXBkYXRlU3RhdGVtZW50czogby5TdGF0ZW1lbnRbXSA9IFtdO1xuICBmb3IgKGNvbnN0IG9wIG9mIHZpZXcudXBkYXRlKSB7XG4gICAgaWYgKG9wLmtpbmQgIT09IGlyLk9wS2luZC5TdGF0ZW1lbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQXNzZXJ0aW9uRXJyb3I6IGV4cGVjdGVkIGFsbCB1cGRhdGUgb3BzIHRvIGhhdmUgYmVlbiBjb21waWxlZCwgYnV0IGdvdCAke1xuICAgICAgICAgIGlyLk9wS2luZFtvcC5raW5kXX1gKTtcbiAgICB9XG4gICAgdXBkYXRlU3RhdGVtZW50cy5wdXNoKG9wLnN0YXRlbWVudCk7XG4gIH1cblxuICBjb25zdCBjcmVhdGVDb25kID0gbWF5YmVHZW5lcmF0ZVJmQmxvY2soMSwgY3JlYXRlU3RhdGVtZW50cyk7XG4gIGNvbnN0IHVwZGF0ZUNvbmQgPSBtYXliZUdlbmVyYXRlUmZCbG9jaygyLCB1cGRhdGVTdGF0ZW1lbnRzKTtcbiAgcmV0dXJuIG8uZm4oXG4gICAgICBbXG4gICAgICAgIG5ldyBvLkZuUGFyYW0oJ3JmJyksXG4gICAgICAgIG5ldyBvLkZuUGFyYW0oJ2N0eCcpLFxuICAgICAgXSxcbiAgICAgIFtcbiAgICAgICAgLi4uY3JlYXRlQ29uZCxcbiAgICAgICAgLi4udXBkYXRlQ29uZCxcbiAgICAgIF0sXG4gICAgICAvKiB0eXBlICovIHVuZGVmaW5lZCwgLyogc291cmNlU3BhbiAqLyB1bmRlZmluZWQsIHZpZXcuZm5OYW1lKTtcbn1cblxuZnVuY3Rpb24gbWF5YmVHZW5lcmF0ZVJmQmxvY2soZmxhZzogbnVtYmVyLCBzdGF0ZW1lbnRzOiBvLlN0YXRlbWVudFtdKTogby5TdGF0ZW1lbnRbXSB7XG4gIGlmIChzdGF0ZW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIHJldHVybiBbXG4gICAgby5pZlN0bXQoXG4gICAgICAgIG5ldyBvLkJpbmFyeU9wZXJhdG9yRXhwcihvLkJpbmFyeU9wZXJhdG9yLkJpdHdpc2VBbmQsIG8udmFyaWFibGUoJ3JmJyksIG8ubGl0ZXJhbChmbGFnKSksXG4gICAgICAgIHN0YXRlbWVudHMpLFxuICBdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW1pdEhvc3RCaW5kaW5nRnVuY3Rpb24oam9iOiBIb3N0QmluZGluZ0NvbXBpbGF0aW9uSm9iKTogby5GdW5jdGlvbkV4cHJ8bnVsbCB7XG4gIGlmIChqb2Iucm9vdC5mbk5hbWUgPT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEFzc2VydGlvbkVycm9yOiBob3N0IGJpbmRpbmcgZnVuY3Rpb24gaXMgdW5uYW1lZGApO1xuICB9XG5cbiAgY29uc3QgY3JlYXRlU3RhdGVtZW50czogby5TdGF0ZW1lbnRbXSA9IFtdO1xuICBmb3IgKGNvbnN0IG9wIG9mIGpvYi5yb290LmNyZWF0ZSkge1xuICAgIGlmIChvcC5raW5kICE9PSBpci5PcEtpbmQuU3RhdGVtZW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEFzc2VydGlvbkVycm9yOiBleHBlY3RlZCBhbGwgY3JlYXRlIG9wcyB0byBoYXZlIGJlZW4gY29tcGlsZWQsIGJ1dCBnb3QgJHtcbiAgICAgICAgICBpci5PcEtpbmRbb3Aua2luZF19YCk7XG4gICAgfVxuICAgIGNyZWF0ZVN0YXRlbWVudHMucHVzaChvcC5zdGF0ZW1lbnQpO1xuICB9XG4gIGNvbnN0IHVwZGF0ZVN0YXRlbWVudHM6IG8uU3RhdGVtZW50W10gPSBbXTtcbiAgZm9yIChjb25zdCBvcCBvZiBqb2Iucm9vdC51cGRhdGUpIHtcbiAgICBpZiAob3Aua2luZCAhPT0gaXIuT3BLaW5kLlN0YXRlbWVudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBBc3NlcnRpb25FcnJvcjogZXhwZWN0ZWQgYWxsIHVwZGF0ZSBvcHMgdG8gaGF2ZSBiZWVuIGNvbXBpbGVkLCBidXQgZ290ICR7XG4gICAgICAgICAgaXIuT3BLaW5kW29wLmtpbmRdfWApO1xuICAgIH1cbiAgICB1cGRhdGVTdGF0ZW1lbnRzLnB1c2gob3Auc3RhdGVtZW50KTtcbiAgfVxuXG4gIGlmIChjcmVhdGVTdGF0ZW1lbnRzLmxlbmd0aCA9PT0gMCAmJiB1cGRhdGVTdGF0ZW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgY3JlYXRlQ29uZCA9IG1heWJlR2VuZXJhdGVSZkJsb2NrKDEsIGNyZWF0ZVN0YXRlbWVudHMpO1xuICBjb25zdCB1cGRhdGVDb25kID0gbWF5YmVHZW5lcmF0ZVJmQmxvY2soMiwgdXBkYXRlU3RhdGVtZW50cyk7XG4gIHJldHVybiBvLmZuKFxuICAgICAgW1xuICAgICAgICBuZXcgby5GblBhcmFtKCdyZicpLFxuICAgICAgICBuZXcgby5GblBhcmFtKCdjdHgnKSxcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgIC4uLmNyZWF0ZUNvbmQsXG4gICAgICAgIC4uLnVwZGF0ZUNvbmQsXG4gICAgICBdLFxuICAgICAgLyogdHlwZSAqLyB1bmRlZmluZWQsIC8qIHNvdXJjZVNwYW4gKi8gdW5kZWZpbmVkLCBqb2Iucm9vdC5mbk5hbWUpO1xufVxuIl19
|
|
240
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1pdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBpbGVyL3NyYy90ZW1wbGF0ZS9waXBlbGluZS9zcmMvZW1pdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztHQU9HO0FBRUgsT0FBTyxLQUFLLENBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUV2RCxPQUFPLEtBQUssRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUU1QixPQUFPLEVBQWlCLGtCQUFrQixJQUFJLElBQUksRUFBeUYsTUFBTSxlQUFlLENBQUM7QUFFakssT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQ2xGLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUN4QyxPQUFPLEVBQUMsK0JBQStCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUMzRixPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEVB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LGdCQUFnQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNuRSxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLFVBQVUsR0FBRyxvQkFBb0IsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUM3RCxNQUFNLFVBQVUsR0FBRyxvQkFBb0IsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUM3RCxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQ1A7UUFDRSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ25CLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7S0FDckIsRUFDRDtRQUNFLEdBQUcsVUFBVTtRQUNiLEdBQUcsVUFBVTtLQUNkO0lBQ0QsVUFBVSxDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN6RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgKiBhcyBvIGZyb20gJy4uLy4uLy4uLy4uL3NyYy9vdXRwdXQvb3V0cHV0X2FzdCc7XG5pbXBvcnQge0NvbnN0YW50UG9vbH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRfcG9vbCc7XG5pbXBvcnQgKiBhcyBpciBmcm9tICcuLi9pcic7XG5cbmltcG9ydCB7Q29tcGlsYXRpb25Kb2IsIENvbXBpbGF0aW9uSm9iS2luZCBhcyBLaW5kLCB0eXBlIENvbXBvbmVudENvbXBpbGF0aW9uSm9iLCB0eXBlIEhvc3RCaW5kaW5nQ29tcGlsYXRpb25Kb2IsIHR5cGUgVmlld0NvbXBpbGF0aW9uVW5pdH0gZnJvbSAnLi9jb21waWxhdGlvbic7XG5cbmltcG9ydCB7ZGVsZXRlQW55Q2FzdHN9IGZyb20gJy4vcGhhc2VzL2FueV9jYXN0JztcbmltcG9ydCB7YXBwbHlJMThuRXhwcmVzc2lvbnN9IGZyb20gJy4vcGhhc2VzL2FwcGx5X2kxOG5fZXhwcmVzc2lvbnMnO1xuaW1wb3J0IHthc3NpZ25JMThuU2xvdERlcGVuZGVuY2llc30gZnJvbSAnLi9waGFzZXMvYXNzaWduX2kxOG5fc2xvdF9kZXBlbmRlbmNpZXMnO1xuaW1wb3J0IHtleHRyYWN0QXR0cmlidXRlc30gZnJvbSAnLi9waGFzZXMvYXR0cmlidXRlX2V4dHJhY3Rpb24nO1xuaW1wb3J0IHtzcGVjaWFsaXplQmluZGluZ3N9IGZyb20gJy4vcGhhc2VzL2JpbmRpbmdfc3BlY2lhbGl6YXRpb24nO1xuaW1wb3J0IHtjaGFpbn0gZnJvbSAnLi9waGFzZXMvY2hhaW5pbmcnO1xuaW1wb3J0IHtjb2xsYXBzZVNpbmdsZXRvbkludGVycG9sYXRpb25zfSBmcm9tICcuL3BoYXNlcy9jb2xsYXBzZV9zaW5nbGV0b25faW50ZXJwb2xhdGlvbnMnO1xuaW1wb3J0IHtnZW5lcmF0ZUNvbmRpdGlvbmFsRXhwcmVzc2lvbnN9IGZyb20gJy4vcGhhc2VzL2NvbmRpdGlvbmFscyc7XG5pbXBvcnQge2NvbGxlY3RFbGVtZW50Q29uc3RzfSBmcm9tICcuL3BoYXNlcy9jb25zdF9jb2xsZWN0aW9uJztcbmltcG9ydCB7Y3JlYXRlRGVmZXJEZXBzRm5zfSBmcm9tICcuL3BoYXNlcy9jcmVhdGVfZGVmZXJfZGVwc19mbnMnO1xuaW1wb3J0IHtjcmVhdGVJMThuQ29udGV4dHN9IGZyb20gJy4vcGhhc2VzL2NyZWF0ZV9pMThuX2NvbnRleHRzJztcbmltcG9ydCB7Y29uZmlndXJlRGVmZXJJbnN0cnVjdGlvbnN9IGZyb20gJy4vcGhhc2VzL2RlZmVyX2NvbmZpZ3MnO1xuaW1wb3J0IHtyZXNvbHZlRGVmZXJUYXJnZXROYW1lc30gZnJvbSAnLi9waGFzZXMvZGVmZXJfcmVzb2x2ZV90YXJnZXRzJztcbmltcG9ydCB7Y29sbGFwc2VFbXB0eUluc3RydWN0aW9uc30gZnJvbSAnLi9waGFzZXMvZW1wdHlfZWxlbWVudHMnO1xuaW1wb3J0IHtleHBhbmRTYWZlUmVhZHN9IGZyb20gJy4vcGhhc2VzL2V4cGFuZF9zYWZlX3JlYWRzJztcbmltcG9ydCB7ZXh0cmFjdEkxOG5NZXNzYWdlc30gZnJvbSAnLi9waGFzZXMvZXh0cmFjdF9pMThuX21lc3NhZ2VzJztcbmltcG9ydCB7Z2VuZXJhdGVBZHZhbmNlfSBmcm9tICcuL3BoYXNlcy9nZW5lcmF0ZV9hZHZhbmNlJztcbmltcG9ydCB7Z2VuZXJhdGVQcm9qZWN0aW9uRGVmc30gZnJvbSAnLi9waGFzZXMvZ2VuZXJhdGVfcHJvamVjdGlvbl9kZWYnO1xuaW1wb3J0IHtnZW5lcmF0ZVZhcmlhYmxlc30gZnJvbSAnLi9waGFzZXMvZ2VuZXJhdGVfdmFyaWFibGVzJztcbmltcG9ydCB7Y29sbGVjdENvbnN0RXhwcmVzc2lvbnN9IGZyb20gJy4vcGhhc2VzL2hhc19jb25zdF9leHByZXNzaW9uX2NvbGxlY3Rpb24nO1xuaW1wb3J0IHtwYXJzZUhvc3RTdHlsZVByb3BlcnRpZXN9IGZyb20gJy4vcGhhc2VzL2hvc3Rfc3R5bGVfcHJvcGVydHlfcGFyc2luZyc7XG5pbXBvcnQge2NvbGxlY3RJMThuQ29uc3RzfSBmcm9tICcuL3BoYXNlcy9pMThuX2NvbnN0X2NvbGxlY3Rpb24nO1xuaW1wb3J0IHtleHRyYWN0STE4blRleHR9IGZyb20gJy4vcGhhc2VzL2kxOG5fdGV4dF9leHRyYWN0aW9uJztcbmltcG9ydCB7bGlmdExvY2FsUmVmc30gZnJvbSAnLi9waGFzZXMvbG9jYWxfcmVmcyc7XG5pbXBvcnQge21lcmdlSTE4bkNvbnRleHRzfSBmcm9tICcuL3BoYXNlcy9tZXJnZV9pMThuX2NvbnRleHRzJztcbmltcG9ydCB7ZW1pdE5hbWVzcGFjZUNoYW5nZXN9IGZyb20gJy4vcGhhc2VzL25hbWVzcGFjZSc7XG5pbXBvcnQge25hbWVGdW5jdGlvbnNBbmRWYXJpYWJsZXN9IGZyb20gJy4vcGhhc2VzL25hbWluZyc7XG5pbXBvcnQge21lcmdlTmV4dENvbnRleHRFeHByZXNzaW9uc30gZnJvbSAnLi9waGFzZXMvbmV4dF9jb250ZXh0X21lcmdpbmcnO1xuaW1wb3J0IHtnZW5lcmF0ZU5nQ29udGFpbmVyT3BzfSBmcm9tICcuL3BoYXNlcy9uZ19jb250YWluZXInO1xuaW1wb3J0IHtkaXNhYmxlQmluZGluZ3N9IGZyb20gJy4vcGhhc2VzL25vbmJpbmRhYmxlJztcbmltcG9ydCB7Z2VuZXJhdGVOdWxsaXNoQ29hbGVzY2VFeHByZXNzaW9uc30gZnJvbSAnLi9waGFzZXMvbnVsbGlzaF9jb2FsZXNjaW5nJztcbmltcG9ydCB7b3JkZXJPcHN9IGZyb20gJy4vcGhhc2VzL29yZGVyaW5nJztcbmltcG9ydCB7cGFyc2VFeHRyYWN0ZWRTdHlsZXN9IGZyb20gJy4vcGhhc2VzL3BhcnNlX2V4dHJhY3RlZF9zdHlsZXMnO1xuaW1wb3J0IHtyZW1vdmVDb250ZW50U2VsZWN0b3JzfSBmcm9tICcuL3BoYXNlcy9waGFzZV9yZW1vdmVfY29udGVudF9zZWxlY3RvcnMnO1xuaW1wb3J0IHtjcmVhdGVQaXBlc30gZnJvbSAnLi9waGFzZXMvcGlwZV9jcmVhdGlvbic7XG5pbXBvcnQge2NyZWF0ZVZhcmlhZGljUGlwZXN9IGZyb20gJy4vcGhhc2VzL3BpcGVfdmFyaWFkaWMnO1xuaW1wb3J0IHtwcm9wYWdhdGVJMThuQmxvY2tzfSBmcm9tICcuL3BoYXNlcy9wcm9wYWdhdGVfaTE4bl9ibG9ja3MnO1xuaW1wb3J0IHtleHRyYWN0UHVyZUZ1bmN0aW9uc30gZnJvbSAnLi9waGFzZXMvcHVyZV9mdW5jdGlvbl9leHRyYWN0aW9uJztcbmltcG9ydCB7Z2VuZXJhdGVQdXJlTGl0ZXJhbFN0cnVjdHVyZXN9IGZyb20gJy4vcGhhc2VzL3B1cmVfbGl0ZXJhbF9zdHJ1Y3R1cmVzJztcbmltcG9ydCB7cmVpZnl9IGZyb20gJy4vcGhhc2VzL3JlaWZ5JztcbmltcG9ydCB7cmVtb3ZlRW1wdHlCaW5kaW5nc30gZnJvbSAnLi9waGFzZXMvcmVtb3ZlX2VtcHR5X2JpbmRpbmdzJztcbmltcG9ydCB7cmVtb3ZlSTE4bkNvbnRleHRzfSBmcm9tICcuL3BoYXNlcy9yZW1vdmVfaTE4bl9jb250ZXh0cyc7XG5pbXBvcnQge2dlbmVyYXRlUmVwZWF0ZXJEZXJpdmVkVmFyc30gZnJvbSAnLi9waGFzZXMvcmVwZWF0ZXJfZGVyaXZlZF92YXJzJztcbmltcG9ydCB7cmVzb2x2ZUNvbnRleHRzfSBmcm9tICcuL3BoYXNlcy9yZXNvbHZlX2NvbnRleHRzJztcbmltcG9ydCB7cmVzb2x2ZURvbGxhckV2ZW50fSBmcm9tICcuL3BoYXNlcy9yZXNvbHZlX2RvbGxhcl9ldmVudCc7XG5pbXBvcnQge3Jlc29sdmVJMThuRWxlbWVudFBsYWNlaG9sZGVyc30gZnJvbSAnLi9waGFzZXMvcmVzb2x2ZV9pMThuX2VsZW1lbnRfcGxhY2Vob2xkZXJzJztcbmltcG9ydCB7cmVzb2x2ZUkxOG5FeHByZXNzaW9uUGxhY2Vob2xkZXJzfSBmcm9tICcuL3BoYXNlcy9yZXNvbHZlX2kxOG5fZXhwcmVzc2lvbl9wbGFjZWhvbGRlcnMnO1xuaW1wb3J0IHtyZXNvbHZlSTE4bkljdVBsYWNlaG9sZGVyc30gZnJvbSAnLi9waGFzZXMvcmVzb2x2ZV9pMThuX2ljdV9wbGFjZWhvbGRlcnMnO1xuaW1wb3J0IHtyZXNvbHZlTmFtZXN9IGZyb20gJy4vcGhhc2VzL3Jlc29sdmVfbmFtZXMnO1xuaW1wb3J0IHtyZXNvbHZlU2FuaXRpemVyc30gZnJvbSAnLi9waGFzZXMvcmVzb2x2ZV9zYW5pdGl6ZXJzJztcbmltcG9ydCB7c2F2ZUFuZFJlc3RvcmVWaWV3fSBmcm9tICcuL3BoYXNlcy9zYXZlX3Jlc3RvcmVfdmlldyc7XG5pbXBvcnQge2FsbG9jYXRlU2xvdHN9IGZyb20gJy4vcGhhc2VzL3Nsb3RfYWxsb2NhdGlvbic7XG5pbXBvcnQge3NwZWNpYWxpemVTdHlsZUJpbmRpbmdzfSBmcm9tICcuL3BoYXNlcy9zdHlsZV9iaW5kaW5nX3NwZWNpYWxpemF0aW9uJztcbmltcG9ydCB7Z2VuZXJhdGVUZW1wb3JhcnlWYXJpYWJsZXN9IGZyb20gJy4vcGhhc2VzL3RlbXBvcmFyeV92YXJpYWJsZXMnO1xuaW1wb3J0IHtnZW5lcmF0ZVRyYWNrRm5zfSBmcm9tICcuL3BoYXNlcy90cmFja19mbl9nZW5lcmF0aW9uJztcbmltcG9ydCB7b3B0aW1pemVUcmFja0Zuc30gZnJvbSAnLi9waGFzZXMvdHJhY2tfZm5fb3B0aW1pemF0aW9uJztcbmltcG9ydCB7Z2VuZXJhdGVUcmFja1ZhcmlhYmxlc30gZnJvbSAnLi9waGFzZXMvdHJhY2tfdmFyaWFibGVzJztcbmltcG9ydCB7Y291bnRWYXJpYWJsZXN9IGZyb20gJy4vcGhhc2VzL3Zhcl9jb3VudGluZyc7XG5pbXBvcnQge29wdGltaXplVmFyaWFibGVzfSBmcm9tICcuL3BoYXNlcy92YXJpYWJsZV9vcHRpbWl6YXRpb24nO1xuaW1wb3J0IHt3cmFwSTE4bkljdXN9IGZyb20gJy4vcGhhc2VzL3dyYXBfaWN1cyc7XG5cbnR5cGUgUGhhc2UgPSB7XG4gIGZuOiAoam9iOiBDb21waWxhdGlvbkpvYikgPT4gdm9pZDsga2luZDogS2luZC5Cb3RoIHwgS2luZC5Ib3N0IHwgS2luZC5UbXBsO1xufXx7XG4gIGZuOiAoam9iOiBDb21wb25lbnRDb21waWxhdGlvbkpvYikgPT4gdm9pZDtcbiAga2luZDogS2luZC5UbXBsO1xufVxufHtcbiAgZm46IChqb2I6IEhvc3RCaW5kaW5nQ29tcGlsYXRpb25Kb2IpID0+IHZvaWQ7XG4gIGtpbmQ6IEtpbmQuSG9zdDtcbn07XG5cbmNvbnN0IHBoYXNlczogUGhhc2VbXSA9IFtcbiAge2tpbmQ6IEtpbmQuVG1wbCwgZm46IHJlbW92ZUNvbnRlbnRTZWxlY3RvcnN9LFxuICB7a2luZDogS2luZC5Ib3N0LCBmbjogcGFyc2VIb3N0U3R5bGVQcm9wZXJ0aWVzfSxcbiAge2tpbmQ6IEtpbmQuVG1wbCwgZm46IGVtaXROYW1lc3BhY2VDaGFuZ2VzfSxcbiAge2tpbmQ6IEtpbmQuQm90aCwgZm46IHNwZWNpYWxpemVTdHlsZUJpbmRpbmdzfSxcbiAge2tpbmQ6IEtpbmQuQm90aCwgZm46IHNwZWNpYWxpemVCaW5kaW5nc30sXG4gIHtraW5kOiBLaW5kLlRtcGwsIGZuOiBwcm9wYWdhdGVJMThuQmxvY2tzfSxcbiAge2tpbmQ6IEtpbmQuVG1wbCwgZm46IHdyYXBJMThuSWN1c30sXG4gIHtraW5kOiBLaW5kLlRtcGwsIGZuOiBjcmVhdGVJMThuQ29udGV4dHN9LFxuICB7a2luZDogS2luZC5Cb3RoLCBmbjogZXh0cmFjdEF0dHJpYnV0ZXN9LFxuICB7a2luZDogS2luZC5Cb3RoLCBmbjogcGFyc2VFeHRyYWN0ZWRTdHlsZXN9LFxuICB7a2luZDogS2luZC5UbXBsLCBmbjogcmVtb3ZlRW1wdHlCaW5kaW5nc30sXG4gIHtraW5kOiBLaW5kLkJvdGgsIGZuOiBjb2xsYXBzZVNpbmdsZXRvbkludGVycG9sYXRpb25zfSxcbiAge2tpbmQ6IEtpbmQuQm90aCwgZm46IG9yZGVyT3BzfSxcbiAge2tpbmQ6IEtpbmQuVG1wbCwgZm46IGdlbmVyYXRlQ29uZGl0aW9uYWxFeHByZXNzaW9uc30sXG4gIHtraW5kOiBLaW5kLlRtcGwsIGZuOiBjcmVhdGVQaXBlc30sXG4gIHtraW5kOiBLaW5kLlRtcGwsIGZuOiBjb25maWd1cmVEZWZlckluc3RydWN0aW9uc30sXG4gIHtraW5kOiBLaW5kLlRtcGwsIGZuOiBleHRyYWN0STE4blRleHR9LFxuICB7a2luZDogS2luZC5UbXBsLCBmbjogYXBwbHlJMThuRXhwcmVzc2lvbnN9LFxuICB7a2luZDogS2luZC5UbXBsLCBmbjogY3JlYXRlVmFyaWFkaWNQaXBlc30sXG4gIHtraW5kOiBLaW5kLkJvdGgsIGZuOiBnZW5lcmF0ZVB1cmVMaXRlcmFsU3RydWN0dXJlc30sXG4gIHtraW5kOiBLaW5kLlRtcGwsIGZuOiBnZW5lcmF0ZVByb2plY3Rpb25EZWZzfSxcbiAge2tpbmQ6IEtpbmQuVG1wbCwgZm46IGdlbmVyYXRlVmFyaWFibGVzfSxcbiAge2tpbmQ6IEtpbmQuVG1wbCwgZm46IHNhdmVBbmRSZXN0b3JlVmlld30sXG4gIHtraW5kOiBLaW5kLlRtcGwsIGZuOiBkZWxldGVBbnlDYXN0c30sXG4gIHtraW5kOiBLaW5kLkJvdGgsIGZuOiByZXNvbHZlRG9sbGFyRXZlbnR9LFxuICB7a2luZDogS2luZC5UbXBsLCBmbjogZ2VuZXJhdGVSZXBlYXRlckRlcml2ZWRWYXJzfSxcbiAge2tpbmQ6IEtpbmQuVG1wbCwgZm46IGdlbmVyYXRlVHJhY2tWYXJpYWJsZXN9LFxuICB7a2luZDogS2luZC5Cb3RoLCBmbjogcmVzb2x2ZU5hbWVzfSxcbiAge2tpbmQ6IEtpbmQuVG1wbCwgZm46IHJlc29sdmVEZWZlclRhcmdldE5hbWVzfSxcbiAge2tpbmQ6IEtpbmQuVG1wbCwgZm46IG9wdGltaXplVHJhY2tGbnN9LFxuICB7a2luZDogS2luZC5Cb3RoLCBmbjogcmVzb2x2ZUNvbnRleHRzfSxcbiAge2tpbmQ6IEtpbmQuVG1wbCwgZm46IHJlc29sdmVTYW5pdGl6ZXJzfSwgIC8vIFRPRE86IHJ1biBpbiBib3RoXG4gIHtraW5kOiBLaW5kLlRtcGwsIGZuOiBsaWZ0TG9jYWxSZWZzfSxcbiAge2tpbmQ6IEtpbmQuQm90aCwgZm46IGdlbmVyYXRlTnVsbGlzaENvYWxlc2NlRXhwcmVzc2lvbnN9LFxuICB7a2luZDogS2luZC5Cb3RoLCBmbjogZXhwYW5kU2FmZVJlYWRzfSxcbiAge2tpbmQ6IEtpbmQuQm90aCwgZm46IGdlbmVyYXRlVGVtcG9yYXJ5VmFyaWFibGVzfSxcbiAge2tpbmQ6IEtpbmQuVG1wbCwgZm46IGFsbG9jYXRlU2xvdHN9LFxuICB7a2luZDogS2luZC5UbXBsLCBmbjogY3JlYXRlRGVmZXJEZXBzRm5zfSxcbiAge2tpbmQ6IEtpbmQuVG1wbCwgZm46IHJlc29sdmVJMThuRWxlbWVudFBsYWNlaG9sZGVyc30sXG4gIHtraW5kOiBLaW5kLlRtcGwsIGZuOiByZXNvbHZlSTE4bkV4cHJlc3Npb25QbGFjZWhvbGRlcnN9LFxuICB7a2luZDogS2luZC5UbXBsLCBmbjogcmVzb2x2ZUkxOG5JY3VQbGFjZWhvbGRlcnN9LFxuICB7a2luZDogS2luZC5UbXBsLCBmbjogbWVyZ2VJMThuQ29udGV4dHN9LFxuICB7a2luZDogS2luZC5UbXBsLCBmbjogZXh0cmFjdEkxOG5NZXNzYWdlc30sXG4gIHtraW5kOiBLaW5kLlRtcGwsIGZuOiBnZW5lcmF0ZVRyYWNrRm5zfSxcbiAge2tpbmQ6IEtpbmQuVG1wbCwgZm46IGNvbGxlY3RJMThuQ29uc3RzfSxcbiAge2tpbmQ6IEtpbmQuVG1wbCwgZm46IGNvbGxlY3RDb25zdEV4cHJlc3Npb25zfSxcbiAge2tpbmQ6IEtpbmQuQm90aCwgZm46IGNvbGxlY3RFbGVtZW50Q29uc3RzfSxcbiAge2tpbmQ6IEtpbmQuVG1wbCwgZm46IGFzc2lnbkkxOG5TbG90RGVwZW5kZW5jaWVzfSxcbiAge2tpbmQ6IEtpbmQuVG1wbCwgZm46IHJlbW92ZUkxOG5Db250ZXh0c30sXG4gIHtraW5kOiBLaW5kLkJvdGgsIGZuOiBjb3VudFZhcmlhYmxlc30sXG4gIHtraW5kOiBLaW5kLlRtcGwsIGZuOiBnZW5lcmF0ZUFkdmFuY2V9LFxuICB7a2luZDogS2luZC5Cb3RoLCBmbjogb3B0aW1pemVWYXJpYWJsZXN9LFxuICB7a2luZDogS2luZC5Cb3RoLCBmbjogbmFtZUZ1bmN0aW9uc0FuZFZhcmlhYmxlc30sXG4gIHtraW5kOiBLaW5kLlRtcGwsIGZuOiBtZXJnZU5leHRDb250ZXh0RXhwcmVzc2lvbnN9LFxuICB7a2luZDogS2luZC5UbXBsLCBmbjogZ2VuZXJhdGVOZ0NvbnRhaW5lck9wc30sXG4gIHtraW5kOiBLaW5kLlRtcGwsIGZuOiBjb2xsYXBzZUVtcHR5SW5zdHJ1Y3Rpb25zfSxcbiAge2tpbmQ6IEtpbmQuVG1wbCwgZm46IGRpc2FibGVCaW5kaW5nc30sXG4gIHtraW5kOiBLaW5kLkJvdGgsIGZuOiBleHRyYWN0UHVyZUZ1bmN0aW9uc30sXG4gIHtraW5kOiBLaW5kLkJvdGgsIGZuOiByZWlmeX0sXG4gIHtraW5kOiBLaW5kLkJvdGgsIGZuOiBjaGFpbn0sXG5dO1xuXG4vKipcbiAqIFJ1biBhbGwgdHJhbnNmb3JtYXRpb24gcGhhc2VzIGluIHRoZSBjb3JyZWN0IG9yZGVyIGFnYWluc3QgYSBjb21waWxhdGlvbiBqb2IuIEFmdGVyIHRoaXNcbiAqIHByb2Nlc3NpbmcsIHRoZSBjb21waWxhdGlvbiBzaG91bGQgYmUgaW4gYSBzdGF0ZSB3aGVyZSBpdCBjYW4gYmUgZW1pdHRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybShqb2I6IENvbXBpbGF0aW9uSm9iLCBraW5kOiBLaW5kKTogdm9pZCB7XG4gIGZvciAoY29uc3QgcGhhc2Ugb2YgcGhhc2VzKSB7XG4gICAgaWYgKHBoYXNlLmtpbmQgPT09IGtpbmQgfHwgcGhhc2Uua2luZCA9PT0gS2luZC5Cb3RoKSB7XG4gICAgICAvLyBUaGUgdHlwZSBvZiBgUGhhc2VgIGFib3ZlIGVuc3VyZXMgaXQgaXMgaW1wb3NzaWJsZSB0byBjYWxsIGEgcGhhc2UgdGhhdCBkb2Vzbid0IHN1cHBvcnQgdGhlXG4gICAgICAvLyBqb2Iga2luZC5cbiAgICAgIHBoYXNlLmZuKGpvYiBhcyBDb21waWxhdGlvbkpvYiAmIENvbXBvbmVudENvbXBpbGF0aW9uSm9iICYgSG9zdEJpbmRpbmdDb21waWxhdGlvbkpvYik7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQ29tcGlsZSBhbGwgdmlld3MgaW4gdGhlIGdpdmVuIGBDb21wb25lbnRDb21waWxhdGlvbmAgaW50byB0aGUgZmluYWwgdGVtcGxhdGUgZnVuY3Rpb24sIHdoaWNoIG1heVxuICogcmVmZXJlbmNlIGNvbnN0YW50cyBkZWZpbmVkIGluIGEgYENvbnN0YW50UG9vbGAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbWl0VGVtcGxhdGVGbih0cGw6IENvbXBvbmVudENvbXBpbGF0aW9uSm9iLCBwb29sOiBDb25zdGFudFBvb2wpOiBvLkZ1bmN0aW9uRXhwciB7XG4gIGNvbnN0IHJvb3RGbiA9IGVtaXRWaWV3KHRwbC5yb290KTtcbiAgZW1pdENoaWxkVmlld3ModHBsLnJvb3QsIHBvb2wpO1xuICByZXR1cm4gcm9vdEZuO1xufVxuXG5mdW5jdGlvbiBlbWl0Q2hpbGRWaWV3cyhwYXJlbnQ6IFZpZXdDb21waWxhdGlvblVuaXQsIHBvb2w6IENvbnN0YW50UG9vbCk6IHZvaWQge1xuICBmb3IgKGNvbnN0IHVuaXQgb2YgcGFyZW50LmpvYi51bml0cykge1xuICAgIGlmICh1bml0LnBhcmVudCAhPT0gcGFyZW50LnhyZWYpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIC8vIENoaWxkIHZpZXdzIGFyZSBlbWl0dGVkIGRlcHRoLWZpcnN0LlxuICAgIGVtaXRDaGlsZFZpZXdzKHVuaXQsIHBvb2wpO1xuXG4gICAgY29uc3Qgdmlld0ZuID0gZW1pdFZpZXcodW5pdCk7XG4gICAgcG9vbC5zdGF0ZW1lbnRzLnB1c2godmlld0ZuLnRvRGVjbFN0bXQodmlld0ZuLm5hbWUhKSk7XG4gIH1cbn1cblxuLyoqXG4gKiBFbWl0IGEgdGVtcGxhdGUgZnVuY3Rpb24gZm9yIGFuIGluZGl2aWR1YWwgYFZpZXdDb21waWxhdGlvbmAgKHdoaWNoIG1heSBiZSBlaXRoZXIgdGhlIHJvb3Qgdmlld1xuICogb3IgYW4gZW1iZWRkZWQgdmlldykuXG4gKi9cbmZ1bmN0aW9uIGVtaXRWaWV3KHZpZXc6IFZpZXdDb21waWxhdGlvblVuaXQpOiBvLkZ1bmN0aW9uRXhwciB7XG4gIGlmICh2aWV3LmZuTmFtZSA9PT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgQXNzZXJ0aW9uRXJyb3I6IHZpZXcgJHt2aWV3LnhyZWZ9IGlzIHVubmFtZWRgKTtcbiAgfVxuXG4gIGNvbnN0IGNyZWF0ZVN0YXRlbWVudHM6IG8uU3RhdGVtZW50W10gPSBbXTtcbiAgZm9yIChjb25zdCBvcCBvZiB2aWV3LmNyZWF0ZSkge1xuICAgIGlmIChvcC5raW5kICE9PSBpci5PcEtpbmQuU3RhdGVtZW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEFzc2VydGlvbkVycm9yOiBleHBlY3RlZCBhbGwgY3JlYXRlIG9wcyB0byBoYXZlIGJlZW4gY29tcGlsZWQsIGJ1dCBnb3QgJHtcbiAgICAgICAgICBpci5PcEtpbmRbb3Aua2luZF19YCk7XG4gICAgfVxuICAgIGNyZWF0ZVN0YXRlbWVudHMucHVzaChvcC5zdGF0ZW1lbnQpO1xuICB9XG4gIGNvbnN0IHVwZGF0ZVN0YXRlbWVudHM6IG8uU3RhdGVtZW50W10gPSBbXTtcbiAgZm9yIChjb25zdCBvcCBvZiB2aWV3LnVwZGF0ZSkge1xuICAgIGlmIChvcC5raW5kICE9PSBpci5PcEtpbmQuU3RhdGVtZW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEFzc2VydGlvbkVycm9yOiBleHBlY3RlZCBhbGwgdXBkYXRlIG9wcyB0byBoYXZlIGJlZW4gY29tcGlsZWQsIGJ1dCBnb3QgJHtcbiAgICAgICAgICBpci5PcEtpbmRbb3Aua2luZF19YCk7XG4gICAgfVxuICAgIHVwZGF0ZVN0YXRlbWVudHMucHVzaChvcC5zdGF0ZW1lbnQpO1xuICB9XG5cbiAgY29uc3QgY3JlYXRlQ29uZCA9IG1heWJlR2VuZXJhdGVSZkJsb2NrKDEsIGNyZWF0ZVN0YXRlbWVudHMpO1xuICBjb25zdCB1cGRhdGVDb25kID0gbWF5YmVHZW5lcmF0ZVJmQmxvY2soMiwgdXBkYXRlU3RhdGVtZW50cyk7XG4gIHJldHVybiBvLmZuKFxuICAgICAgW1xuICAgICAgICBuZXcgby5GblBhcmFtKCdyZicpLFxuICAgICAgICBuZXcgby5GblBhcmFtKCdjdHgnKSxcbiAgICAgIF0sXG4gICAgICBbXG4gICAgICAgIC4uLmNyZWF0ZUNvbmQsXG4gICAgICAgIC4uLnVwZGF0ZUNvbmQsXG4gICAgICBdLFxuICAgICAgLyogdHlwZSAqLyB1bmRlZmluZWQsIC8qIHNvdXJjZVNwYW4gKi8gdW5kZWZpbmVkLCB2aWV3LmZuTmFtZSk7XG59XG5cbmZ1bmN0aW9uIG1heWJlR2VuZXJhdGVSZkJsb2NrKGZsYWc6IG51bWJlciwgc3RhdGVtZW50czogby5TdGF0ZW1lbnRbXSk6IG8uU3RhdGVtZW50W10ge1xuICBpZiAoc3RhdGVtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICByZXR1cm4gW1xuICAgIG8uaWZTdG10KFxuICAgICAgICBuZXcgby5CaW5hcnlPcGVyYXRvckV4cHIoby5CaW5hcnlPcGVyYXRvci5CaXR3aXNlQW5kLCBvLnZhcmlhYmxlKCdyZicpLCBvLmxpdGVyYWwoZmxhZykpLFxuICAgICAgICBzdGF0ZW1lbnRzKSxcbiAgXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVtaXRIb3N0QmluZGluZ0Z1bmN0aW9uKGpvYjogSG9zdEJpbmRpbmdDb21waWxhdGlvbkpvYik6IG8uRnVuY3Rpb25FeHByfG51bGwge1xuICBpZiAoam9iLnJvb3QuZm5OYW1lID09PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBBc3NlcnRpb25FcnJvcjogaG9zdCBiaW5kaW5nIGZ1bmN0aW9uIGlzIHVubmFtZWRgKTtcbiAgfVxuXG4gIGNvbnN0IGNyZWF0ZVN0YXRlbWVudHM6IG8uU3RhdGVtZW50W10gPSBbXTtcbiAgZm9yIChjb25zdCBvcCBvZiBqb2Iucm9vdC5jcmVhdGUpIHtcbiAgICBpZiAob3Aua2luZCAhPT0gaXIuT3BLaW5kLlN0YXRlbWVudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBBc3NlcnRpb25FcnJvcjogZXhwZWN0ZWQgYWxsIGNyZWF0ZSBvcHMgdG8gaGF2ZSBiZWVuIGNvbXBpbGVkLCBidXQgZ290ICR7XG4gICAgICAgICAgaXIuT3BLaW5kW29wLmtpbmRdfWApO1xuICAgIH1cbiAgICBjcmVhdGVTdGF0ZW1lbnRzLnB1c2gob3Auc3RhdGVtZW50KTtcbiAgfVxuICBjb25zdCB1cGRhdGVTdGF0ZW1lbnRzOiBvLlN0YXRlbWVudFtdID0gW107XG4gIGZvciAoY29uc3Qgb3Agb2Ygam9iLnJvb3QudXBkYXRlKSB7XG4gICAgaWYgKG9wLmtpbmQgIT09IGlyLk9wS2luZC5TdGF0ZW1lbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQXNzZXJ0aW9uRXJyb3I6IGV4cGVjdGVkIGFsbCB1cGRhdGUgb3BzIHRvIGhhdmUgYmVlbiBjb21waWxlZCwgYnV0IGdvdCAke1xuICAgICAgICAgIGlyLk9wS2luZFtvcC5raW5kXX1gKTtcbiAgICB9XG4gICAgdXBkYXRlU3RhdGVtZW50cy5wdXNoKG9wLnN0YXRlbWVudCk7XG4gIH1cblxuICBpZiAoY3JlYXRlU3RhdGVtZW50cy5sZW5ndGggPT09IDAgJiYgdXBkYXRlU3RhdGVtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGNyZWF0ZUNvbmQgPSBtYXliZUdlbmVyYXRlUmZCbG9jaygxLCBjcmVhdGVTdGF0ZW1lbnRzKTtcbiAgY29uc3QgdXBkYXRlQ29uZCA9IG1heWJlR2VuZXJhdGVSZkJsb2NrKDIsIHVwZGF0ZVN0YXRlbWVudHMpO1xuICByZXR1cm4gby5mbihcbiAgICAgIFtcbiAgICAgICAgbmV3IG8uRm5QYXJhbSgncmYnKSxcbiAgICAgICAgbmV3IG8uRm5QYXJhbSgnY3R4JyksXG4gICAgICBdLFxuICAgICAgW1xuICAgICAgICAuLi5jcmVhdGVDb25kLFxuICAgICAgICAuLi51cGRhdGVDb25kLFxuICAgICAgXSxcbiAgICAgIC8qIHR5cGUgKi8gdW5kZWZpbmVkLCAvKiBzb3VyY2VTcGFuICovIHVuZGVmaW5lZCwgam9iLnJvb3QuZm5OYW1lKTtcbn1cbiJdfQ==
|