UNPKG

@cdktf/provider-aws

Version:

Prebuilt aws Provider for Terraform CDK (cdktf)

476 lines 74.3 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.Lexv2ModelsIntent = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); /** * Copyright (c) HashiCorp, Inc. * SPDX-License-Identifier: MPL-2.0 */ // generated from terraform resource schema const index_structs_1 = require("./index-structs"); __exportStar(require("./index-structs"), exports); const cdktf = require("cdktf"); /** * Represents a {@link https://registry.terraform.io/providers/hashicorp/aws/5.84.0/docs/resources/lexv2models_intent aws_lexv2models_intent} */ class Lexv2ModelsIntent extends cdktf.TerraformResource { // ============== // STATIC Methods // ============== /** * Generates CDKTF code for importing a Lexv2ModelsIntent resource upon running "cdktf plan <stack-name>" * @param scope The scope in which to define this construct * @param importToId The construct id used in the generated config for the Lexv2ModelsIntent to import * @param importFromId The id of the existing Lexv2ModelsIntent that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/aws/5.84.0/docs/resources/lexv2models_intent#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the Lexv2ModelsIntent to import is found */ static generateConfigForImport(scope, importToId, importFromId, provider) { return new cdktf.ImportableResource(scope, importToId, { terraformResourceType: "aws_lexv2models_intent", importId: importFromId, provider }); } // =========== // INITIALIZER // =========== /** * Create a new {@link https://registry.terraform.io/providers/hashicorp/aws/5.84.0/docs/resources/lexv2models_intent aws_lexv2models_intent} Resource * * @param scope The scope in which to define this construct * @param id The scoped construct ID. Must be unique amongst siblings in the same scope * @param options Lexv2ModelsIntentConfig */ constructor(scope, id, config) { super(scope, id, { terraformResourceType: 'aws_lexv2models_intent', terraformGeneratorMetadata: { providerName: 'aws', providerVersion: '5.84.0', providerVersionConstraint: '~> 5.0' }, provider: config.provider, dependsOn: config.dependsOn, count: config.count, lifecycle: config.lifecycle, provisioners: config.provisioners, connection: config.connection, forEach: config.forEach }); // closing_setting - computed: false, optional: true, required: false this._closingSetting = new index_structs_1.Lexv2ModelsIntentClosingSettingList(this, "closing_setting", false); // confirmation_setting - computed: false, optional: true, required: false this._confirmationSetting = new index_structs_1.Lexv2ModelsIntentConfirmationSettingList(this, "confirmation_setting", false); // dialog_code_hook - computed: false, optional: true, required: false this._dialogCodeHook = new index_structs_1.Lexv2ModelsIntentDialogCodeHookList(this, "dialog_code_hook", false); // fulfillment_code_hook - computed: false, optional: true, required: false this._fulfillmentCodeHook = new index_structs_1.Lexv2ModelsIntentFulfillmentCodeHookList(this, "fulfillment_code_hook", false); // initial_response_setting - computed: false, optional: true, required: false this._initialResponseSetting = new index_structs_1.Lexv2ModelsIntentInitialResponseSettingList(this, "initial_response_setting", false); // input_context - computed: false, optional: true, required: false this._inputContext = new index_structs_1.Lexv2ModelsIntentInputContextList(this, "input_context", false); // kendra_configuration - computed: false, optional: true, required: false this._kendraConfiguration = new index_structs_1.Lexv2ModelsIntentKendraConfigurationList(this, "kendra_configuration", false); // output_context - computed: false, optional: true, required: false this._outputContext = new index_structs_1.Lexv2ModelsIntentOutputContextList(this, "output_context", false); // sample_utterance - computed: false, optional: true, required: false this._sampleUtterance = new index_structs_1.Lexv2ModelsIntentSampleUtteranceList(this, "sample_utterance", false); // slot_priority - computed: false, optional: true, required: false this._slotPriority = new index_structs_1.Lexv2ModelsIntentSlotPriorityList(this, "slot_priority", false); // timeouts - computed: false, optional: true, required: false this._timeouts = new index_structs_1.Lexv2ModelsIntentTimeoutsOutputReference(this, "timeouts"); this._botId = config.botId; this._botVersion = config.botVersion; this._description = config.description; this._localeId = config.localeId; this._name = config.name; this._parentIntentSignature = config.parentIntentSignature; this._closingSetting.internalValue = config.closingSetting; this._confirmationSetting.internalValue = config.confirmationSetting; this._dialogCodeHook.internalValue = config.dialogCodeHook; this._fulfillmentCodeHook.internalValue = config.fulfillmentCodeHook; this._initialResponseSetting.internalValue = config.initialResponseSetting; this._inputContext.internalValue = config.inputContext; this._kendraConfiguration.internalValue = config.kendraConfiguration; this._outputContext.internalValue = config.outputContext; this._sampleUtterance.internalValue = config.sampleUtterance; this._slotPriority.internalValue = config.slotPriority; this._timeouts.internalValue = config.timeouts; } get botId() { return this.getStringAttribute('bot_id'); } set botId(value) { this._botId = value; } // Temporarily expose input value. Use with caution. get botIdInput() { return this._botId; } get botVersion() { return this.getStringAttribute('bot_version'); } set botVersion(value) { this._botVersion = value; } // Temporarily expose input value. Use with caution. get botVersionInput() { return this._botVersion; } // creation_date_time - computed: true, optional: false, required: false get creationDateTime() { return this.getStringAttribute('creation_date_time'); } get description() { return this.getStringAttribute('description'); } set description(value) { this._description = value; } resetDescription() { this._description = undefined; } // Temporarily expose input value. Use with caution. get descriptionInput() { return this._description; } // id - computed: true, optional: false, required: false get id() { return this.getStringAttribute('id'); } // intent_id - computed: true, optional: false, required: false get intentId() { return this.getStringAttribute('intent_id'); } // last_updated_date_time - computed: true, optional: false, required: false get lastUpdatedDateTime() { return this.getStringAttribute('last_updated_date_time'); } get localeId() { return this.getStringAttribute('locale_id'); } set localeId(value) { this._localeId = value; } // Temporarily expose input value. Use with caution. get localeIdInput() { return this._localeId; } get name() { return this.getStringAttribute('name'); } set name(value) { this._name = value; } // Temporarily expose input value. Use with caution. get nameInput() { return this._name; } get parentIntentSignature() { return this.getStringAttribute('parent_intent_signature'); } set parentIntentSignature(value) { this._parentIntentSignature = value; } resetParentIntentSignature() { this._parentIntentSignature = undefined; } // Temporarily expose input value. Use with caution. get parentIntentSignatureInput() { return this._parentIntentSignature; } get closingSetting() { return this._closingSetting; } putClosingSetting(value) { this._closingSetting.internalValue = value; } resetClosingSetting() { this._closingSetting.internalValue = undefined; } // Temporarily expose input value. Use with caution. get closingSettingInput() { return this._closingSetting.internalValue; } get confirmationSetting() { return this._confirmationSetting; } putConfirmationSetting(value) { this._confirmationSetting.internalValue = value; } resetConfirmationSetting() { this._confirmationSetting.internalValue = undefined; } // Temporarily expose input value. Use with caution. get confirmationSettingInput() { return this._confirmationSetting.internalValue; } get dialogCodeHook() { return this._dialogCodeHook; } putDialogCodeHook(value) { this._dialogCodeHook.internalValue = value; } resetDialogCodeHook() { this._dialogCodeHook.internalValue = undefined; } // Temporarily expose input value. Use with caution. get dialogCodeHookInput() { return this._dialogCodeHook.internalValue; } get fulfillmentCodeHook() { return this._fulfillmentCodeHook; } putFulfillmentCodeHook(value) { this._fulfillmentCodeHook.internalValue = value; } resetFulfillmentCodeHook() { this._fulfillmentCodeHook.internalValue = undefined; } // Temporarily expose input value. Use with caution. get fulfillmentCodeHookInput() { return this._fulfillmentCodeHook.internalValue; } get initialResponseSetting() { return this._initialResponseSetting; } putInitialResponseSetting(value) { this._initialResponseSetting.internalValue = value; } resetInitialResponseSetting() { this._initialResponseSetting.internalValue = undefined; } // Temporarily expose input value. Use with caution. get initialResponseSettingInput() { return this._initialResponseSetting.internalValue; } get inputContext() { return this._inputContext; } putInputContext(value) { this._inputContext.internalValue = value; } resetInputContext() { this._inputContext.internalValue = undefined; } // Temporarily expose input value. Use with caution. get inputContextInput() { return this._inputContext.internalValue; } get kendraConfiguration() { return this._kendraConfiguration; } putKendraConfiguration(value) { this._kendraConfiguration.internalValue = value; } resetKendraConfiguration() { this._kendraConfiguration.internalValue = undefined; } // Temporarily expose input value. Use with caution. get kendraConfigurationInput() { return this._kendraConfiguration.internalValue; } get outputContext() { return this._outputContext; } putOutputContext(value) { this._outputContext.internalValue = value; } resetOutputContext() { this._outputContext.internalValue = undefined; } // Temporarily expose input value. Use with caution. get outputContextInput() { return this._outputContext.internalValue; } get sampleUtterance() { return this._sampleUtterance; } putSampleUtterance(value) { this._sampleUtterance.internalValue = value; } resetSampleUtterance() { this._sampleUtterance.internalValue = undefined; } // Temporarily expose input value. Use with caution. get sampleUtteranceInput() { return this._sampleUtterance.internalValue; } get slotPriority() { return this._slotPriority; } putSlotPriority(value) { this._slotPriority.internalValue = value; } resetSlotPriority() { this._slotPriority.internalValue = undefined; } // Temporarily expose input value. Use with caution. get slotPriorityInput() { return this._slotPriority.internalValue; } get timeouts() { return this._timeouts; } putTimeouts(value) { this._timeouts.internalValue = value; } resetTimeouts() { this._timeouts.internalValue = undefined; } // Temporarily expose input value. Use with caution. get timeoutsInput() { return this._timeouts.internalValue; } // ========= // SYNTHESIS // ========= synthesizeAttributes() { return { bot_id: cdktf.stringToTerraform(this._botId), bot_version: cdktf.stringToTerraform(this._botVersion), description: cdktf.stringToTerraform(this._description), locale_id: cdktf.stringToTerraform(this._localeId), name: cdktf.stringToTerraform(this._name), parent_intent_signature: cdktf.stringToTerraform(this._parentIntentSignature), closing_setting: cdktf.listMapper(index_structs_1.lexv2ModelsIntentClosingSettingToTerraform, true)(this._closingSetting.internalValue), confirmation_setting: cdktf.listMapper(index_structs_1.lexv2ModelsIntentConfirmationSettingToTerraform, true)(this._confirmationSetting.internalValue), dialog_code_hook: cdktf.listMapper(index_structs_1.lexv2ModelsIntentDialogCodeHookToTerraform, true)(this._dialogCodeHook.internalValue), fulfillment_code_hook: cdktf.listMapper(index_structs_1.lexv2ModelsIntentFulfillmentCodeHookToTerraform, true)(this._fulfillmentCodeHook.internalValue), initial_response_setting: cdktf.listMapper(index_structs_1.lexv2ModelsIntentInitialResponseSettingToTerraform, true)(this._initialResponseSetting.internalValue), input_context: cdktf.listMapper(index_structs_1.lexv2ModelsIntentInputContextToTerraform, true)(this._inputContext.internalValue), kendra_configuration: cdktf.listMapper(index_structs_1.lexv2ModelsIntentKendraConfigurationToTerraform, true)(this._kendraConfiguration.internalValue), output_context: cdktf.listMapper(index_structs_1.lexv2ModelsIntentOutputContextToTerraform, true)(this._outputContext.internalValue), sample_utterance: cdktf.listMapper(index_structs_1.lexv2ModelsIntentSampleUtteranceToTerraform, true)(this._sampleUtterance.internalValue), slot_priority: cdktf.listMapper(index_structs_1.lexv2ModelsIntentSlotPriorityToTerraform, true)(this._slotPriority.internalValue), timeouts: (0, index_structs_1.lexv2ModelsIntentTimeoutsToTerraform)(this._timeouts.internalValue), }; } synthesizeHclAttributes() { const attrs = { bot_id: { value: cdktf.stringToHclTerraform(this._botId), isBlock: false, type: "simple", storageClassType: "string", }, bot_version: { value: cdktf.stringToHclTerraform(this._botVersion), isBlock: false, type: "simple", storageClassType: "string", }, description: { value: cdktf.stringToHclTerraform(this._description), isBlock: false, type: "simple", storageClassType: "string", }, locale_id: { value: cdktf.stringToHclTerraform(this._localeId), isBlock: false, type: "simple", storageClassType: "string", }, name: { value: cdktf.stringToHclTerraform(this._name), isBlock: false, type: "simple", storageClassType: "string", }, parent_intent_signature: { value: cdktf.stringToHclTerraform(this._parentIntentSignature), isBlock: false, type: "simple", storageClassType: "string", }, closing_setting: { value: cdktf.listMapperHcl(index_structs_1.lexv2ModelsIntentClosingSettingToHclTerraform, true)(this._closingSetting.internalValue), isBlock: true, type: "list", storageClassType: "Lexv2ModelsIntentClosingSettingList", }, confirmation_setting: { value: cdktf.listMapperHcl(index_structs_1.lexv2ModelsIntentConfirmationSettingToHclTerraform, true)(this._confirmationSetting.internalValue), isBlock: true, type: "list", storageClassType: "Lexv2ModelsIntentConfirmationSettingList", }, dialog_code_hook: { value: cdktf.listMapperHcl(index_structs_1.lexv2ModelsIntentDialogCodeHookToHclTerraform, true)(this._dialogCodeHook.internalValue), isBlock: true, type: "list", storageClassType: "Lexv2ModelsIntentDialogCodeHookList", }, fulfillment_code_hook: { value: cdktf.listMapperHcl(index_structs_1.lexv2ModelsIntentFulfillmentCodeHookToHclTerraform, true)(this._fulfillmentCodeHook.internalValue), isBlock: true, type: "list", storageClassType: "Lexv2ModelsIntentFulfillmentCodeHookList", }, initial_response_setting: { value: cdktf.listMapperHcl(index_structs_1.lexv2ModelsIntentInitialResponseSettingToHclTerraform, true)(this._initialResponseSetting.internalValue), isBlock: true, type: "list", storageClassType: "Lexv2ModelsIntentInitialResponseSettingList", }, input_context: { value: cdktf.listMapperHcl(index_structs_1.lexv2ModelsIntentInputContextToHclTerraform, true)(this._inputContext.internalValue), isBlock: true, type: "list", storageClassType: "Lexv2ModelsIntentInputContextList", }, kendra_configuration: { value: cdktf.listMapperHcl(index_structs_1.lexv2ModelsIntentKendraConfigurationToHclTerraform, true)(this._kendraConfiguration.internalValue), isBlock: true, type: "list", storageClassType: "Lexv2ModelsIntentKendraConfigurationList", }, output_context: { value: cdktf.listMapperHcl(index_structs_1.lexv2ModelsIntentOutputContextToHclTerraform, true)(this._outputContext.internalValue), isBlock: true, type: "list", storageClassType: "Lexv2ModelsIntentOutputContextList", }, sample_utterance: { value: cdktf.listMapperHcl(index_structs_1.lexv2ModelsIntentSampleUtteranceToHclTerraform, true)(this._sampleUtterance.internalValue), isBlock: true, type: "list", storageClassType: "Lexv2ModelsIntentSampleUtteranceList", }, slot_priority: { value: cdktf.listMapperHcl(index_structs_1.lexv2ModelsIntentSlotPriorityToHclTerraform, true)(this._slotPriority.internalValue), isBlock: true, type: "list", storageClassType: "Lexv2ModelsIntentSlotPriorityList", }, timeouts: { value: (0, index_structs_1.lexv2ModelsIntentTimeoutsToHclTerraform)(this._timeouts.internalValue), isBlock: true, type: "struct", storageClassType: "Lexv2ModelsIntentTimeouts", }, }; // remove undefined attributes return Object.fromEntries(Object.entries(attrs).filter(([_, value]) => value !== undefined && value.value !== undefined)); } } exports.Lexv2ModelsIntent = Lexv2ModelsIntent; _a = JSII_RTTI_SYMBOL_1; Lexv2ModelsIntent[_a] = { fqn: "@cdktf/provider-aws.lexv2ModelsIntent.Lexv2ModelsIntent", version: "19.50.0" }; // ================= // STATIC PROPERTIES // ================= Lexv2ModelsIntent.tfResourceType = "aws_lexv2models_intent"; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGV4djJtb2RlbHMtaW50ZW50L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7O0dBR0c7QUFFSCwyQ0FBMkM7QUFFM0MsbURBMkNnRTtBQUNoRSxrREFBK0I7QUFFL0IsK0JBQStCO0FBOEYvQjs7RUFFRTtBQUNGLE1BQWEsaUJBQWtCLFNBQVEsS0FBSyxDQUFDLGlCQUFpQjtJQU81RCxpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUNqQjs7Ozs7O01BTUU7SUFDSyxNQUFNLENBQUMsdUJBQXVCLENBQUMsS0FBZ0IsRUFBRSxVQUFrQixFQUFFLFlBQW9CLEVBQUUsUUFBa0M7UUFDOUgsT0FBTyxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLEVBQUUscUJBQXFCLEVBQUUsd0JBQXdCLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ2hKLENBQUM7SUFFTCxjQUFjO0lBQ2QsY0FBYztJQUNkLGNBQWM7SUFFZDs7Ozs7O01BTUU7SUFDRixZQUFtQixLQUFnQixFQUFFLEVBQVUsRUFBRSxNQUErQjtRQUM5RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLHFCQUFxQixFQUFFLHdCQUF3QjtZQUMvQywwQkFBMEIsRUFBRTtnQkFDMUIsWUFBWSxFQUFFLEtBQUs7Z0JBQ25CLGVBQWUsRUFBRSxRQUFRO2dCQUN6Qix5QkFBeUIsRUFBRSxRQUFRO2FBQ3BDO1lBQ0QsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO1lBQ3pCLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUztZQUMzQixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7WUFDbkIsU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTO1lBQzNCLFlBQVksRUFBRSxNQUFNLENBQUMs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QUUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQztnQkFDckgsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsSUFBSSxFQUFFLE1BQU07Z0JBQ1osZ0JBQWdCLEVBQUUsc0NBQXNDO2FBQ3pEO1lBQ0QsYUFBYSxFQUFFO2dCQUNiLEtBQUssRUFBRSxLQUFLLENBQUMsYUFBYSxDQUFDLDJEQUEyQyxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDO2dCQUMvRyxPQUFPLEVBQUUsSUFBSTtnQkFDYixJQUFJLEVBQUUsTUFBTTtnQkFDWixnQkFBZ0IsRUFBRSxtQ0FBbUM7YUFDdEQ7WUFDRCxRQUFRLEVBQUU7Z0JBQ1IsS0FBSyxFQUFFLElBQUEsdURBQXVDLEVBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUM7Z0JBQzVFLE9BQU8sRUFBRSxJQUFJO2dCQUNiLElBQUksRUFBRSxRQUFRO2dCQUNkLGdCQUFnQixFQUFFLDJCQUEyQjthQUM5QztTQUNGLENBQUM7UUFFRiw4QkFBOEI7UUFDOUIsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUUsQ0FBQyxDQUFBO0lBQzVILENBQUM7O0FBcmVILDhDQXNlQzs7O0FBcGVDLG9CQUFvQjtBQUNwQixvQkFBb0I7QUFDcEIsb0JBQW9CO0FBQ0csZ0NBQWMsR0FBRyx3QkFBd0IsQUFBM0IsQ0FBNEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmMuXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuICovXG5cbi8vIGdlbmVyYXRlZCBmcm9tIHRlcnJhZm9ybSByZXNvdXJjZSBzY2hlbWFcblxuaW1wb3J0IHsgTGV4djJNb2RlbHNJbnRlbnRDbG9zaW5nU2V0dGluZywgXG5sZXh2Mk1vZGVsc0ludGVudENsb3NpbmdTZXR0aW5nVG9UZXJyYWZvcm0sIFxubGV4djJNb2RlbHNJbnRlbnRDbG9zaW5nU2V0dGluZ1RvSGNsVGVycmFmb3JtLCBcbkxleHYyTW9kZWxzSW50ZW50Q2xvc2luZ1NldHRpbmdMaXN0LCBcbkxleHYyTW9kZWxzSW50ZW50Q29uZmlybWF0aW9uU2V0dGluZywgXG5sZXh2Mk1vZGVsc0ludGVudENvbmZpcm1hdGlvblNldHRpbmdUb1RlcnJhZm9ybSwgXG5sZXh2Mk1vZGVsc0ludGVudENvbmZpcm1hdGlvblNldHRpbmdUb0hjbFRlcnJhZm9ybSwgXG5MZXh2Mk1vZGVsc0ludGVudENvbmZpcm1hdGlvblNldHRpbmdMaXN0LCBcbkxleHYyTW9kZWxzSW50ZW50RGlhbG9nQ29kZUhvb2ssIFxubGV4djJNb2RlbHNJbnRlbnREaWFsb2dDb2RlSG9va1RvVGVycmFmb3JtLCBcbmxleHYyTW9kZWxzSW50ZW50RGlhbG9nQ29kZUhvb2tUb0hjbFRlcnJhZm9ybSwgXG5MZXh2Mk1vZGVsc0ludGVudERpYWxvZ0NvZGVIb29rTGlzdCwgXG5MZXh2Mk1vZGVsc0ludGVudEZ1bGZpbGxtZW50Q29kZUhvb2ssIFxubGV4djJNb2RlbHNJbnRlbnRGdWxmaWxsbWVudENvZGVIb29rVG9UZXJyYWZvcm0sIFxubGV4djJNb2RlbHNJbnRlbnRGdWxmaWxsbWVudENvZGVIb29rVG9IY2xUZXJyYWZvcm0sIFxuTGV4djJNb2RlbHNJbnRlbnRGdWxmaWxsbWVudENvZGVIb29rTGlzdCwgXG5MZXh2Mk1vZGVsc0ludGVudEluaXRpYWxSZXNwb25zZVNldHRpbmcsIFxubGV4djJNb2RlbHNJbnRlbnRJbml0aWFsUmVzcG9uc2VTZXR0aW5nVG9UZXJyYWZvcm0sIFxubGV4djJNb2RlbHNJbnRlbnRJbml0aWFsUmVzcG9uc2VTZXR0aW5nVG9IY2xUZXJyYWZvcm0sIFxuTGV4djJNb2RlbHNJbnRlbnRJbml0aWFsUmVzcG9uc2VTZXR0aW5nTGlzdCwgXG5MZXh2Mk1vZGVsc0ludGVudElucHV0Q29udGV4dCwgXG5sZXh2Mk1vZGVsc0ludGVudElucHV0Q29udGV4dFRvVGVycmFmb3JtLCBcbmxleHYyTW9kZWxzSW50ZW50SW5wdXRDb250ZXh0VG9IY2xUZXJyYWZvcm0sIFxuTGV4djJNb2RlbHNJbnRlbnRJbnB1dENvbnRleHRMaXN0LCBcbkxleHYyTW9kZWxzSW50ZW50S2VuZHJhQ29uZmlndXJhdGlvbiwgXG5sZXh2Mk1vZGVsc0ludGVudEtlbmRyYUNvbmZpZ3VyYXRpb25Ub1RlcnJhZm9ybSwgXG5sZXh2Mk1vZGVsc0ludGVudEtlbmRyYUNvbmZpZ3VyYXRpb25Ub0hjbFRlcnJhZm9ybSwgXG5MZXh2Mk1vZGVsc0ludGVudEtlbmRyYUNvbmZpZ3VyYXRpb25MaXN0LCBcbkxleHYyTW9kZWxzSW50ZW50T3V0cHV0Q29udGV4dCwgXG5sZXh2Mk1vZGVsc0ludGVudE91dHB1dENvbnRleHRUb1RlcnJhZm9ybSwgXG5sZXh2Mk1vZGVsc0ludGVudE91dHB1dENvbnRleHRUb0hjbFRlcnJhZm9ybSwgXG5MZXh2Mk1vZGVsc0ludGVudE91dHB1dENvbnRleHRMaXN0LCBcbkxleHYyTW9kZWxzSW50ZW50U2FtcGxlVXR0ZXJhbmNlLCBcbmxleHYyTW9kZWxzSW50ZW50U2FtcGxlVXR0ZXJhbmNlVG9UZXJyYWZvcm0sIFxubGV4djJNb2RlbHNJbnRlbnRTYW1wbGVVdHRlcmFuY2VUb0hjbFRlcnJhZm9ybSwgXG5MZXh2Mk1vZGVsc0ludGVudFNhbXBsZVV0dGVyYW5jZUxpc3QsIFxuTGV4djJNb2RlbHNJbnRlbnRTbG90UHJpb3JpdHksIFxubGV4djJNb2RlbHNJbnRlbnRTbG90UHJpb3JpdHlUb1RlcnJhZm9ybSwgXG5sZXh2Mk1vZGVsc0ludGVudFNsb3RQcmlvcml0eVRvSGNsVGVycmFmb3JtLCBcbkxleHYyTW9kZWxzSW50ZW50U2xvdFByaW9yaXR5TGlzdCwgXG5MZXh2Mk1vZGVsc0ludGVudFRpbWVvdXRzLCBcbmxleHYyTW9kZWxzSW50ZW50VGltZW91dHNUb1RlcnJhZm9ybSwgXG5sZXh2Mk1vZGVsc0ludGVudFRpbWVvdXRzVG9IY2xUZXJyYWZvcm0sIFxuTGV4djJNb2RlbHNJbnRlbnRUaW1lb3V0c091dHB1dFJlZmVyZW5jZX0gZnJvbSAnLi9pbmRleC1zdHJ1Y3RzJ1xuZXhwb3J0ICogZnJvbSAnLi9pbmRleC1zdHJ1Y3RzJ1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgKiBhcyBjZGt0ZiBmcm9tICdjZGt0Zic7XG5leHBvcnQgaW50ZXJmYWNlIExleHYyTW9kZWxzSW50ZW50Q29uZmlnIGV4dGVuZHMgY2RrdGYuVGVycmFmb3JtTWV0YUFyZ3VtZW50cyB7XG4gIC8qKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNS44NC4wL2RvY3MvcmVzb3VyY2VzL2xleHYybW9kZWxzX2ludGVudCNib3RfaWQgTGV4djJNb2RlbHNJbnRlbnQjYm90X2lkfVxuICAqL1xuICByZWFkb25seSBib3RJZDogc3RyaW5nO1xuICAvKipcbiAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuODQuMC9kb2NzL3Jlc291cmNlcy9sZXh2Mm1vZGVsc19pbnRlbnQjYm90X3ZlcnNpb24gTGV4djJNb2RlbHNJbnRlbnQjYm90X3ZlcnNpb259XG4gICovXG4gIHJlYWRvbmx5IGJvdFZlcnNpb246IHN0cmluZztcbiAgLyoqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81Ljg0LjAvZG9jcy9yZXNvdXJjZXMvbGV4djJtb2RlbHNfaW50ZW50I2Rlc2NyaXB0aW9uIExleHYyTW9kZWxzSW50ZW50I2Rlc2NyaXB0aW9ufVxuICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81Ljg0LjAvZG9jcy9yZXNvdXJjZXMvbGV4djJtb2RlbHNfaW50ZW50I2xvY2FsZV9pZCBMZXh2Mk1vZGVsc0ludGVudCNsb2NhbGVfaWR9XG4gICovXG4gIHJlYWRvbmx5IGxvY2FsZUlkOiBzdHJpbmc7XG4gIC8qKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNS44NC4wL2RvY3MvcmVzb3VyY2VzL2xleHYybW9kZWxzX2ludGVudCNuYW1lIExleHYyTW9kZWxzSW50ZW50I25hbWV9XG4gICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgLyoqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81Ljg0LjAvZG9jcy9yZXNvdXJjZXMvbGV4djJtb2RlbHNfaW50ZW50I3BhcmVudF9pbnRlbnRfc2lnbmF0dXJlIExleHYyTW9kZWxzSW50ZW50I3BhcmVudF9pbnRlbnRfc2lnbmF0dXJlfVxuICAqL1xuICByZWFkb25seSBwYXJlbnRJbnRlbnRTaWduYXR1cmU/OiBzdHJpbmc7XG4gIC8qKlxuICAqIGNsb3Npbmdfc2V0dGluZyBibG9ja1xuICAqXG4gICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81Ljg0LjAvZG9jcy9yZXNvdXJjZXMvbGV4djJtb2RlbHNfaW50ZW50I2Nsb3Npbmdfc2V0dGluZyBMZXh2Mk1vZGVsc0ludGVudCNjbG9zaW5nX3NldHRpbmd9XG4gICovXG4gIHJlYWRvbmx5IGNsb3NpbmdTZXR0aW5nPzogTGV4djJNb2RlbHNJbnRlbnRDbG9zaW5nU2V0dGluZ1tdIHwgY2RrdGYuSVJlc29sdmFibGU7XG4gIC8qKlxuICAqIGNvbmZpcm1hdGlvbl9zZXR0aW5nIGJsb2NrXG4gICpcbiAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuODQuMC9kb2NzL3Jlc291cmNlcy9sZXh2Mm1vZGVsc19pbnRlbnQjY29uZmlybWF0aW9uX3NldHRpbmcgTGV4djJNb2RlbHNJbnRlbnQjY29uZmlybWF0aW9uX3NldHRpbmd9XG4gICovXG4gIHJlYWRvbmx5IGNvbmZpcm1hdGlvblNldHRpbmc/OiBMZXh2Mk1vZGVsc0ludGVudENvbmZpcm1hdGlvblNldHRpbmdbXSB8IGNka3RmLklSZXNvbHZhYmxlO1xuICAvKipcbiAgKiBkaWFsb2dfY29kZV9ob29rIGJsb2NrXG4gICpcbiAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuODQuMC9kb2NzL3Jlc291cmNlcy9sZXh2Mm1vZGVsc19pbnRlbnQjZGlhbG9nX2NvZGVfaG9vayBMZXh2Mk1vZGVsc0ludGVudCNkaWFsb2dfY29kZV9ob29rfVxuICAqL1xuICByZWFkb25seSBkaWFsb2dDb2RlSG9vaz86IExleHYyTW9kZWxzSW50ZW50RGlhbG9nQ29kZUhvb2tbXSB8IGNka3RmLklSZXNvbHZhYmxlO1xuICAvKipcbiAgKiBmdWxmaWxsbWVudF9jb2RlX2hvb2sgYmxvY2tcbiAgKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNS44NC4wL2RvY3MvcmVzb3VyY2VzL2xleHYybW9kZWxzX2ludGVudCNmdWxmaWxsbWVudF9jb2RlX2hvb2sgTGV4djJNb2RlbHNJbnRlbnQjZnVsZmlsbG1lbnRfY29kZV9ob29rfVxuICAqL1xuICByZWFkb25seSBmdWxmaWxsbWVudENvZGVIb29rPzogTGV4djJNb2RlbHNJbnRlbnRGdWxmaWxsbWVudENvZGVIb29rW10gfCBjZGt0Zi5JUmVzb2x2YWJsZTtcbiAgLyoqXG4gICogaW5pdGlhbF9yZXNwb25zZV9zZXR0aW5nIGJsb2NrXG4gICpcbiAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuODQuMC9kb2NzL3Jlc291cmNlcy9sZXh2Mm1vZGVsc19pbnRlbnQjaW5pdGlhbF9yZXNwb25zZV9zZXR0aW5nIExleHYyTW9kZWxzSW50ZW50I2luaXRpYWxfcmVzcG9uc2Vfc2V0dGluZ31cbiAgKi9cbiAgcmVhZG9ubHkgaW5pdGlhbFJlc3BvbnNlU2V0dGluZz86IExleHYyTW9kZWxzSW50ZW50SW5pdGlhbFJlc3BvbnNlU2V0dGluZ1tdIHwgY2RrdGYuSVJlc29sdmFibGU7XG4gIC8qKlxuICAqIGlucHV0X2NvbnRleHQgYmxvY2tcbiAgKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNS44NC4wL2RvY3MvcmVzb3VyY2VzL2xleHYybW9kZWxzX2ludGVudCNpbnB1dF9jb250ZXh0IExleHYyTW9kZWxzSW50ZW50I2lucHV0X2NvbnRleHR9XG4gICovXG4gIHJlYWRvbmx5IGlucHV0Q29udGV4dD86IExleHYyTW9kZWxzSW50ZW50SW5wdXRDb250ZXh0W10gfCBjZGt0Zi5JUmVzb2x2YWJsZTtcbiAgLyoqXG4gICoga2VuZHJhX2NvbmZpZ3VyYXRpb24gYmxvY2tcbiAgKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNS44NC4wL2RvY3MvcmVzb3VyY2VzL2xleHYybW9kZWxzX2ludGVudCNrZW5kcmFfY29uZmlndXJhdGlvbiBMZXh2Mk1vZGVsc0ludGVudCNrZW5kcmFfY29uZmlndXJhdGlvbn1cbiAgKi9cbiAgcmVhZG9ubHkga2VuZHJhQ29uZmlndXJhdGlvbj86IExleHYyTW9kZWxzSW50ZW50S2VuZHJhQ29uZmlndXJhdGlvbltdIHwgY2RrdGYuSVJlc29sdmFibGU7XG4gIC8qKlxuICAqIG91dHB1dF9jb250ZXh0IGJsb2NrXG4gICpcbiAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuODQuMC9kb2NzL3Jlc291cmNlcy9sZXh2Mm1vZGVsc19pbnRlbnQjb3V0cHV0X2NvbnRleHQgTGV4djJNb2RlbHNJbnRlbnQjb3V0cHV0X2NvbnRleHR9XG4gICovXG4gIHJlYWRvbmx5IG91dHB1dENvbnRleHQ/OiBMZXh2Mk1vZGVsc0ludGVudE91dHB1dENvbnRleHRbXSB8IGNka3RmLklSZXNvbHZhYmxlO1xuICAvKipcbiAgKiBzYW1wbGVfdXR0ZXJhbmNlIGJsb2NrXG4gICpcbiAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuODQuMC9kb2NzL3Jlc291cmNlcy9sZXh2Mm1vZGVsc19pbnRlbnQjc2FtcGxlX3V0dGVyYW5jZSBMZXh2Mk1vZGVsc0ludGVudCNzYW1wbGVfdXR0ZXJhbmNlfVxuICAqL1xuICByZWFkb25seSBzYW1wbGVVdHRlcmFuY2U/OiBMZXh2Mk1vZGVsc0ludGVudFNhbXBsZVV0dGVyYW5jZVtdIHwgY2RrdGYuSVJlc29sdmFibGU7XG4gIC8qKlxuICAqIHNsb3RfcHJpb3JpdHkgYmxvY2tcbiAgKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNS44NC4wL2RvY3MvcmVzb3VyY2VzL2xleHYybW9kZWxzX2ludGVudCNzbG90X3ByaW9yaXR5IExleHYyTW9kZWxzSW50ZW50I3Nsb3RfcHJpb3JpdHl9XG4gICovXG4gIHJlYWRvbmx5IHNsb3RQcmlvcml0eT86IExleHYyTW9kZWxzSW50ZW50U2xvdFByaW9yaXR5W10gfCBjZGt0Zi5JUmVzb2x2YWJsZTtcbiAgLyoqXG4gICogdGltZW91dHMgYmxvY2tcbiAgKlxuICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNS44NC4wL2RvY3MvcmVzb3VyY2VzL2xleHYybW9kZWxzX2ludGVudCN0aW1lb3V0cyBMZXh2Mk1vZGVsc0ludGVudCN0aW1lb3V0c31cbiAgKi9cbiAgcmVhZG9ubHkgdGltZW91dHM/OiBMZXh2Mk1vZGVsc0ludGVudFRpbWVvdXRzO1xufVxuXG4vKipcbiogUmVwcmVzZW50cyBhIHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81Ljg0LjAvZG9jcy9yZXNvdXJjZXMvbGV4djJtb2RlbHNfaW50ZW50IGF3c19sZXh2Mm1vZGVsc19pbnRlbnR9XG4qL1xuZXhwb3J0IGNsYXNzIExleHYyTW9kZWxzSW50ZW50IGV4dGVuZHMgY2RrdGYuVGVycmFmb3JtUmVzb3VyY2Uge1xuXG4gIC8vID09PT09PT09PT09PT09PT09XG4gIC8vIFNUQVRJQyBQUk9QRVJUSUVTXG4gIC8vID09PT09PT09PT09PT09PT09XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgdGZSZXNvdXJjZVR5cGUgPSBcImF3c19sZXh2Mm1vZGVsc19pbnRlbnRcIjtcblxuICAvLyA9PT09PT09PT09PT09PVxuICAvLyBTVEFUSUMgTWV0aG9kc1xuICAvLyA9PT09PT09PT09PT09PVxuICAvKipcbiAgKiBHZW5lcmF0ZXMgQ0RLVEYgY29kZSBmb3IgaW1wb3J0aW5nIGEgTGV4djJNb2RlbHNJbnRlbnQgcmVzb3VyY2UgdXBvbiBydW5uaW5nIFwiY2RrdGYgcGxhbiA8c3RhY2stbmFtZT5cIlxuICAqIEBwYXJhbSBzY29wZSBUaGUgc2NvcGUgaW4gd2hpY2ggdG8gZGVmaW5lIHRoaXMgY29uc3RydWN0XG4gICogQHBhcmFtIGltcG9ydFRvSWQgVGhlIGNvbnN0cnVjdCBpZCB1c2VkIGluIHRoZSBnZW5lcmF0ZWQgY29uZmlnIGZvciB0aGUgTGV4djJNb2RlbHNJbnRlbnQgdG8gaW1wb3J0XG4gICogQHBhcmFtIGltcG9ydEZyb21JZCBUaGUgaWQgb2YgdGhlIGV4aXN0aW5nIExleHYyTW9kZWxzSW50ZW50IHRoYXQgc2hvdWxkIGJlIGltcG9ydGVkLiBSZWZlciB0byB0aGUge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuODQuMC9kb2NzL3Jlc291cmNlcy9sZXh2Mm1vZGVsc19pbnRlbnQjaW1wb3J0IGltcG9ydCBzZWN0aW9ufSBpbiB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGlzIHJlc291cmNlIGZvciB0aGUgaWQgdG8gdXNlXG4gICogQHBhcmFtIHByb3ZpZGVyPyBPcHRpb25hbCBpbnN0YW5jZSBvZiB0aGUgcHJvdmlkZXIgd2hlcmUgdGhlIExleHYyTW9kZWxzSW50ZW50IHRvIGltcG9ydCBpcyBmb3VuZFxuICAqL1xuICBwdWJsaWMgc3RhdGljIGdlbmVyYXRlQ29uZmlnRm9ySW1wb3J0KHNjb3BlOiBDb25zdHJ1Y3QsIGltcG9ydFRvSWQ6IHN0cmluZywgaW1wb3J0RnJvbUlkOiBzdHJpbmcsIHByb3ZpZGVyPzogY2RrdGYuVGVycmFmb3JtUHJvdmlkZXIpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBjZGt0Zi5JbXBvcnRhYmxlUmVzb3VyY2Uoc2NvcGUsIGltcG9ydFRvSWQsIHsgdGVycmFmb3JtUmVzb3VyY2VUeXBlOiBcImF3c19sZXh2Mm1vZGVsc19pbnRlbnRcIiwgaW1wb3J0SWQ6IGltcG9ydEZyb21JZCwgcHJvdmlkZXIgfSk7XG4gICAgICB9XG5cbiAgLy8gPT09PT09PT09PT1cbiAgLy8gSU5JVElBTElaRVJcbiAgLy8gPT09PT09PT09PT1cblxuICAvKipcbiAgKiBDcmVhdGUgYSBuZXcge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuODQuMC9kb2NzL3Jlc291cmNlcy9sZXh2Mm1vZGVsc19pbnRlbnQgYXdzX2xleHYybW9kZWxzX2ludGVudH0gUmVzb3VyY2VcbiAgKlxuICAqIEBwYXJhbSBzY29wZSBUaGUgc2NvcGUgaW4gd2hpY2ggdG8gZGVmaW5lIHRoaXMgY29uc3RydWN0XG4gICogQHBhcmFtIGlkIFRoZSBzY29wZWQgY29uc3RydWN0IElELiBNdXN0IGJlIHVuaXF1ZSBhbW9uZ3N0IHNpYmxpbmdzIGluIHRoZSBzYW1lIHNjb3BlXG4gICogQHBhcmFtIG9wdGlvbnMgTGV4djJNb2RlbHNJbnRlbnRDb25maWdcbiAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGNvbmZpZzogTGV4djJNb2RlbHNJbnRlbnRDb25maWcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbi