@sapui5/sap.fe.macros 1.142.0 → 1.142.2
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/package.json +1 -1
- package/src/sap/fe/macros/.library +1 -1
- package/src/sap/fe/macros/Field.js +5 -5
- package/src/sap/fe/macros/Field.ts +5 -3
- package/src/sap/fe/macros/FooterContent.js +3 -2
- package/src/sap/fe/macros/FooterContent.tsx +2 -10
- package/src/sap/fe/macros/MessageButton.js +3 -3
- package/src/sap/fe/macros/MessageButton.tsx +3 -2
- package/src/sap/fe/macros/Page.js +8 -4
- package/src/sap/fe/macros/Page.tsx +13 -4
- package/src/sap/fe/macros/RichTextEditor.js +12 -14
- package/src/sap/fe/macros/RichTextEditor.tsx +10 -13
- package/src/sap/fe/macros/ai/EasyFillDialog.js +2 -1
- package/src/sap/fe/macros/ai/EasyFillDialog.tsx +1 -0
- package/src/sap/fe/macros/ai/SummarizationButton.js +6 -4
- package/src/sap/fe/macros/ai/SummarizationButton.tsx +5 -3
- package/src/sap/fe/macros/chart/Action.js +19 -7
- package/src/sap/fe/macros/chart/Action.ts +8 -0
- package/src/sap/fe/macros/chart/ChartDelegate.js +13 -2
- package/src/sap/fe/macros/chart/ChartDelegate.ts +20 -1
- package/src/sap/fe/macros/chart/MdcChartTemplate.js +8 -6
- package/src/sap/fe/macros/chart/MdcChartTemplate.tsx +13 -22
- package/src/sap/fe/macros/controls/FileWrapper.js +4 -3
- package/src/sap/fe/macros/controls/FileWrapper.ts +3 -2
- package/src/sap/fe/macros/controls/FilterBar.js +1 -1
- package/src/sap/fe/macros/controls/FilterBar.ts +8 -1
- package/src/sap/fe/macros/controls/Section.js +3 -2
- package/src/sap/fe/macros/controls/Section.ts +1 -1
- package/src/sap/fe/macros/controls/TextLink.js +15 -1
- package/src/sap/fe/macros/controls/TextLink.tsx +19 -0
- package/src/sap/fe/macros/coreUI/OperationParameterDialog.js +23 -18
- package/src/sap/fe/macros/coreUI/OperationParameterDialog.tsx +27 -25
- package/src/sap/fe/macros/field/FieldRuntimeHelper.js +4 -2
- package/src/sap/fe/macros/field/FieldRuntimeHelper.ts +7 -7
- package/src/sap/fe/macros/field/FieldTemplating.js +8 -3
- package/src/sap/fe/macros/field/FieldTemplating.ts +8 -3
- package/src/sap/fe/macros/filterBar/FilterBar.block.js +10 -1
- package/src/sap/fe/macros/filterBar/FilterBar.block.tsx +10 -0
- package/src/sap/fe/macros/form/FormContainer.block.js +9 -8
- package/src/sap/fe/macros/form/FormContainer.block.ts +10 -7
- package/src/sap/fe/macros/internal/field/DisplayStyle.js +3 -2
- package/src/sap/fe/macros/internal/field/DisplayStyle.tsx +1 -0
- package/src/sap/fe/macros/internal/field/EditStyle.js +11 -6
- package/src/sap/fe/macros/internal/field/EditStyle.tsx +7 -3
- package/src/sap/fe/macros/internal/valuehelp/AdditionalValueFormatter.js +36 -7
- package/src/sap/fe/macros/internal/valuehelp/AdditionalValueFormatter.ts +35 -6
- package/src/sap/fe/macros/internal/valuehelp/AdditionalValueHelper.js +54 -1
- package/src/sap/fe/macros/internal/valuehelp/AdditionalValueHelper.ts +59 -0
- package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +23 -3
- package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.ts +24 -2
- package/src/sap/fe/macros/library.js +5 -6
- package/src/sap/fe/macros/{library.ts → library.tsx} +1 -1
- package/src/sap/fe/macros/messagebundle.properties +6 -0
- package/src/sap/fe/macros/messages/MessageButton.js +21 -12
- package/src/sap/fe/macros/messages/MessageButton.ts +21 -11
- package/src/sap/fe/macros/multivaluefield/MultiValueFieldDelegate.js +8 -3
- package/src/sap/fe/macros/multivaluefield/MultiValueFieldDelegate.ts +9 -2
- package/src/sap/fe/macros/quickView/QuickView.js +5 -4
- package/src/sap/fe/macros/quickView/QuickView.tsx +10 -3
- package/src/sap/fe/macros/table/ActionsTemplating.js +6 -5
- package/src/sap/fe/macros/table/ActionsTemplating.tsx +4 -4
- package/src/sap/fe/macros/table/MdcTableTemplate.js +31 -13
- package/src/sap/fe/macros/table/MdcTableTemplate.tsx +35 -7
- package/src/sap/fe/macros/table/Table.block.js +3 -1
- package/src/sap/fe/macros/table/Table.block.tsx +7 -4
- package/src/sap/fe/macros/table/TableAPI.js +62 -28
- package/src/sap/fe/macros/table/TableAPI.ts +73 -32
- package/src/sap/fe/macros/table/TableEventHandlerProvider.js +15 -4
- package/src/sap/fe/macros/table/TableEventHandlerProvider.ts +16 -3
- package/src/sap/fe/macros/table/TableRuntime.js +6 -4
- package/src/sap/fe/macros/table/TableRuntime.ts +16 -3
- package/src/sap/fe/macros/table/delegates/TableDelegate.js +3 -3
- package/src/sap/fe/macros/table/delegates/TableDelegate.ts +3 -4
- package/src/sap/fe/macros/table/massEdit/MassEditDialog.js +41 -15
- package/src/sap/fe/macros/table/massEdit/MassEditDialog.tsx +41 -22
- package/src/sap/fe/macros/table/mixin/ContextMenuHandler.js +2 -4
- package/src/sap/fe/macros/table/mixin/ContextMenuHandler.ts +1 -2
- package/src/sap/fe/macros/table/mixin/EmptyRowsHandler.js +10 -4
- package/src/sap/fe/macros/table/mixin/EmptyRowsHandler.ts +9 -3
- package/src/sap/fe/macros/table/mixin/TableHierarchy.js +6 -6
- package/src/sap/fe/macros/table/mixin/TableHierarchy.ts +5 -5
- package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.js +28 -10
- package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.ts +33 -14
|
@@ -333,7 +333,8 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/base/HookSupp
|
|
|
333
333
|
const subSections = this.getSubSections();
|
|
334
334
|
const hasMultipleSubsections = !!(subSections?.length > 1);
|
|
335
335
|
sectionOnlyContent.sendDataToConsumer({
|
|
336
|
-
titleLevel:
|
|
336
|
+
titleLevel: hasMultipleSubsections ? "H4" : "H3",
|
|
337
|
+
// For section header level is H3 the for subsections header level should be h4,
|
|
337
338
|
title: title,
|
|
338
339
|
headerStyle: hasMultipleSubsections ? "H5" : "H4"
|
|
339
340
|
});
|
|
@@ -433,4 +434,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/base/HookSupp
|
|
|
433
434
|
}), _class2)) || _class) || _class);
|
|
434
435
|
return Section;
|
|
435
436
|
}, false);
|
|
436
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTZWN0aW9uIiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwiZGVzaWdudGltZSIsIl9kZWMyIiwibWl4aW4iLCJTZWN0aW9uU3RhdGVIYW5kbGVyIiwiX2RlYzMiLCJwcm9wZXJ0eSIsInR5cGUiLCJfZGVjNCIsIl9kZWM1IiwiX2RlYzYiLCJfY2xhc3MiLCJfY2xhc3MyIiwiX09iamVjdFBhZ2VTZWN0aW9uIiwicHJvcGVydGllcyIsIm90aGVycyIsIl90aGlzIiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfZGVzY3JpcHRvcjIiLCJfZGVzY3JpcHRvcjMiLCJfZGVzY3JpcHRvcjQiLCJyZWdpc3RlckRlbGVnYXRlIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJldmVudERlbGVnYXRlcyIsIm9uQWZ0ZXJSZW5kZXJpbmciLCJzdWJTZWN0aW9ucyIsImdldFN1YlNlY3Rpb25zIiwibGVuZ3RoIiwiZm9yRWFjaCIsInN1YlNlY3Rpb24iLCJnZXRCbG9ja3MiLCJzdWJTZWN0aW9uRXZlbnREZWxlZ2F0ZSIsIm9uQmVmb3JlUmVuZGVyaW5nIiwiY2hlY2tBbmRBZGp1c3RTZWN0aW9uQ29udGVudCIsInJlbW92ZUV2ZW50RGVsZWdhdGUiLCJhZGRFdmVudERlbGVnYXRlIiwidmlldyIsIkNvbW1vblV0aWxzIiwiZ2V0VGFyZ2V0VmlldyIsInVzZVNpbmdsZVRleHRBcmVhRmllbGRBc05vdGVzIiwiY2hlY2tBbmRBZGp1c3RTZWN0aW9uQ29udGVudEZvclRleHRBcmVhIiwiY2hlY2tBbmRBZGp1c3RGb3JTaW5nbGVDb250ZW50Iiwic2V0T25TZWN0aW9uTG9hZGVkIiwib25TZWN0aW9uTG9hZGVkIiwibG9hZFNwbGl0Iiwic3BsaXQiLCJfc2VjdGlvbkxvYWRNZXRob2ROYW1lIiwicG9wIiwiX3NlY3Rpb25Mb2FkTW9kdWxlTmFtZSIsImpvaW4iLCJzZXRQcm9wZXJ0eSIsImFwcGx5U2V0dGluZ3MiLCJtU2V0dGluZ3MiLCJvU2NvcGUiLCJ0ZW1wbGF0ZUNvbXBvbmVudCIsIkNvbXBvbmVudCIsImdldE93bmVyQ29tcG9uZW50Rm9yIiwicGFnZUNvbnRyb2xsZXIiLCJnZXRSb290Q29udHJvbGxlciIsIkhvb2tTdXBwb3J0IiwiaW5pdENvbnRyb2xsZXJFeHRlbnNpb25Ib29rSGFuZGxlcnMiLCJ1cGRhdGVOb25UYWJsZVN1YlNlY3Rpb25CYWNrZ3JvdW5kIiwiYWRqdXN0bWVudFJlc3VsdHMiLCJoYXNTdHlsZUNsYXNzIiwiX3JlZiIsInRhYmxlc0FkanVzdGVkIiwicmVtb3ZlU3R5bGVDbGFzcyIsImFkZFN0eWxlQ2xhc3MiLCJ2aXNpYmxlU3ViU2VjdGlvbnMiLCJnZXRWaXNpYmxlU3ViU2VjdGlvbnMiLCJyZWR1Y2UiLCJyZXN1bHRzIiwiY29udGVudCIsImdldFNpbmdsZUNvbnRlbnQiLCJhZGp1c3RGb3JTaW5nbGVDb250ZW50IiwicHVzaCIsImdldFZpZXdEYXRhIiwic2VjdGlvbkxheW91dCIsInNpbmdsZUNvbnRlbnQiLCJpc0EiLCJjaGVja0lmTm90ZXNSZXVzZUNvbXBvbmVudCIsInNpbmdsZUNvbnRlbnRUYWJsZUFkanVzdGVkIiwiRlBNSGVscGVyIiwibG9hZE1vZHVsZUFuZENhbGxNZXRob2QiLCJjaGVja0FuZEFkanVzdFRpdGxlcyIsIkxvZyIsImRlYnVnIiwiZ2V0SWQiLCJpbmNsdWRlcyIsInNpbmdsZVN1YlNlY3Rpb25UYWJsZUFkanVzdGVkIiwiYWRqdXN0U2VjdGlvbkNvbnRlbnRXaXRoVGl0bGUiLCJzdWJzZWN0aW9uIiwiYmxvY2tzIiwiZ2V0QWdncmVnYXRpb24iLCJzZWN0aW9uRnJvbVJlZmVyZW5jZUZhY2V0IiwiU3ViU2VjdGlvbiIsInNob3dUaXRsZSIsImdldE1haW5Db250ZW50IiwiRnVuY3Rpb24iLCJhZGp1c3RtZW50UHJvcHMiLCJzZWN0aW9uZnJvbUNvbGxlY3Rpb25GYWNldCIsIlRpdGxlIiwiZ2V0VmlzaWJsZSIsImdldFNlY3Rpb25UaXRsZSIsInRpdGxlIiwiZ2V0VGl0bGUiLCJzZWN0aW9uRGV0YWlscyIsImNsYXNzZXNUb0FkZCIsIlNldCIsInNlY3Rpb25Pbmx5Q29udGVudCIsImNvbnRlbnRSb2xlIiwiZ2V0U2VjdGlvbkNvbnRlbnRSb2xlIiwiaW5mb0Zyb21Qcm92aWRlciIsImdldERhdGFGcm9tUHJvdmlkZXIiLCJzZXRTaG93VGl0bGUiLCJhZGQiLCJnZXRUZXh0Iiwic2V0VmlzaWJsZSIsInNlbmREYXRhVG9Db25zdW1lciIsImhhc011bHRpcGxlU3Vic2VjdGlvbnMiLCJ0aXRsZUxldmVsIiwiZ2V0VGl0bGVMZXZlbCIsImhlYWRlclN0eWxlIiwibXVsdGlwbGVTdWJTZWN0aW9uc1dpdGhSZXVzZUNvbXBvbmVudCIsInNldFRleHQiLCJzZXRUaXRsZVN0eWxlIiwic2V0TGV2ZWwiLCJ2Qm94SXRlbXMiLCJnZXRJdGVtcyIsInZCb3hJdGVtIiwiaGVhZGVyVG9vbGJhciIsImdldENvbnRlbnQiLCJjb250cm9sIiwibm90ZXNUaXRsZSIsIkFycmF5IiwiZnJvbSIsImhhcyIsIk9iamVjdFBhZ2VTZWN0aW9uIiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJ3cml0YWJsZSIsImluaXRpYWxpemVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJTZWN0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0aWVzT2YgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgbWl4aW4sIHByb3BlcnR5IH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0ICogYXMgSG9va1N1cHBvcnQgZnJvbSBcInNhcC9mZS9iYXNlL0hvb2tTdXBwb3J0XCI7XG5pbXBvcnQgdHlwZSB7IEZFVmlldyB9IGZyb20gXCJzYXAvZmUvY29yZS9CYXNlQ29udHJvbGxlclwiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IHR5cGUgVGVtcGxhdGVDb21wb25lbnQgZnJvbSBcInNhcC9mZS9jb3JlL1RlbXBsYXRlQ29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IE9iamVjdFBhZ2VNYW5pZmVzdFNldHRpbmdzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWFuaWZlc3RTZXR0aW5nc1wiO1xuaW1wb3J0IEZQTUhlbHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9GUE1IZWxwZXJcIjtcbmltcG9ydCB0eXBlIElTaW5nbGVTZWN0aW9uQ29udHJpYnV0b3IgZnJvbSBcInNhcC9mZS9tYWNyb3MvY29udHJvbHMvc2VjdGlvbi9JU2luZ2xlU2VjdGlvbkNvbnRyaWJ1dG9yXCI7XG5pbXBvcnQgU2VjdGlvblN0YXRlSGFuZGxlciBmcm9tIFwic2FwL2ZlL21hY3Jvcy9jb250cm9scy9zZWN0aW9uL21peGluL1NlY3Rpb25TdGF0ZUhhbmRsZXJcIjtcbmltcG9ydCB0eXBlIFN1YlNlY3Rpb25CbG9jayBmcm9tIFwic2FwL2ZlL3RlbXBsYXRlcy9PYmplY3RQYWdlL2NvbnRyb2xzL1N1YlNlY3Rpb25CbG9ja1wiO1xuaW1wb3J0IHR5cGUgT3ZlcmZsb3dUb29sYmFyIGZyb20gXCJzYXAvbS9PdmVyZmxvd1Rvb2xiYXJcIjtcbmltcG9ydCB0eXBlIFRpdGxlIGZyb20gXCJzYXAvbS9UaXRsZVwiO1xuaW1wb3J0IHR5cGUgVkJveCBmcm9tIFwic2FwL20vVkJveFwiO1xuaW1wb3J0IHR5cGUgTWFuYWdlZE9iamVjdCBmcm9tIFwic2FwL3VpL2Jhc2UvTWFuYWdlZE9iamVjdFwiO1xuaW1wb3J0IHR5cGUgeyAkTWFuYWdlZE9iamVjdFNldHRpbmdzIH0gZnJvbSBcInNhcC91aS9iYXNlL01hbmFnZWRPYmplY3RcIjtcbmltcG9ydCBDb21wb25lbnQgZnJvbSBcInNhcC91aS9jb3JlL0NvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgRHluYW1pY1NpZGVDb250ZW50IGZyb20gXCJzYXAvdWkvbGF5b3V0L0R5bmFtaWNTaWRlQ29udGVudFwiO1xuaW1wb3J0IHR5cGUgeyAkT2JqZWN0UGFnZVNlY3Rpb25TZXR0aW5ncyB9IGZyb20gXCJzYXAvdXhhcC9PYmplY3RQYWdlU2VjdGlvblwiO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXN0cmljdGVkLWltcG9ydHNcbmltcG9ydCBPYmplY3RQYWdlU2VjdGlvbiBmcm9tIFwic2FwL3V4YXAvT2JqZWN0UGFnZVNlY3Rpb25cIjtcbmltcG9ydCB0eXBlIE9iamVjdFBhZ2VTdWJTZWN0aW9uIGZyb20gXCJzYXAvdXhhcC9PYmplY3RQYWdlU3ViU2VjdGlvblwiO1xuaW1wb3J0IHR5cGUgU3ViU2VjdGlvbiBmcm9tIFwiLi9zZWN0aW9uL1N1YlNlY3Rpb25cIjtcblxudHlwZSBBZGp1c3RtZW50UHJvcHMgPSB7XG5cdHRhYmxlc0FkanVzdGVkPzogYm9vbGVhbjtcbn07XG5cbnR5cGUgQWRqdXN0bWVudFJlc3VsdHMgPSB7XG5cdHN1YlNlY3Rpb246IE9iamVjdFBhZ2VTdWJTZWN0aW9uO1xufSAmIEFkanVzdG1lbnRQcm9wcztcblxuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLm1hY3Jvcy5jb250cm9scy5TZWN0aW9uXCIsIHsgZGVzaWdudGltZTogXCJzYXAvdXhhcC9kZXNpZ250aW1lL09iamVjdFBhZ2VTZWN0aW9uLmRlc2lnbnRpbWVcIiB9KVxuQG1peGluKFNlY3Rpb25TdGF0ZUhhbmRsZXIpXG5jbGFzcyBTZWN0aW9uIGV4dGVuZHMgT2JqZWN0UGFnZVNlY3Rpb24ge1xuXHQvLyBUT0RPOiB0aGlzIHByb2JhYmx5IG1ha2VzIHNlbnNlIHRvIGJlIGFuIGV2ZW50LiBCdXQgd2UgY2FuIGFkZHJlc3MgdGhpcyBsYXRlci5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHRvblNlY3Rpb25Mb2FkZWQhOiBzdHJpbmc7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIgfSlcblx0dXNlU2luZ2xlVGV4dEFyZWFGaWVsZEFzTm90ZXMhOiBib29sZWFuO1xuXG5cdC8qKlxuXHQgKiBQYXRoIHRvIHRoZSBhcHBseSBzdGF0ZSBoYW5kbGVyIHRvIGJlIGNhbGxlZCBkdXJpbmcgc3RhdGUgaW50ZXJhY3Rpb25zLlxuXHQgKi9cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHRhcHBseVN0YXRlSGFuZGxlcj86IHN0cmluZztcblxuXHQvKipcblx0ICogUGF0aCB0byB0aGUgcmV0cmlldmUgc3RhdGUgaGFuZGxlciB0byBiZSBjYWxsZWQgZHVyaW5nIHN0YXRlIGludGVyYWN0aW9ucy5cblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0cmV0cmlldmVTdGF0ZUhhbmRsZXI/OiBzdHJpbmc7XG5cblx0Y29uc3RydWN0b3IocHJvcGVydGllczogJE9iamVjdFBhZ2VTZWN0aW9uU2V0dGluZ3MgJiBQcm9wZXJ0aWVzT2Y8U2VjdGlvbj4sIG90aGVycz86ICRPYmplY3RQYWdlU2VjdGlvblNldHRpbmdzKSB7XG5cdFx0c3VwZXIocHJvcGVydGllcyBhcyB1bmtub3duIGFzIHN0cmluZywgb3RoZXJzKTtcblx0XHR0aGlzLnJlZ2lzdGVyRGVsZWdhdGUoKTtcblx0fVxuXG5cdF9zZWN0aW9uTG9hZE1ldGhvZE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuXHRfc2VjdGlvbkxvYWRNb2R1bGVOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cblx0cHJpdmF0ZSByZWdpc3RlckRlbGVnYXRlKCk6IHZvaWQge1xuXHRcdGNvbnN0IGV2ZW50RGVsZWdhdGVzID0ge1xuXHRcdFx0b25BZnRlclJlbmRlcmluZzogKCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRjb25zdCBzdWJTZWN0aW9ucyA9IHRoaXMuZ2V0U3ViU2VjdGlvbnMoKSBhcyBTdWJTZWN0aW9uW107XG5cdFx0XHRcdGlmIChzdWJTZWN0aW9ucy5sZW5ndGgpIHtcblx0XHRcdFx0XHRzdWJTZWN0aW9ucy5mb3JFYWNoKChzdWJTZWN0aW9uOiBTdWJTZWN0aW9uKSA9PiB7XG5cdFx0XHRcdFx0XHQvKiB3ZSBjaGVjayBpbmRpdmlkdWFsIHN1YnNlY3Rpb24gZm9yIGJsb2Nrcy4gSWYgbm90IGF2YWlsYWJsZSB3ZSB3YWl0IGZvciB0aGVtIHRvIGJlIGFkZGVkKG9uQmVmb3JlUmVuZGVyaW5nKSBiZWZvcmUgdHJpZ2dlcmluZyB0aXRsZSBtZXJnZSBsb2dpY3MgKi9cblx0XHRcdFx0XHRcdGlmIChzdWJTZWN0aW9uLmdldEJsb2NrcygpPy5sZW5ndGggPT09IDApIHtcblx0XHRcdFx0XHRcdFx0Y29uc3Qgc3ViU2VjdGlvbkV2ZW50RGVsZWdhdGUgPSB7XG5cdFx0XHRcdFx0XHRcdFx0b25CZWZvcmVSZW5kZXJpbmc6ICgpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuY2hlY2tBbmRBZGp1c3RTZWN0aW9uQ29udGVudCgpO1xuXHRcdFx0XHRcdFx0XHRcdFx0c3ViU2VjdGlvbi5yZW1vdmVFdmVudERlbGVnYXRlKHN1YlNlY3Rpb25FdmVudERlbGVnYXRlKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRcdHN1YlNlY3Rpb24uYWRkRXZlbnREZWxlZ2F0ZShzdWJTZWN0aW9uRXZlbnREZWxlZ2F0ZSk7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHR0aGlzLmNoZWNrQW5kQWRqdXN0U2VjdGlvbkNvbnRlbnQoKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0aGlzLmNoZWNrQW5kQWRqdXN0U2VjdGlvbkNvbnRlbnQoKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH07XG5cblx0XHR0aGlzLmFkZEV2ZW50RGVsZWdhdGUoZXZlbnREZWxlZ2F0ZXMpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGZvciB0aGUgc2VjdGlvbiBjb250ZW50IGFuZCBhZGp1c3RzIHRoZSBzZWN0aW9uIGJhc2VkIG9uIHRoZSBhdmFpbGFibGUgY29udGVudC5cblx0ICogQHByb3RlY3RlZFxuXHQgKi9cblx0Y2hlY2tBbmRBZGp1c3RTZWN0aW9uQ29udGVudCgpOiB2b2lkIHtcblx0XHRjb25zdCB2aWV3ID0gQ29tbW9uVXRpbHMuZ2V0VGFyZ2V0Vmlldyh0aGlzKTtcblx0XHRpZiAodGhpcy51c2VTaW5nbGVUZXh0QXJlYUZpZWxkQXNOb3Rlcykge1xuXHRcdFx0dGhpcy5jaGVja0FuZEFkanVzdFNlY3Rpb25Db250ZW50Rm9yVGV4dEFyZWEoKTtcblx0XHR9XG5cdFx0dGhpcy5jaGVja0FuZEFkanVzdEZvclNpbmdsZUNvbnRlbnQodmlldyk7XG5cdH1cblxuXHRzZXRPblNlY3Rpb25Mb2FkZWQob25TZWN0aW9uTG9hZGVkOiBzdHJpbmcpOiB2b2lkIHtcblx0XHRjb25zdCBsb2FkU3BsaXQgPSBvblNlY3Rpb25Mb2FkZWQuc3BsaXQoXCIuXCIpO1xuXHRcdHRoaXMuX3NlY3Rpb25Mb2FkTWV0aG9kTmFtZSA9IGxvYWRTcGxpdD8ucG9wKCk7XG5cdFx0dGhpcy5fc2VjdGlvbkxvYWRNb2R1bGVOYW1lID0gbG9hZFNwbGl0Py5qb2luKFwiL1wiKTtcblx0XHR0aGlzLnNldFByb3BlcnR5KFwib25TZWN0aW9uTG9hZGVkXCIsIG9uU2VjdGlvbkxvYWRlZCk7XG5cdH1cblxuXHQvLyBUT0RPOiBDaGVjayBpZiBvbkFmdGVyUmVuZGVyaW5nIGNhbiBiZSB1c2VkIGluc3RlYWQgb2YgYXBwbHlTZXR0aW5ncy5cblx0YXBwbHlTZXR0aW5ncyhtU2V0dGluZ3M6ICRNYW5hZ2VkT2JqZWN0U2V0dGluZ3MsIG9TY29wZT86IG9iamVjdCk6IHRoaXMge1xuXHRcdHN1cGVyLmFwcGx5U2V0dGluZ3MobVNldHRpbmdzLCBvU2NvcGUpO1xuXHRcdGNvbnN0IHRlbXBsYXRlQ29tcG9uZW50ID0gQ29tcG9uZW50LmdldE93bmVyQ29tcG9uZW50Rm9yKHRoaXMpIGFzIFRlbXBsYXRlQ29tcG9uZW50O1xuXHRcdGNvbnN0IHBhZ2VDb250cm9sbGVyID0gdGVtcGxhdGVDb21wb25lbnQuZ2V0Um9vdENvbnRyb2xsZXIoKTtcblx0XHRpZiAocGFnZUNvbnRyb2xsZXIpIHtcblx0XHRcdEhvb2tTdXBwb3J0LmluaXRDb250cm9sbGVyRXh0ZW5zaW9uSG9va0hhbmRsZXJzKHRoaXMsIHBhZ2VDb250cm9sbGVyKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvKipcblx0ICogVXBkYXRlIHN1YnNlY3Rpb24gYmFja2dyb3VuZCBjbGFzcyBiYXNlZCBvbiB0YWJsZSBhZGp1c3RtZW50cyBtYWRlLlxuXHQgKiBAcGFyYW0gYWRqdXN0bWVudFJlc3VsdHMgQXJyYXkgb2YgYWRqdXN0bWVudCByZXN1bHRzXG5cdCAqL1xuXHR1cGRhdGVOb25UYWJsZVN1YlNlY3Rpb25CYWNrZ3JvdW5kKGFkanVzdG1lbnRSZXN1bHRzOiBBZGp1c3RtZW50UmVzdWx0c1tdKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuaGFzU3R5bGVDbGFzcyhcInNhcFVpVGFibGVPbk9iamVjdFBhZ2VBZGp1c3RtZW50c0ZvclNlY3Rpb25cIikpIHtcblx0XHRcdGFkanVzdG1lbnRSZXN1bHRzLmZvckVhY2goKHsgc3ViU2VjdGlvbiwgdGFibGVzQWRqdXN0ZWQgfSkgPT4ge1xuXHRcdFx0XHRpZiAodGFibGVzQWRqdXN0ZWQpIHtcblx0XHRcdFx0XHRzdWJTZWN0aW9uLnJlbW92ZVN0eWxlQ2xhc3MoXCJzYXBVaUFkanVzdGVkU2VjdGlvblN1YnNlY3Rpb25XaXRob3V0VGFibGVcIik7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0c3ViU2VjdGlvbi5hZGRTdHlsZUNsYXNzKFwic2FwVWlBZGp1c3RlZFNlY3Rpb25TdWJzZWN0aW9uV2l0aG91dFRhYmxlXCIpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogVGhpcyBtZXRob2QgbG9vcHMgdGhyb3VnaCBhbGwgdGhlIHZpc2libGUgc3Vic2VjdGlvbnMgYW5kIHRyaWdnZXJzIHRoZSB0ZXh0IGFyZWEgZmxvdyBpZiB0aGF0cyB0aGUgb25seSBzaW5nbGUgY29udHJvbCB3aXRoaW4gdGhlIHNlY3Rpb24uXG5cdCAqL1xuXHRjaGVja0FuZEFkanVzdFNlY3Rpb25Db250ZW50Rm9yVGV4dEFyZWEoKTogdm9pZCB7XG5cdFx0Y29uc3QgdmlzaWJsZVN1YlNlY3Rpb25zID0gdGhpcy5nZXRWaXNpYmxlU3ViU2VjdGlvbnMoKTtcblx0XHRjb25zdCBhZGp1c3RtZW50UmVzdWx0cyA9IHZpc2libGVTdWJTZWN0aW9ucy5yZWR1Y2UoKHJlc3VsdHM6IEFkanVzdG1lbnRSZXN1bHRzW10sIHN1YlNlY3Rpb246IE9iamVjdFBhZ2VTdWJTZWN0aW9uKSA9PiB7XG5cdFx0XHRsZXQgdGFibGVzQWRqdXN0ZWQ7XG5cdFx0XHRjb25zdCBjb250ZW50ID0gdGhpcy5nZXRTaW5nbGVDb250ZW50KFtzdWJTZWN0aW9uXSk7XG5cdFx0XHRpZiAoY29udGVudCkge1xuXHRcdFx0XHR0YWJsZXNBZGp1c3RlZCA9IHRoaXMuYWRqdXN0Rm9yU2luZ2xlQ29udGVudChjb250ZW50KS50YWJsZXNBZGp1c3RlZDtcblx0XHRcdH1cblx0XHRcdHJlc3VsdHMucHVzaCh7IHN1YlNlY3Rpb24sIHRhYmxlc0FkanVzdGVkIH0pO1xuXHRcdFx0cmV0dXJuIHJlc3VsdHM7XG5cdFx0fSwgW10pO1xuXHRcdHRoaXMudXBkYXRlTm9uVGFibGVTdWJTZWN0aW9uQmFja2dyb3VuZChhZGp1c3RtZW50UmVzdWx0cyk7XG5cdH1cblxuXHRjaGVja0FuZEFkanVzdEZvclNpbmdsZUNvbnRlbnQodmlldzogRkVWaWV3KTogdm9pZCB8IFByb21pc2U8dW5rbm93bj4ge1xuXHRcdGlmICgodmlldz8uZ2V0Vmlld0RhdGEoKSBhcyBPYmplY3RQYWdlTWFuaWZlc3RTZXR0aW5ncyk/LnNlY3Rpb25MYXlvdXQgPT09IFwiUGFnZVwiKSB7XG5cdFx0XHRjb25zdCBzaW5nbGVDb250ZW50ID0gdGhpcy5nZXRTaW5nbGVDb250ZW50KCk7XG5cdFx0XHRpZiAoXG5cdFx0XHRcdHNpbmdsZUNvbnRlbnQgJiZcblx0XHRcdFx0KHNpbmdsZUNvbnRlbnQuaXNBKFwic2FwLmZlLm1hY3Jvcy5jb250cm9scy5zZWN0aW9uLklTaW5nbGVTZWN0aW9uQ29udHJpYnV0b3JcIikgfHxcblx0XHRcdFx0XHR0aGlzLmNoZWNrSWZOb3Rlc1JldXNlQ29tcG9uZW50KHNpbmdsZUNvbnRlbnQpKVxuXHRcdFx0KSB7XG5cdFx0XHRcdGNvbnN0IHsgdGFibGVzQWRqdXN0ZWQ6IHNpbmdsZUNvbnRlbnRUYWJsZUFkanVzdGVkIH0gPSB0aGlzLmFkanVzdEZvclNpbmdsZUNvbnRlbnQoc2luZ2xlQ29udGVudCk7XG5cdFx0XHRcdGNvbnN0IHN1YlNlY3Rpb25zID0gdGhpcy5nZXRWaXNpYmxlU3ViU2VjdGlvbnMoKTtcblx0XHRcdFx0dGhpcy51cGRhdGVOb25UYWJsZVN1YlNlY3Rpb25CYWNrZ3JvdW5kKFt7IHN1YlNlY3Rpb246IHN1YlNlY3Rpb25zWzBdLCB0YWJsZXNBZGp1c3RlZDogc2luZ2xlQ29udGVudFRhYmxlQWRqdXN0ZWQgfV0pO1xuXHRcdFx0fSBlbHNlIGlmICh0aGlzLl9zZWN0aW9uTG9hZE1vZHVsZU5hbWUgJiYgdGhpcy5fc2VjdGlvbkxvYWRNZXRob2ROYW1lKSB7XG5cdFx0XHRcdHJldHVybiBGUE1IZWxwZXIubG9hZE1vZHVsZUFuZENhbGxNZXRob2QodGhpcy5fc2VjdGlvbkxvYWRNb2R1bGVOYW1lLCB0aGlzLl9zZWN0aW9uTG9hZE1ldGhvZE5hbWUsIHZpZXcsIHRoaXMpO1xuXHRcdFx0fSBlbHNlIGlmICh0aGlzLmdldFN1YlNlY3Rpb25zKCkubGVuZ3RoID4gMSkge1xuXHRcdFx0XHQvLyBjYWxsIG1lcmdlIHRpdGxlIGxvZ2ljIGZvciBzdWJzZWN0aW9uc1xuXHRcdFx0XHR0aGlzLmNoZWNrQW5kQWRqdXN0VGl0bGVzKCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRMb2cuZGVidWcoXCJTZWN0aW9uIGNhbm5vdCBiZSBhZGp1c3RlZCBmb3Igc2luZ2xlIGNvbnRlbnQgOiBJbnRlcmZhY2UgJ0lTaW5nbGVTZWN0aW9uQ29udHJpYnV0b3InIGlzIG5vdCBpbXBsZW1lbnRlZFwiKTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5jaGVja0FuZEFkanVzdFRpdGxlcygpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKlxuXHQgKiBAcGFyYW0gc2luZ2xlQ29udGVudCBPYmplY3Qgb2YgdGhlIGNvbnRlbnQgcHJlc2VudCB3aXRoaW4gdGhlIHNlY3Rpb24uXG5cdCAqIEByZXR1cm5zIFRydWUgaWYgdGhlIGNvbnRlbnQgcHJlc2VudCBpcyBhIG5vdGVzIHJldXNlIGNvbXBvbmVudFxuXHQgKi9cblx0Y2hlY2tJZk5vdGVzUmV1c2VDb21wb25lbnQoc2luZ2xlQ29udGVudDogTWFuYWdlZE9iamVjdCk6IGJvb2xlYW4ge1xuXHRcdGlmIChzaW5nbGVDb250ZW50LmlzQShcInNhcC5tLlZCb3hcIikgJiYgc2luZ2xlQ29udGVudC5nZXRJZCgpLmluY2x1ZGVzKFwiTm90ZVNlY3Rpb25cIikpIHtcblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH1cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHQvKipcblx0ICogVGhpcyBmdW5jdGlvbiBjaGVja3MgZm9yIHRoZSB2aXNpYmxlIHN1YnNlY3Rpb25zIGFuZCBjaGVja3MgZm9yIHRoZSBjb2xsZWN0aW9uIGZhY2V0IGxhYmVsLCBJZiBwcmVzZW50IHRoZW4gd2UgbWVyZ2UgdGhlIHRpdGxlIGFuZCB0aGlzIGZ1bmN0aW9uIGhhbmRsZXMgdGhlIER5bmFtaWNTaWRlQ29uZW50IGFzIHdlbGwuXG5cdCAqL1xuXHRjaGVja0FuZEFkanVzdFRpdGxlcygpOiB2b2lkIHtcblx0XHRjb25zdCB2aXNpYmxlU3ViU2VjdGlvbnMgPSB0aGlzLmdldFZpc2libGVTdWJTZWN0aW9ucygpO1xuXHRcdGlmICh2aXNpYmxlU3ViU2VjdGlvbnMubGVuZ3RoID09PSAxKSB7XG5cdFx0XHRjb25zdCB7IHRhYmxlc0FkanVzdGVkOiBzaW5nbGVTdWJTZWN0aW9uVGFibGVBZGp1c3RlZCB9ID0gdGhpcy5hZGp1c3RTZWN0aW9uQ29udGVudFdpdGhUaXRsZSh2aXNpYmxlU3ViU2VjdGlvbnNbMF0pO1xuXHRcdFx0dGhpcy51cGRhdGVOb25UYWJsZVN1YlNlY3Rpb25CYWNrZ3JvdW5kKFt7IHN1YlNlY3Rpb246IHZpc2libGVTdWJTZWN0aW9uc1swXSwgdGFibGVzQWRqdXN0ZWQ6IHNpbmdsZVN1YlNlY3Rpb25UYWJsZUFkanVzdGVkIH1dKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29uc3QgYWRqdXN0bWVudFJlc3VsdHMgPSB2aXNpYmxlU3ViU2VjdGlvbnMucmVkdWNlKChyZXN1bHRzOiBBZGp1c3RtZW50UmVzdWx0c1tdLCBzdWJzZWN0aW9uOiBPYmplY3RQYWdlU3ViU2VjdGlvbikgPT4ge1xuXHRcdFx0XHRsZXQgdGFibGVzQWRqdXN0ZWQ7XG5cdFx0XHRcdGxldCBjb250ZW50O1xuXHRcdFx0XHRjb25zdCBibG9ja3MgPSBzdWJzZWN0aW9uLmdldEJsb2NrcygpO1xuXHRcdFx0XHQvLyBJbiBjYXNlIG9mIFRhYiBsYXlvdXQsIHdlIG5lZWQgdG8gY2hlY2sgaWYgdGhlIHNlY3Rpb24gaGFzIG9ubHkgb25lIHN1YnNlY3Rpb24gYW5kIHRoYXQgc3Vic2VjdGlvbiBoYXMgb25seSBvbmUgY29udHJvbFxuXHRcdFx0XHQvLyBJbiBjYXNlIG9mIGNvbGxlY3Rpb24gRmFjZXQsIHRoZSBmaXJzdCBibG9jayB3aWxsIGJlIFRpdGxlIGFuZCB0aGUgc2Vjb25kIGJsb2NrIHdpbGwgYmUgU3ViU2VjdGlvbkJsb2NrXG5cdFx0XHRcdGlmIChibG9ja3MubGVuZ3RoID09PSAyICYmIGJsb2Nrc1sxXT8uaXNBPFN1YlNlY3Rpb25CbG9jaz4oXCJzYXAuZmUudGVtcGxhdGVzLk9iamVjdFBhZ2UuY29udHJvbHMuU3ViU2VjdGlvbkJsb2NrXCIpKSB7XG5cdFx0XHRcdFx0dGFibGVzQWRqdXN0ZWQgPSB0aGlzLmFkanVzdFNlY3Rpb25Db250ZW50V2l0aFRpdGxlKHN1YnNlY3Rpb24pLnRhYmxlc0FkanVzdGVkO1xuXHRcdFx0XHR9XG5cdFx0XHRcdC8vIEluIGNhc2Ugb2YgUmVmZXJlbmNlIEZhY2V0LCB0aGUgZmlyc3QgYmxvY2sgd2lsbCBiZSBTdWJTZWN0aW9uQmxvY2tcblx0XHRcdFx0ZWxzZSBpZiAoYmxvY2tzLmxlbmd0aCA9PT0gMSAmJiBibG9ja3NbMF0/LmlzQTxTdWJTZWN0aW9uQmxvY2s+KFwic2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLmNvbnRyb2xzLlN1YlNlY3Rpb25CbG9ja1wiKSkge1xuXHRcdFx0XHRcdGNvbnRlbnQgPSBibG9ja3NbMF0uZ2V0QWdncmVnYXRpb24oXCJjb250ZW50XCIpIGFzIE1hbmFnZWRPYmplY3Q7XG5cdFx0XHRcdFx0aWYgKGNvbnRlbnQuaXNBKFwic2FwLmZlLm1hY3Jvcy5jb250cm9scy5zZWN0aW9uLklTaW5nbGVTZWN0aW9uQ29udHJpYnV0b3JcIikpIHtcblx0XHRcdFx0XHRcdHRhYmxlc0FkanVzdGVkID0gdGhpcy5hZGp1c3RGb3JTaW5nbGVDb250ZW50KGNvbnRlbnQsIHtcblx0XHRcdFx0XHRcdFx0c2VjdGlvbkZyb21SZWZlcmVuY2VGYWNldDogdHJ1ZSxcblx0XHRcdFx0XHRcdFx0U3ViU2VjdGlvbjogc3Vic2VjdGlvbixcblx0XHRcdFx0XHRcdFx0c2hvd1RpdGxlOiB0aGlzLmdldFZpc2libGVTdWJTZWN0aW9ucygpLmxlbmd0aCA+IDFcblx0XHRcdFx0XHRcdH0pLnRhYmxlc0FkanVzdGVkO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoKGNvbnRlbnQgYXMgRHluYW1pY1NpZGVDb250ZW50KT8uaXNBKFwic2FwLnVpLmxheW91dC5EeW5hbWljU2lkZUNvbnRlbnRcIikpIHtcblx0XHRcdFx0XHRcdGNvbnRlbnQgPVxuXHRcdFx0XHRcdFx0XHQoY29udGVudCBhcyBEeW5hbWljU2lkZUNvbnRlbnQpLmdldE1haW5Db250ZW50IGluc3RhbmNlb2YgRnVuY3Rpb24gJiZcblx0XHRcdFx0XHRcdFx0KGNvbnRlbnQgYXMgRHluYW1pY1NpZGVDb250ZW50KT8uZ2V0TWFpbkNvbnRlbnQoKTtcblx0XHRcdFx0XHRcdGlmIChjb250ZW50ICYmIGNvbnRlbnQubGVuZ3RoID09PSAxKSB7XG5cdFx0XHRcdFx0XHRcdGNvbnRlbnQgPSBjb250ZW50WzBdO1xuXHRcdFx0XHRcdFx0XHR0YWJsZXNBZGp1c3RlZCA9IHRoaXMuYWRqdXN0Rm9yU2luZ2xlQ29udGVudChjb250ZW50LCB7XG5cdFx0XHRcdFx0XHRcdFx0c2VjdGlvbkZyb21SZWZlcmVuY2VGYWNldDogdHJ1ZSxcblx0XHRcdFx0XHRcdFx0XHRTdWJTZWN0aW9uOiBzdWJzZWN0aW9uXG5cdFx0XHRcdFx0XHRcdH0pLnRhYmxlc0FkanVzdGVkO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRyZXN1bHRzLnB1c2goeyBzdWJTZWN0aW9uOiBzdWJzZWN0aW9uLCB0YWJsZXNBZGp1c3RlZCB9KTtcblx0XHRcdFx0cmV0dXJuIHJlc3VsdHM7XG5cdFx0XHR9LCBbXSk7XG5cdFx0XHR0aGlzLnVwZGF0ZU5vblRhYmxlU3ViU2VjdGlvbkJhY2tncm91bmQoYWRqdXN0bWVudFJlc3VsdHMpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBUaGlzIGZ1bmN0aW9uIGNoZWNrcyBmb3IgdGhlIGZvciB0aGUgY29sbGVjdGlvbiBmYWNldCBsYWJlbCxJZiBwcmVzZW50IHRoZW4gd2UgbWVyZ2UgdGhlIHRpdGxlLlxuXHQgKiBAcGFyYW0gc3Vic2VjdGlvbiBPYmplY3RQYWdlIFN1YlNlY3Rpb25cblx0ICogQHJldHVybnMgQWRqdXN0bWVudCByZXN1bHRzIGNvbnRhaW5pbmcgdGhlIHN1YnNlY3Rpb24gYW5kIHRhYmxlIGFkanVzdG1lbnQgc3RhdHVzLlxuXHQgKi9cblx0YWRqdXN0U2VjdGlvbkNvbnRlbnRXaXRoVGl0bGUoc3Vic2VjdGlvbjogT2JqZWN0UGFnZVN1YlNlY3Rpb24pOiBBZGp1c3RtZW50UmVzdWx0cyB7XG5cdFx0bGV0IGFkanVzdG1lbnRQcm9wczogQWRqdXN0bWVudFByb3BzID0ge307XG5cdFx0Y29uc3QgYmxvY2tzID0gc3Vic2VjdGlvbi5nZXRCbG9ja3MoKTtcblx0XHRsZXQgY29udGVudDtcblx0XHRpZiAoYmxvY2tzLmxlbmd0aCA9PT0gMiAmJiBibG9ja3NbMV0uaXNBPFN1YlNlY3Rpb25CbG9jaz4oXCJzYXAuZmUudGVtcGxhdGVzLk9iamVjdFBhZ2UuY29udHJvbHMuU3ViU2VjdGlvbkJsb2NrXCIpKSB7XG5cdFx0XHRjb250ZW50ID0gYmxvY2tzWzFdLmdldEFnZ3JlZ2F0aW9uKFwiY29udGVudFwiKSBhcyBNYW5hZ2VkT2JqZWN0O1xuXHRcdFx0aWYgKGNvbnRlbnQgJiYgY29udGVudC5pc0EoXCJzYXAuZmUubWFjcm9zLmNvbnRyb2xzLnNlY3Rpb24uSVNpbmdsZVNlY3Rpb25Db250cmlidXRvclwiKSAmJiBibG9ja3NbMF0uaXNBPFRpdGxlPihcInNhcC5tLlRpdGxlXCIpKSB7XG5cdFx0XHRcdGFkanVzdG1lbnRQcm9wcyA9IHRoaXMuYWRqdXN0Rm9yU2luZ2xlQ29udGVudChjb250ZW50LCB7XG5cdFx0XHRcdFx0c2VjdGlvbmZyb21Db2xsZWN0aW9uRmFjZXQ6IHRydWUsXG5cdFx0XHRcdFx0VGl0bGU6IGJsb2Nrc1swXSxcblx0XHRcdFx0XHRTdWJTZWN0aW9uOiBzdWJzZWN0aW9uLFxuXHRcdFx0XHRcdHNob3dUaXRsZTogdGhpcy5nZXRWaXNpYmxlU3ViU2VjdGlvbnMoKS5sZW5ndGggPiAxXG5cdFx0XHRcdH0pO1xuXHRcdFx0fSBlbHNlIGlmIChjb250ZW50ICYmIGNvbnRlbnQuaXNBPER5bmFtaWNTaWRlQ29udGVudD4oXCJzYXAudWkubGF5b3V0LkR5bmFtaWNTaWRlQ29udGVudFwiKSkge1xuXHRcdFx0XHRjb250ZW50ID0gY29udGVudC5nZXRNYWluQ29udGVudCBpbnN0YW5jZW9mIEZ1bmN0aW9uICYmIGNvbnRlbnQ/LmdldE1haW5Db250ZW50KCk7XG5cdFx0XHRcdGlmIChjb250ZW50ICYmIGNvbnRlbnQubGVuZ3RoID09PSAxKSB7XG5cdFx0XHRcdFx0Y29udGVudCA9IGNvbnRlbnRbMF07XG5cdFx0XHRcdFx0YWRqdXN0bWVudFByb3BzID0gdGhpcy5hZGp1c3RGb3JTaW5nbGVDb250ZW50KGNvbnRlbnQsIHtcblx0XHRcdFx0XHRcdHNlY3Rpb25mcm9tQ29sbGVjdGlvbkZhY2V0OiB0cnVlLFxuXHRcdFx0XHRcdFx0VGl0bGU6IGJsb2Nrc1swXSBhcyBUaXRsZSxcblx0XHRcdFx0XHRcdFN1YlNlY3Rpb246IHN1YnNlY3Rpb25cblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4geyBzdWJTZWN0aW9uOiBzdWJzZWN0aW9uLCB0YWJsZXNBZGp1c3RlZDogYWRqdXN0bWVudFByb3BzLnRhYmxlc0FkanVzdGVkIH07XG5cdH1cblxuXHRnZXRTaW5nbGVDb250ZW50KHZpc2libGVTdWJTZWN0aW9ucz86IE9iamVjdFBhZ2VTdWJTZWN0aW9uW10pOiBNYW5hZ2VkT2JqZWN0IHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBzdWJTZWN0aW9ucyA9IHZpc2libGVTdWJTZWN0aW9ucyA/PyB0aGlzLmdldFZpc2libGVTdWJTZWN0aW9ucygpO1xuXHRcdGlmIChzdWJTZWN0aW9ucy5sZW5ndGggPT09IDEpIHtcblx0XHRcdGNvbnN0IGJsb2NrcyA9IHN1YlNlY3Rpb25zWzBdLmdldEJsb2NrcygpO1xuXHRcdFx0aWYgKGJsb2Nrcy5sZW5ndGggPT09IDEgJiYgYmxvY2tzWzBdLmlzQTxTdWJTZWN0aW9uQmxvY2s+KFwic2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLmNvbnRyb2xzLlN1YlNlY3Rpb25CbG9ja1wiKSkge1xuXHRcdFx0XHRyZXR1cm4gYmxvY2tzWzBdLmdldEFnZ3JlZ2F0aW9uKFwiY29udGVudFwiKSBhcyBNYW5hZ2VkT2JqZWN0O1xuXHRcdFx0fVxuXHRcdFx0Ly9JZiB0aGVyZSBpcyBhbiBpbnZpc2libGUgdGV4dCBiZWZvcmUgYSBzdGFuZGFyZCBidWlsZGluZyBibG9jaywgdGhlbiBhbHNvIHRoZSBtZXJnZSB0aXRsZSBsb2dpYyBzaG91bGQgYmUgYXBwbGllZCBhcyBpdHMgc3RpbGwgYSBzaW5nbGUgY29udGVudFxuXHRcdFx0ZWxzZSBpZiAoXG5cdFx0XHRcdGJsb2Nrcy5sZW5ndGggPT09IDIgJiZcblx0XHRcdFx0YmxvY2tzWzBdLmlzQShcInNhcC51aS5jb3JlLkludmlzaWJsZVRleHRcIikgJiZcblx0XHRcdFx0YmxvY2tzWzFdLmlzQTxTdWJTZWN0aW9uQmxvY2s+KFwic2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLmNvbnRyb2xzLlN1YlNlY3Rpb25CbG9ja1wiKVxuXHRcdFx0KVxuXHRcdFx0XHRyZXR1cm4gYmxvY2tzWzFdLmdldEFnZ3JlZ2F0aW9uKFwiY29udGVudFwiKSBhcyBNYW5hZ2VkT2JqZWN0O1xuXHRcdH1cblx0fVxuXG5cdGdldFZpc2libGVTdWJTZWN0aW9ucygpOiBPYmplY3RQYWdlU3ViU2VjdGlvbltdIHtcblx0XHRjb25zdCBzdWJTZWN0aW9ucyA9IHRoaXMuZ2V0U3ViU2VjdGlvbnMoKTtcblx0XHRyZXR1cm4gc3ViU2VjdGlvbnMucmVkdWNlKCh2aXNpYmxlU3ViU2VjdGlvbnM6IE9iamVjdFBhZ2VTdWJTZWN0aW9uW10sIHN1YlNlY3Rpb24pID0+IHtcblx0XHRcdGlmIChzdWJTZWN0aW9uLmdldFZpc2libGUoKSkge1xuXHRcdFx0XHR2aXNpYmxlU3ViU2VjdGlvbnMucHVzaChzdWJTZWN0aW9uKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiB2aXNpYmxlU3ViU2VjdGlvbnM7XG5cdFx0fSwgW10gYXMgT2JqZWN0UGFnZVN1YlNlY3Rpb25bXSk7XG5cdH1cblxuXHRnZXRTZWN0aW9uVGl0bGUoKTogc3RyaW5nIHtcblx0XHRsZXQgdGl0bGUgPSB0aGlzLmdldFRpdGxlKCk7XG5cdFx0aWYgKHRoaXMuZ2V0VmlzaWJsZVN1YlNlY3Rpb25zKCkubGVuZ3RoID09PSAxKSB7XG5cdFx0XHR0aXRsZSA9IHRoaXMuZ2V0VmlzaWJsZVN1YlNlY3Rpb25zKClbMF0uZ2V0VGl0bGUoKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRpdGxlO1xuXHR9XG5cblx0LyoqXG5cdCAqIEFkanVzdCB0aGUgc2VjdGlvbiBhbmQgc3Vic2VjdGlvbiBiYXNlZCBvbiB0aGUgYXZhaWxhYmxlIGNvbnRlbnQuXG5cdCAqIEBwYXJhbSBzaW5nbGVDb250ZW50IENvbnRlbnRcblx0ICogQHBhcmFtIHNlY3Rpb25EZXRhaWxzIERldGFpbHNcblx0ICogQHJldHVybnMgSXMgdGhlIHNlY3Rpb24gYWRqdXN0ZWQuXG5cdCAqL1xuXHRhZGp1c3RGb3JTaW5nbGVDb250ZW50KFxuXHRcdHNpbmdsZUNvbnRlbnQ6IE1hbmFnZWRPYmplY3QsXG5cdFx0c2VjdGlvbkRldGFpbHM/OiBSZWNvcmQ8c3RyaW5nLCBPYmplY3RQYWdlU3ViU2VjdGlvbiB8IFRpdGxlIHwgYm9vbGVhbj5cblx0KTogQWRqdXN0bWVudFByb3BzIHtcblx0XHQvLyBzYXBVaVRhYmxlT25PYmplY3RQYWdlQWRqdXN0bWVudHNGb3JTZWN0aW9uIGNsYXNzIGF0IGxldmVsIG1ha2VzIGJhY2tncm91bmQgb2Ygc3Vic2VjdGlvbiB0aXRsZXMgdHJhbnNwYXJlbnQuXG5cdFx0Ly8gVGhpcyB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kIGlzIHByb3BhZ2F0ZWQgdG8gY29udGVudHMgdGhhdCBhcmUgZXhwZWN0ZWQgdG8gc2hvdyBvcGFxdWUgYmFja2dyb3VuZHMgYnkgZGVmYXVsdC5cblx0XHQvLyBXZSBuZWVkIHRvIGFkZCBleGNsdXNpb24gY2xhc3MgXCJzYXBVaUFkanVzdGVkU2VjdGlvblN1YnNlY3Rpb25XaXRob3V0VGFibGVcIiB0byB0aGUgc3Vic2VjdGlvbiB0aGF0IGRvZXNuJ3QgbmVlZFxuXHRcdGNvbnN0IGNsYXNzZXNUb0FkZDogU2V0PHN0cmluZz4gPSBuZXcgU2V0KCk7XG5cdFx0Y29uc3Qgc2VjdGlvbk9ubHlDb250ZW50ID0gc2luZ2xlQ29udGVudCBhcyB1bmtub3duIGFzIElTaW5nbGVTZWN0aW9uQ29udHJpYnV0b3I7XG5cdFx0Ly8gVGhpcyBmdW5jdGlvbiB3aWxsIGFsc28gYmUgY2FsbGVkIGZyb20gdGhlIGV4dGVuc2lvbkFQSSBhbG9uZyB3aXRoIHNvbWUgY29udHJvbHMgYnkgdGhlIGFwcGxpY2F0aW9uIGRldmVsb3BlciwgdGhlIGJlbG93IGNoZWNrIGlzIGFkZGVkIHRvIGNvdmVyIHRoZSBjYXNlcyB3aGVyZSB0aGUgY29udHJvbHMgcGFzc2VkIGxpa2Ugc2FwLm0uVGl0bGUgYXJlIG5vdCBpbXBsZW1lbnRpbmcgdGhlIGludGVyZmFjZVxuXHRcdGNvbnN0IGNvbnRlbnRSb2xlID0gc2VjdGlvbk9ubHlDb250ZW50LmdldFNlY3Rpb25Db250ZW50Um9sZSAmJiBzZWN0aW9uT25seUNvbnRlbnQuZ2V0U2VjdGlvbkNvbnRlbnRSb2xlKCk7XG5cdFx0aWYgKGNvbnRlbnRSb2xlID09PSBcInByb3ZpZGVyXCIpIHtcblx0XHRcdGNvbnN0IGluZm9Gcm9tUHJvdmlkZXIgPVxuXHRcdFx0XHRzZWN0aW9uT25seUNvbnRlbnQuZ2V0RGF0YUZyb21Qcm92aWRlciAmJiBzZWN0aW9uT25seUNvbnRlbnQuZ2V0RGF0YUZyb21Qcm92aWRlcih0aGlzLnVzZVNpbmdsZVRleHRBcmVhRmllbGRBc05vdGVzKTtcblx0XHRcdGlmIChpbmZvRnJvbVByb3ZpZGVyICYmIHRoaXMuZ2V0VGl0bGUoKSA9PT0gaW5mb0Zyb21Qcm92aWRlci50aXRsZSkge1xuXHRcdFx0XHQvL3RoaXMuc2V0VGl0bGUoaW5mb0Zyb21Qcm92aWRlci50aXRsZSk7XG5cdFx0XHRcdHRoaXMuc2V0U2hvd1RpdGxlKHRydWUpO1xuXHRcdFx0XHQvLyBUT0RPOiBDaGVjayBpZiB0aGlzIGlzIHJlYWxseSBuZWVkZWQ/XG5cdFx0XHRcdGNsYXNzZXNUb0FkZC5hZGQoXCJzYXBVaVRhYmxlT25PYmplY3RQYWdlQWRqdXN0bWVudHNGb3JTZWN0aW9uXCIpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSBpZiAoY29udGVudFJvbGUgPT09IFwiY29uc3VtZXJcIikge1xuXHRcdFx0bGV0IHRpdGxlID0gdGhpcy5nZXRTZWN0aW9uVGl0bGUoKTtcblx0XHRcdGlmIChzZWN0aW9uRGV0YWlscz8uc2VjdGlvbmZyb21Db2xsZWN0aW9uRmFjZXQpIHtcblx0XHRcdFx0dGl0bGUgPSAoc2VjdGlvbkRldGFpbHM/LlRpdGxlIGFzIFRpdGxlKT8uZ2V0VGV4dCgpO1xuXHRcdFx0XHQoc2VjdGlvbkRldGFpbHM/LlRpdGxlIGFzIFRpdGxlKT8uc2V0VmlzaWJsZShmYWxzZSk7XG5cdFx0XHRcdChzZWN0aW9uRGV0YWlscz8uU3ViU2VjdGlvbiBhcyBPYmplY3RQYWdlU3ViU2VjdGlvbik/LnNldFNob3dUaXRsZShmYWxzZSk7XG5cdFx0XHR9IGVsc2UgaWYgKHNlY3Rpb25EZXRhaWxzPy5zZWN0aW9uRnJvbVJlZmVyZW5jZUZhY2V0KSB7XG5cdFx0XHRcdHRpdGxlID0gKHNlY3Rpb25EZXRhaWxzPy5TdWJTZWN0aW9uIGFzIE9iamVjdFBhZ2VTdWJTZWN0aW9uKT8uZ2V0VGl0bGUoKTtcblx0XHRcdFx0KHNlY3Rpb25EZXRhaWxzPy5TdWJTZWN0aW9uIGFzIE9iamVjdFBhZ2VTdWJTZWN0aW9uKT8uc2V0U2hvd1RpdGxlKGZhbHNlKTtcblx0XHRcdH1cblx0XHRcdGlmICh0aXRsZSA9PT0gXCJcIiAmJiBzZWN0aW9uRGV0YWlscz8uU3ViU2VjdGlvbikge1xuXHRcdFx0XHR0aXRsZSA9IChzZWN0aW9uRGV0YWlscz8uU3ViU2VjdGlvbiBhcyBPYmplY3RQYWdlU3ViU2VjdGlvbikuZ2V0VGl0bGUoKTtcblx0XHRcdH1cblx0XHRcdGlmIChzZWN0aW9uT25seUNvbnRlbnQuc2VuZERhdGFUb0NvbnN1bWVyKSB7XG5cdFx0XHRcdGNvbnN0IHN1YlNlY3Rpb25zID0gdGhpcy5nZXRTdWJTZWN0aW9ucygpO1xuXHRcdFx0XHRjb25zdCBoYXNNdWx0aXBsZVN1YnNlY3Rpb25zID0gISEoc3ViU2VjdGlvbnM/Lmxlbmd0aCA+IDEpO1xuXG5cdFx0XHRcdHNlY3Rpb25Pbmx5Q29udGVudC5zZW5kRGF0YVRvQ29uc3VtZXIoe1xuXHRcdFx0XHRcdHRpdGxlTGV2ZWw6IHRoaXMuZ2V0VGl0bGVMZXZlbCgpLFxuXHRcdFx0XHRcdHRpdGxlOiB0aXRsZSxcblx0XHRcdFx0XHRoZWFkZXJTdHlsZTogaGFzTXVsdGlwbGVTdWJzZWN0aW9ucyA/IFwiSDVcIiA6IFwiSDRcIlxuXHRcdFx0XHR9KTtcblx0XHRcdFx0dGhpcy5zZXRTaG93VGl0bGUoISFzZWN0aW9uRGV0YWlscz8uc2hvd1RpdGxlKTtcblx0XHRcdFx0Y2xhc3Nlc1RvQWRkLmFkZChcInNhcFVpVGFibGVPbk9iamVjdFBhZ2VBZGp1c3RtZW50c0ZvclNlY3Rpb25cIik7XG5cblx0XHRcdFx0Ly8gaWYgdGhlIHNlY3Rpb24gaGFzIG9ubHkgc3ViIHNlY3Rpb24sIHRoZW4gdGhlIHN1YiBzZWN0aW9uJ3MgdGl0bGUgc2hvdWxkIG5vdCBiZSBkaXNwbGF5ZWRcblx0XHRcdFx0aWYgKCFoYXNNdWx0aXBsZVN1YnNlY3Rpb25zKSBzdWJTZWN0aW9uc1swXS5zZXRTaG93VGl0bGUoZmFsc2UpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSBpZiAoc2luZ2xlQ29udGVudD8uaXNBKFwic2FwLm0uVGl0bGVcIikpIHtcblx0XHRcdGNvbnN0IHN1YlNlY3Rpb25zID0gdGhpcy5nZXRWaXNpYmxlU3ViU2VjdGlvbnMoKSB8fCBbXTtcblx0XHRcdGNvbnN0IGhhc011bHRpcGxlU3Vic2VjdGlvbnMgPSBzdWJTZWN0aW9ucy5sZW5ndGggPiAxO1xuXG5cdFx0XHQvLyBIYW5kbGUgdGl0bGUgc3R5bGluZyBhbmQgdmlzaWJpbGl0eSBpZiByZXVzZSBjb21wb25lbnQgaXMgbm90IGVuYWJsZWRcblx0XHRcdGlmICghc2VjdGlvbkRldGFpbHM/Lm11bHRpcGxlU3ViU2VjdGlvbnNXaXRoUmV1c2VDb21wb25lbnQpIHtcblx0XHRcdFx0Y29uc3QgdGl0bGUgPSBzaW5nbGVDb250ZW50IGFzIFRpdGxlO1xuXHRcdFx0XHR0aXRsZS5zZXRUZXh0KHRoaXMuZ2V0VGl0bGUoKSk7XG5cdFx0XHRcdHRpdGxlLnNldFRpdGxlU3R5bGUoaGFzTXVsdGlwbGVTdWJzZWN0aW9ucyA/IFwiSDVcIiA6IFwiSDRcIik7XG5cdFx0XHRcdHRpdGxlLnNldExldmVsKHRoaXMuZ2V0VGl0bGVMZXZlbCgpKTtcblx0XHRcdFx0dGhpcy5zZXRTaG93VGl0bGUoZmFsc2UpO1xuXHRcdFx0XHRjbGFzc2VzVG9BZGQuYWRkKFwic2FwVWlUYWJsZU9uT2JqZWN0UGFnZUFkanVzdG1lbnRzRm9yU2VjdGlvblwiKTtcblx0XHRcdH1cblx0XHRcdC8vIEhpZGUgc3Vic2VjdGlvbiB0aXRsZSBpZiB0aGVyZSdzIG9ubHkgb25lIHZpc2libGUgc3Vic2VjdGlvblxuXHRcdFx0aWYgKHN1YlNlY3Rpb25zLmxlbmd0aCA9PT0gMSkge1xuXHRcdFx0XHRzdWJTZWN0aW9uc1swXS5zZXRTaG93VGl0bGUoZmFsc2UpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSBpZiAodGhpcy5jaGVja0lmTm90ZXNSZXVzZUNvbXBvbmVudChzaW5nbGVDb250ZW50KSkge1xuXHRcdFx0LyoqXG5cdFx0XHQgKiBOb3RlcyBSZXVzZSBjb21wb25lbnQgaGFzIHRoZSBmb2xsb3dpbmcgc3RydWN0dXJlIDpcblx0XHRcdCAqIDxWQm94IGlkPVwiTm90ZVNlY3Rpb25cIj5cblx0XHRcdCAqIDxNZXNzYWdlU3RyaXAgaWQ9XCJub3Rlc0RlYnVnUHJvcGVydGllc1wiPlxuXHRcdFx0ICogPExpc3QgaWQ9XCJOb3Rlc0xpc3RcIj5cblx0XHRcdCAqIDxoZWFkZXJUb29sYmFyPlxuXHRcdFx0ICogPE92ZXJmbG93VG9vbGJhciBpZD1cIm5vdGVIZWFkZXJPdmVyZmxvd1Rvb2xiYXJcIiBzdHlsZT1cIlN0YW5kYXJkXCI+XG5cdFx0XHQgKiAgICAgICA8VGl0bGUgaWQ9XCJub3RlSGVhZGVyT3ZlcmZsb3dUb29sYmFyVGl0bGVcIi8+XG5cdFx0XHQgKlx0XHQuLi4uLi5cblx0XHRcdCAqXHQ8L092ZXJmbG93VG9vbGJhcj5cblx0XHRcdCAqXHQ8L2hlYWRlclRvb2xiYXI+XG5cdFx0XHQgKlx0Li4uLi4uXG5cdFx0XHQgKlx0PC9MaXN0PlxuXHRcdFx0ICpcdDwvVkJveD5cblx0XHRcdCAqXHQuLi4uLlxuXHRcdFx0ICpcblx0XHRcdCAqIFdlIGFyZSBhcHBseWluZyB0aGUgdGl0bGUgbWVyZ2UgbG9naWMgZm9yIHRoZSB0aXRsZSB3aXRoaW4gdGhlIG92ZXJmbG93IHRvb2xiYXJcblx0XHRcdCAqIGluIHRoZSBmb2xsb3dpbmcgY29kZVxuXHRcdFx0ICpcblx0XHRcdCAqL1xuXHRcdFx0Y29uc3QgdkJveEl0ZW1zID0gKHNpbmdsZUNvbnRlbnQgYXMgVkJveCkuZ2V0SXRlbXMoKTtcblx0XHRcdHZCb3hJdGVtcy5mb3JFYWNoKCh2Qm94SXRlbSkgPT4ge1xuXHRcdFx0XHRjb25zdCBoZWFkZXJUb29sYmFyID0gdkJveEl0ZW0uZ2V0QWdncmVnYXRpb24oXCJoZWFkZXJUb29sYmFyXCIpO1xuXHRcdFx0XHRpZiAoaGVhZGVyVG9vbGJhcikge1xuXHRcdFx0XHRcdChoZWFkZXJUb29sYmFyIGFzIE92ZXJmbG93VG9vbGJhcik/LmdldENvbnRlbnQoKS5mb3JFYWNoKChjb250cm9sKSA9PiB7XG5cdFx0XHRcdFx0XHRpZiAoY29udHJvbC5pc0EoXCJzYXAubS5UaXRsZVwiKSkge1xuXHRcdFx0XHRcdFx0XHRjb25zdCBub3Rlc1RpdGxlID0gY29udHJvbCBhcyBUaXRsZTtcblx0XHRcdFx0XHRcdFx0bm90ZXNUaXRsZS5zZXRUZXh0KHRoaXMuZ2V0VGl0bGUoKSk7XG5cdFx0XHRcdFx0XHRcdG5vdGVzVGl0bGUuc2V0VGl0bGVTdHlsZShcIkg0XCIpO1xuXHRcdFx0XHRcdFx0XHRub3Rlc1RpdGxlLnNldExldmVsKHRoaXMuZ2V0VGl0bGVMZXZlbCgpKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0XHQvLyBTaW5nbGUgY29udGVudCB3aXRoIHNpbmdsZSBzdWJzZWN0aW9uIG1lYW5zIHNlY3Rpb24gdGl0bGUoMSksIHN1YnNlY3Rpb24gdGl0bGUoMikgYW5kIE5vdGVzIFJldXNlIGNvbXBvbmVudCB0aXRsZSgzKSBhcmUgYXZhaWxhYmxlLlxuXHRcdFx0Ly8gV2Ugc2hhbGwgc2hvdyBvbmx5IDMuIFdlIGhpZGUgMSBhbmQgMi5cblx0XHRcdGNvbnN0IHN1YlNlY3Rpb25zID0gdGhpcy5nZXRWaXNpYmxlU3ViU2VjdGlvbnMoKTtcblx0XHRcdGlmIChzdWJTZWN0aW9ucy5sZW5ndGggPT09IDEpIHtcblx0XHRcdFx0c3ViU2VjdGlvbnNbMF0uc2V0U2hvd1RpdGxlKGZhbHNlKTtcblx0XHRcdH1cblx0XHRcdHRoaXMuc2V0U2hvd1RpdGxlKGZhbHNlKTtcblx0XHRcdGNsYXNzZXNUb0FkZC5hZGQoXCJzYXBVaVRhYmxlT25PYmplY3RQYWdlQWRqdXN0bWVudHNGb3JTZWN0aW9uXCIpO1xuXHRcdH1cblx0XHR0aGlzLmFkZFN0eWxlQ2xhc3MoQXJyYXkuZnJvbShjbGFzc2VzVG9BZGQpLmpvaW4oXCIgXCIpKTtcblx0XHRyZXR1cm4geyB0YWJsZXNBZGp1c3RlZDogY2xhc3Nlc1RvQWRkLmhhcyhcInNhcFVpVGFibGVPbk9iamVjdFBhZ2VBZGp1c3RtZW50c0ZvclNlY3Rpb25cIikgfTtcblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBTZWN0aW9uO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0VBb0JBO0VBQUEsSUFlTUEsT0FBTyxJQUFBQyxJQUFBLEdBRlpDLGNBQWMsQ0FBQyxnQ0FBZ0MsRUFBRTtJQUFFQyxVQUFVLEVBQUU7RUFBbUQsQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FDcEhDLEtBQUssQ0FBQ0MsbUJBQW1CLENBQUMsRUFBQUMsS0FBQSxHQUd6QkMsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRTtFQUFTLENBQUMsQ0FBQyxFQUFBQyxLQUFBLEdBRzVCRixRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFO0VBQVUsQ0FBQyxDQUFDLEVBQUFFLEtBQUEsR0FNN0JILFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUU7RUFBUyxDQUFDLENBQUMsRUFBQUcsS0FBQSxHQU01QkosUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRTtFQUFTLENBQUMsQ0FBQyxFQUFBUixJQUFBLENBQUFZLE1BQUEsR0FBQVQsS0FBQSxDQUFBUyxNQUFBLElBQUFDLE9BQUEsMEJBQUFDLGtCQUFBO0lBRzdCLFNBQUFmLFFBQVlnQixVQUE4RCxFQUFFQyxNQUFtQyxFQUFFO01BQUEsSUFBQUMsS0FBQTtNQUNoSEEsS0FBQSxHQUFBSCxrQkFBQSxDQUFBSSxJQUFBLE9BQU1ILFVBQVUsRUFBdUJDLE1BQU0sQ0FBQztNQXBCL0M7TUFBQUcsMEJBQUEsQ0FBQUYsS0FBQSxxQkFBQUcsV0FBQSxFQUFBSCxLQUFBO01BQUFFLDBCQUFBLENBQUFGLEtBQUEsbUNBQUFJLFlBQUEsRUFBQUosS0FBQTtNQU9BO0FBQ0Q7QUFDQTtNQUZDRSwwQkFBQSxDQUFBRixLQUFBLHVCQUFBSyxZQUFBLEVBQUFMLEtBQUE7TUFNQTtBQUNEO0FBQ0E7TUFGQ0UsMEJBQUEsQ0FBQUYsS0FBQSwwQkFBQU0sWUFBQSxFQUFBTixLQUFBO01BUUNBLEtBQUEsQ0FBS08sZ0JBQWdCLENBQUMsQ0FBQztNQUFDLE9BQUFQLEtBQUE7SUFDekI7SUFBQ1EsY0FBQSxDQUFBMUIsT0FBQSxFQUFBZSxrQkFBQTtJQUFBLElBQUFZLE1BQUEsR0FBQTNCLE9BQUEsQ0FBQTRCLFNBQUE7SUFBQUQsTUFBQSxDQU1PRixnQkFBZ0IsR0FBeEIsU0FBUUEsZ0JBQWdCQSxDQUFBLEVBQVM7TUFDaEMsTUFBTUksY0FBYyxHQUFHO1FBQ3RCQyxnQkFBZ0IsRUFBRUEsQ0FBQSxLQUFZO1VBQzdCLE1BQU1DLFdBQVcsR0FBRyxJQUFJLENBQUNDLGNBQWMsQ0FBQyxDQUFpQjtVQUN6RCxJQUFJRCxXQUFXLENBQUNFLE1BQU0sRUFBRTtZQUN2QkYsV0FBVyxDQUFDRyxPQUFPLENBQUVDLFVBQXNCLElBQUs7Y0FDL0M7Y0FDQSxJQUFJQSxVQUFVLENBQUNDLFNBQVMsQ0FBQyxDQUFDLEVBQUVILE1BQU0sS0FBSyxDQUFDLEVBQUU7Z0JBQ3pDLE1BQU1JLHVCQUF1QixHQUFHO2tCQUMvQkMsaUJBQWlCLEVBQUVBLENBQUEsS0FBWTtvQkFDOUIsSUFBSSxDQUFDQyw0QkFBNEIsQ0FBQyxDQUFDO29CQUNuQ0osVUFBVSxDQUFDSyxtQkFBbUIsQ0FBQ0gsdUJBQXVCLENBQUM7a0JBQ3hEO2dCQUNELENBQUM7Z0JBQ0RGLFVBQVUsQ0FBQ00sZ0JBQWdCLENBQUNKLHVCQUF1QixDQUFDO2NBQ3JELENBQUMsTUFBTTtnQkFDTixJQUFJLENBQUNFLDRCQUE0QixDQUFDLENBQUM7Y0FDcEM7WUFDRCxDQUFDLENBQUM7VUFDSCxDQUFDLE1BQU07WUFDTixJQUFJLENBQUNBLDRCQUE0QixDQUFDLENBQUM7VUFDcEM7UUFDRDtNQUNELENBQUM7TUFFRCxJQUFJLENBQUNFLGdCQUFnQixDQUFDWixjQUFjLENBQUM7SUFDdEM7O0lBRUE7QUFDRDtBQUNBO0FBQ0EsT0FIQztJQUFBRixNQUFBLENBSUFZLDRCQUE0QixHQUE1QixTQUFBQSw0QkFBNEJBLENBQUEsRUFBUztNQUNwQyxNQUFNRyxJQUFJLEdBQUdDLFdBQVcsQ0FBQ0MsYUFBYSxDQUFDLElBQUksQ0FBQztNQUM1QyxJQUFJLElBQUksQ0FBQ0MsNkJBQTZCLEVBQUU7UUFDdkMsSUFBSSxDQUFDQyx1Q0FBdUMsQ0FBQyxDQUFDO01BQy9DO01BQ0EsSUFBSSxDQUFDQyw4QkFBOEIsQ0FBQ0wsSUFBSSxDQUFDO0lBQzFDLENBQUM7SUFBQWYsTUFBQSxDQUVEcUIsa0JBQWtCLEdBQWxCLFNBQUFBLGtCQUFrQkEsQ0FBQ0MsZUFBdUIsRUFBUTtNQUNqRCxNQUFNQyxTQUFTLEdBQUdELGVBQWUsQ0FBQ0UsS0FBSyxDQUFDLEdBQUcsQ0FBQztNQUM1QyxJQUFJLENBQUNDLHNCQUFzQixHQUFHRixTQUFTLEVBQUVHLEdBQUcsQ0FBQyxDQUFDO01BQzlDLElBQUksQ0FBQ0Msc0JBQXNCLEdBQUdKLFNBQVMsRUFBRUssSUFBSSxDQUFDLEdBQUcsQ0FBQztNQUNsRCxJQUFJLENBQUNDLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRVAsZUFBZSxDQUFDO0lBQ3JEOztJQUVBO0lBQUE7SUFBQXRCLE1BQUEsQ0FDQThCLGFBQWEsR0FBYixTQUFBQSxhQUFhQSxDQUFDQyxTQUFpQyxFQUFFQyxNQUFlLEVBQVE7TUFDdkU1QyxrQkFBQSxDQUFBYSxTQUFBLENBQU02QixhQUFhLENBQUF0QyxJQUFBLE9BQUN1QyxTQUFTLEVBQUVDLE1BQU07TUFDckMsTUFBTUMsaUJBQWlCLEdBQUdDLFNBQVMsQ0FBQ0Msb0JBQW9CLENBQUMsSUFBSSxDQUFzQjtNQUNuRixNQUFNQyxjQUFjLEdBQUdILGlCQUFpQixDQUFDSSxpQkFBaUIsQ0FBQyxDQUFDO01BQzVELElBQUlELGNBQWMsRUFBRTtRQUNuQkUsV0FBVyxDQUFDQyxtQ0FBbUMsQ0FBQyxJQUFJLEVBQUVILGNBQWMsQ0FBQztNQUN0RTtNQUNBLE9BQU8sSUFBSTtJQUNaOztJQUVBO0FBQ0Q7QUFDQTtBQUNBLE9BSEM7SUFBQXBDLE1BQUEsQ0FJQXdDLGtDQUFrQyxHQUFsQyxTQUFBQSxrQ0FBa0NBLENBQUNDLGlCQUFzQyxFQUFRO01BQ2hGLElBQUksSUFBSSxDQUFDQyxhQUFhLENBQUMsNkNBQTZDLENBQUMsRUFBRTtRQUN0RUQsaUJBQWlCLENBQUNsQyxPQUFPLENBQUNvQyxJQUFBLElBQW9DO1VBQUEsSUFBbkM7WUFBRW5DLFVBQVU7WUFBRW9DO1VBQWUsQ0FBQyxHQUFBRCxJQUFBO1VBQ3hELElBQUlDLGNBQWMsRUFBRTtZQUNuQnBDLFVBQVUsQ0FBQ3FDLGdCQUFnQixDQUFDLDRDQUE0QyxDQUFDO1VBQzFFLENBQUMsTUFBTTtZQUNOckMsVUFBVSxDQUFDc0MsYUFBYSxDQUFDLDRDQUE0QyxDQUFDO1VBQ3ZFO1FBQ0QsQ0FBQyxDQUFDO01BQ0g7SUFDRDs7SUFFQTtBQUNEO0FBQ0EsT0FGQztJQUFBOUMsTUFBQSxDQUdBbUIsdUNBQXVDLEdBQXZDLFNBQUFBLHVDQUF1Q0EsQ0FBQSxFQUFTO01BQy9DLE1BQU00QixrQkFBa0IsR0FBRyxJQUFJLENBQUNDLHFCQUFxQixDQUFDLENBQUM7TUFDdkQsTUFBTVAsaUJBQWlCLEdBQUdNLGtCQUFrQixDQUFDRSxNQUFNLENBQUMsQ0FBQ0MsT0FBNEIsRUFBRTFDLFVBQWdDLEtBQUs7UUFDdkgsSUFBSW9DLGNBQWM7UUFDbEIsTUFBTU8sT0FBTyxHQUFHLElBQUksQ0FBQ0MsZ0JBQWdCLENBQUMsQ0FBQzVDLFVBQVUsQ0FBQyxDQUFDO1FBQ25ELElBQUkyQyxPQUFPLEVBQUU7VUFDWlAsY0FBYyxHQUFHLElBQUksQ0FBQ1Msc0JBQXNCLENBQUNGLE9BQU8sQ0FBQyxDQUFDUCxjQUFjO1FBQ3JFO1FBQ0FNLE9BQU8sQ0FBQ0ksSUFBSSxDQUFDO1VBQUU5QyxVQUFVO1VBQUVvQztRQUFlLENBQUMsQ0FBQztRQUM1QyxPQUFPTSxPQUFPO01BQ2YsQ0FBQyxFQUFFLEVBQUUsQ0FBQztNQUNOLElBQUksQ0FBQ1Ysa0NBQWtDLENBQUNDLGlCQUFpQixDQUFDO0lBQzNELENBQUM7SUFBQXpDLE1BQUEsQ0FFRG9CLDhCQUE4QixHQUE5QixTQUFBQSw4QkFBOEJBLENBQUNMLElBQVksRUFBMkI7TUFDckUsSUFBS0EsSUFBSSxFQUFFd0MsV0FBVyxDQUFDLENBQUMsRUFBaUNDLGFBQWEsS0FBSyxNQUFNLEVBQUU7UUFDbEYsTUFBTUMsYUFBYSxHQUFHLElBQUksQ0FBQ0wsZ0JBQWdCLENBQUMsQ0FBQztRQUM3QyxJQUNDSyxhQUFhLEtBQ1pBLGFBQWEsQ0FBQ0MsR0FBRyxDQUFDLDBEQUEwRCxDQUFDLElBQzdFLElBQUksQ0FBQ0MsMEJBQTBCLENBQUNGLGFBQWEsQ0FBQyxDQUFDLEVBQy9DO1VBQ0QsTUFBTTtZQUFFYixjQUFjLEVBQUVnQjtVQUEyQixDQUFDLEdBQUcsSUFBSSxDQUFDUCxzQkFBc0IsQ0FBQ0ksYUFBYSxDQUFDO1VBQ2pHLE1BQU1yRCxXQUFXLEdBQUcsSUFBSSxDQUFDNEMscUJBQXFCLENBQUMsQ0FBQztVQUNoRCxJQUFJLENBQUNSLGtDQUFrQyxDQUFDLENBQUM7WUFBRWhDLFVBQVUsRUFBRUosV0FBVyxDQUFDLENBQUMsQ0FBQztZQUFFd0MsY0FBYyxFQUFFZ0I7VUFBMkIsQ0FBQyxDQUFDLENBQUM7UUFDdEgsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDakMsc0JBQXNCLElBQUksSUFBSSxDQUFDRixzQkFBc0IsRUFBRTtVQUN0RSxPQUFPb0MsU0FBUyxDQUFDQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUNuQyxzQkFBc0IsRUFBRSxJQUFJLENBQUNGLHNCQUFzQixFQUFFVixJQUFJLEVBQUUsSUFBSSxDQUFDO1FBQy9HLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQ1YsY0FBYyxDQUFDLENBQUMsQ0FBQ0MsTUFBTSxHQUFHLENBQUMsRUFBRTtVQUM1QztVQUNBLElBQUksQ0FBQ3lELG9CQUFvQixDQUFDLENBQUM7UUFDNUIsQ0FBQyxNQUFNO1VBQ05DLEdBQUcsQ0FBQ0MsS0FBSyxDQUFDLDBHQUEwRyxDQUFDO1FBQ3RIO01BQ0QsQ0FBQyxNQUFNO1FBQ04sSUFBSSxDQUFDRixvQkFBb0IsQ0FBQyxDQUFDO01BQzVCO0lBQ0Q7O0lBRUE7QUFDRDtBQUNBO0FBQ0E7QUFDQSxPQUpDO0lBQUEvRCxNQUFBLENBS0EyRCwwQkFBMEIsR0FBMUIsU0FBQUEsMEJBQTBCQSxDQUFDRixhQUE0QixFQUFXO01BQ2pFLElBQUlBLGFBQWEsQ0FBQ0MsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJRCxhQUFhLENBQUNTLEtBQUssQ0FBQyxDQUFDLENBQUNDLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBRTtRQUNyRixPQUFPLElBQUk7TUFDWjtNQUNBLE9BQU8sS0FBSztJQUNiOztJQUVBO0FBQ0Q7QUFDQSxPQUZDO0lBQUFuRSxNQUFBLENBR0ErRCxvQkFBb0IsR0FBcEIsU0FBQUEsb0JBQW9CQSxDQUFBLEVBQVM7TUFDNUIsTUFBTWhCLGtCQUFrQixHQUFHLElBQUksQ0FBQ0MscUJBQXFCLENBQUMsQ0FBQztNQUN2RCxJQUFJRCxrQkFBa0IsQ0FBQ3pDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDcEMsTUFBTTtVQUFFc0MsY0FBYyxFQUFFd0I7UUFBOEIsQ0FBQyxHQUFHLElBQUksQ0FBQ0MsNkJBQTZCLENBQUN0QixrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuSCxJQUFJLENBQUNQLGtDQUFrQyxDQUFDLENBQUM7VUFBRWhDLFVBQVUsRUFBRXVDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztVQUFFSCxjQUFjLEVBQUV3QjtRQUE4QixDQUFDLENBQUMsQ0FBQztNQUNoSSxDQUFDLE1BQU07UUFDTixNQUFNM0IsaUJBQWlCLEdBQUdNLGtCQUFrQixDQUFDRSxNQUFNLENBQUMsQ0FBQ0MsT0FBNEIsRUFBRW9CLFVBQWdDLEtBQUs7VUFDdkgsSUFBSTFCLGNBQWM7VUFDbEIsSUFBSU8sT0FBTztVQUNYLE1BQU1vQixNQUFNLEdBQUdELFVBQVUsQ0FBQzdELFNBQVMsQ0FBQyxDQUFDO1VBQ3JDO1VBQ0E7VUFDQSxJQUFJOEQsTUFBTSxDQUFDakUsTUFBTSxLQUFLLENBQUMsSUFBSWlFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRWIsR0FBRyxDQUFrQixzREFBc0QsQ0FBQyxFQUFFO1lBQ25IZCxjQUFjLEdBQUcsSUFBSSxDQUFDeUIsNkJBQTZCLENBQUNDLFVBQVUsQ0FBQyxDQUFDMUIsY0FBYztVQUMvRTtVQUNBO1VBQUEsS0FDSyxJQUFJMkIsTUFBTSxDQUFDakUsTUFBTSxLQUFLLENBQUMsSUFBSWlFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRWIsR0FBRyxDQUFrQixzREFBc0QsQ0FBQyxFQUFFO1lBQ3hIUCxPQUFPLEdBQUdvQixNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUNDLGNBQWMsQ0FBQyxTQUFTLENBQWtCO1lBQzlELElBQUlyQixPQUFPLENBQUNPLEdBQUcsQ0FBQywwREFBMEQsQ0FBQyxFQUFFO2NBQzVFZCxjQUFjLEdBQUcsSUFBSSxDQUFDUyxzQkFBc0IsQ0FBQ0YsT0FBTyxFQUFFO2dCQUNyRHNCLHlCQUF5QixFQUFFLElBQUk7Z0JBQy9CQyxVQUFVLEVBQUVKLFVBQVU7Z0JBQ3RCSyxTQUFTLEVBQUUsSUFBSSxDQUFDM0IscUJBQXFCLENBQUMsQ0FBQyxDQUFDMUMsTUFBTSxHQUFHO2NBQ2xELENBQUMsQ0FBQyxDQUFDc0MsY0FBYztZQUNsQixDQUFDLE1BQU0sSUFBS08sT0FBTyxFQUF5Qk8sR0FBRyxDQUFDLGtDQUFrQyxDQUFDLEVBQUU7Y0FDcEZQLE9BQU8sR0FDTEEsT0FBTyxDQUF3QnlCLGNBQWMsWUFBWUMsUUFBUSxJQUNqRTFCLE9BQU8sRUFBeUJ5QixjQUFjLENBQUMsQ0FBQztjQUNsRCxJQUFJekIsT0FBTyxJQUFJQSxPQUFPLENBQUM3QyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUNwQzZDLE9BQU8sR0FBR0EsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDcEJQLGNBQWMsR0FBRyxJQUFJLENBQUNTLHNCQUFzQixDQUFDRixPQUFPLEVBQUU7a0JBQ3JEc0IseUJBQXlCLEVBQUUsSUFBSTtrQkFDL0JDLFVBQVUsRUFBRUo7Z0JBQ2IsQ0FBQyxDQUFDLENBQUMxQixjQUFjO2NBQ2xCO1lBQ0Q7VUFDRDtVQUNBTSxPQUFPLENBQUNJLElBQUksQ0FBQztZQUFFOUMsVUFBVSxFQUFFOEQsVUFBVTtZQUFFMUI7VUFBZSxDQUFDLENBQUM7VUFDeEQsT0FBT00sT0FBTztRQUNmLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDTixJQUFJLENBQUNWLGtDQUFrQyxDQUFDQyxpQkFBaUIsQ0FBQztNQUMzRDtJQUNEOztJQUVBO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsT0FKQztJQUFBekMsTUFBQSxDQUtBcUUsNkJBQTZCLEdBQTdCLFNBQUFBLDZCQUE2QkEsQ0FBQ0MsVUFBZ0MsRUFBcUI7TUFDbEYsSUFBSVEsZUFBZ0MsR0FBRyxDQUFDLENBQUM7TUFDekMsTUFBTVAsTUFBTSxHQUFHRCxVQUFVLENBQUM3RCxTQUFTLENBQUMsQ0FBQztNQUNyQyxJQUFJMEMsT0FBTztNQUNYLElBQUlvQixNQUFNLENBQUNqRSxNQUFNLEtBQUssQ0FBQyxJQUFJaUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDYixHQUFHLENBQWtCLHNEQUFzRCxDQUFDLEVBQUU7UUFDbEhQLE9BQU8sR0FBR29CLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQ0MsY0FBYyxDQUFDLFNBQVMsQ0FBa0I7UUFDOUQsSUFBSXJCLE9BQU8sSUFBSUEsT0FBTyxDQUFDTyxHQUFHLENBQUMsMERBQTBELENBQUMsSUFBSWEsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDYixHQUFHLENBQVEsYUFBYSxDQUFDLEVBQUU7VUFDOUhvQixlQUFlLEdBQUcsSUFBSSxDQUFDekIsc0JBQXNCLENBQUNGLE9BQU8sRUFBRTtZQUN0RDRCLDBCQUEwQixFQUFFLElBQUk7WUFDaENDLEtBQUssRUFBRVQsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNoQkcsVUFBVSxFQUFFSixVQUFVO1lBQ3RCSyxTQUFTLEVBQUUsSUFBSSxDQUFDM0IscUJBQXFCLENBQUMsQ0FBQyxDQUFDMUMsTUFBTSxHQUFHO1VBQ2xELENBQUMsQ0FBQztRQUNILENBQUMsTUFBTSxJQUFJNkMsT0FBTyxJQUFJQSxPQUFPLENBQUNPLEdBQUcsQ0FBcUIsa0NBQWtDLENBQUMsRUFBRTtVQUMxRlAsT0FBTyxHQUFHQSxPQUFPLENBQUN5QixjQUFjLFlBQVlDLFFBQVEsSUFBSTFCLE9BQU8sRUFBRXlCLGNBQWMsQ0FBQyxDQUFDO1VBQ2pGLElBQUl6QixPQUFPLElBQUlBLE9BQU8sQ0FBQzdDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDcEM2QyxPQUFPLEdBQUdBLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDcEIyQixlQUFlLEdBQUcsSUFBSSxDQUFDekIsc0JBQXNCLENBQUNGLE9BQU8sRUFBRTtjQUN0RDRCLDBCQUEwQixFQUFFLElBQUk7Y0FDaENDLEtBQUssRUFBRVQsTUFBTSxDQUFDLENBQUMsQ0FBVTtjQUN6QkcsVUFBVSxFQUFFSjtZQUNiLENBQUMsQ0FBQztVQUNIO1FBQ0Q7TUFDRDtNQUNBLE9BQU87UUFBRTlELFVBQVUsRUFBRThELFVBQVU7UUFBRTFCLGNBQWMsRUFBRWtDLGVBQWUsQ0FBQ2xDO01BQWUsQ0FBQztJQUNsRixDQUFDO0lBQUE1QyxNQUFBLENBRURvRCxnQkFBZ0IsR0FBaEIsU0FBQUEsZ0JBQWdCQSxDQUFDTCxrQkFBMkMsRUFBNkI7TUFDeEYsTUFBTTNDLFdBQVcsR0FBRzJDLGtCQUFrQixJQUFJLElBQUksQ0FBQ0MscUJBQXFCLENBQUMsQ0FBQztNQUN0RSxJQUFJNUMsV0FBVyxDQUFDRSxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQzdCLE1BQU1pRSxNQUFNLEdBQUduRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUNLLFNBQVMsQ0FBQyxDQUFDO1FBQ3pDLElBQUk4RCxNQUFNLENBQUNqRSxNQUFNLEtBQUssQ0FBQyxJQUFJaUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDYixHQUFHLENBQWtCLHNEQUFzRCxDQUFDLEVBQUU7VUFDbEgsT0FBT2EsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDQyxjQUFjLENBQUMsU0FBUyxDQUFDO1FBQzNDO1FBQ0E7UUFBQSxLQUNLLElBQ0pELE1BQU0sQ0FBQ2pFLE1BQU0sS0FBSyxDQUFDLElBQ25CaUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDYixHQUFHLENBQUMsMkJBQTJCLENBQUMsSUFDMUNhLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQ2IsR0FBRyxDQUFrQixzREFBc0QsQ0FBQyxFQUV0RixPQUFPYSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUNDLGNBQWMsQ0FBQyxTQUFTLENBQUM7TUFDNUM7SUFDRCxDQUFDO0lBQUF4RSxNQUFBLENBRURnRCxxQkFBcUIsR0FBckIsU0FBQUEscUJBQXFCQSxDQUFBLEVBQTJCO01BQy9DLE1BQU01QyxXQUFXLEdBQUcsSUFBSSxDQUFDQyxjQUFjLENBQUMsQ0FBQztNQUN6QyxPQUFPRCxXQUFXLENBQUM2QyxNQUFNLENBQUMsQ0FBQ0Ysa0JBQTBDLEVBQUV2QyxVQUFVLEtBQUs7UUFDckYsSUFBSUEsVUFBVSxDQUFDeUUsVUFBVSxDQUFDLENBQUMsRUFBRTtVQUM1QmxDLGtCQUFrQixDQUFDTyxJQUFJLENBQUM5QyxVQUFVLENBQUM7UUFDcEM7UUFDQSxPQUFPdUMsa0JBQWtCO01BQzFCLENBQUMsRUFBRSxFQUE0QixDQUFDO0lBQ2pDLENBQUM7SUFBQS9DLE1BQUEsQ0FFRGtGLGVBQWUsR0FBZixTQUFBQSxlQUFlQSxDQUFBLEVBQVc7TUFDekIsSUFBSUMsS0FBSyxHQUFHLElBQUksQ0FBQ0MsUUFBUSxDQUFDLENBQUM7TUFDM0IsSUFBSSxJQUFJLENBQUNwQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMxQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQzlDNkUsS0FBSyxHQUFHLElBQUksQ0FBQ25DLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ29DLFFBQVEsQ0FBQyxDQUFDO01BQ25EO01BQ0EsT0FBT0QsS0FBSztJQUNiOztJQUVBO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUxDO0lBQUFuRixNQUFBLENBTUFxRCxzQkFBc0IsR0FBdEIsU0FBQUEsc0JBQXNCQSxDQUNyQkksYUFBNEIsRUFDNUI0QixjQUF1RSxFQUNyRDtNQUNsQjtNQUNBO01BQ0E7TUFDQSxNQUFNQyxZQUF5QixHQUFHLElBQUlDLEdBQUcsQ0FBQyxDQUFDO01BQzNDLE1BQU1DLGtCQUFrQixHQUFHL0IsYUFBcUQ7TUFDaEY7TUFDQSxNQUFNZ0MsV0FBVyxHQUFHRCxrQkFBa0IsQ0FBQ0UscUJBQXFCLElBQUlGLGtCQUFrQixDQUFDRSxxQkFBcUIsQ0FBQyxDQUFDO01BQzFHLElBQUlELFdBQVcsS0FBSyxVQUFVLEVBQUU7UUFDL0IsTUFBTUUsZ0JBQWdCLEdBQ3JCSCxrQkFBa0IsQ0FBQ0ksbUJBQW1CLElBQUlKLGtCQUFrQixDQUFDSSxtQkFBbUIsQ0FBQyxJQUFJLENBQUMxRSw2QkFBNkIsQ0FBQztRQUNySCxJQUFJeUUsZ0JBQWdCLElBQUksSUFBSSxDQUFDUCxRQUFRLENBQUMsQ0FBQyxLQUFLTyxnQkFBZ0IsQ0FBQ1IsS0FBSyxFQUFFO1VBQ25FO1VBQ0EsSUFBSSxDQUFDVSxZQUFZLENBQUMsSUFBSSxDQUFDO1VBQ3ZCO1VBQ0FQLFlBQVksQ0FBQ1EsR0FBRyxDQUFDLDZDQUE2QyxDQUFDO1FBQ2hFO01BQ0QsQ0FBQyxNQUFNLElBQUlMLFdBQVcsS0FBSyxVQUFVLEVBQUU7UUFDdEMsSUFBSU4sS0FBSyxHQUFHLElBQUksQ0FBQ0QsZUFBZSxDQUFDLENBQUM7UUFDbEMsSUFBSUcsY0FBYyxFQUFFTiwwQkFBMEIsRUFBRTtVQUMvQ0ksS0FBSyxHQUFJRSxjQUFjLEVBQUVMLEtBQUssRUFBWWUsT0FBTyxDQUFDLENBQUM7VUFDbERWLGNBQWMsRUFBRUwsS0FBSyxFQUFZZ0IsVUFBVSxDQUFDLEtBQUssQ0FBQztVQUNsRFgsY0FBYyxFQUFFWCxVQUFVLEVBQTJCbUIsWUFBWSxDQUFDLEtBQUssQ0FBQztRQUMxRSxDQUFDLE1BQU0sSUFBSVIsY0FBYyxFQUFFWix5QkFBeUIsRUFBRTtVQUNyRFUsS0FBSyxHQUFJRSxjQUFjLEVBQUVYLFVBQVUsRUFBMkJVLFFBQVEsQ0FBQyxDQUFDO1VBQ3ZFQyxjQUFjLEVBQUVYLFVBQVUsRUFBMkJtQixZQUFZLENBQUMsS0FBSyxDQUFDO1FBQzFFO1FBQ0EsSUFBSVYsS0FBSyxLQUFLLEVBQUUsSUFBSUUsY0FBYyxFQUFFWCxVQUFVLEVBQUU7VUFDL0NTLEtBQUssR0FBRyxDQUFDRSxjQUFjLEVBQUVYLFVBQVUsRUFBMEJVLFFBQVEsQ0FBQyxDQUFDO1FBQ3hFO1FBQ0EsSUFBSUksa0JBQWtCLENBQUNTLGtCQUFrQixFQUFFO1VBQzFDLE1BQU03RixXQUFXLEdBQUcsSUFBSSxDQUFDQyxjQUFjLENBQUMsQ0FBQztVQUN6QyxNQUFNNkYsc0JBQXNCLEdBQUcsQ0FBQyxFQUFFOUYsV0FBVyxFQUFFRSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1VBRTFEa0Ysa0JBQWtCLENBQUNTLGtCQUFrQixDQUFDO1lBQ3JDRSxVQUFVLEVBQUUsSUFBSSxDQUFDQyxhQUFhLENBQUMsQ0FBQztZQUNoQ2pCLEtBQUssRUFBRUEsS0FBSztZQUNaa0IsV0FBVyxFQUFFSCxzQkFBc0IsR0FBRyxJQUFJLEdBQUc7VUFDOUMsQ0FBQyxDQUFDO1VBQ0YsSUFBSSxDQUFDTCxZQUFZLENBQUMsQ0FBQyxDQUFDUixjQUFjLEVBQUVWLFNBQVMsQ0FBQztVQUM5Q1csWUFBWSxDQUFDUSxHQUFHLENBQUMsNkNBQTZDLENBQUM7O1VBRS9EO1VBQ0EsSUFBSSxDQUFDSSxzQkFBc0IsRUFBRTlGLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQ3lGLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDaEU7TUFDRCxDQUFDLE1BQU0sSUFBSXBDLGFBQWEsRUFBRUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxFQUFFO1FBQzdDLE1BQU10RCxXQUFXLEdBQUcsSUFBSSxDQUFDNEMscUJBQXFCLENBQUMsQ0FBQyxJQUFJLEVBQUU7UUFDdEQsTUFBTWtELHNCQUFzQixHQUFHOUYsV0FBVyxDQUFDRSxNQUFNLEdBQUcsQ0FBQzs7UUFFckQ7UUFDQSxJQUFJLENBQUMrRSxjQUFjLEVBQUVpQixxQ0FBcUMsRUFBRTtVQUMzRCxNQUFNbkIsS0FBSyxHQUFHMUIsYUFBc0I7VUFDcEMwQixLQUFLLENBQUNvQixPQUFPLENBQUMsSUFBSSxDQUFDbkIsUUFBUSxDQUFDLENBQUMsQ0FBQztVQUM5QkQsS0FBSyxDQUFDcUIsYUFBYSxDQUFDTixzQkFBc0IsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO1VBQ3pEZixLQUFLLENBQUNzQixRQUFRLENBQUMsSUFBSSxDQUFDTCxhQUFhLENBQUMsQ0FBQyxDQUFDO1VBQ3BDLElBQUksQ0FBQ1AsWUFBWSxDQUFDLEtBQUssQ0FBQztVQUN4QlAsWUFBWSxDQUFDUSxHQUFHLENBQUMsNkNBQTZDLENBQUM7UUFDaEU7UUFDQTtRQUNBLElBQUkxRixXQUFXLENBQUNFLE1BQU0sS0FBSyxDQUFDLEVBQUU7VUFDN0JGLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQ3lGLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDbkM7TUFDRCxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUNsQywwQkFBMEIsQ0FBQ0YsYUFBYSxDQUFDLEVBQUU7UUFDMUQ7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtRQUNHLE1BQU1pRCxTQUFTLEdBQUlqRCxhQUFhLENBQVVrRCxRQUFRLENBQUMsQ0FBQztRQUNwREQsU0FBUyxDQUFDbkcsT0FBTyxDQUFFcUcsUUFBUSxJQUFLO1VBQy9CLE1BQU1DLGFBQWEsR0FBR0QsUUFBUSxDQUFDcEMsY0FBYyxDQUFDLGVBQWUsQ0FBQztVQUM5RCxJQUFJcUMsYUFBYSxFQUFFO1lBQ2pCQSxhQUFhLEVBQXNCQyxVQUFVLENBQUMsQ0FBQyxDQUFDdkcsT0FBTyxDQUFFd0csT0FBTyxJQUFLO2NBQ3JFLElBQUlBLE9BQU8sQ0FBQ3JELEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBRTtnQkFDL0IsTUFBTXNELFVBQVUsR0FBR0QsT0FBZ0I7Z0JBQ25DQyxVQUFVLENBQUNULE9BQU8sQ0FBQyxJQUFJLENBQUNuQixRQUFRLENBQUMsQ0FBQyxDQUFDO2dCQUNuQzRCLFVBQVUsQ0FBQ1IsYUFBYSxDQUFDLElBQUksQ0FBQztnQkFDOUJRLFVBQVUsQ0FBQ1AsUUFBUSxDQUFDLElBQUksQ0FBQ0wsYUFBYSxDQUFDLENBQUMsQ0FBQztjQUMxQztZQUNELENBQUMsQ0FBQztVQUNIO1FBQ0QsQ0FBQyxDQUFDO1FBQ0Y7UUFDQTtRQUNBLE1BQU1oRyxXQUFXLEdBQUcsSUFBSSxDQUFDNEMscUJBQXFCLENBQUMsQ0FBQztRQUNoRCxJQUFJNUMsV0FBVyxDQUFDRSxNQUFNLEtBQUssQ0FBQyxFQUFFO1VBQzdCRixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUN5RixZQUFZLENBQUMsS0FBSyxDQUFDO1FBQ25DO1FBQ0EsSUFBSSxDQUFDQSxZQUFZLENBQUMsS0FBSyxDQUFDO1FBQ3hCUCxZQUFZLENBQUNRLEdBQUcsQ0FBQyw2Q0FBNkMsQ0FBQztNQUNoRTtNQUNBLElBQUksQ0FBQ2hELGFBQWEsQ0FBQ21FLEtBQUssQ0FBQ0MsSUFBSSxDQUFDNUIsWUFBWSxDQUFDLENBQUMxRCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7TUFDdEQsT0FBTztRQUFFZ0IsY0FBYyxFQUFFMEMsWUFBWSxDQUFDNkIsR0FBRyxDQUFDLDZDQUE2QztNQUFFLENBQUM7SUFDM0YsQ0FBQztJQUFBLE9BQUE5SSxPQUFBO0VBQUEsRUFwWW9CK0ksaUJBQWlCLEdBQUExSCxXQUFBLEdBQUEySCx5QkFBQSxDQUFBbEksT0FBQSxDQUFBYyxTQUFBLHNCQUFBckIsS0FBQTtJQUFBMEksWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUE5SCxZQUFBLEdBQUEwSCx5QkFBQSxDQUFBbEksT0FBQSxDQUFBYyxTQUFBLG9DQUFBbEIsS0FBQTtJQUFBdUksWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUE3SCxZQUFBLEdBQUF5SCx5QkFBQSxDQUFBbEksT0FBQSxDQUFBYyxTQUFBLHdCQUFBakIsS0FBQTtJQUFBc0ksWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUE1SCxZQUFBLEdBQUF3SCx5QkFBQSxDQUFBbEksT0FBQSxDQUFBYyxTQUFBLDJCQUFBaEIsS0FBQTtJQUFBcUksWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUF0SSxPQUFBLE1BQUFELE1BQUEsS0FBQUEsTUFBQTtFQUFBLE9BdVl4QmIsT0FBTztBQUFBIiwiaWdub3JlTGlzdCI6W119
|
|
437
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTZWN0aW9uIiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwiZGVzaWdudGltZSIsIl9kZWMyIiwibWl4aW4iLCJTZWN0aW9uU3RhdGVIYW5kbGVyIiwiX2RlYzMiLCJwcm9wZXJ0eSIsInR5cGUiLCJfZGVjNCIsIl9kZWM1IiwiX2RlYzYiLCJfY2xhc3MiLCJfY2xhc3MyIiwiX09iamVjdFBhZ2VTZWN0aW9uIiwicHJvcGVydGllcyIsIm90aGVycyIsIl90aGlzIiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfZGVzY3JpcHRvcjIiLCJfZGVzY3JpcHRvcjMiLCJfZGVzY3JpcHRvcjQiLCJyZWdpc3RlckRlbGVnYXRlIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJldmVudERlbGVnYXRlcyIsIm9uQWZ0ZXJSZW5kZXJpbmciLCJzdWJTZWN0aW9ucyIsImdldFN1YlNlY3Rpb25zIiwibGVuZ3RoIiwiZm9yRWFjaCIsInN1YlNlY3Rpb24iLCJnZXRCbG9ja3MiLCJzdWJTZWN0aW9uRXZlbnREZWxlZ2F0ZSIsIm9uQmVmb3JlUmVuZGVyaW5nIiwiY2hlY2tBbmRBZGp1c3RTZWN0aW9uQ29udGVudCIsInJlbW92ZUV2ZW50RGVsZWdhdGUiLCJhZGRFdmVudERlbGVnYXRlIiwidmlldyIsIkNvbW1vblV0aWxzIiwiZ2V0VGFyZ2V0VmlldyIsInVzZVNpbmdsZVRleHRBcmVhRmllbGRBc05vdGVzIiwiY2hlY2tBbmRBZGp1c3RTZWN0aW9uQ29udGVudEZvclRleHRBcmVhIiwiY2hlY2tBbmRBZGp1c3RGb3JTaW5nbGVDb250ZW50Iiwic2V0T25TZWN0aW9uTG9hZGVkIiwib25TZWN0aW9uTG9hZGVkIiwibG9hZFNwbGl0Iiwic3BsaXQiLCJfc2VjdGlvbkxvYWRNZXRob2ROYW1lIiwicG9wIiwiX3NlY3Rpb25Mb2FkTW9kdWxlTmFtZSIsImpvaW4iLCJzZXRQcm9wZXJ0eSIsImFwcGx5U2V0dGluZ3MiLCJtU2V0dGluZ3MiLCJvU2NvcGUiLCJ0ZW1wbGF0ZUNvbXBvbmVudCIsIkNvbXBvbmVudCIsImdldE93bmVyQ29tcG9uZW50Rm9yIiwicGFnZUNvbnRyb2xsZXIiLCJnZXRSb290Q29udHJvbGxlciIsIkhvb2tTdXBwb3J0IiwiaW5pdENvbnRyb2xsZXJFeHRlbnNpb25Ib29rSGFuZGxlcnMiLCJ1cGRhdGVOb25UYWJsZVN1YlNlY3Rpb25CYWNrZ3JvdW5kIiwiYWRqdXN0bWVudFJlc3VsdHMiLCJoYXNTdHlsZUNsYXNzIiwiX3JlZiIsInRhYmxlc0FkanVzdGVkIiwicmVtb3ZlU3R5bGVDbGFzcyIsImFkZFN0eWxlQ2xhc3MiLCJ2aXNpYmxlU3ViU2VjdGlvbnMiLCJnZXRWaXNpYmxlU3ViU2VjdGlvbnMiLCJyZWR1Y2UiLCJyZXN1bHRzIiwiY29udGVudCIsImdldFNpbmdsZUNvbnRlbnQiLCJhZGp1c3RGb3JTaW5nbGVDb250ZW50IiwicHVzaCIsImdldFZpZXdEYXRhIiwic2VjdGlvbkxheW91dCIsInNpbmdsZUNvbnRlbnQiLCJpc0EiLCJjaGVja0lmTm90ZXNSZXVzZUNvbXBvbmVudCIsInNpbmdsZUNvbnRlbnRUYWJsZUFkanVzdGVkIiwiRlBNSGVscGVyIiwibG9hZE1vZHVsZUFuZENhbGxNZXRob2QiLCJjaGVja0FuZEFkanVzdFRpdGxlcyIsIkxvZyIsImRlYnVnIiwiZ2V0SWQiLCJpbmNsdWRlcyIsInNpbmdsZVN1YlNlY3Rpb25UYWJsZUFkanVzdGVkIiwiYWRqdXN0U2VjdGlvbkNvbnRlbnRXaXRoVGl0bGUiLCJzdWJzZWN0aW9uIiwiYmxvY2tzIiwiZ2V0QWdncmVnYXRpb24iLCJzZWN0aW9uRnJvbVJlZmVyZW5jZUZhY2V0IiwiU3ViU2VjdGlvbiIsInNob3dUaXRsZSIsImdldE1haW5Db250ZW50IiwiRnVuY3Rpb24iLCJhZGp1c3RtZW50UHJvcHMiLCJzZWN0aW9uZnJvbUNvbGxlY3Rpb25GYWNldCIsIlRpdGxlIiwiZ2V0VmlzaWJsZSIsImdldFNlY3Rpb25UaXRsZSIsInRpdGxlIiwiZ2V0VGl0bGUiLCJzZWN0aW9uRGV0YWlscyIsImNsYXNzZXNUb0FkZCIsIlNldCIsInNlY3Rpb25Pbmx5Q29udGVudCIsImNvbnRlbnRSb2xlIiwiZ2V0U2VjdGlvbkNvbnRlbnRSb2xlIiwiaW5mb0Zyb21Qcm92aWRlciIsImdldERhdGFGcm9tUHJvdmlkZXIiLCJzZXRTaG93VGl0bGUiLCJhZGQiLCJnZXRUZXh0Iiwic2V0VmlzaWJsZSIsInNlbmREYXRhVG9Db25zdW1lciIsImhhc011bHRpcGxlU3Vic2VjdGlvbnMiLCJ0aXRsZUxldmVsIiwiaGVhZGVyU3R5bGUiLCJtdWx0aXBsZVN1YlNlY3Rpb25zV2l0aFJldXNlQ29tcG9uZW50Iiwic2V0VGV4dCIsInNldFRpdGxlU3R5bGUiLCJzZXRMZXZlbCIsImdldFRpdGxlTGV2ZWwiLCJ2Qm94SXRlbXMiLCJnZXRJdGVtcyIsInZCb3hJdGVtIiwiaGVhZGVyVG9vbGJhciIsImdldENvbnRlbnQiLCJjb250cm9sIiwibm90ZXNUaXRsZSIsIkFycmF5IiwiZnJvbSIsImhhcyIsIk9iamVjdFBhZ2VTZWN0aW9uIiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJ3cml0YWJsZSIsImluaXRpYWxpemVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJTZWN0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0aWVzT2YgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgbWl4aW4sIHByb3BlcnR5IH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0ICogYXMgSG9va1N1cHBvcnQgZnJvbSBcInNhcC9mZS9iYXNlL0hvb2tTdXBwb3J0XCI7XG5pbXBvcnQgdHlwZSB7IEZFVmlldyB9IGZyb20gXCJzYXAvZmUvY29yZS9CYXNlQ29udHJvbGxlclwiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IHR5cGUgVGVtcGxhdGVDb21wb25lbnQgZnJvbSBcInNhcC9mZS9jb3JlL1RlbXBsYXRlQ29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IE9iamVjdFBhZ2VNYW5pZmVzdFNldHRpbmdzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWFuaWZlc3RTZXR0aW5nc1wiO1xuaW1wb3J0IEZQTUhlbHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9GUE1IZWxwZXJcIjtcbmltcG9ydCB0eXBlIElTaW5nbGVTZWN0aW9uQ29udHJpYnV0b3IgZnJvbSBcInNhcC9mZS9tYWNyb3MvY29udHJvbHMvc2VjdGlvbi9JU2luZ2xlU2VjdGlvbkNvbnRyaWJ1dG9yXCI7XG5pbXBvcnQgU2VjdGlvblN0YXRlSGFuZGxlciBmcm9tIFwic2FwL2ZlL21hY3Jvcy9jb250cm9scy9zZWN0aW9uL21peGluL1NlY3Rpb25TdGF0ZUhhbmRsZXJcIjtcbmltcG9ydCB0eXBlIFN1YlNlY3Rpb25CbG9jayBmcm9tIFwic2FwL2ZlL3RlbXBsYXRlcy9PYmplY3RQYWdlL2NvbnRyb2xzL1N1YlNlY3Rpb25CbG9ja1wiO1xuaW1wb3J0IHR5cGUgT3ZlcmZsb3dUb29sYmFyIGZyb20gXCJzYXAvbS9PdmVyZmxvd1Rvb2xiYXJcIjtcbmltcG9ydCB0eXBlIFRpdGxlIGZyb20gXCJzYXAvbS9UaXRsZVwiO1xuaW1wb3J0IHR5cGUgVkJveCBmcm9tIFwic2FwL20vVkJveFwiO1xuaW1wb3J0IHR5cGUgTWFuYWdlZE9iamVjdCBmcm9tIFwic2FwL3VpL2Jhc2UvTWFuYWdlZE9iamVjdFwiO1xuaW1wb3J0IHR5cGUgeyAkTWFuYWdlZE9iamVjdFNldHRpbmdzIH0gZnJvbSBcInNhcC91aS9iYXNlL01hbmFnZWRPYmplY3RcIjtcbmltcG9ydCBDb21wb25lbnQgZnJvbSBcInNhcC91aS9jb3JlL0NvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgRHluYW1pY1NpZGVDb250ZW50IGZyb20gXCJzYXAvdWkvbGF5b3V0L0R5bmFtaWNTaWRlQ29udGVudFwiO1xuaW1wb3J0IHR5cGUgeyAkT2JqZWN0UGFnZVNlY3Rpb25TZXR0aW5ncyB9IGZyb20gXCJzYXAvdXhhcC9PYmplY3RQYWdlU2VjdGlvblwiO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXN0cmljdGVkLWltcG9ydHNcbmltcG9ydCBPYmplY3RQYWdlU2VjdGlvbiBmcm9tIFwic2FwL3V4YXAvT2JqZWN0UGFnZVNlY3Rpb25cIjtcbmltcG9ydCB0eXBlIE9iamVjdFBhZ2VTdWJTZWN0aW9uIGZyb20gXCJzYXAvdXhhcC9PYmplY3RQYWdlU3ViU2VjdGlvblwiO1xuaW1wb3J0IHR5cGUgU3ViU2VjdGlvbiBmcm9tIFwiLi9zZWN0aW9uL1N1YlNlY3Rpb25cIjtcblxudHlwZSBBZGp1c3RtZW50UHJvcHMgPSB7XG5cdHRhYmxlc0FkanVzdGVkPzogYm9vbGVhbjtcbn07XG5cbnR5cGUgQWRqdXN0bWVudFJlc3VsdHMgPSB7XG5cdHN1YlNlY3Rpb246IE9iamVjdFBhZ2VTdWJTZWN0aW9uO1xufSAmIEFkanVzdG1lbnRQcm9wcztcblxuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLm1hY3Jvcy5jb250cm9scy5TZWN0aW9uXCIsIHsgZGVzaWdudGltZTogXCJzYXAvdXhhcC9kZXNpZ250aW1lL09iamVjdFBhZ2VTZWN0aW9uLmRlc2lnbnRpbWVcIiB9KVxuQG1peGluKFNlY3Rpb25TdGF0ZUhhbmRsZXIpXG5jbGFzcyBTZWN0aW9uIGV4dGVuZHMgT2JqZWN0UGFnZVNlY3Rpb24ge1xuXHQvLyBUT0RPOiB0aGlzIHByb2JhYmx5IG1ha2VzIHNlbnNlIHRvIGJlIGFuIGV2ZW50LiBCdXQgd2UgY2FuIGFkZHJlc3MgdGhpcyBsYXRlci5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHRvblNlY3Rpb25Mb2FkZWQhOiBzdHJpbmc7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIgfSlcblx0dXNlU2luZ2xlVGV4dEFyZWFGaWVsZEFzTm90ZXMhOiBib29sZWFuO1xuXG5cdC8qKlxuXHQgKiBQYXRoIHRvIHRoZSBhcHBseSBzdGF0ZSBoYW5kbGVyIHRvIGJlIGNhbGxlZCBkdXJpbmcgc3RhdGUgaW50ZXJhY3Rpb25zLlxuXHQgKi9cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHRhcHBseVN0YXRlSGFuZGxlcj86IHN0cmluZztcblxuXHQvKipcblx0ICogUGF0aCB0byB0aGUgcmV0cmlldmUgc3RhdGUgaGFuZGxlciB0byBiZSBjYWxsZWQgZHVyaW5nIHN0YXRlIGludGVyYWN0aW9ucy5cblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0cmV0cmlldmVTdGF0ZUhhbmRsZXI/OiBzdHJpbmc7XG5cblx0Y29uc3RydWN0b3IocHJvcGVydGllczogJE9iamVjdFBhZ2VTZWN0aW9uU2V0dGluZ3MgJiBQcm9wZXJ0aWVzT2Y8U2VjdGlvbj4sIG90aGVycz86ICRPYmplY3RQYWdlU2VjdGlvblNldHRpbmdzKSB7XG5cdFx0c3VwZXIocHJvcGVydGllcyBhcyB1bmtub3duIGFzIHN0cmluZywgb3RoZXJzKTtcblx0XHR0aGlzLnJlZ2lzdGVyRGVsZWdhdGUoKTtcblx0fVxuXG5cdF9zZWN0aW9uTG9hZE1ldGhvZE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuXHRfc2VjdGlvbkxvYWRNb2R1bGVOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cblx0cHJpdmF0ZSByZWdpc3RlckRlbGVnYXRlKCk6IHZvaWQge1xuXHRcdGNvbnN0IGV2ZW50RGVsZWdhdGVzID0ge1xuXHRcdFx0b25BZnRlclJlbmRlcmluZzogKCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRjb25zdCBzdWJTZWN0aW9ucyA9IHRoaXMuZ2V0U3ViU2VjdGlvbnMoKSBhcyBTdWJTZWN0aW9uW107XG5cdFx0XHRcdGlmIChzdWJTZWN0aW9ucy5sZW5ndGgpIHtcblx0XHRcdFx0XHRzdWJTZWN0aW9ucy5mb3JFYWNoKChzdWJTZWN0aW9uOiBTdWJTZWN0aW9uKSA9PiB7XG5cdFx0XHRcdFx0XHQvKiB3ZSBjaGVjayBpbmRpdmlkdWFsIHN1YnNlY3Rpb24gZm9yIGJsb2Nrcy4gSWYgbm90IGF2YWlsYWJsZSB3ZSB3YWl0IGZvciB0aGVtIHRvIGJlIGFkZGVkKG9uQmVmb3JlUmVuZGVyaW5nKSBiZWZvcmUgdHJpZ2dlcmluZyB0aXRsZSBtZXJnZSBsb2dpY3MgKi9cblx0XHRcdFx0XHRcdGlmIChzdWJTZWN0aW9uLmdldEJsb2NrcygpPy5sZW5ndGggPT09IDApIHtcblx0XHRcdFx0XHRcdFx0Y29uc3Qgc3ViU2VjdGlvbkV2ZW50RGVsZWdhdGUgPSB7XG5cdFx0XHRcdFx0XHRcdFx0b25CZWZvcmVSZW5kZXJpbmc6ICgpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuY2hlY2tBbmRBZGp1c3RTZWN0aW9uQ29udGVudCgpO1xuXHRcdFx0XHRcdFx0XHRcdFx0c3ViU2VjdGlvbi5yZW1vdmVFdmVudERlbGVnYXRlKHN1YlNlY3Rpb25FdmVudERlbGVnYXRlKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRcdHN1YlNlY3Rpb24uYWRkRXZlbnREZWxlZ2F0ZShzdWJTZWN0aW9uRXZlbnREZWxlZ2F0ZSk7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHR0aGlzLmNoZWNrQW5kQWRqdXN0U2VjdGlvbkNvbnRlbnQoKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0aGlzLmNoZWNrQW5kQWRqdXN0U2VjdGlvbkNvbnRlbnQoKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH07XG5cblx0XHR0aGlzLmFkZEV2ZW50RGVsZWdhdGUoZXZlbnREZWxlZ2F0ZXMpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGZvciB0aGUgc2VjdGlvbiBjb250ZW50IGFuZCBhZGp1c3RzIHRoZSBzZWN0aW9uIGJhc2VkIG9uIHRoZSBhdmFpbGFibGUgY29udGVudC5cblx0ICogQHByb3RlY3RlZFxuXHQgKi9cblx0Y2hlY2tBbmRBZGp1c3RTZWN0aW9uQ29udGVudCgpOiB2b2lkIHtcblx0XHRjb25zdCB2aWV3ID0gQ29tbW9uVXRpbHMuZ2V0VGFyZ2V0Vmlldyh0aGlzKTtcblx0XHRpZiAodGhpcy51c2VTaW5nbGVUZXh0QXJlYUZpZWxkQXNOb3Rlcykge1xuXHRcdFx0dGhpcy5jaGVja0FuZEFkanVzdFNlY3Rpb25Db250ZW50Rm9yVGV4dEFyZWEoKTtcblx0XHR9XG5cdFx0dGhpcy5jaGVja0FuZEFkanVzdEZvclNpbmdsZUNvbnRlbnQodmlldyk7XG5cdH1cblxuXHRzZXRPblNlY3Rpb25Mb2FkZWQob25TZWN0aW9uTG9hZGVkOiBzdHJpbmcpOiB2b2lkIHtcblx0XHRjb25zdCBsb2FkU3BsaXQgPSBvblNlY3Rpb25Mb2FkZWQuc3BsaXQoXCIuXCIpO1xuXHRcdHRoaXMuX3NlY3Rpb25Mb2FkTWV0aG9kTmFtZSA9IGxvYWRTcGxpdD8ucG9wKCk7XG5cdFx0dGhpcy5fc2VjdGlvbkxvYWRNb2R1bGVOYW1lID0gbG9hZFNwbGl0Py5qb2luKFwiL1wiKTtcblx0XHR0aGlzLnNldFByb3BlcnR5KFwib25TZWN0aW9uTG9hZGVkXCIsIG9uU2VjdGlvbkxvYWRlZCk7XG5cdH1cblxuXHQvLyBUT0RPOiBDaGVjayBpZiBvbkFmdGVyUmVuZGVyaW5nIGNhbiBiZSB1c2VkIGluc3RlYWQgb2YgYXBwbHlTZXR0aW5ncy5cblx0YXBwbHlTZXR0aW5ncyhtU2V0dGluZ3M6ICRNYW5hZ2VkT2JqZWN0U2V0dGluZ3MsIG9TY29wZT86IG9iamVjdCk6IHRoaXMge1xuXHRcdHN1cGVyLmFwcGx5U2V0dGluZ3MobVNldHRpbmdzLCBvU2NvcGUpO1xuXHRcdGNvbnN0IHRlbXBsYXRlQ29tcG9uZW50ID0gQ29tcG9uZW50LmdldE93bmVyQ29tcG9uZW50Rm9yKHRoaXMpIGFzIFRlbXBsYXRlQ29tcG9uZW50O1xuXHRcdGNvbnN0IHBhZ2VDb250cm9sbGVyID0gdGVtcGxhdGVDb21wb25lbnQuZ2V0Um9vdENvbnRyb2xsZXIoKTtcblx0XHRpZiAocGFnZUNvbnRyb2xsZXIpIHtcblx0XHRcdEhvb2tTdXBwb3J0LmluaXRDb250cm9sbGVyRXh0ZW5zaW9uSG9va0hhbmRsZXJzKHRoaXMsIHBhZ2VDb250cm9sbGVyKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH1cblxuXHQvKipcblx0ICogVXBkYXRlIHN1YnNlY3Rpb24gYmFja2dyb3VuZCBjbGFzcyBiYXNlZCBvbiB0YWJsZSBhZGp1c3RtZW50cyBtYWRlLlxuXHQgKiBAcGFyYW0gYWRqdXN0bWVudFJlc3VsdHMgQXJyYXkgb2YgYWRqdXN0bWVudCByZXN1bHRzXG5cdCAqL1xuXHR1cGRhdGVOb25UYWJsZVN1YlNlY3Rpb25CYWNrZ3JvdW5kKGFkanVzdG1lbnRSZXN1bHRzOiBBZGp1c3RtZW50UmVzdWx0c1tdKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuaGFzU3R5bGVDbGFzcyhcInNhcFVpVGFibGVPbk9iamVjdFBhZ2VBZGp1c3RtZW50c0ZvclNlY3Rpb25cIikpIHtcblx0XHRcdGFkanVzdG1lbnRSZXN1bHRzLmZvckVhY2goKHsgc3ViU2VjdGlvbiwgdGFibGVzQWRqdXN0ZWQgfSkgPT4ge1xuXHRcdFx0XHRpZiAodGFibGVzQWRqdXN0ZWQpIHtcblx0XHRcdFx0XHRzdWJTZWN0aW9uLnJlbW92ZVN0eWxlQ2xhc3MoXCJzYXBVaUFkanVzdGVkU2VjdGlvblN1YnNlY3Rpb25XaXRob3V0VGFibGVcIik7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0c3ViU2VjdGlvbi5hZGRTdHlsZUNsYXNzKFwic2FwVWlBZGp1c3RlZFNlY3Rpb25TdWJzZWN0aW9uV2l0aG91dFRhYmxlXCIpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogVGhpcyBtZXRob2QgbG9vcHMgdGhyb3VnaCBhbGwgdGhlIHZpc2libGUgc3Vic2VjdGlvbnMgYW5kIHRyaWdnZXJzIHRoZSB0ZXh0IGFyZWEgZmxvdyBpZiB0aGF0cyB0aGUgb25seSBzaW5nbGUgY29udHJvbCB3aXRoaW4gdGhlIHNlY3Rpb24uXG5cdCAqL1xuXHRjaGVja0FuZEFkanVzdFNlY3Rpb25Db250ZW50Rm9yVGV4dEFyZWEoKTogdm9pZCB7XG5cdFx0Y29uc3QgdmlzaWJsZVN1YlNlY3Rpb25zID0gdGhpcy5nZXRWaXNpYmxlU3ViU2VjdGlvbnMoKTtcblx0XHRjb25zdCBhZGp1c3RtZW50UmVzdWx0cyA9IHZpc2libGVTdWJTZWN0aW9ucy5yZWR1Y2UoKHJlc3VsdHM6IEFkanVzdG1lbnRSZXN1bHRzW10sIHN1YlNlY3Rpb246IE9iamVjdFBhZ2VTdWJTZWN0aW9uKSA9PiB7XG5cdFx0XHRsZXQgdGFibGVzQWRqdXN0ZWQ7XG5cdFx0XHRjb25zdCBjb250ZW50ID0gdGhpcy5nZXRTaW5nbGVDb250ZW50KFtzdWJTZWN0aW9uXSk7XG5cdFx0XHRpZiAoY29udGVudCkge1xuXHRcdFx0XHR0YWJsZXNBZGp1c3RlZCA9IHRoaXMuYWRqdXN0Rm9yU2luZ2xlQ29udGVudChjb250ZW50KS50YWJsZXNBZGp1c3RlZDtcblx0XHRcdH1cblx0XHRcdHJlc3VsdHMucHVzaCh7IHN1YlNlY3Rpb24sIHRhYmxlc0FkanVzdGVkIH0pO1xuXHRcdFx0cmV0dXJuIHJlc3VsdHM7XG5cdFx0fSwgW10pO1xuXHRcdHRoaXMudXBkYXRlTm9uVGFibGVTdWJTZWN0aW9uQmFja2dyb3VuZChhZGp1c3RtZW50UmVzdWx0cyk7XG5cdH1cblxuXHRjaGVja0FuZEFkanVzdEZvclNpbmdsZUNvbnRlbnQodmlldzogRkVWaWV3KTogdm9pZCB8IFByb21pc2U8dW5rbm93bj4ge1xuXHRcdGlmICgodmlldz8uZ2V0Vmlld0RhdGEoKSBhcyBPYmplY3RQYWdlTWFuaWZlc3RTZXR0aW5ncyk/LnNlY3Rpb25MYXlvdXQgPT09IFwiUGFnZVwiKSB7XG5cdFx0XHRjb25zdCBzaW5nbGVDb250ZW50ID0gdGhpcy5nZXRTaW5nbGVDb250ZW50KCk7XG5cdFx0XHRpZiAoXG5cdFx0XHRcdHNpbmdsZUNvbnRlbnQgJiZcblx0XHRcdFx0KHNpbmdsZUNvbnRlbnQuaXNBKFwic2FwLmZlLm1hY3Jvcy5jb250cm9scy5zZWN0aW9uLklTaW5nbGVTZWN0aW9uQ29udHJpYnV0b3JcIikgfHxcblx0XHRcdFx0XHR0aGlzLmNoZWNrSWZOb3Rlc1JldXNlQ29tcG9uZW50KHNpbmdsZUNvbnRlbnQpKVxuXHRcdFx0KSB7XG5cdFx0XHRcdGNvbnN0IHsgdGFibGVzQWRqdXN0ZWQ6IHNpbmdsZUNvbnRlbnRUYWJsZUFkanVzdGVkIH0gPSB0aGlzLmFkanVzdEZvclNpbmdsZUNvbnRlbnQoc2luZ2xlQ29udGVudCk7XG5cdFx0XHRcdGNvbnN0IHN1YlNlY3Rpb25zID0gdGhpcy5nZXRWaXNpYmxlU3ViU2VjdGlvbnMoKTtcblx0XHRcdFx0dGhpcy51cGRhdGVOb25UYWJsZVN1YlNlY3Rpb25CYWNrZ3JvdW5kKFt7IHN1YlNlY3Rpb246IHN1YlNlY3Rpb25zWzBdLCB0YWJsZXNBZGp1c3RlZDogc2luZ2xlQ29udGVudFRhYmxlQWRqdXN0ZWQgfV0pO1xuXHRcdFx0fSBlbHNlIGlmICh0aGlzLl9zZWN0aW9uTG9hZE1vZHVsZU5hbWUgJiYgdGhpcy5fc2VjdGlvbkxvYWRNZXRob2ROYW1lKSB7XG5cdFx0XHRcdHJldHVybiBGUE1IZWxwZXIubG9hZE1vZHVsZUFuZENhbGxNZXRob2QodGhpcy5fc2VjdGlvbkxvYWRNb2R1bGVOYW1lLCB0aGlzLl9zZWN0aW9uTG9hZE1ldGhvZE5hbWUsIHZpZXcsIHRoaXMpO1xuXHRcdFx0fSBlbHNlIGlmICh0aGlzLmdldFN1YlNlY3Rpb25zKCkubGVuZ3RoID4gMSkge1xuXHRcdFx0XHQvLyBjYWxsIG1lcmdlIHRpdGxlIGxvZ2ljIGZvciBzdWJzZWN0aW9uc1xuXHRcdFx0XHR0aGlzLmNoZWNrQW5kQWRqdXN0VGl0bGVzKCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRMb2cuZGVidWcoXCJTZWN0aW9uIGNhbm5vdCBiZSBhZGp1c3RlZCBmb3Igc2luZ2xlIGNvbnRlbnQgOiBJbnRlcmZhY2UgJ0lTaW5nbGVTZWN0aW9uQ29udHJpYnV0b3InIGlzIG5vdCBpbXBsZW1lbnRlZFwiKTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5jaGVja0FuZEFkanVzdFRpdGxlcygpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKlxuXHQgKiBAcGFyYW0gc2luZ2xlQ29udGVudCBPYmplY3Qgb2YgdGhlIGNvbnRlbnQgcHJlc2VudCB3aXRoaW4gdGhlIHNlY3Rpb24uXG5cdCAqIEByZXR1cm5zIFRydWUgaWYgdGhlIGNvbnRlbnQgcHJlc2VudCBpcyBhIG5vdGVzIHJldXNlIGNvbXBvbmVudFxuXHQgKi9cblx0Y2hlY2tJZk5vdGVzUmV1c2VDb21wb25lbnQoc2luZ2xlQ29udGVudDogTWFuYWdlZE9iamVjdCk6IGJvb2xlYW4ge1xuXHRcdGlmIChzaW5nbGVDb250ZW50LmlzQShcInNhcC5tLlZCb3hcIikgJiYgc2luZ2xlQ29udGVudC5nZXRJZCgpLmluY2x1ZGVzKFwiTm90ZVNlY3Rpb25cIikpIHtcblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH1cblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHQvKipcblx0ICogVGhpcyBmdW5jdGlvbiBjaGVja3MgZm9yIHRoZSB2aXNpYmxlIHN1YnNlY3Rpb25zIGFuZCBjaGVja3MgZm9yIHRoZSBjb2xsZWN0aW9uIGZhY2V0IGxhYmVsLCBJZiBwcmVzZW50IHRoZW4gd2UgbWVyZ2UgdGhlIHRpdGxlIGFuZCB0aGlzIGZ1bmN0aW9uIGhhbmRsZXMgdGhlIER5bmFtaWNTaWRlQ29uZW50IGFzIHdlbGwuXG5cdCAqL1xuXHRjaGVja0FuZEFkanVzdFRpdGxlcygpOiB2b2lkIHtcblx0XHRjb25zdCB2aXNpYmxlU3ViU2VjdGlvbnMgPSB0aGlzLmdldFZpc2libGVTdWJTZWN0aW9ucygpO1xuXHRcdGlmICh2aXNpYmxlU3ViU2VjdGlvbnMubGVuZ3RoID09PSAxKSB7XG5cdFx0XHRjb25zdCB7IHRhYmxlc0FkanVzdGVkOiBzaW5nbGVTdWJTZWN0aW9uVGFibGVBZGp1c3RlZCB9ID0gdGhpcy5hZGp1c3RTZWN0aW9uQ29udGVudFdpdGhUaXRsZSh2aXNpYmxlU3ViU2VjdGlvbnNbMF0pO1xuXHRcdFx0dGhpcy51cGRhdGVOb25UYWJsZVN1YlNlY3Rpb25CYWNrZ3JvdW5kKFt7IHN1YlNlY3Rpb246IHZpc2libGVTdWJTZWN0aW9uc1swXSwgdGFibGVzQWRqdXN0ZWQ6IHNpbmdsZVN1YlNlY3Rpb25UYWJsZUFkanVzdGVkIH1dKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29uc3QgYWRqdXN0bWVudFJlc3VsdHMgPSB2aXNpYmxlU3ViU2VjdGlvbnMucmVkdWNlKChyZXN1bHRzOiBBZGp1c3RtZW50UmVzdWx0c1tdLCBzdWJzZWN0aW9uOiBPYmplY3RQYWdlU3ViU2VjdGlvbikgPT4ge1xuXHRcdFx0XHRsZXQgdGFibGVzQWRqdXN0ZWQ7XG5cdFx0XHRcdGxldCBjb250ZW50O1xuXHRcdFx0XHRjb25zdCBibG9ja3MgPSBzdWJzZWN0aW9uLmdldEJsb2NrcygpO1xuXHRcdFx0XHQvLyBJbiBjYXNlIG9mIFRhYiBsYXlvdXQsIHdlIG5lZWQgdG8gY2hlY2sgaWYgdGhlIHNlY3Rpb24gaGFzIG9ubHkgb25lIHN1YnNlY3Rpb24gYW5kIHRoYXQgc3Vic2VjdGlvbiBoYXMgb25seSBvbmUgY29udHJvbFxuXHRcdFx0XHQvLyBJbiBjYXNlIG9mIGNvbGxlY3Rpb24gRmFjZXQsIHRoZSBmaXJzdCBibG9jayB3aWxsIGJlIFRpdGxlIGFuZCB0aGUgc2Vjb25kIGJsb2NrIHdpbGwgYmUgU3ViU2VjdGlvbkJsb2NrXG5cdFx0XHRcdGlmIChibG9ja3MubGVuZ3RoID09PSAyICYmIGJsb2Nrc1sxXT8uaXNBPFN1YlNlY3Rpb25CbG9jaz4oXCJzYXAuZmUudGVtcGxhdGVzLk9iamVjdFBhZ2UuY29udHJvbHMuU3ViU2VjdGlvbkJsb2NrXCIpKSB7XG5cdFx0XHRcdFx0dGFibGVzQWRqdXN0ZWQgPSB0aGlzLmFkanVzdFNlY3Rpb25Db250ZW50V2l0aFRpdGxlKHN1YnNlY3Rpb24pLnRhYmxlc0FkanVzdGVkO1xuXHRcdFx0XHR9XG5cdFx0XHRcdC8vIEluIGNhc2Ugb2YgUmVmZXJlbmNlIEZhY2V0LCB0aGUgZmlyc3QgYmxvY2sgd2lsbCBiZSBTdWJTZWN0aW9uQmxvY2tcblx0XHRcdFx0ZWxzZSBpZiAoYmxvY2tzLmxlbmd0aCA9PT0gMSAmJiBibG9ja3NbMF0/LmlzQTxTdWJTZWN0aW9uQmxvY2s+KFwic2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLmNvbnRyb2xzLlN1YlNlY3Rpb25CbG9ja1wiKSkge1xuXHRcdFx0XHRcdGNvbnRlbnQgPSBibG9ja3NbMF0uZ2V0QWdncmVnYXRpb24oXCJjb250ZW50XCIpIGFzIE1hbmFnZWRPYmplY3Q7XG5cdFx0XHRcdFx0aWYgKGNvbnRlbnQuaXNBKFwic2FwLmZlLm1hY3Jvcy5jb250cm9scy5zZWN0aW9uLklTaW5nbGVTZWN0aW9uQ29udHJpYnV0b3JcIikpIHtcblx0XHRcdFx0XHRcdHRhYmxlc0FkanVzdGVkID0gdGhpcy5hZGp1c3RGb3JTaW5nbGVDb250ZW50KGNvbnRlbnQsIHtcblx0XHRcdFx0XHRcdFx0c2VjdGlvbkZyb21SZWZlcmVuY2VGYWNldDogdHJ1ZSxcblx0XHRcdFx0XHRcdFx0U3ViU2VjdGlvbjogc3Vic2VjdGlvbixcblx0XHRcdFx0XHRcdFx0c2hvd1RpdGxlOiB0aGlzLmdldFZpc2libGVTdWJTZWN0aW9ucygpLmxlbmd0aCA+IDFcblx0XHRcdFx0XHRcdH0pLnRhYmxlc0FkanVzdGVkO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoKGNvbnRlbnQgYXMgRHluYW1pY1NpZGVDb250ZW50KT8uaXNBKFwic2FwLnVpLmxheW91dC5EeW5hbWljU2lkZUNvbnRlbnRcIikpIHtcblx0XHRcdFx0XHRcdGNvbnRlbnQgPVxuXHRcdFx0XHRcdFx0XHQoY29udGVudCBhcyBEeW5hbWljU2lkZUNvbnRlbnQpLmdldE1haW5Db250ZW50IGluc3RhbmNlb2YgRnVuY3Rpb24gJiZcblx0XHRcdFx0XHRcdFx0KGNvbnRlbnQgYXMgRHluYW1pY1NpZGVDb250ZW50KT8uZ2V0TWFpbkNvbnRlbnQoKTtcblx0XHRcdFx0XHRcdGlmIChjb250ZW50ICYmIGNvbnRlbnQubGVuZ3RoID09PSAxKSB7XG5cdFx0XHRcdFx0XHRcdGNvbnRlbnQgPSBjb250ZW50WzBdO1xuXHRcdFx0XHRcdFx0XHR0YWJsZXNBZGp1c3RlZCA9IHRoaXMuYWRqdXN0Rm9yU2luZ2xlQ29udGVudChjb250ZW50LCB7XG5cdFx0XHRcdFx0XHRcdFx0c2VjdGlvbkZyb21SZWZlcmVuY2VGYWNldDogdHJ1ZSxcblx0XHRcdFx0XHRcdFx0XHRTdWJTZWN0aW9uOiBzdWJzZWN0aW9uXG5cdFx0XHRcdFx0XHRcdH0pLnRhYmxlc0FkanVzdGVkO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRyZXN1bHRzLnB1c2goeyBzdWJTZWN0aW9uOiBzdWJzZWN0aW9uLCB0YWJsZXNBZGp1c3RlZCB9KTtcblx0XHRcdFx0cmV0dXJuIHJlc3VsdHM7XG5cdFx0XHR9LCBbXSk7XG5cdFx0XHR0aGlzLnVwZGF0ZU5vblRhYmxlU3ViU2VjdGlvbkJhY2tncm91bmQoYWRqdXN0bWVudFJlc3VsdHMpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBUaGlzIGZ1bmN0aW9uIGNoZWNrcyBmb3IgdGhlIGZvciB0aGUgY29sbGVjdGlvbiBmYWNldCBsYWJlbCxJZiBwcmVzZW50IHRoZW4gd2UgbWVyZ2UgdGhlIHRpdGxlLlxuXHQgKiBAcGFyYW0gc3Vic2VjdGlvbiBPYmplY3RQYWdlIFN1YlNlY3Rpb25cblx0ICogQHJldHVybnMgQWRqdXN0bWVudCByZXN1bHRzIGNvbnRhaW5pbmcgdGhlIHN1YnNlY3Rpb24gYW5kIHRhYmxlIGFkanVzdG1lbnQgc3RhdHVzLlxuXHQgKi9cblx0YWRqdXN0U2VjdGlvbkNvbnRlbnRXaXRoVGl0bGUoc3Vic2VjdGlvbjogT2JqZWN0UGFnZVN1YlNlY3Rpb24pOiBBZGp1c3RtZW50UmVzdWx0cyB7XG5cdFx0bGV0IGFkanVzdG1lbnRQcm9wczogQWRqdXN0bWVudFByb3BzID0ge307XG5cdFx0Y29uc3QgYmxvY2tzID0gc3Vic2VjdGlvbi5nZXRCbG9ja3MoKTtcblx0XHRsZXQgY29udGVudDtcblx0XHRpZiAoYmxvY2tzLmxlbmd0aCA9PT0gMiAmJiBibG9ja3NbMV0uaXNBPFN1YlNlY3Rpb25CbG9jaz4oXCJzYXAuZmUudGVtcGxhdGVzLk9iamVjdFBhZ2UuY29udHJvbHMuU3ViU2VjdGlvbkJsb2NrXCIpKSB7XG5cdFx0XHRjb250ZW50ID0gYmxvY2tzWzFdLmdldEFnZ3JlZ2F0aW9uKFwiY29udGVudFwiKSBhcyBNYW5hZ2VkT2JqZWN0O1xuXHRcdFx0aWYgKGNvbnRlbnQgJiYgY29udGVudC5pc0EoXCJzYXAuZmUubWFjcm9zLmNvbnRyb2xzLnNlY3Rpb24uSVNpbmdsZVNlY3Rpb25Db250cmlidXRvclwiKSAmJiBibG9ja3NbMF0uaXNBPFRpdGxlPihcInNhcC5tLlRpdGxlXCIpKSB7XG5cdFx0XHRcdGFkanVzdG1lbnRQcm9wcyA9IHRoaXMuYWRqdXN0Rm9yU2luZ2xlQ29udGVudChjb250ZW50LCB7XG5cdFx0XHRcdFx0c2VjdGlvbmZyb21Db2xsZWN0aW9uRmFjZXQ6IHRydWUsXG5cdFx0XHRcdFx0VGl0bGU6IGJsb2Nrc1swXSxcblx0XHRcdFx0XHRTdWJTZWN0aW9uOiBzdWJzZWN0aW9uLFxuXHRcdFx0XHRcdHNob3dUaXRsZTogdGhpcy5nZXRWaXNpYmxlU3ViU2VjdGlvbnMoKS5sZW5ndGggPiAxXG5cdFx0XHRcdH0pO1xuXHRcdFx0fSBlbHNlIGlmIChjb250ZW50ICYmIGNvbnRlbnQuaXNBPER5bmFtaWNTaWRlQ29udGVudD4oXCJzYXAudWkubGF5b3V0LkR5bmFtaWNTaWRlQ29udGVudFwiKSkge1xuXHRcdFx0XHRjb250ZW50ID0gY29udGVudC5nZXRNYWluQ29udGVudCBpbnN0YW5jZW9mIEZ1bmN0aW9uICYmIGNvbnRlbnQ/LmdldE1haW5Db250ZW50KCk7XG5cdFx0XHRcdGlmIChjb250ZW50ICYmIGNvbnRlbnQubGVuZ3RoID09PSAxKSB7XG5cdFx0XHRcdFx0Y29udGVudCA9IGNvbnRlbnRbMF07XG5cdFx0XHRcdFx0YWRqdXN0bWVudFByb3BzID0gdGhpcy5hZGp1c3RGb3JTaW5nbGVDb250ZW50KGNvbnRlbnQsIHtcblx0XHRcdFx0XHRcdHNlY3Rpb25mcm9tQ29sbGVjdGlvbkZhY2V0OiB0cnVlLFxuXHRcdFx0XHRcdFx0VGl0bGU6IGJsb2Nrc1swXSBhcyBUaXRsZSxcblx0XHRcdFx0XHRcdFN1YlNlY3Rpb246IHN1YnNlY3Rpb25cblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4geyBzdWJTZWN0aW9uOiBzdWJzZWN0aW9uLCB0YWJsZXNBZGp1c3RlZDogYWRqdXN0bWVudFByb3BzLnRhYmxlc0FkanVzdGVkIH07XG5cdH1cblxuXHRnZXRTaW5nbGVDb250ZW50KHZpc2libGVTdWJTZWN0aW9ucz86IE9iamVjdFBhZ2VTdWJTZWN0aW9uW10pOiBNYW5hZ2VkT2JqZWN0IHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBzdWJTZWN0aW9ucyA9IHZpc2libGVTdWJTZWN0aW9ucyA/PyB0aGlzLmdldFZpc2libGVTdWJTZWN0aW9ucygpO1xuXHRcdGlmIChzdWJTZWN0aW9ucy5sZW5ndGggPT09IDEpIHtcblx0XHRcdGNvbnN0IGJsb2NrcyA9IHN1YlNlY3Rpb25zWzBdLmdldEJsb2NrcygpO1xuXHRcdFx0aWYgKGJsb2Nrcy5sZW5ndGggPT09IDEgJiYgYmxvY2tzWzBdLmlzQTxTdWJTZWN0aW9uQmxvY2s+KFwic2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLmNvbnRyb2xzLlN1YlNlY3Rpb25CbG9ja1wiKSkge1xuXHRcdFx0XHRyZXR1cm4gYmxvY2tzWzBdLmdldEFnZ3JlZ2F0aW9uKFwiY29udGVudFwiKSBhcyBNYW5hZ2VkT2JqZWN0O1xuXHRcdFx0fVxuXHRcdFx0Ly9JZiB0aGVyZSBpcyBhbiBpbnZpc2libGUgdGV4dCBiZWZvcmUgYSBzdGFuZGFyZCBidWlsZGluZyBibG9jaywgdGhlbiBhbHNvIHRoZSBtZXJnZSB0aXRsZSBsb2dpYyBzaG91bGQgYmUgYXBwbGllZCBhcyBpdHMgc3RpbGwgYSBzaW5nbGUgY29udGVudFxuXHRcdFx0ZWxzZSBpZiAoXG5cdFx0XHRcdGJsb2Nrcy5sZW5ndGggPT09IDIgJiZcblx0XHRcdFx0YmxvY2tzWzBdLmlzQShcInNhcC51aS5jb3JlLkludmlzaWJsZVRleHRcIikgJiZcblx0XHRcdFx0YmxvY2tzWzFdLmlzQTxTdWJTZWN0aW9uQmxvY2s+KFwic2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLmNvbnRyb2xzLlN1YlNlY3Rpb25CbG9ja1wiKVxuXHRcdFx0KVxuXHRcdFx0XHRyZXR1cm4gYmxvY2tzWzFdLmdldEFnZ3JlZ2F0aW9uKFwiY29udGVudFwiKSBhcyBNYW5hZ2VkT2JqZWN0O1xuXHRcdH1cblx0fVxuXG5cdGdldFZpc2libGVTdWJTZWN0aW9ucygpOiBPYmplY3RQYWdlU3ViU2VjdGlvbltdIHtcblx0XHRjb25zdCBzdWJTZWN0aW9ucyA9IHRoaXMuZ2V0U3ViU2VjdGlvbnMoKTtcblx0XHRyZXR1cm4gc3ViU2VjdGlvbnMucmVkdWNlKCh2aXNpYmxlU3ViU2VjdGlvbnM6IE9iamVjdFBhZ2VTdWJTZWN0aW9uW10sIHN1YlNlY3Rpb24pID0+IHtcblx0XHRcdGlmIChzdWJTZWN0aW9uLmdldFZpc2libGUoKSkge1xuXHRcdFx0XHR2aXNpYmxlU3ViU2VjdGlvbnMucHVzaChzdWJTZWN0aW9uKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiB2aXNpYmxlU3ViU2VjdGlvbnM7XG5cdFx0fSwgW10gYXMgT2JqZWN0UGFnZVN1YlNlY3Rpb25bXSk7XG5cdH1cblxuXHRnZXRTZWN0aW9uVGl0bGUoKTogc3RyaW5nIHtcblx0XHRsZXQgdGl0bGUgPSB0aGlzLmdldFRpdGxlKCk7XG5cdFx0aWYgKHRoaXMuZ2V0VmlzaWJsZVN1YlNlY3Rpb25zKCkubGVuZ3RoID09PSAxKSB7XG5cdFx0XHR0aXRsZSA9IHRoaXMuZ2V0VmlzaWJsZVN1YlNlY3Rpb25zKClbMF0uZ2V0VGl0bGUoKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRpdGxlO1xuXHR9XG5cblx0LyoqXG5cdCAqIEFkanVzdCB0aGUgc2VjdGlvbiBhbmQgc3Vic2VjdGlvbiBiYXNlZCBvbiB0aGUgYXZhaWxhYmxlIGNvbnRlbnQuXG5cdCAqIEBwYXJhbSBzaW5nbGVDb250ZW50IENvbnRlbnRcblx0ICogQHBhcmFtIHNlY3Rpb25EZXRhaWxzIERldGFpbHNcblx0ICogQHJldHVybnMgSXMgdGhlIHNlY3Rpb24gYWRqdXN0ZWQuXG5cdCAqL1xuXHRhZGp1c3RGb3JTaW5nbGVDb250ZW50KFxuXHRcdHNpbmdsZUNvbnRlbnQ6IE1hbmFnZWRPYmplY3QsXG5cdFx0c2VjdGlvbkRldGFpbHM/OiBSZWNvcmQ8c3RyaW5nLCBPYmplY3RQYWdlU3ViU2VjdGlvbiB8IFRpdGxlIHwgYm9vbGVhbj5cblx0KTogQWRqdXN0bWVudFByb3BzIHtcblx0XHQvLyBzYXBVaVRhYmxlT25PYmplY3RQYWdlQWRqdXN0bWVudHNGb3JTZWN0aW9uIGNsYXNzIGF0IGxldmVsIG1ha2VzIGJhY2tncm91bmQgb2Ygc3Vic2VjdGlvbiB0aXRsZXMgdHJhbnNwYXJlbnQuXG5cdFx0Ly8gVGhpcyB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kIGlzIHByb3BhZ2F0ZWQgdG8gY29udGVudHMgdGhhdCBhcmUgZXhwZWN0ZWQgdG8gc2hvdyBvcGFxdWUgYmFja2dyb3VuZHMgYnkgZGVmYXVsdC5cblx0XHQvLyBXZSBuZWVkIHRvIGFkZCBleGNsdXNpb24gY2xhc3MgXCJzYXBVaUFkanVzdGVkU2VjdGlvblN1YnNlY3Rpb25XaXRob3V0VGFibGVcIiB0byB0aGUgc3Vic2VjdGlvbiB0aGF0IGRvZXNuJ3QgbmVlZFxuXHRcdGNvbnN0IGNsYXNzZXNUb0FkZDogU2V0PHN0cmluZz4gPSBuZXcgU2V0KCk7XG5cdFx0Y29uc3Qgc2VjdGlvbk9ubHlDb250ZW50ID0gc2luZ2xlQ29udGVudCBhcyB1bmtub3duIGFzIElTaW5nbGVTZWN0aW9uQ29udHJpYnV0b3I7XG5cdFx0Ly8gVGhpcyBmdW5jdGlvbiB3aWxsIGFsc28gYmUgY2FsbGVkIGZyb20gdGhlIGV4dGVuc2lvbkFQSSBhbG9uZyB3aXRoIHNvbWUgY29udHJvbHMgYnkgdGhlIGFwcGxpY2F0aW9uIGRldmVsb3BlciwgdGhlIGJlbG93IGNoZWNrIGlzIGFkZGVkIHRvIGNvdmVyIHRoZSBjYXNlcyB3aGVyZSB0aGUgY29udHJvbHMgcGFzc2VkIGxpa2Ugc2FwLm0uVGl0bGUgYXJlIG5vdCBpbXBsZW1lbnRpbmcgdGhlIGludGVyZmFjZVxuXHRcdGNvbnN0IGNvbnRlbnRSb2xlID0gc2VjdGlvbk9ubHlDb250ZW50LmdldFNlY3Rpb25Db250ZW50Um9sZSAmJiBzZWN0aW9uT25seUNvbnRlbnQuZ2V0U2VjdGlvbkNvbnRlbnRSb2xlKCk7XG5cdFx0aWYgKGNvbnRlbnRSb2xlID09PSBcInByb3ZpZGVyXCIpIHtcblx0XHRcdGNvbnN0IGluZm9Gcm9tUHJvdmlkZXIgPVxuXHRcdFx0XHRzZWN0aW9uT25seUNvbnRlbnQuZ2V0RGF0YUZyb21Qcm92aWRlciAmJiBzZWN0aW9uT25seUNvbnRlbnQuZ2V0RGF0YUZyb21Qcm92aWRlcih0aGlzLnVzZVNpbmdsZVRleHRBcmVhRmllbGRBc05vdGVzKTtcblx0XHRcdGlmIChpbmZvRnJvbVByb3ZpZGVyICYmIHRoaXMuZ2V0VGl0bGUoKSA9PT0gaW5mb0Zyb21Qcm92aWRlci50aXRsZSkge1xuXHRcdFx0XHQvL3RoaXMuc2V0VGl0bGUoaW5mb0Zyb21Qcm92aWRlci50aXRsZSk7XG5cdFx0XHRcdHRoaXMuc2V0U2hvd1RpdGxlKHRydWUpO1xuXHRcdFx0XHQvLyBUT0RPOiBDaGVjayBpZiB0aGlzIGlzIHJlYWxseSBuZWVkZWQ/XG5cdFx0XHRcdGNsYXNzZXNUb0FkZC5hZGQoXCJzYXBVaVRhYmxlT25PYmplY3RQYWdlQWRqdXN0bWVudHNGb3JTZWN0aW9uXCIpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSBpZiAoY29udGVudFJvbGUgPT09IFwiY29uc3VtZXJcIikge1xuXHRcdFx0bGV0IHRpdGxlID0gdGhpcy5nZXRTZWN0aW9uVGl0bGUoKTtcblx0XHRcdGlmIChzZWN0aW9uRGV0YWlscz8uc2VjdGlvbmZyb21Db2xsZWN0aW9uRmFjZXQpIHtcblx0XHRcdFx0dGl0bGUgPSAoc2VjdGlvbkRldGFpbHM/LlRpdGxlIGFzIFRpdGxlKT8uZ2V0VGV4dCgpO1xuXHRcdFx0XHQoc2VjdGlvbkRldGFpbHM/LlRpdGxlIGFzIFRpdGxlKT8uc2V0VmlzaWJsZShmYWxzZSk7XG5cdFx0XHRcdChzZWN0aW9uRGV0YWlscz8uU3ViU2VjdGlvbiBhcyBPYmplY3RQYWdlU3ViU2VjdGlvbik/LnNldFNob3dUaXRsZShmYWxzZSk7XG5cdFx0XHR9IGVsc2UgaWYgKHNlY3Rpb25EZXRhaWxzPy5zZWN0aW9uRnJvbVJlZmVyZW5jZUZhY2V0KSB7XG5cdFx0XHRcdHRpdGxlID0gKHNlY3Rpb25EZXRhaWxzPy5TdWJTZWN0aW9uIGFzIE9iamVjdFBhZ2VTdWJTZWN0aW9uKT8uZ2V0VGl0bGUoKTtcblx0XHRcdFx0KHNlY3Rpb25EZXRhaWxzPy5TdWJTZWN0aW9uIGFzIE9iamVjdFBhZ2VTdWJTZWN0aW9uKT8uc2V0U2hvd1RpdGxlKGZhbHNlKTtcblx0XHRcdH1cblx0XHRcdGlmICh0aXRsZSA9PT0gXCJcIiAmJiBzZWN0aW9uRGV0YWlscz8uU3ViU2VjdGlvbikge1xuXHRcdFx0XHR0aXRsZSA9IChzZWN0aW9uRGV0YWlscz8uU3ViU2VjdGlvbiBhcyBPYmplY3RQYWdlU3ViU2VjdGlvbikuZ2V0VGl0bGUoKTtcblx0XHRcdH1cblx0XHRcdGlmIChzZWN0aW9uT25seUNvbnRlbnQuc2VuZERhdGFUb0NvbnN1bWVyKSB7XG5cdFx0XHRcdGNvbnN0IHN1YlNlY3Rpb25zID0gdGhpcy5nZXRTdWJTZWN0aW9ucygpO1xuXHRcdFx0XHRjb25zdCBoYXNNdWx0aXBsZVN1YnNlY3Rpb25zID0gISEoc3ViU2VjdGlvbnM/Lmxlbmd0aCA+IDEpO1xuXG5cdFx0XHRcdHNlY3Rpb25Pbmx5Q29udGVudC5zZW5kRGF0YVRvQ29uc3VtZXIoe1xuXHRcdFx0XHRcdHRpdGxlTGV2ZWw6IGhhc011bHRpcGxlU3Vic2VjdGlvbnMgPyBcIkg0XCIgOiBcIkgzXCIsIC8vIEZvciBzZWN0aW9uIGhlYWRlciBsZXZlbCBpcyBIMyB0aGUgZm9yIHN1YnNlY3Rpb25zIGhlYWRlciBsZXZlbCBzaG91bGQgYmUgaDQsXG5cdFx0XHRcdFx0dGl0bGU6IHRpdGxlLFxuXHRcdFx0XHRcdGhlYWRlclN0eWxlOiBoYXNNdWx0aXBsZVN1YnNlY3Rpb25zID8gXCJINVwiIDogXCJINFwiXG5cdFx0XHRcdH0pO1xuXHRcdFx0XHR0aGlzLnNldFNob3dUaXRsZSghIXNlY3Rpb25EZXRhaWxzPy5zaG93VGl0bGUpO1xuXHRcdFx0XHRjbGFzc2VzVG9BZGQuYWRkKFwic2FwVWlUYWJsZU9uT2JqZWN0UGFnZUFkanVzdG1lbnRzRm9yU2VjdGlvblwiKTtcblxuXHRcdFx0XHQvLyBpZiB0aGUgc2VjdGlvbiBoYXMgb25seSBzdWIgc2VjdGlvbiwgdGhlbiB0aGUgc3ViIHNlY3Rpb24ncyB0aXRsZSBzaG91bGQgbm90IGJlIGRpc3BsYXllZFxuXHRcdFx0XHRpZiAoIWhhc011bHRpcGxlU3Vic2VjdGlvbnMpIHN1YlNlY3Rpb25zWzBdLnNldFNob3dUaXRsZShmYWxzZSk7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIGlmIChzaW5nbGVDb250ZW50Py5pc0EoXCJzYXAubS5UaXRsZVwiKSkge1xuXHRcdFx0Y29uc3Qgc3ViU2VjdGlvbnMgPSB0aGlzLmdldFZpc2libGVTdWJTZWN0aW9ucygpIHx8IFtdO1xuXHRcdFx0Y29uc3QgaGFzTXVsdGlwbGVTdWJzZWN0aW9ucyA9IHN1YlNlY3Rpb25zLmxlbmd0aCA+IDE7XG5cblx0XHRcdC8vIEhhbmRsZSB0aXRsZSBzdHlsaW5nIGFuZCB2aXNpYmlsaXR5IGlmIHJldXNlIGNvbXBvbmVudCBpcyBub3QgZW5hYmxlZFxuXHRcdFx0aWYgKCFzZWN0aW9uRGV0YWlscz8ubXVsdGlwbGVTdWJTZWN0aW9uc1dpdGhSZXVzZUNvbXBvbmVudCkge1xuXHRcdFx0XHRjb25zdCB0aXRsZSA9IHNpbmdsZUNvbnRlbnQgYXMgVGl0bGU7XG5cdFx0XHRcdHRpdGxlLnNldFRleHQodGhpcy5nZXRUaXRsZSgpKTtcblx0XHRcdFx0dGl0bGUuc2V0VGl0bGVTdHlsZShoYXNNdWx0aXBsZVN1YnNlY3Rpb25zID8gXCJINVwiIDogXCJINFwiKTtcblx0XHRcdFx0dGl0bGUuc2V0TGV2ZWwodGhpcy5nZXRUaXRsZUxldmVsKCkpO1xuXHRcdFx0XHR0aGlzLnNldFNob3dUaXRsZShmYWxzZSk7XG5cdFx0XHRcdGNsYXNzZXNUb0FkZC5hZGQoXCJzYXBVaVRhYmxlT25PYmplY3RQYWdlQWRqdXN0bWVudHNGb3JTZWN0aW9uXCIpO1xuXHRcdFx0fVxuXHRcdFx0Ly8gSGlkZSBzdWJzZWN0aW9uIHRpdGxlIGlmIHRoZXJlJ3Mgb25seSBvbmUgdmlzaWJsZSBzdWJzZWN0aW9uXG5cdFx0XHRpZiAoc3ViU2VjdGlvbnMubGVuZ3RoID09PSAxKSB7XG5cdFx0XHRcdHN1YlNlY3Rpb25zWzBdLnNldFNob3dUaXRsZShmYWxzZSk7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIGlmICh0aGlzLmNoZWNrSWZOb3Rlc1JldXNlQ29tcG9uZW50KHNpbmdsZUNvbnRlbnQpKSB7XG5cdFx0XHQvKipcblx0XHRcdCAqIE5vdGVzIFJldXNlIGNvbXBvbmVudCBoYXMgdGhlIGZvbGxvd2luZyBzdHJ1Y3R1cmUgOlxuXHRcdFx0ICogPFZCb3ggaWQ9XCJOb3RlU2VjdGlvblwiPlxuXHRcdFx0ICogPE1lc3NhZ2VTdHJpcCBpZD1cIm5vdGVzRGVidWdQcm9wZXJ0aWVzXCI+XG5cdFx0XHQgKiA8TGlzdCBpZD1cIk5vdGVzTGlzdFwiPlxuXHRcdFx0ICogPGhlYWRlclRvb2xiYXI+XG5cdFx0XHQgKiA8T3ZlcmZsb3dUb29sYmFyIGlkPVwibm90ZUhlYWRlck92ZXJmbG93VG9vbGJhclwiIHN0eWxlPVwiU3RhbmRhcmRcIj5cblx0XHRcdCAqICAgICAgIDxUaXRsZSBpZD1cIm5vdGVIZWFkZXJPdmVyZmxvd1Rvb2xiYXJUaXRsZVwiLz5cblx0XHRcdCAqXHRcdC4uLi4uLlxuXHRcdFx0ICpcdDwvT3ZlcmZsb3dUb29sYmFyPlxuXHRcdFx0ICpcdDwvaGVhZGVyVG9vbGJhcj5cblx0XHRcdCAqXHQuLi4uLi5cblx0XHRcdCAqXHQ8L0xpc3Q+XG5cdFx0XHQgKlx0PC9WQm94PlxuXHRcdFx0ICpcdC4uLi4uXG5cdFx0XHQgKlxuXHRcdFx0ICogV2UgYXJlIGFwcGx5aW5nIHRoZSB0aXRsZSBtZXJnZSBsb2dpYyBmb3IgdGhlIHRpdGxlIHdpdGhpbiB0aGUgb3ZlcmZsb3cgdG9vbGJhclxuXHRcdFx0ICogaW4gdGhlIGZvbGxvd2luZyBjb2RlXG5cdFx0XHQgKlxuXHRcdFx0ICovXG5cdFx0XHRjb25zdCB2Qm94SXRlbXMgPSAoc2luZ2xlQ29udGVudCBhcyBWQm94KS5nZXRJdGVtcygpO1xuXHRcdFx0dkJveEl0ZW1zLmZvckVhY2goKHZCb3hJdGVtKSA9PiB7XG5cdFx0XHRcdGNvbnN0IGhlYWRlclRvb2xiYXIgPSB2Qm94SXRlbS5nZXRBZ2dyZWdhdGlvbihcImhlYWRlclRvb2xiYXJcIik7XG5cdFx0XHRcdGlmIChoZWFkZXJUb29sYmFyKSB7XG5cdFx0XHRcdFx0KGhlYWRlclRvb2xiYXIgYXMgT3ZlcmZsb3dUb29sYmFyKT8uZ2V0Q29udGVudCgpLmZvckVhY2goKGNvbnRyb2wpID0+IHtcblx0XHRcdFx0XHRcdGlmIChjb250cm9sLmlzQShcInNhcC5tLlRpdGxlXCIpKSB7XG5cdFx0XHRcdFx0XHRcdGNvbnN0IG5vdGVzVGl0bGUgPSBjb250cm9sIGFzIFRpdGxlO1xuXHRcdFx0XHRcdFx0XHRub3Rlc1RpdGxlLnNldFRleHQodGhpcy5nZXRUaXRsZSgpKTtcblx0XHRcdFx0XHRcdFx0bm90ZXNUaXRsZS5zZXRUaXRsZVN0eWxlKFwiSDRcIik7XG5cdFx0XHRcdFx0XHRcdG5vdGVzVGl0bGUuc2V0TGV2ZWwodGhpcy5nZXRUaXRsZUxldmVsKCkpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHRcdC8vIFNpbmdsZSBjb250ZW50IHdpdGggc2luZ2xlIHN1YnNlY3Rpb24gbWVhbnMgc2VjdGlvbiB0aXRsZSgxKSwgc3Vic2VjdGlvbiB0aXRsZSgyKSBhbmQgTm90ZXMgUmV1c2UgY29tcG9uZW50IHRpdGxlKDMpIGFyZSBhdmFpbGFibGUuXG5cdFx0XHQvLyBXZSBzaGFsbCBzaG93IG9ubHkgMy4gV2UgaGlkZSAxIGFuZCAyLlxuXHRcdFx0Y29uc3Qgc3ViU2VjdGlvbnMgPSB0aGlzLmdldFZpc2libGVTdWJTZWN0aW9ucygpO1xuXHRcdFx0aWYgKHN1YlNlY3Rpb25zLmxlbmd0aCA9PT0gMSkge1xuXHRcdFx0XHRzdWJTZWN0aW9uc1swXS5zZXRTaG93VGl0bGUoZmFsc2UpO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5zZXRTaG93VGl0bGUoZmFsc2UpO1xuXHRcdFx0Y2xhc3Nlc1RvQWRkLmFkZChcInNhcFVpVGFibGVPbk9iamVjdFBhZ2VBZGp1c3RtZW50c0ZvclNlY3Rpb25cIik7XG5cdFx0fVxuXHRcdHRoaXMuYWRkU3R5bGVDbGFzcyhBcnJheS5mcm9tKGNsYXNzZXNUb0FkZCkuam9pbihcIiBcIikpO1xuXHRcdHJldHVybiB7IHRhYmxlc0FkanVzdGVkOiBjbGFzc2VzVG9BZGQuaGFzKFwic2FwVWlUYWJsZU9uT2JqZWN0UGFnZUFkanVzdG1lbnRzRm9yU2VjdGlvblwiKSB9O1xuXHR9XG59XG5c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
|
|
@@ -348,7 +348,7 @@ class Section extends ObjectPageSection {
|
|
|
348
348
|
const hasMultipleSubsections = !!(subSections?.length > 1);
|
|
349
349
|
|
|
350
350
|
sectionOnlyContent.sendDataToConsumer({
|
|
351
|
-
titleLevel:
|
|
351
|
+
titleLevel: hasMultipleSubsections ? "H4" : "H3", // For section header level is H3 the for subsections header level should be h4,
|
|
352
352
|
title: title,
|
|
353
353
|
headerStyle: hasMultipleSubsections ? "H5" : "H4"
|
|
354
354
|
});
|
|
@@ -75,6 +75,20 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/buildingBlocks/BuildingB
|
|
|
75
75
|
this.setProperty("showAsLink", showAsLink);
|
|
76
76
|
this.updateContent();
|
|
77
77
|
}
|
|
78
|
+
};
|
|
79
|
+
_proto._setAriaLabelledBy = function _setAriaLabelledBy(content) {
|
|
80
|
+
if (content && content.addAriaLabelledBy) {
|
|
81
|
+
const ariaLabelledBy = this.ariaLabelledBy;
|
|
82
|
+
for (const id of ariaLabelledBy) {
|
|
83
|
+
const ariaLabelledBys = content.getAriaLabelledBy() || [];
|
|
84
|
+
if (!ariaLabelledBys.includes(id)) {
|
|
85
|
+
content.addAriaLabelledBy(id);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
_proto.onBeforeRendering = function onBeforeRendering() {
|
|
91
|
+
this._setAriaLabelledBy(this.content);
|
|
78
92
|
}
|
|
79
93
|
|
|
80
94
|
/**
|
|
@@ -146,4 +160,4 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/buildingBlocks/BuildingB
|
|
|
146
160
|
_exports = TextLink;
|
|
147
161
|
return _exports;
|
|
148
162
|
}, false);
|
|
149
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUZXh0TGluayIsIl9kZWMiLCJkZWZpbmVVSTVDbGFzcyIsIl9kZWMyIiwicHJvcGVydHkiLCJ0eXBlIiwiZGVmYXVsdFZhbHVlIiwiX2RlYzMiLCJyZXF1aXJlZCIsIl9kZWM0IiwiX2RlYzUiLCJfZGVjNiIsIl9kZWM3IiwiZXZlbnQiLCJfY2xhc3MiLCJfY2xhc3MyIiwiX0J1aWxkaW5nQmxvY2siLCJwcm9wZXJ0aWVzIiwib3RoZXJzIiwiX3RoaXMiLCJjYWxsIiwiX2luaXRpYWxpemVyRGVmaW5lUHJvcGVydHkiLCJfZGVzY3JpcHRvciIsIl9kZXNjcmlwdG9yMiIsIl9kZXNjcmlwdG9yMyIsIl9kZXNjcmlwdG9yNCIsIl9kZXNjcmlwdG9yNSIsIl9kZXNjcmlwdG9yNiIsInVwZGF0ZUNvbnRlbnQiLCJfZXhwb3J0cyIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwic2V0U2VtYW50aWNPYmplY3QiLCJzZW1hbnRpY09iamVjdCIsInNlbWFudGljT2JqZWN0c0xpc3QiLCJhdmFpbGFibGVTZW1hbnRpY09iamVjdHNUb1VzZXIiLCJnZXRNb2RlbCIsImdldE9iamVjdCIsInN0YXJ0c1dpdGgiLCJKU09OIiwicGFyc2UiLCJzZXRTaG93QXNMaW5rIiwiU2VtYW50aWNPYmplY3RIZWxwZXIiLCJnZXRSZWFjaGFibGVTZW1hbnRpY09iamVjdHNTZXR0aW5ncyIsInNlbWFudGljT2JqZWN0c0V4cHJlc3Npb25MaXN0IiwicXVhbGlmaWVyTWFwIiwiaGFzUmVhY2hhYmxlU3RhdGljU2VtYW50aWNPYmplY3QiLCJzaG93QXNMaW5rIiwic2V0UHJvcGVydHkiLCJzZXRUZXh0IiwidGV4dCIsImNvbnRlbnQiLCJjcmVhdGVDb250ZW50IiwiX2pzeCIsIkxpbmsiLCJ3cmFwcGluZyIsImVtcHR5SW5kaWNhdG9yTW9kZSIsInByZXNzIiwicHJlc3NFdmVudCIsImZpcmVFdmVudCIsImFjY2Vzc2libGVSb2xlIiwiTGlua0FjY2Vzc2libGVSb2xlIiwiQnV0dG9uIiwiVGV4dCIsImRlc3Ryb3kiLCJCdWlsZGluZ0Jsb2NrIiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJ3cml0YWJsZSIsImluaXRpYWxpemVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJUZXh0TGluay50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcm9wZXJ0aWVzT2YgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgZXZlbnQsIHByb3BlcnR5IH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IEJ1aWxkaW5nQmxvY2sgZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL0J1aWxkaW5nQmxvY2tcIjtcbmltcG9ydCAqIGFzIFNlbWFudGljT2JqZWN0SGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL1NlbWFudGljT2JqZWN0SGVscGVyXCI7XG5pbXBvcnQgTGluaywgeyB0eXBlIExpbmskUHJlc3NFdmVudCB9IGZyb20gXCJzYXAvbS9MaW5rXCI7XG5pbXBvcnQgVGV4dCBmcm9tIFwic2FwL20vVGV4dFwiO1xuaW1wb3J0IHsgTGlua0FjY2Vzc2libGVSb2xlIH0gZnJvbSBcInNhcC9tL2xpYnJhcnlcIjtcbmltcG9ydCB0eXBlIHsgJENvbnRyb2xTZXR0aW5ncyB9IGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5tYWNyb3MuY29udHJvbHMuVGV4dExpbmtcIilcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRleHRMaW5rIGV4dGVuZHMgQnVpbGRpbmdCbG9jazxUZXh0IHwgTGluaz4ge1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW5cIiwgZGVmYXVsdFZhbHVlOiBmYWxzZSB9KVxuXHRzaG93QXNMaW5rPzogYm9vbGVhbjtcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1wiLCByZXF1aXJlZDogZmFsc2UgfSlcblx0c2VtYW50aWNPYmplY3QhOiBzdHJpbmc7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIsIGRlZmF1bHRWYWx1ZTogZmFsc2UgfSlcblx0d3JhcHBpbmchOiBib29sZWFuO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIsIHJlcXVpcmVkOiBmYWxzZSB9KVxuXHR0ZXh0ITogc3RyaW5nO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIsIHJlcXVpcmVkOiBmYWxzZSB9KVxuXHRlbXB0eUluZGljYXRvck1vZGUhOiBzdHJpbmc7XG5cblx0QGV2ZW50KClcblx0cHJlc3M/OiAoZXZlbnQ6IExpbmskUHJlc3NFdmVudCkgPT4gdm9pZDtcblxuXHRjb25zdHJ1Y3Rvcihwcm9wZXJ0aWVzOiAkQ29udHJvbFNldHRpbmdzICYgUHJvcGVydGllc09mPFRleHRMaW5rPiwgb3RoZXJzPzogJENvbnRyb2xTZXR0aW5ncykge1xuXHRcdHN1cGVyKHByb3BlcnRpZXMsIG90aGVycyk7XG5cblx0XHR0aGlzLnVwZGF0ZUNvbnRlbnQoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBTZXR0ZXIgZm9yIHRoZSBzZW1hbnRpY09iamVjdCBwcm9wZXJ0eS5cblx0ICogQHBhcmFtIHNlbWFudGljT2JqZWN0XG5cdCAqL1xuXHRzZXRTZW1hbnRpY09iamVjdChzZW1hbnRpY09iamVjdDogc3RyaW5nIHwgdW5kZWZpbmVkKTogdm9pZCB7XG5cdFx0aWYgKHNlbWFudGljT2JqZWN0KSB7XG5cdFx0XHRsZXQgc2VtYW50aWNPYmplY3RzTGlzdDogc3RyaW5nW10gPSBbXTtcblx0XHRcdHRoaXMuc2VtYW50aWNPYmplY3QgPSBzZW1hbnRpY09iamVjdDtcblx0XHRcdGNvbnN0IGF2YWlsYWJsZVNlbWFudGljT2JqZWN0c1RvVXNlcjogc3RyaW5nW10gPSB0aGlzLmdldE1vZGVsKFwiaW50ZXJuYWxcIik/LmdldE9iamVjdChcIi9zZW1hbnRpY09iamVjdHNcIikgPz8gW107XG5cdFx0XHRzZW1hbnRpY09iamVjdHNMaXN0ID0gc2VtYW50aWNPYmplY3Quc3RhcnRzV2l0aChcIltcIikgPyBKU09OLnBhcnNlKHNlbWFudGljT2JqZWN0KSA6IFtzZW1hbnRpY09iamVjdF07XG5cdFx0XHR0aGlzLnNldFNob3dBc0xpbmsoXG5cdFx0XHRcdFNlbWFudGljT2JqZWN0SGVscGVyLmdldFJlYWNoYWJsZVNlbWFudGljT2JqZWN0c1NldHRpbmdzKGF2YWlsYWJsZVNlbWFudGljT2JqZWN0c1RvVXNlciwge1xuXHRcdFx0XHRcdHNlbWFudGljT2JqZWN0c0xpc3Q6IHNlbWFudGljT2JqZWN0c0xpc3QsXG5cdFx0XHRcdFx0c2VtYW50aWNPYmplY3RzRXhwcmVzc2lvbkxpc3Q6IFtdLFxuXHRcdFx0XHRcdHF1YWxpZmllck1hcDoge31cblx0XHRcdFx0fSkuaGFzUmVhY2hhYmxlU3RhdGljU2VtYW50aWNPYmplY3Rcblx0XHRcdCk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFNldHRlciBmb3IgdGhlIHNob3dBc0xpbmsgcHJvcGVydHkuXG5cdCAqIEBwYXJhbSBzaG93QXNMaW5rXG5cdCAqL1xuXHRzZXRTaG93QXNMaW5rKHNob3dBc0xpbms6IGJvb2xlYW4pOiB2b2lkIHtcblx0XHRpZiAoc2hvd0FzTGluayAhPT0gdGhpcy5zaG93QXNMaW5rKSB7XG5cdFx0XHR0aGlzLnNldFByb3BlcnR5KFwic2hvd0FzTGlua1wiLCBzaG93QXNMaW5rKTtcblx0XHRcdHRoaXMudXBkYXRlQ29udGVudCgpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBTZXR0ZXIgZm9yIHRoZSB0ZXh0IHByb3BlcnR5LlxuXHQgKiBAcGFyYW0gdGV4dFxuXHQgKi9cblx0c2V0VGV4dCh0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcblx0XHQvLyBpbiBjYXNlIHRoZSB0ZXh0IGlzIHNldCBhZnRlciB0aGUgaW5uZXIgY29udHJvbCBjcmVhdGlvbiB3ZSBuZWVkIHRvIGZvcndhcmQgaXRcblx0XHR0aGlzLnNldFByb3BlcnR5KFwidGV4dFwiLCB0ZXh0KTtcblx0XHR0aGlzLmNvbnRlbnQ/LnNldFRleHQodGV4dCk7XG5cdH1cblxuXHRjcmVhdGVDb250ZW50KCk6IFRleHQgfCBMaW5rIHtcblx0XHRpZiAodGhpcy5zaG93QXNMaW5rID09PSB0cnVlKSB7XG5cdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHQ8TGlua1xuXHRcdFx0XHRcdHRleHQ9e3RoaXMudGV4dH1cblx0XHRcdFx0XHR3cmFwcGluZz17dGhpcy53cmFwcGluZ31cblx0XHRcdFx0XHRlbXB0eUluZGljYXRvck1vZGU9e3RoaXMuZW1wdHlJbmRpY2F0b3JNb2RlfVxuXHRcdFx0XHRcdHByZXNzPXsocHJlc3NFdmVudCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5maXJlRXZlbnQoXCJwcmVzc1wiLCBwcmVzc0V2ZW50KTtcblx0XHRcdFx0XHR9fVxuXHRcdFx0XHRcdGFjY2Vzc2libGVSb2xlPXtMaW5rQWNjZXNzaWJsZVJvbGUuQnV0dG9ufVxuXHRcdFx0XHQvPlxuXHRcdFx0KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIDxUZXh0IHRleHQ9e3RoaXMudGV4dH0gd3JhcHBpbmc9e3RoaXMud3JhcHBpbmd9IGVtcHR5SW5kaWNhdG9yTW9kZT17dGhpcy5lbXB0eUluZGljYXRvck1vZGV9IC8+O1xuXHRcdH1cblx0fVxuXG5cdHVwZGF0ZUNvbnRlbnQoKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuY29udGVudCkge1xuXHRcdFx0dGhpcy5jb250ZW50LmRlc3Ryb3koKTtcblx0XHR9XG5cdFx0dGhpcy5jb250ZW50ID0gdGhpcy5jcmVhdGVDb250ZW50KCk7XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BVXFCQSxRQUFRLElBQUFDLElBQUEsR0FENUJDLGNBQWMsQ0FBQyxpQ0FBaUMsQ0FBQyxFQUFB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
|
|
163
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUZXh0TGluayIsIl9kZWMiLCJkZWZpbmVVSTVDbGFzcyIsIl9kZWMyIiwicHJvcGVydHkiLCJ0eXBlIiwiZGVmYXVsdFZhbHVlIiwiX2RlYzMiLCJyZXF1aXJlZCIsIl9kZWM0IiwiX2RlYzUiLCJfZGVjNiIsIl9kZWM3IiwiZXZlbnQiLCJfY2xhc3MiLCJfY2xhc3MyIiwiX0J1aWxkaW5nQmxvY2siLCJwcm9wZXJ0aWVzIiwib3RoZXJzIiwiX3RoaXMiLCJjYWxsIiwiX2luaXRpYWxpemVyRGVmaW5lUHJvcGVydHkiLCJfZGVzY3JpcHRvciIsIl9kZXNjcmlwdG9yMiIsIl9kZXNjcmlwdG9yMyIsIl9kZXNjcmlwdG9yNCIsIl9kZXNjcmlwdG9yNSIsIl9kZXNjcmlwdG9yNiIsInVwZGF0ZUNvbnRlbnQiLCJfZXhwb3J0cyIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwic2V0U2VtYW50aWNPYmplY3QiLCJzZW1hbnRpY09iamVjdCIsInNlbWFudGljT2JqZWN0c0xpc3QiLCJhdmFpbGFibGVTZW1hbnRpY09iamVjdHNUb1VzZXIiLCJnZXRNb2RlbCIsImdldE9iamVjdCIsInN0YXJ0c1dpdGgiLCJKU09OIiwicGFyc2UiLCJzZXRTaG93QXNMaW5rIiwiU2VtYW50aWNPYmplY3RIZWxwZXIiLCJnZXRSZWFjaGFibGVTZW1hbnRpY09iamVjdHNTZXR0aW5ncyIsInNlbWFudGljT2JqZWN0c0V4cHJlc3Npb25MaXN0IiwicXVhbGlmaWVyTWFwIiwiaGFzUmVhY2hhYmxlU3RhdGljU2VtYW50aWNPYmplY3QiLCJzaG93QXNMaW5rIiwic2V0UHJvcGVydHkiLCJfc2V0QXJpYUxhYmVsbGVkQnkiLCJjb250ZW50IiwiYWRkQXJpYUxhYmVsbGVkQnkiLCJhcmlhTGFiZWxsZWRCeSIsImlkIiwiYXJpYUxhYmVsbGVkQnlzIiwiZ2V0QXJpYUxhYmVsbGVkQnkiLCJpbmNsdWRlcyIsIm9uQmVmb3JlUmVuZGVyaW5nIiwic2V0VGV4dCIsInRleHQiLCJjcmVhdGVDb250ZW50IiwiX2pzeCIsIkxpbmsiLCJ3cmFwcGluZyIsImVtcHR5SW5kaWNhdG9yTW9kZSIsInByZXNzIiwicHJlc3NFdmVudCIsImZpcmVFdmVudCIsImFjY2Vzc2libGVSb2xlIiwiTGlua0FjY2Vzc2libGVSb2xlIiwiQnV0dG9uIiwiVGV4dCIsImRlc3Ryb3kiLCJCdWlsZGluZ0Jsb2NrIiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJ3cml0YWJsZSIsImluaXRpYWxpemVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJUZXh0TGluay50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcm9wZXJ0aWVzT2YgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgZXZlbnQsIHByb3BlcnR5IH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IEJ1aWxkaW5nQmxvY2sgZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL0J1aWxkaW5nQmxvY2tcIjtcbmltcG9ydCAqIGFzIFNlbWFudGljT2JqZWN0SGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL1NlbWFudGljT2JqZWN0SGVscGVyXCI7XG5pbXBvcnQgTGluaywgeyB0eXBlIExpbmskUHJlc3NFdmVudCB9IGZyb20gXCJzYXAvbS9MaW5rXCI7XG5pbXBvcnQgVGV4dCBmcm9tIFwic2FwL20vVGV4dFwiO1xuaW1wb3J0IHsgTGlua0FjY2Vzc2libGVSb2xlIH0gZnJvbSBcInNhcC9tL2xpYnJhcnlcIjtcbmltcG9ydCB0eXBlIENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCB0eXBlIHsgJENvbnRyb2xTZXR0aW5ncyB9IGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5cbnR5cGUgQ29udHJvbFdpdGhBY2Nlc3NpYmlsaXR5ID0gQ29udHJvbCAmIHsgYWRkQXJpYUxhYmVsbGVkQnk/OiAoaWQ6IHN0cmluZykgPT4gdm9pZDsgZ2V0QXJpYUxhYmVsbGVkQnk6ICgpID0+IHN0cmluZ1tdIH07XG5cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5tYWNyb3MuY29udHJvbHMuVGV4dExpbmtcIilcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRleHRMaW5rIGV4dGVuZHMgQnVpbGRpbmdCbG9jazxUZXh0IHwgTGluaz4ge1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW5cIiwgZGVmYXVsdFZhbHVlOiBmYWxzZSB9KVxuXHRzaG93QXNMaW5rPzogYm9vbGVhbjtcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1wiLCByZXF1aXJlZDogZmFsc2UgfSlcblx0c2VtYW50aWNPYmplY3QhOiBzdHJpbmc7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIsIGRlZmF1bHRWYWx1ZTogZmFsc2UgfSlcblx0d3JhcHBpbmchOiBib29sZWFuO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIsIHJlcXVpcmVkOiBmYWxzZSB9KVxuXHR0ZXh0ITogc3RyaW5nO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIsIHJlcXVpcmVkOiBmYWxzZSB9KVxuXHRlbXB0eUluZGljYXRvck1vZGUhOiBzdHJpbmc7XG5cblx0QGV2ZW50KClcblx0cHJlc3M/OiAoZXZlbnQ6IExpbmskUHJlc3NFdmVudCkgPT4gdm9pZDtcblxuXHRjb25zdHJ1Y3Rvcihwcm9wZXJ0aWVzOiAkQ29udHJvbFNldHRpbmdzICYgUHJvcGVydGllc09mPFRleHRMaW5rPiwgb3RoZXJzPzogJENvbnRyb2xTZXR0aW5ncykge1xuXHRcdHN1cGVyKHByb3BlcnRpZXMsIG90aGVycyk7XG5cblx0XHR0aGlzLnVwZGF0ZUNvbnRlbnQoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBTZXR0ZXIgZm9yIHRoZSBzZW1hbnRpY09iamVjdCBwcm9wZXJ0eS5cblx0ICogQHBhcmFtIHNlbWFudGljT2JqZWN0XG5cdCAqL1xuXHRzZXRTZW1hbnRpY09iamVjdChzZW1hbnRpY09iamVjdDogc3RyaW5nIHwgdW5kZWZpbmVkKTogdm9pZCB7XG5cdFx0aWYgKHNlbWFudGljT2JqZWN0KSB7XG5cdFx0XHRsZXQgc2VtYW50aWNPYmplY3RzTGlzdDogc3RyaW5nW10gPSBbXTtcblx0XHRcdHRoaXMuc2VtYW50aWNPYmplY3QgPSBzZW1hbnRpY09iamVjdDtcblx0XHRcdGNvbnN0IGF2YWlsYWJsZVNlbWFudGljT2JqZWN0c1RvVXNlcjogc3RyaW5nW10gPSB0aGlzLmdldE1vZGVsKFwiaW50ZXJuYWxcIik/LmdldE9iamVjdChcIi9zZW1hbnRpY09iamVjdHNcIikgPz8gW107XG5cdFx0XHRzZW1hbnRpY09iamVjdHNMaXN0ID0gc2VtYW50aWNPYmplY3Quc3RhcnRzV2l0aChcIltcIikgPyBKU09OLnBhcnNlKHNlbWFudGljT2JqZWN0KSA6IFtzZW1hbnRpY09iamVjdF07XG5cdFx0XHR0aGlzLnNldFNob3dBc0xpbmsoXG5cdFx0XHRcdFNlbWFudGljT2JqZWN0SGVscGVyLmdldFJlYWNoYWJsZVNlbWFudGljT2JqZWN0c1NldHRpbmdzKGF2YWlsYWJsZVNlbWFudGljT2JqZWN0c1RvVXNlciwge1xuXHRcdFx0XHRcdHNlbWFudGljT2JqZWN0c0xpc3Q6IHNlbWFudGljT2JqZWN0c0xpc3QsXG5cdFx0XHRcdFx0c2VtYW50aWNPYmplY3RzRXhwcmVzc2lvbkxpc3Q6IFtdLFxuXHRcdFx0XHRcdHF1YWxpZmllck1hcDoge31cblx0XHRcdFx0fSkuaGFzUmVhY2hhYmxlU3RhdGljU2VtYW50aWNPYmplY3Rcblx0XHRcdCk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFNldHRlciBmb3IgdGhlIHNob3dBc0xpbmsgcHJvcGVydHkuXG5cdCAqIEBwYXJhbSBzaG93QXNMaW5rXG5cdCAqL1xuXHRzZXRTaG93QXNMaW5rKHNob3dBc0xpbms6IGJvb2xlYW4pOiB2b2lkIHtcblx0XHRpZiAoc2hvd0FzTGluayAhPT0gdGhpcy5zaG93QXNMaW5rKSB7XG5cdFx0XHR0aGlzLnNldFByb3BlcnR5KFwic2hvd0FzTGlua1wiLCBzaG93QXNMaW5rKTtcblx0XHRcdHRoaXMudXBkYXRlQ29udGVudCgpO1xuXHRcdH1cblx0fVxuXG5cdF9zZXRBcmlhTGFiZWxsZWRCeShjb250ZW50PzogQ29udHJvbFdpdGhBY2Nlc3NpYmlsaXR5KTogdm9pZCB7XG5cdFx0aWYgKGNvbnRlbnQgJiYgY29udGVudC5hZGRBcmlhTGFiZWxsZWRCeSkge1xuXHRcdFx0Y29uc3QgYXJpYUxhYmVsbGVkQnkgPSB0aGlzLmFyaWFMYWJlbGxlZEJ5O1xuXHRcdFx0Zm9yIChjb25zdCBpZCBvZiBhcmlhTGFiZWxsZWRCeSkge1xuXHRcdFx0XHRjb25zdCBhcmlhTGFiZWxsZWRCeXMgPSBjb250ZW50LmdldEFyaWFMYWJlbGxlZEJ5KCkgfHwgW107XG5cdFx0XHRcdGlmICghYXJpYUxhYmVsbGVkQnlzLmluY2x1ZGVzKGlkKSkge1xuXHRcdFx0XHRcdGNvbnRlbnQuYWRkQXJpYUxhYmVsbGVkQnkoaWQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0b25CZWZvcmVSZW5kZXJpbmcoKTogdm9pZCB7XG5cdFx0dGhpcy5fc2V0QXJpYUxhYmVsbGVkQnkodGhpcy5jb250ZW50IGFzIHVua25vd24gYXMgQ29udHJvbFdpdGhBY2Nlc3NpYmlsaXR5KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBTZXR0ZXIgZm9yIHRoZSB0ZXh0IHByb3BlcnR5LlxuXHQgKiBAcGFyYW0gdGV4dFxuXHQgKi9cblx0c2V0VGV4dCh0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcblx0XHQvLyBpbiBjYXNlIHRoZSB0ZXh0IGlzIHNldCBhZnRlciB0aGUgaW5uZXIgY29udHJvbCBjcmVhdGlvbiB3ZSBuZWVkIHRvIGZvcndhcmQgaXRcblx0XHR0aGlzLnNldFByb3BlcnR5KFwidGV4dFwiLCB0ZXh0KTtcblx0XHR0aGlzLmNvbnRlbnQ/LnNldFRleHQodGV4dCk7XG5cdH1cblxuXHRjcmVhdGVDb250ZW50KCk6IFRleHQgfCBMaW5rIHtcblx0XHRpZiAodGhpcy5zaG93QXNMaW5rID09PSB0cnVlKSB7XG5cdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHQ8TGlua1xuXHRcdFx0XHRcdHRleHQ9e3RoaXMudGV4dH1cblx0XHRcdFx0XHR3cmFwcGluZz17dGhpcy53cmFwcGluZ31cblx0XHRcdFx0XHRlbXB0eUluZGljYXRvck1vZGU9e3RoaXMuZW1wdHlJbmRpY2F0b3JNb2RlfVxuXHRcdFx0XHRcdHByZXNzPXsocHJlc3NFdmVudCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdFx0dGhpcy5maXJlRXZlbnQoXCJwcmVzc1wiLCBwcmVzc0V2ZW50KTtcblx0XHRcdFx0XHR9fVxuXHRcdFx0XHRcdGFjY2Vzc2libGVSb2xlPXtMaW5rQWNjZXNzaWJsZVJvbGUuQnV0dG9ufVxuXHRcdFx0XHQvPlxuXHRcdFx0KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIDxUZXh0IHRleHQ9e3RoaXMudGV4dH0gd3JhcHBpbmc9e3RoaXMud3JhcHBpbmd9IGVtcHR5SW5kaWNhdG9yTW9kZT17dGhpcy5lbXB0eUluZGljYXRvck1vZGV9IC8+O1xuXHRcdH1cblx0fVxuXG5cdHVwZGF0ZUNvbnRlbnQoKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuY29udGVudCkge1xuXHRcdFx0dGhpcy5jb250ZW50LmRlc3Ryb3koKTtcblx0XHR9XG5cdFx0dGhpcy5jb250ZW50ID0gdGhpcy5jcmVhdGVDb250ZW50KCk7XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BYXFCQSxRQUFRLElBQUFDLElBQUEsR0FENUJDLGNBQWMsQ0FBQyxpQ0FBaUMsQ0FBQyxFQUFBQyxLQUFBLEdBRWhEQyxRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFLFNBQVM7SUFBRUMsWUFBWSxFQUFFO0VBQU0sQ0FBQyxD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
|
|
@@ -5,8 +5,11 @@ import * as SemanticObjectHelper from "sap/fe/core/templating/SemanticObjectHelp
|
|
|
5
5
|
import Link, { type Link$PressEvent } from "sap/m/Link";
|
|
6
6
|
import Text from "sap/m/Text";
|
|
7
7
|
import { LinkAccessibleRole } from "sap/m/library";
|
|
8
|
+
import type Control from "sap/ui/core/Control";
|
|
8
9
|
import type { $ControlSettings } from "sap/ui/core/Control";
|
|
9
10
|
|
|
11
|
+
type ControlWithAccessibility = Control & { addAriaLabelledBy?: (id: string) => void; getAriaLabelledBy: () => string[] };
|
|
12
|
+
|
|
10
13
|
@defineUI5Class("sap.fe.macros.controls.TextLink")
|
|
11
14
|
export default class TextLink extends BuildingBlock<Text | Link> {
|
|
12
15
|
@property({ type: "boolean", defaultValue: false })
|
|
@@ -64,6 +67,22 @@ export default class TextLink extends BuildingBlock<Text | Link> {
|
|
|
64
67
|
}
|
|
65
68
|
}
|
|
66
69
|
|
|
70
|
+
_setAriaLabelledBy(content?: ControlWithAccessibility): void {
|
|
71
|
+
if (content && content.addAriaLabelledBy) {
|
|
72
|
+
const ariaLabelledBy = this.ariaLabelledBy;
|
|
73
|
+
for (const id of ariaLabelledBy) {
|
|
74
|
+
const ariaLabelledBys = content.getAriaLabelledBy() || [];
|
|
75
|
+
if (!ariaLabelledBys.includes(id)) {
|
|
76
|
+
content.addAriaLabelledBy(id);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
onBeforeRendering(): void {
|
|
83
|
+
this._setAriaLabelledBy(this.content as unknown as ControlWithAccessibility);
|
|
84
|
+
}
|
|
85
|
+
|
|
67
86
|
/**
|
|
68
87
|
* Setter for the text property.
|
|
69
88
|
* @param text
|